{
  "version": 3,
  "sources": ["encode.node.js"],
  "sourcesContent": ["// Copyright 2026 will Farrell, and datastream contributors.\n// SPDX-License-Identifier: MIT\n\nimport { getSupportedEncoding } from \"@datastream/charset/detect\";\nimport { createTransformStream } from \"@datastream/core\";\nimport iconv from \"iconv-lite\";\n\nexport const charsetEncodeStream = ({ charset } = {}, streamOptions = {}) => {\n\tcharset = getSupportedEncoding(charset);\n\tif (!iconv.encodingExists(charset)) charset = \"UTF-8\";\n\n\tconst conv = iconv.getEncoder(charset);\n\tconst transform = (chunk, enqueue) => {\n\t\t// conv.write() always returns a Buffer (never nullish), so a plain\n\t\t// .length check is enough here.\n\t\tconst res = conv.write(chunk);\n\t\tif (res.length) {\n\t\t\tenqueue(res);\n\t\t}\n\t};\n\tconst flush = (enqueue) => {\n\t\t// Stateful encoders (e.g. UTF-7-IMAP) buffer multibyte content and emit\n\t\t// their trailing shift-out sequence only from end(); mirror decode.node.js\n\t\t// and enqueue that tail so no data is dropped.\n\t\tconst res = conv.end();\n\t\tif (res?.length) {\n\t\t\tenqueue(res);\n\t\t}\n\t};\n\treturn createTransformStream(transform, flush, streamOptions);\n};\n\nexport default charsetEncodeStream;\n"],
  "mappings": "AAGA,SAAS,4BAA4B;AACrC,SAAS,6BAA6B;AACtC,OAAO,WAAW;AAEX,MAAM,sBAAsB,CAAC,EAAE,QAAQ,IAAI,CAAC,GAAG,gBAAgB,CAAC,MAAM;AAC5E,YAAU,qBAAqB,OAAO;AACtC,MAAI,CAAC,MAAM,eAAe,OAAO,EAAG,WAAU;AAE9C,QAAM,OAAO,MAAM,WAAW,OAAO;AACrC,QAAM,YAAY,CAAC,OAAO,YAAY;AAGrC,UAAM,MAAM,KAAK,MAAM,KAAK;AAC5B,QAAI,IAAI,QAAQ;AACf,cAAQ,GAAG;AAAA,IACZ;AAAA,EACD;AACA,QAAM,QAAQ,CAAC,YAAY;AAI1B,UAAM,MAAM,KAAK,IAAI;AACrB,QAAI,KAAK,QAAQ;AAChB,cAAQ,GAAG;AAAA,IACZ;AAAA,EACD;AACA,SAAO,sBAAsB,WAAW,OAAO,aAAa;AAC7D;AAEA,IAAO,sBAAQ;",
  "names": []
}
