From 76cb9c2a39d477a64824a985ade40507e3bbade1 Mon Sep 17 00:00:00 2001 From: Adam Mathes Date: Fri, 13 Feb 2026 21:34:48 -0800 Subject: feat(vanilla): add testing infrastructure and tests (NK-wjnczv) --- .../node_modules/@exodus/bytes/encoding-lite.d.ts | 62 ++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 vanilla/node_modules/@exodus/bytes/encoding-lite.d.ts (limited to 'vanilla/node_modules/@exodus/bytes/encoding-lite.d.ts') diff --git a/vanilla/node_modules/@exodus/bytes/encoding-lite.d.ts b/vanilla/node_modules/@exodus/bytes/encoding-lite.d.ts new file mode 100644 index 0000000..8a6550d --- /dev/null +++ b/vanilla/node_modules/@exodus/bytes/encoding-lite.d.ts @@ -0,0 +1,62 @@ +/** + * The exact same exports as `@exodus/bytes/encoding.js` are also exported as + * `@exodus/bytes/encoding-lite.js`, with the difference that the lite version does not load + * multi-byte `TextDecoder` encodings by default to reduce bundle size 10x. + * + * ```js + * import { TextDecoder, TextEncoder } from '@exodus/bytes/encoding-lite.js' + * import { TextDecoderStream, TextEncoderStream } from '@exodus/bytes/encoding-lite.js' // Requires Streams + * + * // Hooks for standards + * import { getBOMEncoding, legacyHookDecode, labelToName, normalizeEncoding } from '@exodus/bytes/encoding-lite.js' + * ``` + * + * The only affected encodings are: `gbk`, `gb18030`, `big5`, `euc-jp`, `iso-2022-jp`, `shift_jis` + * and their [labels](https://encoding.spec.whatwg.org/#names-and-labels) when used with `TextDecoder`. + * + * Legacy single-byte encodingds are loaded by default in both cases. + * + * `TextEncoder` and hooks for standards (including `labelToName` / `normalizeEncoding`) do not have any behavior + * differences in the lite version and support full range if inputs. + * + * To avoid inconsistencies, the exported classes and methods are exactly the same objects. + * + * ```console + * > lite = require('@exodus/bytes/encoding-lite.js') + * [Module: null prototype] { + * TextDecoder: [class TextDecoder], + * TextDecoderStream: [class TextDecoderStream], + * TextEncoder: [class TextEncoder], + * TextEncoderStream: [class TextEncoderStream], + * getBOMEncoding: [Function: getBOMEncoding], + * labelToName: [Function: labelToName], + * legacyHookDecode: [Function: legacyHookDecode], + * normalizeEncoding: [Function: normalizeEncoding] + * } + * > new lite.TextDecoder('big5').decode(Uint8Array.of(0x25)) + * Uncaught: + * Error: Legacy multi-byte encodings are disabled in /encoding-lite.js, use /encoding.js for full encodings range support + * + * > full = require('@exodus/bytes/encoding.js') + * [Module: null prototype] { + * TextDecoder: [class TextDecoder], + * TextDecoderStream: [class TextDecoderStream], + * TextEncoder: [class TextEncoder], + * TextEncoderStream: [class TextEncoderStream], + * getBOMEncoding: [Function: getBOMEncoding], + * labelToName: [Function: labelToName], + * legacyHookDecode: [Function: legacyHookDecode], + * normalizeEncoding: [Function: normalizeEncoding] + * } + * > full.TextDecoder === lite.TextDecoder + * true + * > new full.TextDecoder('big5').decode(Uint8Array.of(0x25)) + * '%' + * > new lite.TextDecoder('big5').decode(Uint8Array.of(0x25)) + * '%' + * ``` + * + * @module @exodus/bytes/encoding-lite.js + */ + +export * from './encoding.js' -- cgit v1.2.3