@endo/compartment-mapper 1.5.0 → 1.6.1

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.
Files changed (143) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +278 -111
  3. package/SECURITY.md +2 -2
  4. package/bundle.d.ts +1 -1
  5. package/bundle.js +4 -1
  6. package/functor-lite.d.ts +3 -0
  7. package/functor-lite.d.ts.map +1 -0
  8. package/functor-lite.js +4 -0
  9. package/functor.d.ts +3 -0
  10. package/functor.d.ts.map +1 -0
  11. package/functor.js +4 -0
  12. package/index.d.ts +1 -1
  13. package/index.js +4 -1
  14. package/package.json +15 -11
  15. package/script-lite.d.ts +3 -0
  16. package/script-lite.d.ts.map +1 -0
  17. package/script-lite.js +4 -0
  18. package/script.d.ts +3 -0
  19. package/script.d.ts.map +1 -0
  20. package/script.js +4 -0
  21. package/src/archive-lite.d.ts +5 -5
  22. package/src/archive-lite.d.ts.map +1 -1
  23. package/src/archive-lite.js +1 -1
  24. package/src/archive.d.ts +5 -5
  25. package/src/archive.d.ts.map +1 -1
  26. package/src/archive.js +3 -1
  27. package/src/bundle-cjs.d.ts +12 -2
  28. package/src/bundle-cjs.d.ts.map +1 -1
  29. package/src/bundle-cjs.js +57 -28
  30. package/src/bundle-json.d.ts.map +1 -1
  31. package/src/bundle-json.js +2 -3
  32. package/src/bundle-lite.d.ts +91 -0
  33. package/src/bundle-lite.d.ts.map +1 -0
  34. package/src/bundle-lite.js +667 -0
  35. package/src/bundle-mjs.d.ts +13 -3
  36. package/src/bundle-mjs.d.ts.map +1 -1
  37. package/src/bundle-mjs.js +36 -19
  38. package/src/bundle.d.ts +48 -10
  39. package/src/bundle.d.ts.map +1 -1
  40. package/src/bundle.js +392 -126
  41. package/src/capture-lite.d.ts +1 -1
  42. package/src/capture-lite.d.ts.map +1 -1
  43. package/src/capture-lite.js +4 -2
  44. package/src/compartment-map.d.ts +1 -1
  45. package/src/compartment-map.d.ts.map +1 -1
  46. package/src/import-archive-lite.d.ts +2 -2
  47. package/src/import-archive-lite.d.ts.map +1 -1
  48. package/src/import-archive-lite.js +3 -1
  49. package/src/import-archive.d.ts +3 -3
  50. package/src/import-archive.d.ts.map +1 -1
  51. package/src/import-archive.js +3 -1
  52. package/src/import-hook.d.ts +3 -16
  53. package/src/import-hook.d.ts.map +1 -1
  54. package/src/import-hook.js +214 -116
  55. package/src/import-lite.d.ts +1 -1
  56. package/src/import-lite.d.ts.map +1 -1
  57. package/src/import-lite.js +7 -3
  58. package/src/import.d.ts.map +1 -1
  59. package/src/import.js +3 -1
  60. package/src/infer-exports.d.ts +5 -7
  61. package/src/infer-exports.d.ts.map +1 -1
  62. package/src/infer-exports.js +23 -8
  63. package/src/link.d.ts.map +1 -1
  64. package/src/link.js +4 -1
  65. package/src/map-parser.d.ts.map +1 -1
  66. package/src/map-parser.js +51 -5
  67. package/src/node-module-specifier.d.ts.map +1 -1
  68. package/src/node-module-specifier.js +3 -1
  69. package/src/node-modules.d.ts +4 -47
  70. package/src/node-modules.d.ts.map +1 -1
  71. package/src/node-modules.js +267 -148
  72. package/src/node-powers.d.ts +1 -1
  73. package/src/node-powers.d.ts.map +1 -1
  74. package/src/node-powers.js +3 -1
  75. package/src/parse-archive-cjs.d.ts +5 -1
  76. package/src/parse-archive-cjs.d.ts.map +1 -1
  77. package/src/parse-archive-cjs.js +11 -4
  78. package/src/parse-archive-mjs.d.ts +5 -1
  79. package/src/parse-archive-mjs.d.ts.map +1 -1
  80. package/src/parse-archive-mjs.js +3 -1
  81. package/src/parse-bytes.d.ts +5 -1
  82. package/src/parse-bytes.d.ts.map +1 -1
  83. package/src/parse-bytes.js +3 -1
  84. package/src/parse-cjs-shared-export-wrapper.d.ts.map +1 -1
  85. package/src/parse-cjs-shared-export-wrapper.js +5 -11
  86. package/src/parse-cjs.d.ts +5 -1
  87. package/src/parse-cjs.d.ts.map +1 -1
  88. package/src/parse-cjs.js +4 -2
  89. package/src/parse-json.d.ts +5 -2
  90. package/src/parse-json.d.ts.map +1 -1
  91. package/src/parse-mjs.d.ts +5 -1
  92. package/src/parse-mjs.d.ts.map +1 -1
  93. package/src/parse-mjs.js +2 -2
  94. package/src/parse-pre-cjs.d.ts +5 -1
  95. package/src/parse-pre-cjs.d.ts.map +1 -1
  96. package/src/parse-pre-cjs.js +3 -1
  97. package/src/parse-pre-mjs.d.ts +5 -1
  98. package/src/parse-pre-mjs.d.ts.map +1 -1
  99. package/src/parse-pre-mjs.js +3 -1
  100. package/src/parse-text.d.ts +5 -1
  101. package/src/parse-text.d.ts.map +1 -1
  102. package/src/parse-text.js +3 -1
  103. package/src/policy-format.d.ts +2 -1
  104. package/src/policy-format.d.ts.map +1 -1
  105. package/src/policy-format.js +5 -2
  106. package/src/policy.d.ts +2 -2
  107. package/src/policy.d.ts.map +1 -1
  108. package/src/policy.js +10 -11
  109. package/src/powers.d.ts +1 -1
  110. package/src/powers.d.ts.map +1 -1
  111. package/src/powers.js +3 -1
  112. package/src/search.d.ts +7 -12
  113. package/src/search.d.ts.map +1 -1
  114. package/src/search.js +32 -13
  115. package/src/types/compartment-map-schema.d.ts +8 -1
  116. package/src/types/compartment-map-schema.d.ts.map +1 -1
  117. package/src/types/compartment-map-schema.ts +8 -1
  118. package/src/types/external.d.ts +127 -17
  119. package/src/types/external.d.ts.map +1 -1
  120. package/src/types/external.ts +142 -17
  121. package/src/types/internal.d.ts +116 -29
  122. package/src/types/internal.d.ts.map +1 -1
  123. package/src/types/internal.ts +144 -31
  124. package/src/types/node-modules.d.ts +79 -0
  125. package/src/types/node-modules.d.ts.map +1 -0
  126. package/src/types/node-modules.ts +89 -0
  127. package/src/types/node-powers.d.ts +7 -5
  128. package/src/types/node-powers.d.ts.map +1 -1
  129. package/src/types/node-powers.ts +7 -5
  130. package/src/types/policy-schema.d.ts +3 -1
  131. package/src/types/policy-schema.d.ts.map +1 -1
  132. package/src/types/policy-schema.ts +3 -1
  133. package/src/types/policy.d.ts +3 -1
  134. package/src/types/policy.d.ts.map +1 -1
  135. package/src/types/policy.ts +3 -1
  136. package/src/types/powers.d.ts +5 -3
  137. package/src/types/powers.d.ts.map +1 -1
  138. package/src/types/powers.ts +5 -3
  139. package/src/types/typescript.d.ts +3 -1
  140. package/src/types/typescript.d.ts.map +1 -1
  141. package/src/types/typescript.ts +3 -1
  142. package/src/url.d.ts.map +1 -1
  143. package/src/url.js +3 -1
@@ -37,7 +37,7 @@ export function makeWritePowers({ fs, url }: {
37
37
  }): {
38
38
  write: (location: string, data: Uint8Array) => Promise<void>;
39
39
  };
40
- export function makeNodeReadPowers(fs: FsInterface, crypto?: CryptoInterface | undefined): ReadPowers;
40
+ export function makeNodeReadPowers(fs: FsInterface, crypto?: CryptoInterface): ReadPowers;
41
41
  export function makeNodeWritePowers(fs: FsInterface): WritePowers;
42
42
  import type { FsInterface } from './types/node-powers.js';
43
43
  import type { UrlInterface } from './types/node-powers.js';
@@ -1 +1 @@
1
- {"version":3,"file":"node-powers.d.ts","sourceRoot":"","sources":["node-powers.js"],"names":[],"mappings":"AA0LO,8DANJ;IAA0B,EAAE,EAApB,WAAW;IACS,GAAG;IACA,MAAM;IACR,IAAI;CACjC,GAAU,eAAe,GAAG,aAAa,CAoC3C;AAlKD;;;;;;;;;;;GAWG;AACH,2DANG;IAA0B,EAAE,EAApB,WAAW;IACS,GAAG;IACA,MAAM;IACR,IAAI;CACjC,GAAU,eAAe,CA0G3B;AAgDD;;;;;;;;GAQG;AACH,6CAHG;IAA0B,EAAE,EAApB,WAAW;IACS,GAAG;CAAC;sBAOtB,MAAM,QACN,UAAU;EAYtB;AA2BM,uCALI,WAAW,yCAET,UAAU,CAKtB;AAWM,wCAJI,WAAW,GACT,WAAW,CAKvB;iCApRS,wBAAwB;kCAAxB,wBAAwB;qCAAxB,wBAAwB;mCAAxB,wBAAwB;qCAexB,mBAAmB;mCAAnB,mBAAmB;gCAAnB,mBAAmB;iCAAnB,mBAAmB"}
1
+ {"version":3,"file":"node-powers.d.ts","sourceRoot":"","sources":["node-powers.js"],"names":[],"mappings":"AA4LO,8DANJ;IAA0B,EAAE,EAApB,WAAW;IACS,GAAG;IACA,MAAM;IACR,IAAI;CACjC,GAAU,eAAe,GAAG,aAAa,CAoC3C;AAlKD;;;;;;;;;;;GAWG;AACH,2DANG;IAA0B,EAAE,EAApB,WAAW;IACS,GAAG;IACA,MAAM;IACR,IAAI;CACjC,GAAU,eAAe,CA0G3B;AAgDD;;;;;;;;GAQG;AACH,6CAHG;IAA0B,EAAE,EAApB,WAAW;IACS,GAAG;CAAC;sBAOtB,MAAM,QACN,UAAU;EAYtB;AA2BM,uCALI,WAAW,WACX,eAAe,GACb,UAAU,CAKtB;AAWM,wCAJI,WAAW,GACT,WAAW,CAKvB;iCApRS,wBAAwB;kCAAxB,wBAAwB;qCAAxB,wBAAwB;mCAAxB,wBAAwB;qCAexB,mBAAmB;mCAAnB,mBAAmB;gCAAnB,mBAAmB;iCAAnB,mBAAmB"}
@@ -1,10 +1,12 @@
1
1
  /**
2
- * @module Provides adapters for Compartment Mapper I/O to the corresponding
2
+ * Provides adapters for Compartment Mapper I/O to the corresponding
3
3
  * Node.js implementations of those behaviors.
4
4
  *
5
5
  * The Compartment Mapper generalizes its I/O interface to allow for a wide
6
6
  * variety of I/O providers, but especially for reading and writing from
7
7
  * virtualized file systems like zip files.
8
+ *
9
+ * @module
8
10
  */
9
11
 
10
12
  /**
@@ -1,6 +1,10 @@
1
1
  /** @type {ParseFn} */
2
2
  export const parseArchiveCjs: ParseFn;
3
- declare const _default: import("./types.js").ParserImplementation;
3
+ declare const _default: {
4
+ parse: ParseFn;
5
+ heuristicImports: true;
6
+ synchronous: true;
7
+ };
4
8
  export default _default;
5
9
  import type { ParseFn } from './types.js';
6
10
  //# sourceMappingURL=parse-archive-cjs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-archive-cjs.d.ts","sourceRoot":"","sources":["parse-archive-cjs.js"],"names":[],"mappings":"AAkBA,sBAAsB;AACtB,8BADW,OAAO,CA6ChB;wBAES,OAAO,YAAY,EAAE,oBAAoB;;6BA5DzB,YAAY"}
1
+ {"version":3,"file":"parse-archive-cjs.d.ts","sourceRoot":"","sources":["parse-archive-cjs.js"],"names":[],"mappings":"AAoBA,sBAAsB;AACtB,8BADW,OAAO,CAkDhB;;;;;;;6BA/DyB,YAAY"}
@@ -1,6 +1,8 @@
1
1
  /**
2
- * @module Provides language behavior for analyzing, pre-compiling, and storing
2
+ * Provides language behavior for analyzing, pre-compiling, and storing
3
3
  * CommonJS modules for an archive.
4
+ *
5
+ * @module
4
6
  */
5
7
 
6
8
  /** @import {ParseFn} from './types.js' */
@@ -22,9 +24,12 @@ export const parseArchiveCjs = (
22
24
  _specifier,
23
25
  location,
24
26
  _packageLocation,
27
+ options = {},
25
28
  ) => {
26
29
  const source = textDecoder.decode(bytes);
27
30
 
31
+ const { archiveOnly = false } = options;
32
+
28
33
  const {
29
34
  requires: imports,
30
35
  exports,
@@ -35,18 +40,20 @@ export const parseArchiveCjs = (
35
40
  exports.push('default');
36
41
  }
37
42
 
38
- const cjsWrappedSource = `(function (require, exports, module, __filename, __dirname) { ${source} //*/\n})\n`;
43
+ let cjsFunctor = `(function (require, exports, module, __filename, __dirname) { 'use strict'; ${source} //*/\n})\n`;
39
44
 
40
45
  const pre = textEncoder.encode(
41
46
  JSON.stringify({
42
47
  imports,
43
48
  exports,
44
49
  reexports,
45
- source: cjsWrappedSource,
50
+ source: cjsFunctor,
46
51
  }),
47
52
  );
48
53
 
49
- const cjsFunctor = `${cjsWrappedSource}//# sourceURL=${location}\n`;
54
+ if (!archiveOnly) {
55
+ cjsFunctor = `${cjsFunctor}//# sourceURL=${location}\n`;
56
+ }
50
57
 
51
58
  return {
52
59
  parser: 'pre-cjs-json',
@@ -1,6 +1,10 @@
1
1
  /** @type {ParseFn} */
2
2
  export const parseArchiveMjs: ParseFn;
3
- declare const _default: import("./types.js").ParserImplementation;
3
+ declare const _default: {
4
+ parse: ParseFn;
5
+ heuristicImports: false;
6
+ synchronous: true;
7
+ };
4
8
  export default _default;
5
9
  import type { ParseFn } from './types.js';
6
10
  //# sourceMappingURL=parse-archive-mjs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-archive-mjs.d.ts","sourceRoot":"","sources":["parse-archive-mjs.js"],"names":[],"mappings":"AAYA,sBAAsB;AACtB,8BADW,OAAO,CAqBhB;wBAES,OAAO,YAAY,EAAE,oBAAoB;;6BA9BzB,YAAY"}
1
+ {"version":3,"file":"parse-archive-mjs.d.ts","sourceRoot":"","sources":["parse-archive-mjs.js"],"names":[],"mappings":"AAcA,sBAAsB;AACtB,8BADW,OAAO,CAqBhB;;;;;;;6BA5ByB,YAAY"}
@@ -1,6 +1,8 @@
1
1
  /**
2
- * @module Provides language behavior for analyzing, pre-compiling, and storing ESM
2
+ * Provides language behavior for analyzing, pre-compiling, and storing ESM
3
3
  * modules for an archive.
4
+ *
5
+ * @module
4
6
  */
5
7
 
6
8
  /** @import {ParseFn} from './types.js' */
@@ -1,6 +1,10 @@
1
1
  /** @type {ParseFn} */
2
2
  export const parseBytes: ParseFn;
3
- declare const _default: import("./types.js").ParserImplementation;
3
+ declare const _default: {
4
+ parse: ParseFn;
5
+ heuristicImports: false;
6
+ synchronous: true;
7
+ };
4
8
  export default _default;
5
9
  import type { ParseFn } from './types.js';
6
10
  //# sourceMappingURL=parse-bytes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-bytes.d.ts","sourceRoot":"","sources":["parse-bytes.js"],"names":[],"mappings":"AAgBA,sBAAsB;AACtB,yBADW,OAAO,CA0BhB;wBAES,OAAO,YAAY,EAAE,oBAAoB;;6BAtCzB,YAAY"}
1
+ {"version":3,"file":"parse-bytes.d.ts","sourceRoot":"","sources":["parse-bytes.js"],"names":[],"mappings":"AAkBA,sBAAsB;AACtB,yBADW,OAAO,CA0BhB;;;;;;;6BApCyB,YAAY"}
@@ -1,6 +1,8 @@
1
1
  /**
2
- * @module Provides rudimentary support for treating an arbitrary file as a
2
+ * Provides rudimentary support for treating an arbitrary file as a
3
3
  * module that exports the bytes of that file.
4
+ *
5
+ * @module
4
6
  */
5
7
 
6
8
  /** @import {Harden} from 'ses' */
@@ -1 +1 @@
1
- {"version":3,"file":"parse-cjs-shared-export-wrapper.d.ts","sourceRoot":"","sources":["parse-cjs-shared-export-wrapper.js"],"names":[],"mappings":"AAwCO,2CAPI,UAAU,GAAG,MAAM,GAAG,SAAS,YAC/B,MAAM,GACJ;IACR,QAAQ,EAAC,MAAM,GAAC,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,GAAC,IAAI,CAAA;CACrB,CAgCH;AAmBM,uGAZJ;IAAmB,uBAAuB,EAAlC,MAAM;IACU,WAAW,EAA3B,WAAW;IACgB,eAAe,EAA1C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IACX,QAAQ,EAAnB,MAAM;IAC8B,UAAU,EAA9C,MAAM,GAAG,UAAU,GAAG,SAAS;CACvC,GAAU;IACR,MAAM,EAAE;QAAE,OAAO,EAAE,GAAG,CAAA;KAAE,CAAC;IACzB,aAAa,EAAE,GAAG,CAAC;IACnB,YAAY,WAAW;IACvB,OAAO,WAAW;CACnB,CAmIH;gCApNqC,YAAY;4BAAZ,YAAY"}
1
+ {"version":3,"file":"parse-cjs-shared-export-wrapper.d.ts","sourceRoot":"","sources":["parse-cjs-shared-export-wrapper.js"],"names":[],"mappings":"AA0CO,2CAPI,UAAU,GAAG,MAAM,GAAG,SAAS,YAC/B,MAAM,GACJ;IACR,QAAQ,EAAC,MAAM,GAAC,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,GAAC,IAAI,CAAA;CACrB,CAgCH;AAmBM,uGAZJ;IAAmB,uBAAuB,EAAlC,MAAM;IACU,WAAW,EAA3B,WAAW;IACgB,eAAe,EAA1C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IACX,QAAQ,EAAnB,MAAM;IAC8B,UAAU,EAA9C,MAAM,GAAG,UAAU,GAAG,SAAS;CACvC,GAAU;IACR,MAAM,EAAE;QAAE,OAAO,EAAE,GAAG,CAAA;KAAE,CAAC;IACzB,aAAa,EAAE,GAAG,CAAC;IACnB,YAAY,WAAW;IACvB,OAAO,WAAW;CACnB,CA2HH;gCA5MqC,YAAY;4BAAZ,YAAY"}
@@ -1,7 +1,9 @@
1
1
  /**
2
- * @module Provides shared functionality for {@link parse-cjs.js} and {@link
2
+ * Provides shared functionality for {@link parse-cjs.js} and {@link
3
3
  * parse-archive-cjs.js} toward importing or archiving CommonJS as a virtual
4
4
  * module source.
5
+ *
6
+ * @module
5
7
  */
6
8
 
7
9
  /** @import {ReadFn, ReadPowers} from './types.js' */
@@ -135,16 +137,7 @@ export const wrap = ({
135
137
  },
136
138
  });
137
139
 
138
- let finalExports = originalExports;
139
-
140
- const module = freeze({
141
- get exports() {
142
- return finalExports;
143
- },
144
- set exports(value) {
145
- finalExports = value;
146
- },
147
- });
140
+ const module = { exports: originalExports };
148
141
 
149
142
  /** @param {string} importSpecifier */
150
143
  const require = importSpecifier => {
@@ -192,6 +185,7 @@ export const wrap = ({
192
185
  freeze(require);
193
186
 
194
187
  const afterExecute = () => {
188
+ const finalExports = module.exports; // in case it's a getter, only call it once
195
189
  const exportsHaveBeenOverwritten = finalExports !== originalExports;
196
190
  // Promotes keys from redefined module.export to top level namespace for import *
197
191
  // Note: We could do it less consistently but closer to how node does it if we iterated over exports detected by
@@ -1,6 +1,10 @@
1
1
  /** @type {ParseFn} */
2
2
  export const parseCjs: ParseFn;
3
- declare const _default: import("./types.js").ParserImplementation;
3
+ declare const _default: {
4
+ parse: ParseFn;
5
+ heuristicImports: true;
6
+ synchronous: true;
7
+ };
4
8
  export default _default;
5
9
  import type { ParseFn } from './types.js';
6
10
  //# sourceMappingURL=parse-cjs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-cjs.d.ts","sourceRoot":"","sources":["parse-cjs.js"],"names":[],"mappings":"AAcA,sBAAsB;AACtB,uBADW,OAAO,CA0DhB;wBAES,OAAO,YAAY,EAAE,oBAAoB;;6BArEzB,YAAY"}
1
+ {"version":3,"file":"parse-cjs.d.ts","sourceRoot":"","sources":["parse-cjs.js"],"names":[],"mappings":"AAgBA,sBAAsB;AACtB,uBADW,OAAO,CA0DhB;;;;;;;6BAnEyB,YAAY"}
package/src/parse-cjs.js CHANGED
@@ -1,6 +1,8 @@
1
1
  /**
2
- * @module Provides language behavior (parser) for importing CommonJS as a
2
+ * Provides language behavior (parser) for importing CommonJS as a
3
3
  * virtual module source.
4
+ *
5
+ * @module
4
6
  */
5
7
 
6
8
  /** @import {ParseFn} from './types.js' */
@@ -41,7 +43,7 @@ export const parseCjs = (
41
43
  */
42
44
  const execute = (moduleEnvironmentRecord, compartment, resolvedImports) => {
43
45
  const functor = compartment.evaluate(
44
- `(function (require, exports, module, __filename, __dirname) { ${source} //*/\n})\n//# sourceURL=${location}`,
46
+ `(function (require, exports, module, __filename, __dirname) { 'use strict'; ${source} })\n`,
45
47
  );
46
48
 
47
49
  const { require, moduleExports, module, afterExecute } = wrap({
@@ -1,7 +1,10 @@
1
1
  /** @type {ParseFn} */
2
2
  export const parseJson: ParseFn;
3
- declare const _default: ParserImplementation;
3
+ declare const _default: {
4
+ parse: ParseFn;
5
+ heuristicImports: false;
6
+ synchronous: true;
7
+ };
4
8
  export default _default;
5
9
  import type { ParseFn } from './types.js';
6
- import type { ParserImplementation } from './types.js';
7
10
  //# sourceMappingURL=parse-json.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-json.d.ts","sourceRoot":"","sources":["parse-json.js"],"names":[],"mappings":"AAmBA,sBAAsB;AACtB,wBADW,OAAO,CAqBhB;wBAES,oBAAoB;;6BAtCiB,YAAY;0CAAZ,YAAY"}
1
+ {"version":3,"file":"parse-json.d.ts","sourceRoot":"","sources":["parse-json.js"],"names":[],"mappings":"AAmBA,sBAAsB;AACtB,wBADW,OAAO,CAqBhB;;;;;;;6BApC8C,YAAY"}
@@ -1,6 +1,10 @@
1
1
  /** @type {ParseFn} */
2
2
  export const parseMjs: ParseFn;
3
- declare const _default: import("./types.js").ParserImplementation;
3
+ declare const _default: {
4
+ parse: ParseFn;
5
+ heuristicImports: false;
6
+ synchronous: true;
7
+ };
4
8
  export default _default;
5
9
  import type { ParseFn } from './types.js';
6
10
  //# sourceMappingURL=parse-mjs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-mjs.d.ts","sourceRoot":"","sources":["parse-mjs.js"],"names":[],"mappings":"AAQA,sBAAsB;AACtB,uBADW,OAAO,CAqBhB;wBAES,OAAO,YAAY,EAAE,oBAAoB;;6BA7BzB,YAAY"}
1
+ {"version":3,"file":"parse-mjs.d.ts","sourceRoot":"","sources":["parse-mjs.js"],"names":[],"mappings":"AAQA,sBAAsB;AACtB,uBADW,OAAO,CAqBhB;;;;;;;6BA3ByB,YAAY"}
package/src/parse-mjs.js CHANGED
@@ -14,10 +14,10 @@ export const parseMjs = (
14
14
  _packageLocation,
15
15
  options = {},
16
16
  ) => {
17
- const { sourceMap, sourceMapHook } = options;
17
+ const { sourceMap, sourceMapHook, archiveOnly = false } = options;
18
18
  const source = textDecoder.decode(bytes);
19
19
  const record = new ModuleSource(source, {
20
- sourceUrl,
20
+ sourceUrl: archiveOnly ? undefined : sourceUrl,
21
21
  sourceMap,
22
22
  sourceMapUrl: sourceUrl,
23
23
  sourceMapHook,
@@ -1,6 +1,10 @@
1
1
  /** @type {ParseFn} */
2
2
  export const parsePreCjs: ParseFn;
3
- declare const _default: import("./types.js").ParserImplementation;
3
+ declare const _default: {
4
+ parse: ParseFn;
5
+ heuristicImports: true;
6
+ synchronous: true;
7
+ };
4
8
  export default _default;
5
9
  import type { ParseFn } from './types.js';
6
10
  //# sourceMappingURL=parse-pre-cjs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-pre-cjs.d.ts","sourceRoot":"","sources":["parse-pre-cjs.js"],"names":[],"mappings":"AAeA,sBAAsB;AACtB,0BADW,OAAO,CAuDhB;wBAES,OAAO,YAAY,EAAE,oBAAoB;;6BAhEzB,YAAY"}
1
+ {"version":3,"file":"parse-pre-cjs.d.ts","sourceRoot":"","sources":["parse-pre-cjs.js"],"names":[],"mappings":"AAiBA,sBAAsB;AACtB,0BADW,OAAO,CAuDhB;;;;;;;6BA9DyB,YAAY"}
@@ -1,9 +1,11 @@
1
1
  /**
2
- * @module Provides language-specific behavior for importing pre-compiled
2
+ * Provides language-specific behavior for importing pre-compiled
3
3
  * CommonJS.
4
4
  * Pre-compiled CommonJS is a module in JSON format that describes its imports,
5
5
  * exports, and source to execute in the presence of `require`, `module`, and
6
6
  * `exports`.
7
+ *
8
+ * @module
7
9
  */
8
10
 
9
11
  /** @import {ParseFn} from './types.js' */
@@ -1,6 +1,10 @@
1
1
  /** @type {ParseFn} */
2
2
  export const parsePreMjs: ParseFn;
3
- declare const _default: import("./types.js").ParserImplementation;
3
+ declare const _default: {
4
+ parse: ParseFn;
5
+ heuristicImports: false;
6
+ synchronous: true;
7
+ };
4
8
  export default _default;
5
9
  import type { ParseFn } from './types.js';
6
10
  //# sourceMappingURL=parse-pre-mjs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-pre-mjs.d.ts","sourceRoot":"","sources":["parse-pre-mjs.js"],"names":[],"mappings":"AAaA,sBAAsB;AACtB,0BADW,OAAO,CAsBhB;wBAES,OAAO,YAAY,EAAE,oBAAoB;;6BA9BzB,YAAY"}
1
+ {"version":3,"file":"parse-pre-mjs.d.ts","sourceRoot":"","sources":["parse-pre-mjs.js"],"names":[],"mappings":"AAeA,sBAAsB;AACtB,0BADW,OAAO,CAsBhB;;;;;;;6BA5ByB,YAAY"}
@@ -1,8 +1,10 @@
1
1
  /**
2
- * @module Provides language-specific behaviors for importing pre-compiled ESM.
2
+ * Provides language-specific behaviors for importing pre-compiled ESM.
3
3
  * Pre-compiling or translating ESM from a module to a script with a
4
4
  * calling-convention is necessary to prepare an archive so that it can be
5
5
  * imported by the SES shim without entraining a dependency on Babel.
6
+ *
7
+ * @module
6
8
  */
7
9
 
8
10
  /** @import {ParseFn} from './types.js' */
@@ -1,6 +1,10 @@
1
1
  /** @type {ParseFn} */
2
2
  export const parseText: ParseFn;
3
- declare const _default: import("./types.js").ParserImplementation;
3
+ declare const _default: {
4
+ parse: ParseFn;
5
+ heuristicImports: false;
6
+ synchronous: true;
7
+ };
4
8
  export default _default;
5
9
  import type { ParseFn } from './types.js';
6
10
  //# sourceMappingURL=parse-text.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-text.d.ts","sourceRoot":"","sources":["parse-text.js"],"names":[],"mappings":"AAkBA,sBAAsB;AACtB,wBADW,OAAO,CAuBhB;wBAES,OAAO,YAAY,EAAE,oBAAoB;;6BArCzB,YAAY"}
1
+ {"version":3,"file":"parse-text.d.ts","sourceRoot":"","sources":["parse-text.js"],"names":[],"mappings":"AAoBA,sBAAsB;AACtB,wBADW,OAAO,CAuBhB;;;;;;;6BAnCyB,YAAY"}
package/src/parse-text.js CHANGED
@@ -1,7 +1,9 @@
1
1
  /**
2
- * @module Provides language-behaviors for importing a module as a document
2
+ * Provides language-behaviors for importing a module as a document
3
3
  * that exports itself as a string based on a UTF-8 interpretation of the
4
4
  * module's text.
5
+ *
6
+ * @module
5
7
  */
6
8
 
7
9
  /** @import {ParseFn} from './types.js' */
@@ -1,8 +1,9 @@
1
+ export const WILDCARD_POLICY_VALUE: "any";
1
2
  export function policyLookupHelper(packagePolicy: import("./types.js").PackagePolicy, field: "builtins" | "globals" | "packages", itemName: string): boolean | import("./types.js").AttenuationDefinition;
2
3
  export function isAllowingEverything(policyValue: unknown): policyValue is import("./types.js").WildcardPolicy;
3
4
  export function isAttenuationDefinition(allegedDefinition: unknown): allegedDefinition is import("./types.js").AttenuationDefinition;
4
5
  export function getAttenuatorFromDefinition(attenuationDefinition: import("./types.js").AttenuationDefinition): import("./types.js").UnifiedAttenuationDefinition;
5
- export function assertPackagePolicy(allegedPackagePolicy: unknown, path: string, url?: string | undefined): asserts allegedPackagePolicy is SomePackagePolicy | undefined;
6
+ export function assertPackagePolicy(allegedPackagePolicy: unknown, path: string, url?: string): asserts allegedPackagePolicy is SomePackagePolicy | undefined;
6
7
  export function assertPolicy(allegedPolicy: unknown): asserts allegedPolicy is (SomePolicy | undefined);
7
8
  import type { SomePackagePolicy } from './types.js';
8
9
  import type { SomePolicy } from './types.js';
@@ -1 +1 @@
1
- {"version":3,"file":"policy-format.d.ts","sourceRoot":"","sources":["policy-format.js"],"names":[],"mappings":"AA2BO,kDALI,OAAO,YAAY,EAAE,aAAa,SAClC,UAAU,GAAC,SAAS,GAAC,UAAU,YAC/B,MAAM,GACJ,OAAO,GAAG,OAAO,YAAY,EAAE,qBAAqB,CAyBhE;AAQM,kDAHI,OAAO,GACL,WAAW,IAAI,OAAO,YAAY,EAAE,cAAc,CAGxB;AAOhC,2DAHI,OAAO,GACL,iBAAiB,IAAI,OAAO,YAAY,EAAE,qBAAqB,CAS3E;AAOM,mEAHI,OAAO,YAAY,EAAE,qBAAqB,GACxC,OAAO,YAAY,EAAE,4BAA4B,CAuB7D;AA0CM,0DALI,OAAO,QACP,MAAM,6BAEJ,QAAQ,oBAAoB,IAAI,iBAAiB,GAAC,SAAS,CA4DvE;AAUM,4CAHI,OAAO,GACL,QAAQ,aAAa,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,CAgC7D;uCA5OgD,YAAY;gCAAZ,YAAY"}
1
+ {"version":3,"file":"policy-format.d.ts","sourceRoot":"","sources":["policy-format.js"],"names":[],"mappings":"AAeA,oCAAqC,KAAK,CAAC;AAepC,kDALI,OAAO,YAAY,EAAE,aAAa,SAClC,UAAU,GAAC,SAAS,GAAC,UAAU,YAC/B,MAAM,GACJ,OAAO,GAAG,OAAO,YAAY,EAAE,qBAAqB,CAyBhE;AAQM,kDAHI,OAAO,GACL,WAAW,IAAI,OAAO,YAAY,EAAE,cAAc,CAGxB;AAOhC,2DAHI,OAAO,GACL,iBAAiB,IAAI,OAAO,YAAY,EAAE,qBAAqB,CAS3E;AAOM,mEAHI,OAAO,YAAY,EAAE,qBAAqB,GACxC,OAAO,YAAY,EAAE,4BAA4B,CAuB7D;AA0CM,0DALI,OAAO,QACP,MAAM,QACN,MAAM,GACJ,QAAQ,oBAAoB,IAAI,iBAAiB,GAAC,SAAS,CA4DvE;AAUM,4CAHI,OAAO,GACL,QAAQ,aAAa,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,CAgC7D;uCA7OgD,YAAY;gCAAZ,YAAY"}
@@ -1,6 +1,8 @@
1
1
  /**
2
- * @module Provides functions for enforcing compartment-map linkage and global
2
+ * Provides functions for enforcing compartment-map linkage and global
3
3
  * variable policies for each compartment.
4
+ *
5
+ * @module
4
6
  */
5
7
 
6
8
  /** @import {SomePackagePolicy, SomePolicy} from './types.js' */
@@ -11,7 +13,8 @@ const q = JSON.stringify;
11
13
 
12
14
  const ATTENUATOR_KEY = 'attenuate';
13
15
  const ATTENUATOR_PARAMS_KEY = 'params';
14
- const WILDCARD_POLICY_VALUE = 'any';
16
+ export const WILDCARD_POLICY_VALUE = 'any';
17
+
15
18
  const POLICY_FIELDS_LOOKUP = /** @type {const} */ ([
16
19
  'builtins',
17
20
  'globals',
package/src/policy.d.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  * Const string to identify the internal attenuators compartment
3
3
  */
4
4
  export const ATTENUATORS_COMPARTMENT: "<ATTENUATORS>";
5
- export function detectAttenuators(policy?: Policy | undefined): Array<string>;
5
+ export function detectAttenuators(policy?: Policy): Array<string>;
6
6
  export function dependencyAllowedByPolicy(namingKit: PackageNamingKit, packagePolicy: PackagePolicy): boolean;
7
7
  /**
8
8
  * Returns the policy applicable to the canonicalName of the package
@@ -24,7 +24,7 @@ export function getPolicyForPackage(namingKit: PackageNamingKit, policy: SomePol
24
24
  export function getPolicyForPackage(namingKit: PackageNamingKit, policy?: SomePolicy | undefined): SomePackagePolicy | undefined;
25
25
  export function makeDeferredAttenuatorsProvider(compartments: Record<string, Compartment>, compartmentDescriptors: Record<string, CompartmentDescriptor>): DeferredAttenuatorsProvider;
26
26
  export function attenuateGlobals(globalThis: object, globals: object, packagePolicy: PackagePolicy, attenuators: DeferredAttenuatorsProvider, pendingJobs: Array<Promise<any>>, name?: string): void;
27
- export function enforceModulePolicy(specifier: string, compartmentDescriptor: CompartmentDescriptor, { exit, errorHint }?: EnforceModulePolicyOptions | undefined): void;
27
+ export function enforceModulePolicy(specifier: string, compartmentDescriptor: CompartmentDescriptor, { exit, errorHint }?: EnforceModulePolicyOptions): void;
28
28
  export function attenuateModuleHook(specifier: string, originalModuleRecord: import("ses").ThirdPartyStaticModuleInterface, policy: PackagePolicy, attenuators: DeferredAttenuatorsProvider): Promise<import("ses").ThirdPartyStaticModuleInterface>;
29
29
  /**
30
30
  * Options for {@link enforceModulePolicy}
@@ -1 +1 @@
1
- {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["policy.js"],"names":[],"mappings":"AAgCA;;GAEG;AACH,sDAAuD;AAyDhD,gEAFM,KAAK,CAAC,MAAM,CAAC,CAezB;AA0BM,qDAJI,gBAAgB,iBAChB,aAAa,GACX,OAAO,CASnB;;;;;;;;;AAKE,+CACQ,gBAAgB,UAChB,UAAU,GACR,iBAAiB,CAC7B;;;;;;;;;AAKE,+CACQ,gBAAgB,oCAEd,iBAAiB,GAAC,SAAS,CACvC;AAkFM,8DAJI,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,0BAC3B,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,GACnC,2BAA2B,CA0CvC;AAoDM,6CARI,MAAM,WACN,MAAM,iBACN,aAAa,eACb,2BAA2B,eAC3B,KAAK,cAAS,SACd,MAAM,GACJ,IAAI,CAgDhB;AA2BM,+CAJI,MAAM,yBACN,qBAAqB,sEAiC/B;AAgDM,+CANI,MAAM,wBACN,OAAO,KAAK,EAAE,+BAA+B,UAC7C,aAAa,eACb,2BAA2B,GACzB,OAAO,CAAC,OAAO,KAAK,EAAE,+BAA+B,CAAC,CAyBlE;;;;;;;;;;;;;;4BAveS,YAAY;sCAAZ,YAAY;mCAAZ,YAAY;gCAAZ,YAAY;uCAAZ,YAAY;2CAAZ,YAAY;iDAAZ,YAAY"}
1
+ {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["policy.js"],"names":[],"mappings":"AAkCA;;GAEG;AACH,sCAAuC,eAAe,CAAC;AAyDhD,2CAHI,MAAM,GACJ,KAAK,CAAC,MAAM,CAAC,CAezB;AA0BM,qDAJI,gBAAgB,iBAChB,aAAa,GACX,OAAO,CASnB;;;;;;;;;AAKE,+CACQ,gBAAgB,UAChB,UAAU,GACR,iBAAiB,CAC7B;;;;;;;;;AAKE,+CACQ,gBAAgB,oCAEd,iBAAiB,GAAC,SAAS,CACvC;AA+EM,8DAJI,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,0BAC3B,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,GACnC,2BAA2B,CA0CvC;AAoDM,6CARI,MAAM,WACN,MAAM,iBACN,aAAa,eACb,2BAA2B,eAC3B,KAAK,cAAS,SACd,MAAM,GACJ,IAAI,CAgDhB;AA2BM,+CAJI,MAAM,yBACN,qBAAqB,wBACrB,0BAA0B,QAgCpC;AAgDM,+CANI,MAAM,wBACN,OAAO,KAAK,EAAE,+BAA+B,UAC7C,aAAa,eACb,2BAA2B,GACzB,OAAO,CAAC,OAAO,KAAK,EAAE,+BAA+B,CAAC,CAyBlE;;;;;;;;;;;;;;4BApeS,YAAY;sCAAZ,YAAY;mCAAZ,YAAY;gCAAZ,YAAY;uCAAZ,YAAY;2CAAZ,YAAY;iDAAZ,YAAY"}
package/src/policy.js CHANGED
@@ -1,5 +1,7 @@
1
1
  /**
2
- * @module Provides mechanisms for interacting with Compartment Map runtime policies.
2
+ * Provides mechanisms for interacting with Compartment Map runtime policies.
3
+ *
4
+ * @module
3
5
  */
4
6
 
5
7
  // @ts-check
@@ -171,10 +173,7 @@ export const getPolicyForPackage = (namingKit, policy) => {
171
173
  }
172
174
  const canonicalName = generateCanonicalName(namingKit);
173
175
  if (canonicalName === ATTENUATORS_COMPARTMENT) {
174
- return {
175
- defaultAttenuator: policy.defaultAttenuator,
176
- packages: 'any',
177
- };
176
+ return { defaultAttenuator: policy.defaultAttenuator, packages: 'any' };
178
177
  }
179
178
  if (policy.resources && policy.resources[canonicalName] !== undefined) {
180
179
  return policy.resources[canonicalName];
@@ -240,6 +239,7 @@ export const makeDeferredAttenuatorsProvider = (
240
239
  compartments,
241
240
  compartmentDescriptors,
242
241
  ) => {
242
+ /** @type {DeferredAttenuatorsProvider['import']} */
243
243
  let importAttenuator;
244
244
  let defaultAttenuator;
245
245
  // Attenuators compartment is not created when there's no policy.
@@ -257,7 +257,7 @@ export const makeDeferredAttenuatorsProvider = (
257
257
  // time of the import function being called.
258
258
  /**
259
259
  *
260
- * @param {string} attenuatorSpecifier
260
+ * @param {string | null} attenuatorSpecifier
261
261
  * @returns {Promise<Attenuator>}
262
262
  */
263
263
  importAttenuator = async attenuatorSpecifier => {
@@ -267,15 +267,14 @@ export const makeDeferredAttenuatorsProvider = (
267
267
  }
268
268
  attenuatorSpecifier = defaultAttenuator;
269
269
  }
270
- const { namespace } =
271
- await compartments[ATTENUATORS_COMPARTMENT].import(attenuatorSpecifier);
270
+ const { namespace } = await compartments[ATTENUATORS_COMPARTMENT].import(
271
+ /** @type {string} */ (attenuatorSpecifier),
272
+ );
272
273
  return namespace;
273
274
  };
274
275
  }
275
276
 
276
- return {
277
- import: importAttenuator,
278
- };
277
+ return { import: importAttenuator };
279
278
  };
280
279
 
281
280
  /**
package/src/powers.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export function unpackReadPowers(powers: ReadFn | ReadPowers | MaybeReadPowers): MaybeReadPowers;
2
2
  export function isReadNowPowers(value: ReadPowers | ReadFn | undefined): value is ReadNowPowers;
3
- export function findInvalidReadNowPowersProps(value?: ReadFn | ReadPowers | undefined): ReadNowPowersProp[];
3
+ export function findInvalidReadNowPowersProps(value?: ReadPowers | ReadFn): ReadNowPowersProp[];
4
4
  import type { ReadFn } from './types.js';
5
5
  import type { ReadPowers } from './types.js';
6
6
  import type { MaybeReadPowers } from './types.js';
@@ -1 +1 @@
1
- {"version":3,"file":"powers.d.ts","sourceRoot":"","sources":["powers.js"],"names":[],"mappings":"AA6BO,yCAHI,MAAM,GAAG,UAAU,GAAG,eAAe,GACnC,eAAe,CAgC3B;AAiBM,uCAHI,UAAU,GAAC,MAAM,GAAC,SAAS,GACzB,KAAK,IAAI,aAAa,CAShC;AAWI,wFAFM,iBAAiB,EAAE,CAS/B;4BApFS,YAAY;gCAAZ,YAAY;qCAAZ,YAAY;mCAAZ,YAAY;uCAAZ,YAAY"}
1
+ {"version":3,"file":"powers.d.ts","sourceRoot":"","sources":["powers.js"],"names":[],"mappings":"AA+BO,yCAHI,MAAM,GAAG,UAAU,GAAG,eAAe,GACnC,eAAe,CAgC3B;AAiBM,uCAHI,UAAU,GAAC,MAAM,GAAC,SAAS,GACzB,KAAK,IAAI,aAAa,CAShC;AAWI,sDAHI,UAAU,GAAG,MAAM,GACjB,iBAAiB,EAAE,CAS/B;4BApFS,YAAY;gCAAZ,YAAY;qCAAZ,YAAY;mCAAZ,YAAY;uCAAZ,YAAY"}
package/src/powers.js CHANGED
@@ -1,9 +1,11 @@
1
1
  /**
2
- * @module As the interface of the Compartment Mapper evolved, it became
2
+ * As the interface of the Compartment Mapper evolved, it became
3
3
  * necessary to expand some function signatures that accepted a single power to
4
4
  * one that accepted a powers object.
5
5
  * This module provides functions for safely unpacking I/O capabilities and
6
6
  * maintaining backward-compatibility with older accepted usage patterns.
7
+ *
8
+ * @module
7
9
  */
8
10
 
9
11
  /**
package/src/search.d.ts CHANGED
@@ -1,16 +1,11 @@
1
- export function searchDescriptor<T>(location: string, maybeReadDescriptor: (location: string) => Promise<T | undefined>): Promise<{
2
- data: T;
3
- directory: string;
4
- location: string;
5
- packageDescriptorLocation: string;
6
- }>;
7
- export function search(readPowers: ReadFn | ReadPowers | MaybeReadPowers, moduleLocation: string): Promise<{
8
- packageLocation: string;
9
- packageDescriptorLocation: string;
10
- packageDescriptorText: string;
11
- moduleSpecifier: string;
12
- }>;
1
+ export function searchDescriptor<T>(location: string, maybeReadDescriptor: MaybeReadDescriptorFn<T>, { log: _log }?: SearchDescriptorOptions): Promise<SearchDescriptorResult<T>>;
2
+ export function search(readPowers: ReadFn | ReadPowers | MaybeReadPowers, moduleLocation: string, { log }?: SearchOptions): Promise<SearchResult>;
3
+ import type { MaybeReadDescriptorFn } from './types.js';
4
+ import type { SearchDescriptorOptions } from './types.js';
5
+ import type { SearchDescriptorResult } from './types.js';
13
6
  import type { ReadFn } from './types.js';
14
7
  import type { ReadPowers } from './types.js';
15
8
  import type { MaybeReadPowers } from './types.js';
9
+ import type { SearchOptions } from './types.js';
10
+ import type { SearchResult } from './types.js';
16
11
  //# sourceMappingURL=search.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["search.js"],"names":[],"mappings":"AAwCO,iCALM,CAAC,YACH,MAAM,uBACN,CAAC,QAAQ,EAAC,MAAM,KAAG,OAAO,CAAC,CAAC,GAAC,SAAS,CAAC,GACrC,OAAO,CAAC;IAAC,IAAI,EAAC,CAAC,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAC,MAAM,CAAC;IAAC,yBAAyB,EAAE,MAAM,CAAA;CAAC,CAAC,CA0BpG;AAoCM,mCATI,MAAM,GAAG,UAAU,GAAG,eAAe,kBACrC,MAAM,GACJ,OAAO,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,yBAAyB,EAAE,MAAM,CAAC;IAClC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC,CAoBJ;4BA5GS,YAAY;gCAAZ,YAAY;qCAAZ,YAAY"}
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["search.js"],"names":[],"mappings":"AAqDO,iCANM,CAAC,YACH,MAAM,uBACN,sBAAsB,CAAC,CAAC,kBACxB,uBAAuB,GACrB,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC,CA8B9C;AAgCM,mCALI,MAAM,GAAG,UAAU,GAAG,eAAe,kBACrC,MAAM,YACN,aAAa,GACX,OAAO,CAAC,YAAY,CAAC,CA0BjC;2CAxHS,YAAY;6CAAZ,YAAY;4CAAZ,YAAY;4BAAZ,YAAY;gCAAZ,YAAY;qCAAZ,YAAY;mCAAZ,YAAY;kCAAZ,YAAY"}