@dcl/sdk 7.24.5 → 7.24.6-29580060460.commit-06f0b7e

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,7 @@
1
1
  import { compositeFromLoader } from '~sdk/all-composites';
2
2
  import { readFile } from '~system/Runtime';
3
- import { Composite, getGlobal } from '@dcl/ecs';
3
+ import { Composite } from '@dcl/ecs';
4
+ import { decodeUtf8 } from './internal/utf8';
4
5
  const composites = new Map();
5
6
  function findCached(src) {
6
7
  return composites.get(src) ?? null;
@@ -27,14 +28,8 @@ function decodeFromBytes(content) {
27
28
  // The first-byte check is a fast path; a JSON.parse failure falls back to fromBinary
28
29
  // because a protobuf message can also begin with 0x7b.
29
30
  if (content[0] === 0x7b /* '{' */) {
30
- const TD = getGlobal('TextDecoder');
31
- if (!TD) {
32
- throw new Error('loadComposite: TextDecoder is not available in this runtime. ' +
33
- 'Use a .composite.bin file, or import `@dcl/sdk/ethereum-provider` ' +
34
- 'to install the TextEncoder/TextDecoder polyfill.');
35
- }
36
31
  try {
37
- return Composite.fromJson(JSON.parse(new TD().decode(content)));
32
+ return Composite.fromJson(JSON.parse(decodeUtf8(content, { fatal: true })));
38
33
  }
39
34
  catch {
40
35
  return Composite.fromBinary(content);
@@ -69,4 +64,4 @@ export const compositeProvider = {
69
64
  return cache(src, composite);
70
65
  }
71
66
  };
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9zaXRlLXByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3JjL2NvbXBvc2l0ZS1wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUN6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFFL0MsTUFBTSxVQUFVLEdBQUcsSUFBSSxHQUFHLEVBQThCLENBQUE7QUFFeEQsU0FBUyxVQUFVLENBQUMsR0FBVztJQUM3QixPQUFPLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFBO0FBQ3BDLENBQUM7QUFFRCxTQUFTLEtBQUssQ0FBQyxHQUFXLEVBQUUsU0FBK0I7SUFDekQsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ2hDLElBQUksUUFBUTtRQUFFLE9BQU8sUUFBUSxDQUFBO0lBQzdCLE1BQU0sUUFBUSxHQUF1QixFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsQ0FBQTtJQUN2RCxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQTtJQUM3QixPQUFPLFFBQVEsQ0FBQTtBQUNqQixDQUFDO0FBRUQsU0FBUyxnQkFBZ0IsQ0FBQyxHQUFXLEVBQUUsVUFBbUI7SUFDeEQsSUFBSSxVQUFVLFlBQVksVUFBVTtRQUFFLE9BQU8sU0FBUyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUM3RSxJQUFJLE9BQU8sVUFBVSxLQUFLLFFBQVE7UUFBRSxPQUFPLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFBO0lBQ3JGLElBQUksT0FBTyxVQUFVLEtBQUssUUFBUSxJQUFJLFVBQVUsS0FBSyxJQUFJO1FBQUUsT0FBTyxTQUFTLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQ2hHLE9BQU8sSUFBSSxDQUFBO0FBQ2IsQ0FBQztBQUVELFNBQVMsZUFBZSxDQUFDLE9BQW1CO0lBQzFDLCtFQUErRTtJQUMvRSxxRkFBcUY7SUFDckYsdURBQXVEO0lBQ3ZELElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxTQUFTLEVBQUU7UUFDakMsTUFBTSxFQUFFLEdBQUcsU0FBUyxDQUFrRCxhQUFhLENBQUMsQ0FBQTtRQUNwRixJQUFJLENBQUMsRUFBRSxFQUFFO1lBQ1AsTUFBTSxJQUFJLEtBQUssQ0FDYiwrREFBK0Q7Z0JBQzdELG9FQUFvRTtnQkFDcEUsa0RBQWtELENBQ3JELENBQUE7U0FDRjtRQUNELElBQUk7WUFDRixPQUFPLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUE7U0FDaEU7UUFBQyxNQUFNO1lBQ04sT0FBTyxTQUFTLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1NBQ3JDO0tBQ0Y7SUFDRCxPQUFPLFNBQVMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUE7QUFDdEMsQ0FBQztBQUVELFVBQVU7QUFDVixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBdUI7SUFDbkQsT0FBTyxFQUFFLEVBQUU7SUFDWCxrQkFBa0IsQ0FBQyxHQUFXO1FBQzVCLE1BQU0sVUFBVSxHQUFHLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQzNDLElBQUksVUFBVSxFQUFFO1lBQ2QsSUFBSTtnQkFDRixNQUFNLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUE7Z0JBQ25ELElBQUksU0FBUztvQkFBRSxLQUFLLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFBO2FBQ3JDO1lBQUMsT0FBTyxHQUFHLEVBQUU7Z0JBQ1osT0FBTyxDQUFDLEtBQUssQ0FBQyxrREFBa0QsR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUE7YUFDN0U7WUFDRCxPQUFPLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFBO1NBQ2hDO1FBRUQsT0FBTyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDeEIsQ0FBQztJQUVELEtBQUssQ0FBQyxhQUFhLENBQUMsR0FBVztRQUM3QixNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDOUIsSUFBSSxNQUFNO1lBQUUsT0FBTyxNQUFNLENBQUE7UUFFekIsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLE1BQU0sUUFBUSxDQUFDLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUE7UUFDckQsTUFBTSxTQUFTLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQzFDLE9BQU8sS0FBSyxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQTtJQUM5QixDQUFDO0NBQ0YsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXBvc2l0ZUZyb21Mb2FkZXIgfSBmcm9tICd+c2RrL2FsbC1jb21wb3NpdGVzJ1xuaW1wb3J0IHsgcmVhZEZpbGUgfSBmcm9tICd+c3lzdGVtL1J1bnRpbWUnXG5pbXBvcnQgeyBDb21wb3NpdGUsIGdldEdsb2JhbCB9IGZyb20gJ0BkY2wvZWNzJ1xuXG5jb25zdCBjb21wb3NpdGVzID0gbmV3IE1hcDxzdHJpbmcsIENvbXBvc2l0ZS5SZXNvdXJjZT4oKVxuXG5mdW5jdGlvbiBmaW5kQ2FjaGVkKHNyYzogc3RyaW5nKTogQ29tcG9zaXRlLlJlc291cmNlIHwgbnVsbCB7XG4gIHJldHVybiBjb21wb3NpdGVzLmdldChzcmMpID8/IG51bGxcbn1cblxuZnVuY3Rpb24gY2FjaGUoc3JjOiBzdHJpbmcsIGNvbXBvc2l0ZTogQ29tcG9zaXRlLkRlZmluaXRpb24pOiBDb21wb3NpdGUuUmVzb3VyY2Uge1xuICBjb25zdCBleGlzdGluZyA9IGZpbmRDYWNoZWQoc3JjKVxuICBpZiAoZXhpc3RpbmcpIHJldHVybiBleGlzdGluZ1xuICBjb25zdCByZXNvdXJjZTogQ29tcG9zaXRlLlJlc291cmNlID0geyBzcmMsIGNvbXBvc2l0ZSB9XG4gIGNvbXBvc2l0ZXMuc2V0KHNyYywgcmVzb3VyY2UpXG4gIHJldHVybiByZXNvdXJjZVxufVxuXG5mdW5jdGlvbiBkZWNvZGVGcm9tTG9hZGVyKHNyYzogc3RyaW5nLCBmcm9tTG9hZGVyOiB1bmtub3duKTogQ29tcG9zaXRlLkRlZmluaXRpb24gfCBudWxsIHtcbiAgaWYgKGZyb21Mb2FkZXIgaW5zdGFuY2VvZiBVaW50OEFycmF5KSByZXR1cm4gQ29tcG9zaXRlLmZyb21CaW5hcnkoZnJvbUxvYWRlcilcbiAgaWYgKHR5cGVvZiBmcm9tTG9hZGVyID09PSAnc3RyaW5nJykgcmV0dXJuIENvbXBvc2l0ZS5mcm9tSnNvbihKU09OLnBhcnNlKGZyb21Mb2FkZXIpKVxuICBpZiAodHlwZW9mIGZyb21Mb2FkZXIgPT09ICdvYmplY3QnICYmIGZyb21Mb2FkZXIgIT09IG51bGwpIHJldHVybiBDb21wb3NpdGUuZnJvbUpzb24oZnJvbUxvYWRlcilcbiAgcmV0dXJuIG51bGxcbn1cblxuZnVuY3Rpb24gZGVjb2RlRnJvbUJ5dGVzKGNvbnRlbnQ6IFVpbnQ4QXJyYXkpOiBDb21wb3NpdGUuRGVmaW5pdGlvbiB7XG4gIC8vIC5jb21wb3NpdGUgZmlsZXMgYXJlIEpTT04gKFVURi04KTsgLmNvbXBvc2l0ZS5iaW4gZmlsZXMgYXJlIHByb3RvYnVmIGJpbmFyeS5cbiAgLy8gVGhlIGZpcnN0LWJ5dGUgY2hlY2sgaXMgYSBmYXN0IHBhdGg7IGEgSlNPTi5wYXJzZSBmYWlsdXJlIGZhbGxzIGJhY2sgdG8gZnJvbUJpbmFyeVxuICAvLyBiZWNhdXNlIGEgcHJvdG9idWYgbWVzc2FnZSBjYW4gYWxzbyBiZWdpbiB3aXRoIDB4N2IuXG4gIGlmIChjb250ZW50WzBdID09PSAweDdiIC8qICd7JyAqLykge1xuICAgIGNvbnN0IFREID0gZ2V0R2xvYmFsPG5ldyAoKSA9PiB7IGRlY29kZShpbnB1dDogVWludDhBcnJheSk6IHN0cmluZyB9PignVGV4dERlY29kZXInKVxuICAgIGlmICghVEQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ2xvYWRDb21wb3NpdGU6IFRleHREZWNvZGVyIGlzIG5vdCBhdmFpbGFibGUgaW4gdGhpcyBydW50aW1lLiAnICtcbiAgICAgICAgICAnVXNlIGEgLmNvbXBvc2l0ZS5iaW4gZmlsZSwgb3IgaW1wb3J0IGBAZGNsL3Nkay9ldGhlcmV1bS1wcm92aWRlcmAgJyArXG4gICAgICAgICAgJ3RvIGluc3RhbGwgdGhlIFRleHRFbmNvZGVyL1RleHREZWNvZGVyIHBvbHlmaWxsLidcbiAgICAgIClcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBDb21wb3NpdGUuZnJvbUpzb24oSlNPTi5wYXJzZShuZXcgVEQoKS5kZWNvZGUoY29udGVudCkpKVxuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIENvbXBvc2l0ZS5mcm9tQmluYXJ5KGNvbnRlbnQpXG4gICAgfVxuICB9XG4gIHJldHVybiBDb21wb3NpdGUuZnJvbUJpbmFyeShjb250ZW50KVxufVxuXG4vLyBAcHVibGljXG5leHBvcnQgY29uc3QgY29tcG9zaXRlUHJvdmlkZXI6IENvbXBvc2l0ZS5Qcm92aWRlciA9IHtcbiAgc2NoZW1hczogW10sXG4gIGdldENvbXBvc2l0ZU9yTnVsbChzcmM6IHN0cmluZykge1xuICAgIGNvbnN0IGZyb21Mb2FkZXIgPSBjb21wb3NpdGVGcm9tTG9hZGVyW3NyY11cbiAgICBpZiAoZnJvbUxvYWRlcikge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgY29tcG9zaXRlID0gZGVjb2RlRnJvbUxvYWRlcihzcmMsIGZyb21Mb2FkZXIpXG4gICAgICAgIGlmIChjb21wb3NpdGUpIGNhY2hlKHNyYywgY29tcG9zaXRlKVxuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYGNvbXBvc2l0ZVByb3ZpZGVyOiBmYWlsZWQgdG8gZGVjb2RlIGNvbXBvc2l0ZSBcIiR7c3JjfVwiYCwgZXJyKVxuICAgICAgfVxuICAgICAgZGVsZXRlIGNvbXBvc2l0ZUZyb21Mb2FkZXJbc3JjXVxuICAgIH1cblxuICAgIHJldHVybiBmaW5kQ2FjaGVkKHNyYylcbiAgfSxcblxuICBhc3luYyBsb2FkQ29tcG9zaXRlKHNyYzogc3RyaW5nKTogUHJvbWlzZTxDb21wb3NpdGUuUmVzb3VyY2U+IHtcbiAgICBjb25zdCBjYWNoZWQgPSBmaW5kQ2FjaGVkKHNyYylcbiAgICBpZiAoY2FjaGVkKSByZXR1cm4gY2FjaGVkXG5cbiAgICBjb25zdCB7IGNvbnRlbnQgfSA9IGF3YWl0IHJlYWRGaWxlKHsgZmlsZU5hbWU6IHNyYyB9KVxuICAgIGNvbnN0IGNvbXBvc2l0ZSA9IGRlY29kZUZyb21CeXRlcyhjb250ZW50KVxuICAgIHJldHVybiBjYWNoZShzcmMsIGNvbXBvc2l0ZSlcbiAgfVxufVxuIl19
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9zaXRlLXByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3JjL2NvbXBvc2l0ZS1wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUN6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUNwQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFFNUMsTUFBTSxVQUFVLEdBQUcsSUFBSSxHQUFHLEVBQThCLENBQUE7QUFFeEQsU0FBUyxVQUFVLENBQUMsR0FBVztJQUM3QixPQUFPLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFBO0FBQ3BDLENBQUM7QUFFRCxTQUFTLEtBQUssQ0FBQyxHQUFXLEVBQUUsU0FBK0I7SUFDekQsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ2hDLElBQUksUUFBUTtRQUFFLE9BQU8sUUFBUSxDQUFBO0lBQzdCLE1BQU0sUUFBUSxHQUF1QixFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsQ0FBQTtJQUN2RCxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQTtJQUM3QixPQUFPLFFBQVEsQ0FBQTtBQUNqQixDQUFDO0FBRUQsU0FBUyxnQkFBZ0IsQ0FBQyxHQUFXLEVBQUUsVUFBbUI7SUFDeEQsSUFBSSxVQUFVLFlBQVksVUFBVTtRQUFFLE9BQU8sU0FBUyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUM3RSxJQUFJLE9BQU8sVUFBVSxLQUFLLFFBQVE7UUFBRSxPQUFPLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFBO0lBQ3JGLElBQUksT0FBTyxVQUFVLEtBQUssUUFBUSxJQUFJLFVBQVUsS0FBSyxJQUFJO1FBQUUsT0FBTyxTQUFTLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQ2hHLE9BQU8sSUFBSSxDQUFBO0FBQ2IsQ0FBQztBQUVELFNBQVMsZUFBZSxDQUFDLE9BQW1CO0lBQzFDLCtFQUErRTtJQUMvRSxxRkFBcUY7SUFDckYsdURBQXVEO0lBQ3ZELElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxTQUFTLEVBQUU7UUFDakMsSUFBSTtZQUNGLE9BQU8sU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7U0FDNUU7UUFBQyxNQUFNO1lBQ04sT0FBTyxTQUFTLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1NBQ3JDO0tBQ0Y7SUFDRCxPQUFPLFNBQVMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUE7QUFDdEMsQ0FBQztBQUVELFVBQVU7QUFDVixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBdUI7SUFDbkQsT0FBTyxFQUFFLEVBQUU7SUFDWCxrQkFBa0IsQ0FBQyxHQUFXO1FBQzVCLE1BQU0sVUFBVSxHQUFHLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQzNDLElBQUksVUFBVSxFQUFFO1lBQ2QsSUFBSTtnQkFDRixNQUFNLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUE7Z0JBQ25ELElBQUksU0FBUztvQkFBRSxLQUFLLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFBO2FBQ3JDO1lBQUMsT0FBTyxHQUFHLEVBQUU7Z0JBQ1osT0FBTyxDQUFDLEtBQUssQ0FBQyxrREFBa0QsR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUE7YUFDN0U7WUFDRCxPQUFPLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFBO1NBQ2hDO1FBRUQsT0FBTyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDeEIsQ0FBQztJQUVELEtBQUssQ0FBQyxhQUFhLENBQUMsR0FBVztRQUM3QixNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDOUIsSUFBSSxNQUFNO1lBQUUsT0FBTyxNQUFNLENBQUE7UUFFekIsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLE1BQU0sUUFBUSxDQUFDLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUE7UUFDckQsTUFBTSxTQUFTLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQzFDLE9BQU8sS0FBSyxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQTtJQUM5QixDQUFDO0NBQ0YsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXBvc2l0ZUZyb21Mb2FkZXIgfSBmcm9tICd+c2RrL2FsbC1jb21wb3NpdGVzJ1xuaW1wb3J0IHsgcmVhZEZpbGUgfSBmcm9tICd+c3lzdGVtL1J1bnRpbWUnXG5pbXBvcnQgeyBDb21wb3NpdGUgfSBmcm9tICdAZGNsL2VjcydcbmltcG9ydCB7IGRlY29kZVV0ZjggfSBmcm9tICcuL2ludGVybmFsL3V0ZjgnXG5cbmNvbnN0IGNvbXBvc2l0ZXMgPSBuZXcgTWFwPHN0cmluZywgQ29tcG9zaXRlLlJlc291cmNlPigpXG5cbmZ1bmN0aW9uIGZpbmRDYWNoZWQoc3JjOiBzdHJpbmcpOiBDb21wb3NpdGUuUmVzb3VyY2UgfCBudWxsIHtcbiAgcmV0dXJuIGNvbXBvc2l0ZXMuZ2V0KHNyYykgPz8gbnVsbFxufVxuXG5mdW5jdGlvbiBjYWNoZShzcmM6IHN0cmluZywgY29tcG9zaXRlOiBDb21wb3NpdGUuRGVmaW5pdGlvbik6IENvbXBvc2l0ZS5SZXNvdXJjZSB7XG4gIGNvbnN0IGV4aXN0aW5nID0gZmluZENhY2hlZChzcmMpXG4gIGlmIChleGlzdGluZykgcmV0dXJuIGV4aXN0aW5nXG4gIGNvbnN0IHJlc291cmNlOiBDb21wb3NpdGUuUmVzb3VyY2UgPSB7IHNyYywgY29tcG9zaXRlIH1cbiAgY29tcG9zaXRlcy5zZXQoc3JjLCByZXNvdXJjZSlcbiAgcmV0dXJuIHJlc291cmNlXG59XG5cbmZ1bmN0aW9uIGRlY29kZUZyb21Mb2FkZXIoc3JjOiBzdHJpbmcsIGZyb21Mb2FkZXI6IHVua25vd24pOiBDb21wb3NpdGUuRGVmaW5pdGlvbiB8IG51bGwge1xuICBpZiAoZnJvbUxvYWRlciBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpIHJldHVybiBDb21wb3NpdGUuZnJvbUJpbmFyeShmcm9tTG9hZGVyKVxuICBpZiAodHlwZW9mIGZyb21Mb2FkZXIgPT09ICdzdHJpbmcnKSByZXR1cm4gQ29tcG9zaXRlLmZyb21Kc29uKEpTT04ucGFyc2UoZnJvbUxvYWRlcikpXG4gIGlmICh0eXBlb2YgZnJvbUxvYWRlciA9PT0gJ29iamVjdCcgJiYgZnJvbUxvYWRlciAhPT0gbnVsbCkgcmV0dXJuIENvbXBvc2l0ZS5mcm9tSnNvbihmcm9tTG9hZGVyKVxuICByZXR1cm4gbnVsbFxufVxuXG5mdW5jdGlvbiBkZWNvZGVGcm9tQnl0ZXMoY29udGVudDogVWludDhBcnJheSk6IENvbXBvc2l0ZS5EZWZpbml0aW9uIHtcbiAgLy8gLmNvbXBvc2l0ZSBmaWxlcyBhcmUgSlNPTiAoVVRGLTgpOyAuY29tcG9zaXRlLmJpbiBmaWxlcyBhcmUgcHJvdG9idWYgYmluYXJ5LlxuICAvLyBUaGUgZmlyc3QtYnl0ZSBjaGVjayBpcyBhIGZhc3QgcGF0aDsgYSBKU09OLnBhcnNlIGZhaWx1cmUgZmFsbHMgYmFjayB0byBmcm9tQmluYXJ5XG4gIC8vIGJlY2F1c2UgYSBwcm90b2J1ZiBtZXNzYWdlIGNhbiBhbHNvIGJlZ2luIHdpdGggMHg3Yi5cbiAgaWYgKGNvbnRlbnRbMF0gPT09IDB4N2IgLyogJ3snICovKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBDb21wb3NpdGUuZnJvbUpzb24oSlNPTi5wYXJzZShkZWNvZGVVdGY4KGNvbnRlbnQsIHsgZmF0YWw6IHRydWUgfSkpKVxuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIENvbXBvc2l0ZS5mcm9tQmluYXJ5KGNvbnRlbnQpXG4gICAgfVxuICB9XG4gIHJldHVybiBDb21wb3NpdGUuZnJvbUJpbmFyeShjb250ZW50KVxufVxuXG4vLyBAcHVibGljXG5leHBvcnQgY29uc3QgY29tcG9zaXRlUHJvdmlkZXI6IENvbXBvc2l0ZS5Qcm92aWRlciA9IHtcbiAgc2NoZW1hczogW10sXG4gIGdldENvbXBvc2l0ZU9yTnVsbChzcmM6IHN0cmluZykge1xuICAgIGNvbnN0IGZyb21Mb2FkZXIgPSBjb21wb3NpdGVGcm9tTG9hZGVyW3NyY11cbiAgICBpZiAoZnJvbUxvYWRlcikge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgY29tcG9zaXRlID0gZGVjb2RlRnJvbUxvYWRlcihzcmMsIGZyb21Mb2FkZXIpXG4gICAgICAgIGlmIChjb21wb3NpdGUpIGNhY2hlKHNyYywgY29tcG9zaXRlKVxuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYGNvbXBvc2l0ZVByb3ZpZGVyOiBmYWlsZWQgdG8gZGVjb2RlIGNvbXBvc2l0ZSBcIiR7c3JjfVwiYCwgZXJyKVxuICAgICAgfVxuICAgICAgZGVsZXRlIGNvbXBvc2l0ZUZyb21Mb2FkZXJbc3JjXVxuICAgIH1cblxuICAgIHJldHVybiBmaW5kQ2FjaGVkKHNyYylcbiAgfSxcblxuICBhc3luYyBsb2FkQ29tcG9zaXRlKHNyYzogc3RyaW5nKTogUHJvbWlzZTxDb21wb3NpdGUuUmVzb3VyY2U+IHtcbiAgICBjb25zdCBjYWNoZWQgPSBmaW5kQ2FjaGVkKHNyYylcbiAgICBpZiAoY2FjaGVkKSByZXR1cm4gY2FjaGVkXG5cbiAgICBjb25zdCB7IGNvbnRlbnQgfSA9IGF3YWl0IHJlYWRGaWxlKHsgZmlsZU5hbWU6IHNyYyB9KVxuICAgIGNvbnN0IGNvbXBvc2l0ZSA9IGRlY29kZUZyb21CeXRlcyhjb250ZW50KVxuICAgIHJldHVybiBjYWNoZShzcmMsIGNvbXBvc2l0ZSlcbiAgfVxufVxuIl19
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Self-contained UTF-8 codec implementing the WHATWG Encoding Standard
3
+ * algorithms (https://encoding.spec.whatwg.org/), so SDK code never depends
4
+ * on the host providing `TextEncoder` / `TextDecoder` globals.
5
+ */
6
+ export type DecodeUtf8Options = {
7
+ fatal?: boolean;
8
+ ignoreBOM?: boolean;
9
+ };
10
+ export declare function decodeUtf8(input: Uint8Array, options?: DecodeUtf8Options): string;
11
+ export declare function encodeUtf8(input: string): Uint8Array;
12
+ export declare function encodeUtf8Into(source: string, destination: Uint8Array): {
13
+ read: number;
14
+ written: number;
15
+ };
@@ -0,0 +1,172 @@
1
+ /**
2
+ * Self-contained UTF-8 codec implementing the WHATWG Encoding Standard
3
+ * algorithms (https://encoding.spec.whatwg.org/), so SDK code never depends
4
+ * on the host providing `TextEncoder` / `TextDecoder` globals.
5
+ */
6
+ const REPLACEMENT_CHARACTER = 0xfffd;
7
+ export function decodeUtf8(input, options = {}) {
8
+ const fatal = options.fatal === true;
9
+ const start = !options.ignoreBOM && input.length >= 3 && input[0] === 0xef && input[1] === 0xbb && input[2] === 0xbf ? 3 : 0;
10
+ let result = '';
11
+ let pending = [];
12
+ let codePoint = 0;
13
+ let bytesNeeded = 0;
14
+ let bytesSeen = 0;
15
+ let lowerBoundary = 0x80;
16
+ let upperBoundary = 0xbf;
17
+ function emit(value) {
18
+ if (value <= 0xffff) {
19
+ pending.push(value);
20
+ }
21
+ else {
22
+ const offset = value - 0x10000;
23
+ pending.push(0xd800 + (offset >> 10), 0xdc00 + (offset & 0x3ff));
24
+ }
25
+ if (pending.length >= 4096) {
26
+ result += String.fromCharCode(...pending);
27
+ pending = [];
28
+ }
29
+ }
30
+ function malformed() {
31
+ if (fatal)
32
+ throw new TypeError('decodeUtf8: the encoded data is not valid utf-8');
33
+ emit(REPLACEMENT_CHARACTER);
34
+ }
35
+ for (let i = start; i < input.length; i++) {
36
+ const byte = input[i];
37
+ if (bytesNeeded === 0) {
38
+ if (byte <= 0x7f) {
39
+ emit(byte);
40
+ }
41
+ else if (byte >= 0xc2 && byte <= 0xdf) {
42
+ bytesNeeded = 1;
43
+ codePoint = byte & 0x1f;
44
+ }
45
+ else if (byte >= 0xe0 && byte <= 0xef) {
46
+ if (byte === 0xe0)
47
+ lowerBoundary = 0xa0;
48
+ if (byte === 0xed)
49
+ upperBoundary = 0x9f;
50
+ bytesNeeded = 2;
51
+ codePoint = byte & 0xf;
52
+ }
53
+ else if (byte >= 0xf0 && byte <= 0xf4) {
54
+ if (byte === 0xf0)
55
+ lowerBoundary = 0x90;
56
+ if (byte === 0xf4)
57
+ upperBoundary = 0x8f;
58
+ bytesNeeded = 3;
59
+ codePoint = byte & 0x7;
60
+ }
61
+ else {
62
+ malformed();
63
+ }
64
+ }
65
+ else if (byte < lowerBoundary || byte > upperBoundary) {
66
+ codePoint = 0;
67
+ bytesNeeded = 0;
68
+ bytesSeen = 0;
69
+ lowerBoundary = 0x80;
70
+ upperBoundary = 0xbf;
71
+ malformed();
72
+ // the spec prepends the byte back to the stream: it starts a new sequence
73
+ i--;
74
+ }
75
+ else {
76
+ lowerBoundary = 0x80;
77
+ upperBoundary = 0xbf;
78
+ codePoint = (codePoint << 6) | (byte & 0x3f);
79
+ if (++bytesSeen === bytesNeeded) {
80
+ emit(codePoint);
81
+ codePoint = 0;
82
+ bytesNeeded = 0;
83
+ bytesSeen = 0;
84
+ }
85
+ }
86
+ }
87
+ if (bytesNeeded !== 0)
88
+ malformed();
89
+ if (pending.length > 0)
90
+ result += String.fromCharCode(...pending);
91
+ return result;
92
+ }
93
+ export function encodeUtf8(input) {
94
+ const output = new Uint8Array(utf8ByteLength(input));
95
+ let offset = 0;
96
+ for (let i = 0; i < input.length; i++) {
97
+ const codePoint = codePointAt(input, i);
98
+ if (codePoint > 0xffff)
99
+ i++;
100
+ offset = writeCodePoint(output, offset, codePoint);
101
+ }
102
+ return output;
103
+ }
104
+ export function encodeUtf8Into(source, destination) {
105
+ let read = 0;
106
+ let written = 0;
107
+ for (let i = 0; i < source.length; i++) {
108
+ const codePoint = codePointAt(source, i);
109
+ const size = byteSize(codePoint);
110
+ if (written + size > destination.length)
111
+ break;
112
+ written = writeCodePoint(destination, written, codePoint);
113
+ if (codePoint > 0xffff) {
114
+ i++;
115
+ read += 2;
116
+ }
117
+ else {
118
+ read += 1;
119
+ }
120
+ }
121
+ return { read, written };
122
+ }
123
+ // Reads the code point at index, replacing unpaired surrogates with U+FFFD
124
+ // (the USVString conversion `TextEncoder` mandates).
125
+ function codePointAt(input, index) {
126
+ const first = input.charCodeAt(index);
127
+ if (first >= 0xd800 && first <= 0xdbff) {
128
+ const second = index + 1 < input.length ? input.charCodeAt(index + 1) : 0;
129
+ if (second >= 0xdc00 && second <= 0xdfff)
130
+ return 0x10000 + ((first - 0xd800) << 10) + (second - 0xdc00);
131
+ return REPLACEMENT_CHARACTER;
132
+ }
133
+ if (first >= 0xdc00 && first <= 0xdfff)
134
+ return REPLACEMENT_CHARACTER;
135
+ return first;
136
+ }
137
+ function byteSize(codePoint) {
138
+ return codePoint <= 0x7f ? 1 : codePoint <= 0x7ff ? 2 : codePoint <= 0xffff ? 3 : 4;
139
+ }
140
+ function utf8ByteLength(input) {
141
+ let length = 0;
142
+ for (let i = 0; i < input.length; i++) {
143
+ const codePoint = codePointAt(input, i);
144
+ if (codePoint > 0xffff)
145
+ i++;
146
+ length += byteSize(codePoint);
147
+ }
148
+ return length;
149
+ }
150
+ function writeCodePoint(output, offset, codePoint) {
151
+ let next = offset;
152
+ if (codePoint <= 0x7f) {
153
+ output[next++] = codePoint;
154
+ }
155
+ else if (codePoint <= 0x7ff) {
156
+ output[next++] = 0xc0 | (codePoint >> 6);
157
+ output[next++] = 0x80 | (codePoint & 0x3f);
158
+ }
159
+ else if (codePoint <= 0xffff) {
160
+ output[next++] = 0xe0 | (codePoint >> 12);
161
+ output[next++] = 0x80 | ((codePoint >> 6) & 0x3f);
162
+ output[next++] = 0x80 | (codePoint & 0x3f);
163
+ }
164
+ else {
165
+ output[next++] = 0xf0 | (codePoint >> 18);
166
+ output[next++] = 0x80 | ((codePoint >> 12) & 0x3f);
167
+ output[next++] = 0x80 | ((codePoint >> 6) & 0x3f);
168
+ output[next++] = 0x80 | (codePoint & 0x3f);
169
+ }
170
+ return next;
171
+ }
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRmOC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9pbnRlcm5hbC91dGY4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxNQUFNLHFCQUFxQixHQUFHLE1BQU0sQ0FBQTtBQU9wQyxNQUFNLFVBQVUsVUFBVSxDQUFDLEtBQWlCLEVBQUUsVUFBNkIsRUFBRTtJQUMzRSxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQTtJQUNwQyxNQUFNLEtBQUssR0FDVCxDQUFDLE9BQU8sQ0FBQyxTQUFTLElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBRWhILElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQTtJQUNmLElBQUksT0FBTyxHQUFhLEVBQUUsQ0FBQTtJQUMxQixJQUFJLFNBQVMsR0FBRyxDQUFDLENBQUE7SUFDakIsSUFBSSxXQUFXLEdBQUcsQ0FBQyxDQUFBO0lBQ25CLElBQUksU0FBUyxHQUFHLENBQUMsQ0FBQTtJQUNqQixJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUE7SUFDeEIsSUFBSSxhQUFhLEdBQUcsSUFBSSxDQUFBO0lBRXhCLFNBQVMsSUFBSSxDQUFDLEtBQWE7UUFDekIsSUFBSSxLQUFLLElBQUksTUFBTSxFQUFFO1lBQ25CLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7U0FDcEI7YUFBTTtZQUNMLE1BQU0sTUFBTSxHQUFHLEtBQUssR0FBRyxPQUFPLENBQUE7WUFDOUIsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLEVB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R0FBRyxJQUFJLEdBQUcsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLENBQUE7S0FDM0M7U0FBTTtRQUNMLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUMsQ0FBQTtRQUN6QyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQTtRQUNsRCxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQTtRQUNqRCxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLENBQUE7S0FDM0M7SUFDRCxPQUFPLElBQUksQ0FBQTtBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFNlbGYtY29udGFpbmVkIFVURi04IGNvZGVjIGltcGxlbWVudGluZyB0aGUgV0hBVFdHIEVuY29kaW5nIFN0YW5kYXJkXG4gKiBhbGdvcml0aG1zIChodHRwczovL2VuY29kaW5nLnNwZWMud2hhdHdnLm9yZy8pLCBzbyBTREsgY29kZSBuZXZlciBkZXBlbmRzXG4gKiBvbiB0aGUgaG9zdCBwcm92aWRpbmcgYFRleHRFbmNvZGVyYCAvIGBUZXh0RGVjb2RlcmAgZ2xvYmFscy5cbiAqL1xuXG5jb25zdCBSRVBMQUNFTUVOVF9DSEFSQUNURVIgPSAweGZmZmRcblxuZXhwb3J0IHR5cGUgRGVjb2RlVXRmOE9wdGlvbnMgPSB7XG4gIGZhdGFsPzogYm9vbGVhblxuICBpZ25vcmVCT00/OiBib29sZWFuXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWNvZGVVdGY4KGlucHV0OiBVaW50OEFycmF5LCBvcHRpb25zOiBEZWNvZGVVdGY4T3B0aW9ucyA9IHt9KTogc3RyaW5nIHtcbiAgY29uc3QgZmF0YWwgPSBvcHRpb25zLmZhdGFsID09PSB0cnVlXG4gIGNvbnN0IHN0YXJ0ID1cbiAgICAhb3B0aW9ucy5pZ25vcmVCT00gJiYgaW5wdXQubGVuZ3RoID49IDMgJiYgaW5wdXRbMF0gPT09IDB4ZWYgJiYgaW5wdXRbMV0gPT09IDB4YmIgJiYgaW5wdXRbMl0gPT09IDB4YmYgPyAzIDogMFxuXG4gIGxldCByZXN1bHQgPSAnJ1xuICBsZXQgcGVuZGluZzogbnVtYmVyW10gPSBbXVxuICBsZXQgY29kZVBvaW50ID0gMFxuICBsZXQgYnl0ZXNOZWVkZWQgPSAwXG4gIGxldCBieXRlc1NlZW4gPSAwXG4gIGxldCBsb3dlckJvdW5kYXJ5ID0gMHg4MFxuICBsZXQgdXBwZXJCb3VuZGFyeSA9IDB4YmZcblxuICBmdW5jdGlvbiBlbWl0KHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAodmFsdWUgPD0gMHhmZmZmKSB7XG4gICAgICBwZW5kaW5nLnB1c2godmFsdWUpXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG9mZnNldCA9IHZhbHVlIC0gMHgxMDAwMFxuICAgICAgcGVuZGluZy5wdXNoKDB4ZDgwMCArIChvZmZzZXQgPj4gMTApLCAweGRjMDAgKyAob2Zmc2V0ICYgMHgzZmYpKVxuICAgIH1cbiAgICBpZiAocGVuZGluZy5sZW5ndGggPj0gNDA5Nikge1xuICAgICAgcmVzdWx0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoLi4ucGVuZGluZylcbiAgICAgIHBlbmRpbmcgPSBbXVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIG1hbGZvcm1lZCgpIHtcbiAgICBpZiAoZmF0YWwpIHRocm93IG5ldyBUeXBlRXJyb3IoJ2RlY29kZVV0Zjg6IHRoZSBlbmNvZGVkIGRhdGEgaXMgbm90IHZhbGlkIHV0Zi04JylcbiAgICBlbWl0KFJFUExBQ0VNRU5UX0NIQVJBQ1RFUilcbiAgfVxuXG4gIGZvciAobGV0IGkgPSBzdGFydDsgaSA8IGlucHV0Lmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgYnl0ZSA9IGlucHV0W2ldXG4gICAgaWYgKGJ5dGVzTmVlZGVkID09PSAwKSB7XG4gICAgICBpZiAoYnl0ZSA8PSAweDdmKSB7XG4gICAgICAgIGVtaXQoYnl0ZSlcbiAgICAgIH0gZWxzZSBpZiAoYnl0ZSA+PSAweGMyICYmIGJ5dGUgPD0gMHhkZikge1xuICAgICAgICBieXRlc05lZWRlZCA9IDFcbiAgICAgICAgY29kZVBvaW50ID0gYnl0ZSAmIDB4MWZcbiAgICAgIH0gZWxzZSBpZiAoYnl0ZSA+PSAweGUwICYmIGJ5dGUgPD0gMHhlZikge1xuICAgICAgICBpZiAoYnl0ZSA9PT0gMHhlMCkgbG93ZXJCb3VuZGFyeSA9IDB4YTBcbiAgICAgICAgaWYgKGJ5dGUgPT09IDB4ZWQpIHVwcGVyQm91bmRhcnkgPSAweDlmXG4gICAgICAgIGJ5dGVzTmVlZGVkID0gMlxuICAgICAgICBjb2RlUG9pbnQgPSBieXRlICYgMHhmXG4gICAgICB9IGVsc2UgaWYgKGJ5dGUgPj0gMHhmMCAmJiBieXRlIDw9IDB4ZjQpIHtcbiAgICAgICAgaWYgKGJ5dGUgPT09IDB4ZjApIGxvd2VyQm91bmRhcnkgPSAweDkwXG4gICAgICAgIGlmIChieXRlID09PSAweGY0KSB1cHBlckJvdW5kYXJ5ID0gMHg4ZlxuICAgICAgICBieXRlc05lZWRlZCA9IDNcbiAgICAgICAgY29kZVBvaW50ID0gYnl0ZSAmIDB4N1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWFsZm9ybWVkKClcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGJ5dGUgPCBsb3dlckJvdW5kYXJ5IHx8IGJ5dGUgPiB1cHBlckJvdW5kYXJ5KSB7XG4gICAgICBjb2RlUG9pbnQgPSAwXG4gICAgICBieXRlc05lZWRlZCA9IDBcbiAgICAgIGJ5dGVzU2VlbiA9IDBcbiAgICAgIGxvd2VyQm91bmRhcnkgPSAweDgwXG4gICAgICB1cHBlckJvdW5kYXJ5ID0gMHhiZlxuICAgICAgbWFsZm9ybWVkKClcbiAgICAgIC8vIHRoZSBzcGVjIHByZXBlbmRzIHRoZSBieXRlIGJhY2sgdG8gdGhlIHN0cmVhbTogaXQgc3RhcnRzIGEgbmV3IHNlcXVlbmNlXG4gICAgICBpLS1cbiAgICB9IGVsc2Uge1xuICAgICAgbG93ZXJCb3VuZGFyeSA9IDB4ODBcbiAgICAgIHVwcGVyQm91bmRhcnkgPSAweGJmXG4gICAgICBjb2RlUG9pbnQgPSAoY29kZVBvaW50IDw8IDYpIHwgKGJ5dGUgJiAweDNmKVxuICAgICAgaWYgKCsrYnl0ZXNTZWVuID09PSBieXRlc05lZWRlZCkge1xuICAgICAgICBlbWl0KGNvZGVQb2ludClcbiAgICAgICAgY29kZVBvaW50ID0gMFxuICAgICAgICBieXRlc05lZWRlZCA9IDBcbiAgICAgICAgYnl0ZXNTZWVuID0gMFxuICAgICAgfVxuICAgIH1cbiAgfVxuICBpZiAoYnl0ZXNOZWVkZWQgIT09IDApIG1hbGZvcm1lZCgpXG5cbiAgaWYgKHBlbmRpbmcubGVuZ3RoID4gMCkgcmVzdWx0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoLi4ucGVuZGluZylcbiAgcmV0dXJuIHJlc3VsdFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZW5jb2RlVXRmOChpbnB1dDogc3RyaW5nKTogVWludDhBcnJheSB7XG4gIGNvbnN0IG91dHB1dCA9IG5ldyBVaW50OEFycmF5KHV0ZjhCeXRlTGVuZ3RoKGlucHV0KSlcbiAgbGV0IG9mZnNldCA9IDBcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dC5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGNvZGVQb2ludCA9IGNvZGVQb2ludEF0KGlucHV0LCBpKVxuICAgIGlmIChjb2RlUG9pbnQgPiAweGZmZmYpIGkrK1xuICAgIG9mZnNldCA9IHdyaXRlQ29kZVBvaW50KG91dHB1dCwgb2Zmc2V0LCBjb2RlUG9pbnQpXG4gIH1cbiAgcmV0dXJuIG91dHB1dFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZW5jb2RlVXRmOEludG8oc291cmNlOiBzdHJpbmcsIGRlc3RpbmF0aW9uOiBVaW50OEFycmF5KTogeyByZWFkOiBudW1iZXI7IHdyaXR0ZW46IG51bWJlciB9IHtcbiAgbGV0IHJlYWQgPSAwXG4gIGxldCB3cml0dGVuID0gMFxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNvdXJjZS5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGNvZGVQb2ludCA9IGNvZGVQb2ludEF0KHNvdXJjZSwgaSlcbiAgICBjb25zdCBzaXplID0gYnl0ZVNpemUoY29kZVBvaW50KVxuICAgIGlmICh3cml0dGVuICsgc2l6ZSA+IGRlc3RpbmF0aW9uLmxlbmd0aCkgYnJlYWtcbiAgICB3cml0dGVuID0gd3JpdGVDb2RlUG9pbnQoZGVzdGluYXRpb24sIHdyaXR0ZW4sIGNvZGVQb2ludClcbiAgICBpZiAoY29kZVBvaW50ID4gMHhmZmZmKSB7XG4gICAgICBpKytcbiAgICAgIHJlYWQgKz0gMlxuICAgIH0gZWxzZSB7XG4gICAgICByZWFkICs9IDFcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHsgcmVhZCwgd3JpdHRlbiB9XG59XG5cbi8vIFJlYWRzIHRoZSBjb2RlIHBvaW50IGF0IGluZGV4LCByZXBsYWNpbmcgdW5wYWlyZWQgc3Vycm9nYXRlcyB3aXRoIFUrRkZGRFxuLy8gKHRoZSBVU1ZTdHJpbmcgY29udmVyc2lvbiBgVGV4dEVuY29kZXJgIG1hbmRhdGVzKS5cbmZ1bmN0aW9uIGNvZGVQb2ludEF0KGlucHV0OiBzdHJpbmcsIGluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICBjb25zdCBmaXJzdCA9IGlucHV0LmNoYXJDb2RlQXQoaW5kZXgpXG4gIGlmIChmaXJzdCA+PSAweGQ4MDAgJiYgZmlyc3QgPD0gMHhkYmZmKSB7XG4gICAgY29uc3Qgc2Vjb25kID0gaW5kZXggKyAxIDwgaW5wdXQubGVuZ3RoID8gaW5wdXQuY2hhckNvZGVBdChpbmRleCArIDEpIDogMFxuICAgIGlmIChzZWNvbmQgPj0gMHhkYzAwICYmIHNlY29uZCA8PSAweGRmZmYpIHJldHVybiAweDEwMDAwICsgKChmaXJzdCAtIDB4ZDgwMCkgPDwgMTApICsgKHNlY29uZCAtIDB4ZGMwMClcbiAgICByZXR1cm4gUkVQTEFDRU1FTlRfQ0hBUkFDVEVSXG4gIH1cbiAgaWYgKGZpcnN0ID49IDB4ZGMwMCAmJiBmaXJzdCA8PSAweGRmZmYpIHJldHVybiBSRVBMQUNFTUVOVF9DSEFSQUNURVJcbiAgcmV0dXJuIGZpcnN0XG59XG5cbmZ1bmN0aW9uIGJ5dGVTaXplKGNvZGVQb2ludDogbnVtYmVyKTogbnVtYmVyIHtcbiAgcmV0dXJuIGNvZGVQb2ludCA8PSAweDdmID8gMSA6IGNvZGVQb2ludCA8PSAweDdmZiA/IDIgOiBjb2RlUG9pbnQgPD0gMHhmZmZmID8gMyA6IDRcbn1cblxuZnVuY3Rpb24gdXRmOEJ5dGVMZW5ndGgoaW5wdXQ6IHN0cmluZyk6IG51bWJlciB7XG4gIGxldCBsZW5ndGggPSAwXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXQubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBjb2RlUG9pbnQgPSBjb2RlUG9pbnRBdChpbnB1dCwgaSlcbiAgICBpZiAoY29kZVBvaW50ID4gMHhmZmZmKSBpKytcbiAgICBsZW5ndGggKz0gYnl0ZVNpemUoY29kZVBvaW50KVxuICB9XG4gIHJldHVybiBsZW5ndGhcbn1cblxuZnVuY3Rpb24gd3JpdGVDb2RlUG9pbnQob3V0cHV0OiBVaW50OEFycmF5LCBvZmZzZXQ6IG51bWJlciwgY29kZVBvaW50OiBudW1iZXIpOiBudW1iZXIge1xuICBsZXQgbmV4dCA9IG9mZnNldFxuICBpZiAoY29kZVBvaW50IDw9IDB4N2YpIHtcbiAgICBvdXRwdXRbbmV4dCsrXSA9IGNvZGVQb2ludFxuICB9IGVsc2UgaWYgKGNvZGVQb2ludCA8PSAweDdmZikge1xuICAgIG91dHB1dFtuZXh0KytdID0gMHhjMCB8IChjb2RlUG9pbnQgPj4gNilcbiAgICBvdXRwdXRbbmV4dCsrXSA9IDB4ODAgfCAoY29kZVBvaW50ICYgMHgzZilcbiAgfSBlbHNlIGlmIChjb2RlUG9pbnQgPD0gMHhmZmZmKSB7XG4gICAgb3V0cHV0W25leHQrK10gPSAweGUwIHwgKGNvZGVQb2ludCA+PiAxMilcbiAgICBvdXRwdXRbbmV4dCsrXSA9IDB4ODAgfCAoKGNvZGVQb2ludCA+PiA2KSAmIDB4M2YpXG4gICAgb3V0cHV0W25leHQrK10gPSAweDgwIHwgKGNvZGVQb2ludCAmIDB4M2YpXG4gIH0gZWxzZSB7XG4gICAgb3V0cHV0W25leHQrK10gPSAweGYwIHwgKGNvZGVQb2ludCA+PiAxOClcbiAgICBvdXRwdXRbbmV4dCsrXSA9IDB4ODAgfCAoKGNvZGVQb2ludCA+PiAxMikgJiAweDNmKVxuICAgIG91dHB1dFtuZXh0KytdID0gMHg4MCB8ICgoY29kZVBvaW50ID4+IDYpICYgMHgzZilcbiAgICBvdXRwdXRbbmV4dCsrXSA9IDB4ODAgfCAoY29kZVBvaW50ICYgMHgzZilcbiAgfVxuICByZXR1cm4gbmV4dFxufVxuIl19
package/package.json CHANGED
@@ -1,16 +1,15 @@
1
1
  {
2
2
  "name": "@dcl/sdk",
3
3
  "description": "",
4
- "version": "7.24.5",
4
+ "version": "7.24.6-29580060460.commit-06f0b7e",
5
5
  "author": "Decentraland",
6
6
  "dependencies": {
7
- "@dcl/ecs": "7.24.5",
7
+ "@dcl/ecs": "7.24.6-29580060460.commit-06f0b7e",
8
8
  "@dcl/ecs-math": "2.1.0",
9
9
  "@dcl/explorer": "1.0.164509-20240802172549.commit-fb95b9b",
10
- "@dcl/js-runtime": "7.24.5",
11
- "@dcl/react-ecs": "7.24.5",
12
- "@dcl/sdk-commands": "7.24.5",
13
- "text-encoding": "0.7.0"
10
+ "@dcl/js-runtime": "7.24.6-29580060460.commit-06f0b7e",
11
+ "@dcl/react-ecs": "7.24.6-29580060460.commit-06f0b7e",
12
+ "@dcl/sdk-commands": "7.24.6-29580060460.commit-06f0b7e"
14
13
  },
15
14
  "keywords": [],
16
15
  "license": "Apache-2.0",
@@ -35,5 +34,5 @@
35
34
  },
36
35
  "types": "./index.d.ts",
37
36
  "typings": "./index.d.ts",
38
- "commit": "fb197d38cdaec5a0de8d575b337ab142264644e7"
37
+ "commit": "06f0b7e70e2b43e9189a7f87de2a30db16ccb8e7"
39
38
  }
@@ -1,6 +1,7 @@
1
1
  import { compositeFromLoader } from '~sdk/all-composites'
2
2
  import { readFile } from '~system/Runtime'
3
- import { Composite, getGlobal } from '@dcl/ecs'
3
+ import { Composite } from '@dcl/ecs'
4
+ import { decodeUtf8 } from './internal/utf8'
4
5
 
5
6
  const composites = new Map<string, Composite.Resource>()
6
7
 
@@ -28,16 +29,8 @@ function decodeFromBytes(content: Uint8Array): Composite.Definition {
28
29
  // The first-byte check is a fast path; a JSON.parse failure falls back to fromBinary
29
30
  // because a protobuf message can also begin with 0x7b.
30
31
  if (content[0] === 0x7b /* '{' */) {
31
- const TD = getGlobal<new () => { decode(input: Uint8Array): string }>('TextDecoder')
32
- if (!TD) {
33
- throw new Error(
34
- 'loadComposite: TextDecoder is not available in this runtime. ' +
35
- 'Use a .composite.bin file, or import `@dcl/sdk/ethereum-provider` ' +
36
- 'to install the TextEncoder/TextDecoder polyfill.'
37
- )
38
- }
39
32
  try {
40
- return Composite.fromJson(JSON.parse(new TD().decode(content)))
33
+ return Composite.fromJson(JSON.parse(decodeUtf8(content, { fatal: true })))
41
34
  } catch {
42
35
  return Composite.fromBinary(content)
43
36
  }
@@ -0,0 +1,167 @@
1
+ /**
2
+ * Self-contained UTF-8 codec implementing the WHATWG Encoding Standard
3
+ * algorithms (https://encoding.spec.whatwg.org/), so SDK code never depends
4
+ * on the host providing `TextEncoder` / `TextDecoder` globals.
5
+ */
6
+
7
+ const REPLACEMENT_CHARACTER = 0xfffd
8
+
9
+ export type DecodeUtf8Options = {
10
+ fatal?: boolean
11
+ ignoreBOM?: boolean
12
+ }
13
+
14
+ export function decodeUtf8(input: Uint8Array, options: DecodeUtf8Options = {}): string {
15
+ const fatal = options.fatal === true
16
+ const start =
17
+ !options.ignoreBOM && input.length >= 3 && input[0] === 0xef && input[1] === 0xbb && input[2] === 0xbf ? 3 : 0
18
+
19
+ let result = ''
20
+ let pending: number[] = []
21
+ let codePoint = 0
22
+ let bytesNeeded = 0
23
+ let bytesSeen = 0
24
+ let lowerBoundary = 0x80
25
+ let upperBoundary = 0xbf
26
+
27
+ function emit(value: number) {
28
+ if (value <= 0xffff) {
29
+ pending.push(value)
30
+ } else {
31
+ const offset = value - 0x10000
32
+ pending.push(0xd800 + (offset >> 10), 0xdc00 + (offset & 0x3ff))
33
+ }
34
+ if (pending.length >= 4096) {
35
+ result += String.fromCharCode(...pending)
36
+ pending = []
37
+ }
38
+ }
39
+
40
+ function malformed() {
41
+ if (fatal) throw new TypeError('decodeUtf8: the encoded data is not valid utf-8')
42
+ emit(REPLACEMENT_CHARACTER)
43
+ }
44
+
45
+ for (let i = start; i < input.length; i++) {
46
+ const byte = input[i]
47
+ if (bytesNeeded === 0) {
48
+ if (byte <= 0x7f) {
49
+ emit(byte)
50
+ } else if (byte >= 0xc2 && byte <= 0xdf) {
51
+ bytesNeeded = 1
52
+ codePoint = byte & 0x1f
53
+ } else if (byte >= 0xe0 && byte <= 0xef) {
54
+ if (byte === 0xe0) lowerBoundary = 0xa0
55
+ if (byte === 0xed) upperBoundary = 0x9f
56
+ bytesNeeded = 2
57
+ codePoint = byte & 0xf
58
+ } else if (byte >= 0xf0 && byte <= 0xf4) {
59
+ if (byte === 0xf0) lowerBoundary = 0x90
60
+ if (byte === 0xf4) upperBoundary = 0x8f
61
+ bytesNeeded = 3
62
+ codePoint = byte & 0x7
63
+ } else {
64
+ malformed()
65
+ }
66
+ } else if (byte < lowerBoundary || byte > upperBoundary) {
67
+ codePoint = 0
68
+ bytesNeeded = 0
69
+ bytesSeen = 0
70
+ lowerBoundary = 0x80
71
+ upperBoundary = 0xbf
72
+ malformed()
73
+ // the spec prepends the byte back to the stream: it starts a new sequence
74
+ i--
75
+ } else {
76
+ lowerBoundary = 0x80
77
+ upperBoundary = 0xbf
78
+ codePoint = (codePoint << 6) | (byte & 0x3f)
79
+ if (++bytesSeen === bytesNeeded) {
80
+ emit(codePoint)
81
+ codePoint = 0
82
+ bytesNeeded = 0
83
+ bytesSeen = 0
84
+ }
85
+ }
86
+ }
87
+ if (bytesNeeded !== 0) malformed()
88
+
89
+ if (pending.length > 0) result += String.fromCharCode(...pending)
90
+ return result
91
+ }
92
+
93
+ export function encodeUtf8(input: string): Uint8Array {
94
+ const output = new Uint8Array(utf8ByteLength(input))
95
+ let offset = 0
96
+ for (let i = 0; i < input.length; i++) {
97
+ const codePoint = codePointAt(input, i)
98
+ if (codePoint > 0xffff) i++
99
+ offset = writeCodePoint(output, offset, codePoint)
100
+ }
101
+ return output
102
+ }
103
+
104
+ export function encodeUtf8Into(source: string, destination: Uint8Array): { read: number; written: number } {
105
+ let read = 0
106
+ let written = 0
107
+ for (let i = 0; i < source.length; i++) {
108
+ const codePoint = codePointAt(source, i)
109
+ const size = byteSize(codePoint)
110
+ if (written + size > destination.length) break
111
+ written = writeCodePoint(destination, written, codePoint)
112
+ if (codePoint > 0xffff) {
113
+ i++
114
+ read += 2
115
+ } else {
116
+ read += 1
117
+ }
118
+ }
119
+ return { read, written }
120
+ }
121
+
122
+ // Reads the code point at index, replacing unpaired surrogates with U+FFFD
123
+ // (the USVString conversion `TextEncoder` mandates).
124
+ function codePointAt(input: string, index: number): number {
125
+ const first = input.charCodeAt(index)
126
+ if (first >= 0xd800 && first <= 0xdbff) {
127
+ const second = index + 1 < input.length ? input.charCodeAt(index + 1) : 0
128
+ if (second >= 0xdc00 && second <= 0xdfff) return 0x10000 + ((first - 0xd800) << 10) + (second - 0xdc00)
129
+ return REPLACEMENT_CHARACTER
130
+ }
131
+ if (first >= 0xdc00 && first <= 0xdfff) return REPLACEMENT_CHARACTER
132
+ return first
133
+ }
134
+
135
+ function byteSize(codePoint: number): number {
136
+ return codePoint <= 0x7f ? 1 : codePoint <= 0x7ff ? 2 : codePoint <= 0xffff ? 3 : 4
137
+ }
138
+
139
+ function utf8ByteLength(input: string): number {
140
+ let length = 0
141
+ for (let i = 0; i < input.length; i++) {
142
+ const codePoint = codePointAt(input, i)
143
+ if (codePoint > 0xffff) i++
144
+ length += byteSize(codePoint)
145
+ }
146
+ return length
147
+ }
148
+
149
+ function writeCodePoint(output: Uint8Array, offset: number, codePoint: number): number {
150
+ let next = offset
151
+ if (codePoint <= 0x7f) {
152
+ output[next++] = codePoint
153
+ } else if (codePoint <= 0x7ff) {
154
+ output[next++] = 0xc0 | (codePoint >> 6)
155
+ output[next++] = 0x80 | (codePoint & 0x3f)
156
+ } else if (codePoint <= 0xffff) {
157
+ output[next++] = 0xe0 | (codePoint >> 12)
158
+ output[next++] = 0x80 | ((codePoint >> 6) & 0x3f)
159
+ output[next++] = 0x80 | (codePoint & 0x3f)
160
+ } else {
161
+ output[next++] = 0xf0 | (codePoint >> 18)
162
+ output[next++] = 0x80 | ((codePoint >> 12) & 0x3f)
163
+ output[next++] = 0x80 | ((codePoint >> 6) & 0x3f)
164
+ output[next++] = 0x80 | (codePoint & 0x3f)
165
+ }
166
+ return next
167
+ }
package/src/text-codec.ts CHANGED
@@ -1,23 +1,70 @@
1
- import TextEncodingPolyfill from 'text-encoding'
2
1
  import { setGlobalPolyfill } from '@dcl/ecs'
2
+ import { decodeUtf8, encodeUtf8, encodeUtf8Into } from './internal/utf8'
3
3
 
4
4
  /**
5
- * Install the `TextEncoder` / `TextDecoder` polyfill on `globalThis`.
5
+ * WHATWG-shaped `TextEncoder` / `TextDecoder` over the SDK's own UTF-8 codec.
6
6
  *
7
- * The QuickJS scene runtime ships no native `TextEncoder` / `TextDecoder`, yet
8
- * `compositeProvider.loadComposite` decodes `.composite` JSON file bytes via
9
- * `TextDecoder`. Callers that load composites at runtime (e.g. `@dcl/asset-packs`'
10
- * `SPAWN_ENTITY`) must install this first.
7
+ * UTF-8 is the only supported encoding: the decoder throws a `RangeError` for
8
+ * any other label instead of silently mis-decoding, and rejects `{ stream: true }`.
9
+ */
10
+
11
+ // Labels the WHATWG Encoding Standard maps to utf-8.
12
+ const UTF8_LABELS = ['unicode-1-1-utf-8', 'unicode11utf8', 'unicode20utf8', 'utf-8', 'utf8', 'x-unicode20utf8']
13
+
14
+ function toUint8Array(input?: ArrayBuffer | ArrayBufferView): Uint8Array {
15
+ if (input === undefined) return new Uint8Array(0)
16
+ if (input instanceof Uint8Array) return input
17
+ if (ArrayBuffer.isView(input)) return new Uint8Array(input.buffer, input.byteOffset, input.byteLength)
18
+ return new Uint8Array(input)
19
+ }
20
+
21
+ export class TextEncoder {
22
+ readonly encoding = 'utf-8'
23
+
24
+ encode(input: string = ''): Uint8Array {
25
+ return encodeUtf8(String(input))
26
+ }
27
+
28
+ encodeInto(source: string, destination: Uint8Array): { read: number; written: number } {
29
+ return encodeUtf8Into(String(source), destination)
30
+ }
31
+ }
32
+
33
+ export class TextDecoder {
34
+ readonly encoding = 'utf-8'
35
+ readonly fatal: boolean
36
+ readonly ignoreBOM: boolean
37
+
38
+ constructor(label: string = 'utf-8', options: { fatal?: boolean; ignoreBOM?: boolean } = {}) {
39
+ // the spec strips ASCII whitespace only, so String.prototype.trim is too wide
40
+ const normalized = String(label)
41
+ .replace(/^[\t\n\f\r ]+|[\t\n\f\r ]+$/g, '')
42
+ .toLowerCase()
43
+ if (!UTF8_LABELS.includes(normalized)) {
44
+ throw new RangeError(`TextDecoder: only utf-8 is supported, got "${label}"`)
45
+ }
46
+ this.fatal = options.fatal === true
47
+ this.ignoreBOM = options.ignoreBOM === true
48
+ }
49
+
50
+ decode(input?: ArrayBuffer | ArrayBufferView, options: { stream?: boolean } = {}): string {
51
+ if (options.stream) throw new TypeError('TextDecoder: streaming is not supported')
52
+ return decodeUtf8(toUint8Array(input), { fatal: this.fatal, ignoreBOM: this.ignoreBOM })
53
+ }
54
+ }
55
+
56
+ /**
57
+ * Install `TextEncoder` / `TextDecoder` on `globalThis` where the runtime does
58
+ * not provide them (native implementations always win over these polyfills).
11
59
  *
12
60
  * Exposed from the lean `@dcl/sdk/text-codec` subpath so consumers can install
13
- * the polyfill without pulling in the ethereum provider, and without bundling
14
- * `text-encoding` into scenes that never reach this module.
61
+ * the polyfill without pulling in the ethereum provider.
15
62
  */
16
63
  // NOTE: this function mutates globalThis — it is NOT pure. Do not annotate
17
64
  // with /* @__PURE__ */; minifiers would treat the call as dead code and drop
18
- // the polyfill installation, breaking runtime callers like
19
- // compositeProvider.loadComposite that rely on globalThis.TextDecoder.
65
+ // the polyfill installation, breaking third-party code that relies on
66
+ // globalThis.TextDecoder.
20
67
  export function polyfillTextEncoder() {
21
- setGlobalPolyfill('TextEncoder', TextEncodingPolyfill.TextEncoder)
22
- setGlobalPolyfill('TextDecoder', TextEncodingPolyfill.TextDecoder)
68
+ setGlobalPolyfill('TextEncoder', TextEncoder)
69
+ setGlobalPolyfill('TextDecoder', TextDecoder)
23
70
  }
package/text-codec.d.ts CHANGED
@@ -1,13 +1,28 @@
1
+ export declare class TextEncoder {
2
+ readonly encoding = "utf-8";
3
+ encode(input?: string): Uint8Array;
4
+ encodeInto(source: string, destination: Uint8Array): {
5
+ read: number;
6
+ written: number;
7
+ };
8
+ }
9
+ export declare class TextDecoder {
10
+ readonly encoding = "utf-8";
11
+ readonly fatal: boolean;
12
+ readonly ignoreBOM: boolean;
13
+ constructor(label?: string, options?: {
14
+ fatal?: boolean;
15
+ ignoreBOM?: boolean;
16
+ });
17
+ decode(input?: ArrayBuffer | ArrayBufferView, options?: {
18
+ stream?: boolean;
19
+ }): string;
20
+ }
1
21
  /**
2
- * Install the `TextEncoder` / `TextDecoder` polyfill on `globalThis`.
3
- *
4
- * The QuickJS scene runtime ships no native `TextEncoder` / `TextDecoder`, yet
5
- * `compositeProvider.loadComposite` decodes `.composite` JSON file bytes via
6
- * `TextDecoder`. Callers that load composites at runtime (e.g. `@dcl/asset-packs`'
7
- * `SPAWN_ENTITY`) must install this first.
22
+ * Install `TextEncoder` / `TextDecoder` on `globalThis` where the runtime does
23
+ * not provide them (native implementations always win over these polyfills).
8
24
  *
9
25
  * Exposed from the lean `@dcl/sdk/text-codec` subpath so consumers can install
10
- * the polyfill without pulling in the ethereum provider, and without bundling
11
- * `text-encoding` into scenes that never reach this module.
26
+ * the polyfill without pulling in the ethereum provider.
12
27
  */
13
28
  export declare function polyfillTextEncoder(): void;
package/text-codec.js CHANGED
@@ -1,23 +1,65 @@
1
- import TextEncodingPolyfill from 'text-encoding';
2
1
  import { setGlobalPolyfill } from '@dcl/ecs';
2
+ import { decodeUtf8, encodeUtf8, encodeUtf8Into } from './internal/utf8';
3
3
  /**
4
- * Install the `TextEncoder` / `TextDecoder` polyfill on `globalThis`.
4
+ * WHATWG-shaped `TextEncoder` / `TextDecoder` over the SDK's own UTF-8 codec.
5
5
  *
6
- * The QuickJS scene runtime ships no native `TextEncoder` / `TextDecoder`, yet
7
- * `compositeProvider.loadComposite` decodes `.composite` JSON file bytes via
8
- * `TextDecoder`. Callers that load composites at runtime (e.g. `@dcl/asset-packs`'
9
- * `SPAWN_ENTITY`) must install this first.
6
+ * UTF-8 is the only supported encoding: the decoder throws a `RangeError` for
7
+ * any other label instead of silently mis-decoding, and rejects `{ stream: true }`.
8
+ */
9
+ // Labels the WHATWG Encoding Standard maps to utf-8.
10
+ const UTF8_LABELS = ['unicode-1-1-utf-8', 'unicode11utf8', 'unicode20utf8', 'utf-8', 'utf8', 'x-unicode20utf8'];
11
+ function toUint8Array(input) {
12
+ if (input === undefined)
13
+ return new Uint8Array(0);
14
+ if (input instanceof Uint8Array)
15
+ return input;
16
+ if (ArrayBuffer.isView(input))
17
+ return new Uint8Array(input.buffer, input.byteOffset, input.byteLength);
18
+ return new Uint8Array(input);
19
+ }
20
+ export class TextEncoder {
21
+ constructor() {
22
+ this.encoding = 'utf-8';
23
+ }
24
+ encode(input = '') {
25
+ return encodeUtf8(String(input));
26
+ }
27
+ encodeInto(source, destination) {
28
+ return encodeUtf8Into(String(source), destination);
29
+ }
30
+ }
31
+ export class TextDecoder {
32
+ constructor(label = 'utf-8', options = {}) {
33
+ this.encoding = 'utf-8';
34
+ // the spec strips ASCII whitespace only, so String.prototype.trim is too wide
35
+ const normalized = String(label)
36
+ .replace(/^[\t\n\f\r ]+|[\t\n\f\r ]+$/g, '')
37
+ .toLowerCase();
38
+ if (!UTF8_LABELS.includes(normalized)) {
39
+ throw new RangeError(`TextDecoder: only utf-8 is supported, got "${label}"`);
40
+ }
41
+ this.fatal = options.fatal === true;
42
+ this.ignoreBOM = options.ignoreBOM === true;
43
+ }
44
+ decode(input, options = {}) {
45
+ if (options.stream)
46
+ throw new TypeError('TextDecoder: streaming is not supported');
47
+ return decodeUtf8(toUint8Array(input), { fatal: this.fatal, ignoreBOM: this.ignoreBOM });
48
+ }
49
+ }
50
+ /**
51
+ * Install `TextEncoder` / `TextDecoder` on `globalThis` where the runtime does
52
+ * not provide them (native implementations always win over these polyfills).
10
53
  *
11
54
  * Exposed from the lean `@dcl/sdk/text-codec` subpath so consumers can install
12
- * the polyfill without pulling in the ethereum provider, and without bundling
13
- * `text-encoding` into scenes that never reach this module.
55
+ * the polyfill without pulling in the ethereum provider.
14
56
  */
15
57
  // NOTE: this function mutates globalThis — it is NOT pure. Do not annotate
16
58
  // with /* @__PURE__ */; minifiers would treat the call as dead code and drop
17
- // the polyfill installation, breaking runtime callers like
18
- // compositeProvider.loadComposite that rely on globalThis.TextDecoder.
59
+ // the polyfill installation, breaking third-party code that relies on
60
+ // globalThis.TextDecoder.
19
61
  export function polyfillTextEncoder() {
20
- setGlobalPolyfill('TextEncoder', TextEncodingPolyfill.TextEncoder);
21
- setGlobalPolyfill('TextDecoder', TextEncodingPolyfill.TextDecoder);
62
+ setGlobalPolyfill('TextEncoder', TextEncoder);
63
+ setGlobalPolyfill('TextDecoder', TextDecoder);
22
64
  }
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1jb2RlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNyYy90ZXh0LWNvZGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sb0JBQW9CLE1BQU0sZUFBZSxDQUFBO0FBQ2hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUU1Qzs7Ozs7Ozs7Ozs7R0FXRztBQUNILDJFQUEyRTtBQUMzRSw2RUFBNkU7QUFDN0UsMkRBQTJEO0FBQzNELHVFQUF1RTtBQUN2RSxNQUFNLFVBQVUsbUJBQW1CO0lBQ2pDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsQ0FBQTtJQUNsRSxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsb0JBQW9CLENBQUMsV0FBVyxDQUFDLENBQUE7QUFDcEUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBUZXh0RW5jb2RpbmdQb2x5ZmlsbCBmcm9tICd0ZXh0LWVuY29kaW5nJ1xuaW1wb3J0IHsgc2V0R2xvYmFsUG9seWZpbGwgfSBmcm9tICdAZGNsL2VjcydcblxuLyoqXG4gKiBJbnN0YWxsIHRoZSBgVGV4dEVuY29kZXJgIC8gYFRleHREZWNvZGVyYCBwb2x5ZmlsbCBvbiBgZ2xvYmFsVGhpc2AuXG4gKlxuICogVGhlIFF1aWNrSlMgc2NlbmUgcnVudGltZSBzaGlwcyBubyBuYXRpdmUgYFRleHRFbmNvZGVyYCAvIGBUZXh0RGVjb2RlcmAsIHlldFxuICogYGNvbXBvc2l0ZVByb3ZpZGVyLmxvYWRDb21wb3NpdGVgIGRlY29kZXMgYC5jb21wb3NpdGVgIEpTT04gZmlsZSBieXRlcyB2aWFcbiAqIGBUZXh0RGVjb2RlcmAuIENhbGxlcnMgdGhhdCBsb2FkIGNvbXBvc2l0ZXMgYXQgcnVudGltZSAoZS5nLiBgQGRjbC9hc3NldC1wYWNrc2AnXG4gKiBgU1BBV05fRU5USVRZYCkgbXVzdCBpbnN0YWxsIHRoaXMgZmlyc3QuXG4gKlxuICogRXhwb3NlZCBmcm9tIHRoZSBsZWFuIGBAZGNsL3Nkay90ZXh0LWNvZGVjYCBzdWJwYXRoIHNvIGNvbnN1bWVycyBjYW4gaW5zdGFsbFxuICogdGhlIHBvbHlmaWxsIHdpdGhvdXQgcHVsbGluZyBpbiB0aGUgZXRoZXJldW0gcHJvdmlkZXIsIGFuZCB3aXRob3V0IGJ1bmRsaW5nXG4gKiBgdGV4dC1lbmNvZGluZ2AgaW50byBzY2VuZXMgdGhhdCBuZXZlciByZWFjaCB0aGlzIG1vZHVsZS5cbiAqL1xuLy8gTk9URTogdGhpcyBmdW5jdGlvbiBtdXRhdGVzIGdsb2JhbFRoaXMg4oCUIGl0IGlzIE5PVCBwdXJlLiBEbyBub3QgYW5ub3RhdGVcbi8vIHdpdGggLyogQF9fUFVSRV9fICovOyBtaW5pZmllcnMgd291bGQgdHJlYXQgdGhlIGNhbGwgYXMgZGVhZCBjb2RlIGFuZCBkcm9wXG4vLyB0aGUgcG9seWZpbGwgaW5zdGFsbGF0aW9uLCBicmVha2luZyBydW50aW1lIGNhbGxlcnMgbGlrZVxuLy8gY29tcG9zaXRlUHJvdmlkZXIubG9hZENvbXBvc2l0ZSB0aGF0IHJlbHkgb24gZ2xvYmFsVGhpcy5UZXh0RGVjb2Rlci5cbmV4cG9ydCBmdW5jdGlvbiBwb2x5ZmlsbFRleHRFbmNvZGVyKCkge1xuICBzZXRHbG9iYWxQb2x5ZmlsbCgnVGV4dEVuY29kZXInLCBUZXh0RW5jb2RpbmdQb2x5ZmlsbC5UZXh0RW5jb2RlcilcbiAgc2V0R2xvYmFsUG9seWZpbGwoJ1RleHREZWNvZGVyJywgVGV4dEVuY29kaW5nUG9seWZpbGwuVGV4dERlY29kZXIpXG59XG4iXX0=
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1jb2RlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNyYy90ZXh0LWNvZGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUV4RTs7Ozs7R0FLRztBQUVILHFEQUFxRDtBQUNyRCxNQUFNLFdBQVcsR0FBRyxDQUFDLG1CQUFtQixFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxDQUFBO0FBRS9HLFNBQVMsWUFBWSxDQUFDLEtBQXFDO0lBQ3pELElBQUksS0FBSyxLQUFLLFNBQVM7UUFBRSxPQUFPLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ2pELElBQUksS0FBSyxZQUFZLFVBQVU7UUFBRSxPQUFPLEtBQUssQ0FBQTtJQUM3QyxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQUUsT0FBTyxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQ3RHLE9BQU8sSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUE7QUFDOUIsQ0FBQztBQUVELE1BQU0sT0FBTyxXQUFXO0lBQXhCO1FBQ1csYUFBUSxHQUFHLE9BQU8sQ0FBQTtJQVM3QixDQUFDO0lBUEMsTUFBTSxDQUFDLFFBQWdCLEVBQUU7UUFDdkIsT0FBTyxVQUFVLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVELFVBQVUsQ0FBQyxNQUFjLEVBQUUsV0FBdUI7UUFDaEQsT0FBTyxjQUFjLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFBO0lBQ3BELENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxXQUFXO0lBS3RCLFlBQVksUUFBZ0IsT0FBTyxFQUFFLFVBQW9ELEVBQUU7UUFKbEYsYUFBUSxHQUFHLE9BQU8sQ0FBQTtRQUt6Qiw4RUFBOEU7UUFDOUUsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQzthQUM3QixPQUFPLENBQUMsOEJBQThCLEVBQUUsRUFBRSxDQUFDO2FBQzNDLFdBQVcsRUFBRSxDQUFBO1FBQ2hCLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3JDLE1BQU0sSUFBSSxVQUFVLENBQUMsOENBQThDLEtBQUssR0FBRyxDQUFDLENBQUE7U0FDN0U7UUFDRCxJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFBO1FBQ25DLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsS0FBSyxJQUFJLENBQUE7SUFDN0MsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFxQyxFQUFFLFVBQWdDLEVBQUU7UUFDOUUsSUFBSSxPQUFPLENBQUMsTUFBTTtZQUFFLE1BQU0sSUFBSSxTQUFTLENBQUMseUNBQXlDLENBQUMsQ0FBQTtRQUNsRixPQUFPLFVBQVUsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUE7SUFDMUYsQ0FBQztDQUNGO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsMkVBQTJFO0FBQzNFLDZFQUE2RTtBQUM3RSxzRUFBc0U7QUFDdEUsMEJBQTBCO0FBQzFCLE1BQU0sVUFBVSxtQkFBbUI7SUFDakMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQyxDQUFBO0lBQzdDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQTtBQUMvQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc2V0R2xvYmFsUG9seWZpbGwgfSBmcm9tICdAZGNsL2VjcydcbmltcG9ydCB7IGRlY29kZVV0ZjgsIGVuY29kZVV0ZjgsIGVuY29kZVV0ZjhJbnRvIH0gZnJvbSAnLi9pbnRlcm5hbC91dGY4J1xuXG4vKipcbiAqIFdIQVRXRy1zaGFwZWQgYFRleHRFbmNvZGVyYCAvIGBUZXh0RGVjb2RlcmAgb3ZlciB0aGUgU0RLJ3Mgb3duIFVURi04IGNvZGVjLlxuICpcbiAqIFVURi04IGlzIHRoZSBvbmx5IHN1cHBvcnRlZCBlbmNvZGluZzogdGhlIGRlY29kZXIgdGhyb3dzIGEgYFJhbmdlRXJyb3JgIGZvclxuICogYW55IG90aGVyIGxhYmVsIGluc3RlYWQgb2Ygc2lsZW50bHkgbWlzLWRlY29kaW5nLCBhbmQgcmVqZWN0cyBgeyBzdHJlYW06IHRydWUgfWAuXG4gKi9cblxuLy8gTGFiZWxzIHRoZSBXSEFUV0cgRW5jb2RpbmcgU3RhbmRhcmQgbWFwcyB0byB1dGYtOC5cbmNvbnN0IFVURjhfTEFCRUxTID0gWyd1bmljb2RlLTEtMS11dGYtOCcsICd1bmljb2RlMTF1dGY4JywgJ3VuaWNvZGUyMHV0ZjgnLCAndXRmLTgnLCAndXRmOCcsICd4LXVuaWNvZGUyMHV0ZjgnXVxuXG5mdW5jdGlvbiB0b1VpbnQ4QXJyYXkoaW5wdXQ/OiBBcnJheUJ1ZmZlciB8IEFycmF5QnVmZmVyVmlldyk6IFVpbnQ4QXJyYXkge1xuICBpZiAoaW5wdXQgPT09IHVuZGVmaW5lZCkgcmV0dXJuIG5ldyBVaW50OEFycmF5KDApXG4gIGlmIChpbnB1dCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpIHJldHVybiBpbnB1dFxuICBpZiAoQXJyYXlCdWZmZXIuaXNWaWV3KGlucHV0KSkgcmV0dXJuIG5ldyBVaW50OEFycmF5KGlucHV0LmJ1ZmZlciwgaW5wdXQuYnl0ZU9mZnNldCwgaW5wdXQuYnl0ZUxlbmd0aClcbiAgcmV0dXJuIG5ldyBVaW50OEFycmF5KGlucHV0KVxufVxuXG5leHBvcnQgY2xhc3MgVGV4dEVuY29kZXIge1xuICByZWFkb25seSBlbmNvZGluZyA9ICd1dGYtOCdcblxuICBlbmNvZGUoaW5wdXQ6IHN0cmluZyA9ICcnKTogVWludDhBcnJheSB7XG4gICAgcmV0dXJuIGVuY29kZVV0ZjgoU3RyaW5nKGlucHV0KSlcbiAgfVxuXG4gIGVuY29kZUludG8oc291cmNlOiBzdHJpbmcsIGRlc3RpbmF0aW9uOiBVaW50OEFycmF5KTogeyByZWFkOiBudW1iZXI7IHdyaXR0ZW46IG51bWJlciB9IHtcbiAgICByZXR1cm4gZW5jb2RlVXRmOEludG8oU3RyaW5nKHNvdXJjZSksIGRlc3RpbmF0aW9uKVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUZXh0RGVjb2RlciB7XG4gIHJlYWRvbmx5IGVuY29kaW5nID0gJ3V0Zi04J1xuICByZWFkb25seSBmYXRhbDogYm9vbGVhblxuICByZWFkb25seSBpZ25vcmVCT006IGJvb2xlYW5cblxuICBjb25zdHJ1Y3RvcihsYWJlbDogc3RyaW5nID0gJ3V0Zi04Jywgb3B0aW9uczogeyBmYXRhbD86IGJvb2xlYW47IGlnbm9yZUJPTT86IGJvb2xlYW4gfSA9IHt9KSB7XG4gICAgLy8gdGhlIHNwZWMgc3RyaXBzIEFTQ0lJIHdoaXRlc3BhY2Ugb25seSwgc28gU3RyaW5nLnByb3RvdHlwZS50cmltIGlzIHRvbyB3aWRlXG4gICAgY29uc3Qgbm9ybWFsaXplZCA9IFN0cmluZyhsYWJlbClcbiAgICAgIC5yZXBsYWNlKC9eW1xcdFxcblxcZlxcciBdK3xbXFx0XFxuXFxmXFxyIF0rJC9nLCAnJylcbiAgICAgIC50b0xvd2VyQ2FzZSgpXG4gICAgaWYgKCFVVEY4X0xBQkVMUy5pbmNsdWRlcyhub3JtYWxpemVkKSkge1xuICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoYFRleHREZWNvZGVyOiBvbmx5IHV0Zi04IGlzIHN1cHBvcnRlZCwgZ290IFwiJHtsYWJlbH1cImApXG4gICAgfVxuICAgIHRoaXMuZmF0YWwgPSBvcHRpb25zLmZhdGFsID09PSB0cnVlXG4gICAgdGhpcy5pZ25vcmVCT00gPSBvcHRpb25zLmlnbm9yZUJPTSA9PT0gdHJ1ZVxuICB9XG5cbiAgZGVjb2RlKGlucHV0PzogQXJyYXlCdWZmZXIgfCBBcnJheUJ1ZmZlclZpZXcsIG9wdGlvbnM6IHsgc3RyZWFtPzogYm9vbGVhbiB9ID0ge30pOiBzdHJpbmcge1xuICAgIGlmIChvcHRpb25zLnN0cmVhbSkgdGhyb3cgbmV3IFR5cGVFcnJvcignVGV4dERlY29kZXI6IHN0cmVhbWluZyBpcyBub3Qgc3VwcG9ydGVkJylcbiAgICByZXR1cm4gZGVjb2RlVXRmOCh0b1VpbnQ4QXJyYXkoaW5wdXQpLCB7IGZhdGFsOiB0aGlzLmZhdGFsLCBpZ25vcmVCT006IHRoaXMuaWdub3JlQk9NIH0pXG4gIH1cbn1cblxuLyoqXG4gKiBJbnN0YWxsIGBUZXh0RW5jb2RlcmAgLyBgVGV4dERlY29kZXJgIG9uIGBnbG9iYWxUaGlzYCB3aGVyZSB0aGUgcnVudGltZSBkb2VzXG4gKiBub3QgcHJvdmlkZSB0aGVtIChuYXRpdmUgaW1wbGVtZW50YXRpb25zIGFsd2F5cyB3aW4gb3ZlciB0aGVzZSBwb2x5ZmlsbHMpLlxuICpcbiAqIEV4cG9zZWQgZnJvbSB0aGUgbGVhbiBgQGRjbC9zZGsvdGV4dC1jb2RlY2Agc3VicGF0aCBzbyBjb25zdW1lcnMgY2FuIGluc3RhbGxcbiAqIHRoZSBwb2x5ZmlsbCB3aXRob3V0IHB1bGxpbmcgaW4gdGhlIGV0aGVyZXVtIHByb3ZpZGVyLlxuICovXG4vLyBOT1RFOiB0aGlzIGZ1bmN0aW9uIG11dGF0ZXMgZ2xvYmFsVGhpcyDigJQgaXQgaXMgTk9UIHB1cmUuIERvIG5vdCBhbm5vdGF0ZVxuLy8gd2l0aCAvKiBAX19QVVJFX18gKi87IG1pbmlmaWVycyB3b3VsZCB0cmVhdCB0aGUgY2FsbCBhcyBkZWFkIGNvZGUgYW5kIGRyb3Bcbi8vIHRoZSBwb2x5ZmlsbCBpbnN0YWxsYXRpb24sIGJyZWFraW5nIHRoaXJkLXBhcnR5IGNvZGUgdGhhdCByZWxpZXMgb25cbi8vIGdsb2JhbFRoaXMuVGV4dERlY29kZXIuXG5leHBvcnQgZnVuY3Rpb24gcG9seWZpbGxUZXh0RW5jb2RlcigpIHtcbiAgc2V0R2xvYmFsUG9seWZpbGwoJ1RleHRFbmNvZGVyJywgVGV4dEVuY29kZXIpXG4gIHNldEdsb2JhbFBvbHlmaWxsKCdUZXh0RGVjb2RlcicsIFRleHREZWNvZGVyKVxufVxuIl19
@@ -1,4 +0,0 @@
1
- declare module 'text-encoding' {
2
- export const TextEncoder: any
3
- export const TextDecoder: any
4
- }