"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.encode = encode; exports.decode = decode; exports.convert = convert; exports.normalizeCharset = normalizeCharset; const node_buffer_1 = require("node:buffer"); const iconv_lite_1 = __importDefault(require("iconv-lite")); const encoding_japanese_1 = __importDefault(require("encoding-japanese")); const charsets_js_1 = __importDefault(require("./charsets.js")); /** * Character set encoding and decoding functions */ // Names that are decoded as UTF-8 without going through iconv-lite const UTF8_COMPATIBLE = /^(?:(?:us-)?ascii|utf-8|7bit)$/i; // iconv-lite codecs that are not character sets a message could be written in. UTF-7 is a known // way to smuggle markup past filters (=?utf-7?Q?+ADw-script+AD4-?= decodes to "