{
  "version": 3,
  "sources": ["decode.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 charsetDecodeStream = ({ charset } = {}, streamOptions = {}) => {\n\tcharset = getSupportedEncoding(charset);\n\tif (!iconv.encodingExists(charset)) charset = \"UTF-8\";\n\n\tconst conv = iconv.getDecoder(charset);\n\n\tconst transform = (chunk, enqueue) => {\n\t\t// conv.write() always returns a string (never nullish), so a plain\n\t\t// .length check is enough. The stream is objectMode, so enqueue ignores\n\t\t// any encoding argument; pass only the chunk.\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// conv.end() can return undefined for some decoders (e.g. ISO-8859-1),\n\t\t// so guard the length read with optional chaining.\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 charsetDecodeStream;\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;AAErC,QAAM,YAAY,CAAC,OAAO,YAAY;AAIrC,UAAM,MAAM,KAAK,MAAM,KAAK;AAC5B,QAAI,IAAI,QAAQ;AACf,cAAQ,GAAG;AAAA,IACZ;AAAA,EACD;AACA,QAAM,QAAQ,CAAC,YAAY;AAG1B,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": []
}
