@endo/compartment-mapper 1.3.1 → 1.4.0
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.
- package/README.md +50 -27
- package/archive-lite.d.ts +1 -0
- package/archive-lite.js +3 -0
- package/archive-parsers.d.ts +1 -0
- package/archive-parsers.js +3 -0
- package/archive.d.ts +1 -0
- package/archive.js +3 -0
- package/bundle.d.ts +1 -0
- package/bundle.js +3 -0
- package/capture-lite.d.ts +1 -0
- package/capture-lite.js +3 -0
- package/import-archive-lite.d.ts +1 -0
- package/import-archive-lite.js +3 -0
- package/import-archive-parsers.d.ts +1 -0
- package/import-archive-parsers.js +3 -0
- package/import-archive.d.ts +1 -0
- package/import-archive.js +3 -0
- package/import-lite.d.ts +1 -0
- package/import-lite.js +3 -0
- package/import-parsers.d.ts +1 -0
- package/import-parsers.js +3 -0
- package/import.d.ts +1 -0
- package/import.js +3 -0
- package/index.d.ts +1 -0
- package/index.js +3 -1
- package/node-modules.d.ts +1 -0
- package/node-modules.js +3 -0
- package/node-powers.d.ts +1 -0
- package/node-powers.js +3 -0
- package/package.json +10 -14
- package/src/archive-lite.d.ts +6 -6
- package/src/archive-lite.d.ts.map +1 -1
- package/src/archive-lite.js +35 -33
- package/src/archive.d.ts.map +1 -1
- package/src/archive.js +132 -28
- package/src/bundle.d.ts.map +1 -1
- package/src/bundle.js +54 -14
- package/src/capture-lite.d.ts +2 -2
- package/src/capture-lite.d.ts.map +1 -1
- package/src/capture-lite.js +21 -17
- package/src/compartment-map.d.ts +2 -1
- package/src/compartment-map.d.ts.map +1 -1
- package/src/compartment-map.js +11 -3
- package/src/extension.d.ts.map +1 -1
- package/src/extension.js +1 -3
- package/src/import-archive-lite.d.ts +3 -19
- package/src/import-archive-lite.d.ts.map +1 -1
- package/src/import-archive-lite.js +43 -57
- package/src/import-archive-parsers.d.ts.map +1 -1
- package/src/import-archive-parsers.js +1 -0
- package/src/import-archive.d.ts +2 -2
- package/src/import-archive.d.ts.map +1 -1
- package/src/import-archive.js +15 -12
- package/src/import-hook.d.ts +2 -1
- package/src/import-hook.d.ts.map +1 -1
- package/src/import-hook.js +87 -76
- package/src/import-lite.d.ts.map +1 -1
- package/src/import-lite.js +23 -23
- package/src/import.d.ts.map +1 -1
- package/src/import.js +47 -23
- package/src/infer-exports.d.ts.map +1 -1
- package/src/infer-exports.js +2 -3
- package/src/json.d.ts.map +1 -1
- package/src/json.js +1 -2
- package/src/link.d.ts.map +1 -1
- package/src/link.js +12 -29
- package/src/map-parser.d.ts.map +1 -1
- package/src/map-parser.js +21 -16
- package/src/node-module-specifier.d.ts.map +1 -1
- package/src/node-module-specifier.js +2 -3
- package/src/node-modules.d.ts +9 -7
- package/src/node-modules.d.ts.map +1 -1
- package/src/node-modules.js +176 -87
- package/src/node-powers.d.ts +8 -8
- package/src/node-powers.d.ts.map +1 -1
- package/src/node-powers.js +29 -24
- package/src/parse-archive-cjs.d.ts +3 -2
- package/src/parse-archive-cjs.d.ts.map +1 -1
- package/src/parse-archive-cjs.js +5 -4
- package/src/parse-archive-mjs.d.ts +3 -2
- package/src/parse-archive-mjs.d.ts.map +1 -1
- package/src/parse-archive-mjs.js +7 -5
- package/src/parse-bytes.d.ts +3 -2
- package/src/parse-bytes.d.ts.map +1 -1
- package/src/parse-bytes.js +7 -5
- package/src/parse-cjs-shared-export-wrapper.d.ts.map +1 -1
- package/src/parse-cjs-shared-export-wrapper.js +7 -6
- package/src/parse-cjs.d.ts +3 -2
- package/src/parse-cjs.d.ts.map +1 -1
- package/src/parse-cjs.js +14 -5
- package/src/parse-json.d.ts.map +1 -1
- package/src/parse-json.js +6 -6
- package/src/parse-mjs.d.ts +3 -2
- package/src/parse-mjs.d.ts.map +1 -1
- package/src/parse-mjs.js +3 -3
- package/src/parse-pre-cjs.d.ts +3 -2
- package/src/parse-pre-cjs.d.ts.map +1 -1
- package/src/parse-pre-cjs.js +14 -4
- package/src/parse-pre-mjs.d.ts +3 -2
- package/src/parse-pre-mjs.d.ts.map +1 -1
- package/src/parse-pre-mjs.js +4 -3
- package/src/parse-text.d.ts +3 -2
- package/src/parse-text.d.ts.map +1 -1
- package/src/parse-text.js +6 -5
- package/src/policy-format.d.ts +1 -1
- package/src/policy-format.d.ts.map +1 -1
- package/src/policy-format.js +5 -7
- package/src/policy.d.ts.map +1 -1
- package/src/policy.js +15 -10
- package/src/powers.d.ts.map +1 -1
- package/src/powers.js +15 -12
- package/src/search.d.ts.map +1 -1
- package/src/search.js +10 -7
- package/src/types/compartment-map-schema.d.ts +98 -0
- package/src/types/compartment-map-schema.d.ts.map +1 -0
- package/src/types/compartment-map-schema.ts +116 -0
- package/src/types/external.d.ts +256 -0
- package/src/types/external.d.ts.map +1 -0
- package/src/types/external.ts +379 -0
- package/src/types/internal.d.ts +161 -0
- package/src/types/internal.d.ts.map +1 -0
- package/src/types/internal.ts +216 -0
- package/src/types/node-powers.d.ts +46 -0
- package/src/types/node-powers.d.ts.map +1 -0
- package/src/types/node-powers.ts +52 -0
- package/src/types/policy-schema.d.ts +81 -0
- package/src/types/policy-schema.d.ts.map +1 -0
- package/src/types/policy-schema.ts +131 -0
- package/src/types/policy.d.ts +20 -0
- package/src/types/policy.d.ts.map +1 -0
- package/src/types/policy.ts +42 -0
- package/src/types/powers.d.ts +83 -0
- package/src/types/powers.d.ts.map +1 -0
- package/src/types/powers.ts +120 -0
- package/src/types/typescript.d.ts +28 -0
- package/src/types/typescript.d.ts.map +1 -0
- package/src/types/typescript.ts +41 -0
- package/src/types-external.d.ts +14 -0
- package/src/types-external.js +2 -0
- package/src/types.d.ts +9 -787
- package/src/url.d.ts.map +1 -1
- package/src/url.js +2 -3
- package/src/types.d.ts.map +0 -1
- package/src/types.js +0 -995
- package/types.d.ts +0 -19
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module These types describe the schema of a `compartment-map.json`, which
|
|
3
|
+
* in turn describes how to load and link an application from storage, like a
|
|
4
|
+
* file system, web host, or zip archive.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/* eslint-disable no-use-before-define */
|
|
8
|
+
|
|
9
|
+
import type { SomePackagePolicy } from './policy-schema.js';
|
|
10
|
+
import type { LiteralUnion } from './typescript.js';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* A compartment map describes how to construct an application as a graph of
|
|
14
|
+
* Compartments, each corresponding to Node.js style packaged modules.
|
|
15
|
+
*/
|
|
16
|
+
export type CompartmentMapDescriptor = {
|
|
17
|
+
tags: Array<string>;
|
|
18
|
+
entry: EntryDescriptor;
|
|
19
|
+
compartments: Record<string, CompartmentDescriptor>;
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* The entry descriptor of a compartment map denotes the root module of an
|
|
24
|
+
* application and the compartment that contains it.
|
|
25
|
+
*/
|
|
26
|
+
export type EntryDescriptor = {
|
|
27
|
+
compartment: string;
|
|
28
|
+
module: string;
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* A compartment descriptor corresponds to a single Compartment
|
|
33
|
+
* of an assembled Application and describes how to construct
|
|
34
|
+
* one for a given library or application `package.json`.
|
|
35
|
+
*/
|
|
36
|
+
export type CompartmentDescriptor = {
|
|
37
|
+
label: string;
|
|
38
|
+
/** shortest path of dependency names to this compartment */
|
|
39
|
+
path?: Array<string>;
|
|
40
|
+
/**
|
|
41
|
+
* the name of the originating package suitable for constructing a sourceURL
|
|
42
|
+
* prefix that will match it to files in a developer workspace.
|
|
43
|
+
*/
|
|
44
|
+
name: string;
|
|
45
|
+
location: string;
|
|
46
|
+
/**
|
|
47
|
+
* whether this compartment was retained by any module in the solution. This
|
|
48
|
+
* property should never appear in an archived compartment map.
|
|
49
|
+
*/
|
|
50
|
+
retained?: boolean;
|
|
51
|
+
modules: Record<string, ModuleDescriptor>;
|
|
52
|
+
scopes: Record<string, ScopeDescriptor>;
|
|
53
|
+
/** language for extension */
|
|
54
|
+
parsers: LanguageForExtension;
|
|
55
|
+
/** language for module specifier */
|
|
56
|
+
types: LanguageForModuleSpecifier;
|
|
57
|
+
/** policy specific to compartment */
|
|
58
|
+
policy: SomePackagePolicy;
|
|
59
|
+
/** List of compartment names this Compartment depends upon */
|
|
60
|
+
compartments: Set<string>;
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* For every module explicitly mentioned in an `exports` field of a
|
|
65
|
+
* `package.json`, there is a corresponding module descriptor.
|
|
66
|
+
*/
|
|
67
|
+
export type ModuleDescriptor = {
|
|
68
|
+
compartment?: string;
|
|
69
|
+
module?: string;
|
|
70
|
+
location?: string;
|
|
71
|
+
parser?: Language;
|
|
72
|
+
/** in base 16, hex */
|
|
73
|
+
sha512?: string;
|
|
74
|
+
exit?: string;
|
|
75
|
+
deferredError?: string;
|
|
76
|
+
retained?: boolean;
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Scope descriptors link all names under a prefix to modules in another
|
|
81
|
+
* compartment, like a wildcard.
|
|
82
|
+
* These are employed to link any module not explicitly mentioned
|
|
83
|
+
* in a `package.json` file, when that `package.json` file does not have
|
|
84
|
+
* an explicit `exports` map.
|
|
85
|
+
*/
|
|
86
|
+
export type ScopeDescriptor = {
|
|
87
|
+
compartment: string;
|
|
88
|
+
module?: string;
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Natively-recognized and custom languages
|
|
93
|
+
*/
|
|
94
|
+
export type Language = LiteralUnion<BuiltinLanguage, string>;
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Languages natively recognized by `compartment-mapper`
|
|
98
|
+
*/
|
|
99
|
+
export type BuiltinLanguage =
|
|
100
|
+
| 'mjs'
|
|
101
|
+
| 'cjs'
|
|
102
|
+
| 'json'
|
|
103
|
+
| 'bytes'
|
|
104
|
+
| 'text'
|
|
105
|
+
| 'pre-mjs-json'
|
|
106
|
+
| 'pre-cjs-json';
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Mapping of file extension to {@link Language Languages}.
|
|
110
|
+
*/
|
|
111
|
+
export type LanguageForExtension = Record<string, Language>;
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Mapping of module specifier to {@link Language Languages}.
|
|
115
|
+
*/
|
|
116
|
+
export type LanguageForModuleSpecifier = Record<string, Language>;
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module External types of the compartment mapper.
|
|
3
|
+
*/
|
|
4
|
+
import type { FinalStaticModuleType, StaticModuleType, ThirdPartyStaticModuleInterface, Transform } from 'ses';
|
|
5
|
+
import type { CompartmentMapDescriptor, CompartmentDescriptor, Language, LanguageForExtension } from './compartment-map-schema.js';
|
|
6
|
+
import type { HashFn, ReadFn, ReadPowers } from './powers.js';
|
|
7
|
+
/**
|
|
8
|
+
* Set of options available in the context of code execution.
|
|
9
|
+
*
|
|
10
|
+
* May be used only as an intersection with other options types.
|
|
11
|
+
*/
|
|
12
|
+
export type ExecuteOptions = Partial<{
|
|
13
|
+
globals: object;
|
|
14
|
+
transforms: Array<Transform>;
|
|
15
|
+
__shimTransforms__: Array<Transform>;
|
|
16
|
+
attenuations: Record<string, object>;
|
|
17
|
+
Compartment: typeof Compartment;
|
|
18
|
+
}> & ModulesOption & ExitModuleImportHookOption;
|
|
19
|
+
export type ParseArchiveOptions = Partial<{
|
|
20
|
+
expectedSha512: string;
|
|
21
|
+
computeSha512: HashFn;
|
|
22
|
+
computeSourceLocation: ComputeSourceLocationHook;
|
|
23
|
+
computeSourceMapLocation: ComputeSourceMapLocationHook;
|
|
24
|
+
}> & ModulesOption & CompartmentOption & ParserForLanguageOption & ExitModuleImportHookOption;
|
|
25
|
+
export type LoadArchiveOptions = ParseArchiveOptions;
|
|
26
|
+
export type MapNodeModulesOptions = MapNodeModulesOptionsOmitPolicy & PolicyOption;
|
|
27
|
+
type MapNodeModulesOptionsOmitPolicy = Partial<{
|
|
28
|
+
/** @deprecated renamed `conditions` to be consistent with Node.js */
|
|
29
|
+
tags: Set<string>;
|
|
30
|
+
/**
|
|
31
|
+
* Conditions for package `"imports"` and `"exports"`.
|
|
32
|
+
* The `"development"` condition also implies that `devDependencies` of the
|
|
33
|
+
* entry package should be reachable.
|
|
34
|
+
* Common conditions include `"node"`, `"browser"`, `"require"`, `"import"`,
|
|
35
|
+
* and `"default"`.
|
|
36
|
+
* The conditions `"import"`, `"default"`, and `"endo"` need not be
|
|
37
|
+
* specified.
|
|
38
|
+
*/
|
|
39
|
+
conditions: Set<string>;
|
|
40
|
+
/**
|
|
41
|
+
* @deprecated add `"development"` to the `conditions` Set option.
|
|
42
|
+
* Including `devDependencies` has been subsumed by implication
|
|
43
|
+
* of having the `"development"` condition.
|
|
44
|
+
*/
|
|
45
|
+
dev: boolean;
|
|
46
|
+
/** Dependencies to make reachable from any package */
|
|
47
|
+
commonDependencies: Record<string, string>;
|
|
48
|
+
/** Maps extensions to languages for all packages, like `txt` to `text` */
|
|
49
|
+
languageForExtension: LanguageForExtension;
|
|
50
|
+
/** Maps additional extensions to languages for all type=module packages */
|
|
51
|
+
moduleLanguageForExtension: LanguageForExtension;
|
|
52
|
+
/** Maps additional extensions to languages for all type=commonjs packages (default) */
|
|
53
|
+
commonjsLanguageForExtension: LanguageForExtension;
|
|
54
|
+
/** Maps extensions to languages for packages not under node_modules */
|
|
55
|
+
workspaceLanguageForExtension: LanguageForExtension;
|
|
56
|
+
/**
|
|
57
|
+
* Maps additional extensions to languages for all type=module packages that
|
|
58
|
+
* are not under node_modules
|
|
59
|
+
*/
|
|
60
|
+
workspaceModuleLanguageForExtension: LanguageForExtension;
|
|
61
|
+
/**
|
|
62
|
+
* Maps additional extensions to languages for all type=commonjs packages
|
|
63
|
+
* (default)
|
|
64
|
+
*/
|
|
65
|
+
workspaceCommonjsLanguageForExtension: LanguageForExtension;
|
|
66
|
+
/**
|
|
67
|
+
* Accounts for languages not present as values in any of the extension to
|
|
68
|
+
* language mappings.
|
|
69
|
+
* For higher level functions like `importLocation`, these are inferred
|
|
70
|
+
* from the `parserForLanguage` option.
|
|
71
|
+
*/
|
|
72
|
+
languages: Array<Language>;
|
|
73
|
+
}>;
|
|
74
|
+
/**
|
|
75
|
+
* @deprecated Use `mapNodeModules()`.
|
|
76
|
+
*/
|
|
77
|
+
export type CompartmentMapForNodeModulesOptions = Omit<MapNodeModulesOptions, 'conditions' | 'tags'>;
|
|
78
|
+
export type CaptureLiteOptions = ImportingOptions & LinkingOptions & PolicyOption;
|
|
79
|
+
export type ArchiveLiteOptions = SyncOrAsyncArchiveOptions & ModuleTransformsOption & ImportingOptions & ExitModuleImportHookOption & LinkingOptions;
|
|
80
|
+
export type SyncArchiveLiteOptions = SyncOrAsyncArchiveOptions & SyncModuleTransformsOption & SyncImportingOptions & ExitModuleImportNowHookOption;
|
|
81
|
+
export type ArchiveOptions = Omit<MapNodeModulesOptions, 'language'> & ArchiveLiteOptions;
|
|
82
|
+
export type SyncArchiveOptions = Omit<MapNodeModulesOptions, 'languages'> & SyncArchiveLiteOptions;
|
|
83
|
+
/**
|
|
84
|
+
* Options for `loadLocation()`
|
|
85
|
+
*/
|
|
86
|
+
export type LoadLocationOptions = ArchiveOptions & SyncArchiveOptions;
|
|
87
|
+
/**
|
|
88
|
+
* Options for `importLocation()` necessary (but not sufficient--see
|
|
89
|
+
* `ReadNowPowers`) for dynamic require support
|
|
90
|
+
*/
|
|
91
|
+
export type SyncImportLocationOptions = SyncArchiveOptions & ExecuteOptions;
|
|
92
|
+
export type ImportLocationOptions = ArchiveOptions & ExecuteOptions;
|
|
93
|
+
export type SearchSuffixesOption = {
|
|
94
|
+
/**
|
|
95
|
+
* Suffixes to search if the unmodified specifier is not found. Pass `[]` to
|
|
96
|
+
* emulate Node.js' strict behavior. The default handles Node.js' CommonJS
|
|
97
|
+
* behavior.
|
|
98
|
+
* Unlike Node.js, the Compartment Mapper lifts CommonJS up, more like a
|
|
99
|
+
* bundler, and does not attempt to vary the behavior of resolution depending
|
|
100
|
+
* on the language of the importing module.
|
|
101
|
+
*/
|
|
102
|
+
searchSuffixes?: string[];
|
|
103
|
+
};
|
|
104
|
+
export type SourceMapHookOption = {
|
|
105
|
+
sourceMapHook?: SourceMapHook;
|
|
106
|
+
};
|
|
107
|
+
export type ModulesOption = {
|
|
108
|
+
modules?: Record<string, any>;
|
|
109
|
+
};
|
|
110
|
+
export type ExitModuleImportHookOption = {
|
|
111
|
+
importHook?: ExitModuleImportHook;
|
|
112
|
+
};
|
|
113
|
+
export type ExitModuleImportNowHookOption = {
|
|
114
|
+
importNowHook?: ExitModuleImportNowHook;
|
|
115
|
+
};
|
|
116
|
+
export type ParserForLanguageOption = {
|
|
117
|
+
parserForLanguage?: ParserForLanguage;
|
|
118
|
+
};
|
|
119
|
+
export type CompartmentOption = {
|
|
120
|
+
Compartment?: typeof Compartment;
|
|
121
|
+
};
|
|
122
|
+
export type ModuleTransformsOption = {
|
|
123
|
+
moduleTransforms?: ModuleTransforms;
|
|
124
|
+
};
|
|
125
|
+
export type SyncModuleTransformsOption = {
|
|
126
|
+
syncModuleTransforms?: SyncModuleTransforms;
|
|
127
|
+
};
|
|
128
|
+
export type PolicyOption = {
|
|
129
|
+
policy?: any;
|
|
130
|
+
};
|
|
131
|
+
export type LanguageForExtensionOption = {
|
|
132
|
+
languageForExtension?: LanguageForExtension;
|
|
133
|
+
};
|
|
134
|
+
export type SyncOrAsyncArchiveOptions = Partial<{
|
|
135
|
+
captureSourceLocation: CaptureSourceLocationHook;
|
|
136
|
+
}> & ParserForLanguageOption & CompartmentOption & PolicyOption;
|
|
137
|
+
type SyncOrAsyncImportingOptions = SearchSuffixesOption & SourceMapHookOption;
|
|
138
|
+
type ImportingOptions = ModulesOption & SyncOrAsyncImportingOptions & ExitModuleImportHookOption;
|
|
139
|
+
type SyncImportingOptions = ModulesOption & SyncOrAsyncImportingOptions & ExitModuleImportNowHookOption;
|
|
140
|
+
type LinkingOptions = ParserForLanguageOption & CompartmentOption & SyncModuleTransformsOption & ModuleTransformsOption;
|
|
141
|
+
/**
|
|
142
|
+
* The result of `captureFromMap`.
|
|
143
|
+
*/
|
|
144
|
+
export type CaptureResult = {
|
|
145
|
+
captureCompartmentMap: CompartmentMapDescriptor;
|
|
146
|
+
captureSources: Sources;
|
|
147
|
+
compartmentRenames: Record<string, string>;
|
|
148
|
+
};
|
|
149
|
+
/**
|
|
150
|
+
* The compartment mapper can capture the Sources for all loaded modules
|
|
151
|
+
* for bundling, archiving, or analysis.
|
|
152
|
+
*/
|
|
153
|
+
export type Sources = Record<string, CompartmentSources>;
|
|
154
|
+
export type CompartmentSources = Record<string, ModuleSource>;
|
|
155
|
+
export type ModuleSource = Partial<{
|
|
156
|
+
/** module loading error deferred to later stage */
|
|
157
|
+
deferredError: string;
|
|
158
|
+
/** package-relative location */
|
|
159
|
+
location: string;
|
|
160
|
+
/** fully qualified location */
|
|
161
|
+
sourceLocation: string;
|
|
162
|
+
bytes: Uint8Array;
|
|
163
|
+
/** in lowercase base-16 (hexadecimal) */
|
|
164
|
+
sha512: string;
|
|
165
|
+
parser: Language;
|
|
166
|
+
/** indicates that this is a reference that exits the mapped compartments */
|
|
167
|
+
exit: string;
|
|
168
|
+
/** module for the module */
|
|
169
|
+
record: StaticModuleType;
|
|
170
|
+
}>;
|
|
171
|
+
export type SourceMapHook = (sourceMap: string, details: SourceMapHookDetails) => void;
|
|
172
|
+
export type SourceMapHookDetails = {
|
|
173
|
+
compartment: string;
|
|
174
|
+
module: string;
|
|
175
|
+
location: string;
|
|
176
|
+
sha512: string;
|
|
177
|
+
};
|
|
178
|
+
export type ModuleTransforms = Record<string, ModuleTransform>;
|
|
179
|
+
export type SyncModuleTransforms = Record<string, SyncModuleTransform>;
|
|
180
|
+
export type ModuleTransform = (...args: ModuleTransformArguments) => Promise<ModuleTransformResult>;
|
|
181
|
+
export type SyncModuleTransform = (...args: ModuleTransformArguments) => ModuleTransformResult;
|
|
182
|
+
type ModuleTransformArguments = [
|
|
183
|
+
bytes: Uint8Array,
|
|
184
|
+
specifier: string,
|
|
185
|
+
moduleLocation: string,
|
|
186
|
+
packageLocation: string,
|
|
187
|
+
params: {
|
|
188
|
+
sourceMap?: string;
|
|
189
|
+
}
|
|
190
|
+
];
|
|
191
|
+
type ModuleTransformResult = {
|
|
192
|
+
bytes: Uint8Array;
|
|
193
|
+
parser: Language;
|
|
194
|
+
sourceMap?: string;
|
|
195
|
+
};
|
|
196
|
+
export type ExitModuleImportHook = (specifier: string, packageLocation: string) => Promise<ThirdPartyStaticModuleInterface | undefined>;
|
|
197
|
+
export type ExitModuleImportNowHook = (specifier: string, packageLocation: string) => ThirdPartyStaticModuleInterface | undefined;
|
|
198
|
+
export type ComputeSourceLocationHook = (compartmentName: string, moduleSpecifier: string) => string | undefined;
|
|
199
|
+
/**
|
|
200
|
+
* A hook for archiving that allows the caller to create a side-table or
|
|
201
|
+
* out-of-band reference for where the archive's sources originated,
|
|
202
|
+
* intended to assist debuggers.
|
|
203
|
+
* When making and importing an archive locally, `import-archive.js` can inject
|
|
204
|
+
* the original source location for compartment name and module specifier chosen
|
|
205
|
+
* by `archive.js.
|
|
206
|
+
*/
|
|
207
|
+
export type CaptureSourceLocationHook = (compartmentName: string, moduleSpecifier: string, sourceLocation: string) => void;
|
|
208
|
+
export type ComputeSourceMapLocationDetails = {
|
|
209
|
+
compartment: string;
|
|
210
|
+
module: string;
|
|
211
|
+
location: string;
|
|
212
|
+
sha512: string;
|
|
213
|
+
};
|
|
214
|
+
export type ComputeSourceMapLocationHook = (details: ComputeSourceMapLocationDetails) => string;
|
|
215
|
+
export type ParserImplementation = {
|
|
216
|
+
/**
|
|
217
|
+
* Whether a heuristic is used by parser to detect imports.
|
|
218
|
+
* CommonJS uses a lexer to heuristically discover static require calls.
|
|
219
|
+
*/
|
|
220
|
+
heuristicImports: boolean;
|
|
221
|
+
parse: ParseFn;
|
|
222
|
+
synchronous: boolean;
|
|
223
|
+
};
|
|
224
|
+
type ParseArguments = [
|
|
225
|
+
bytes: Uint8Array,
|
|
226
|
+
specifier: string,
|
|
227
|
+
moduleLocation: string,
|
|
228
|
+
packageLocation: string,
|
|
229
|
+
options?: Partial<{
|
|
230
|
+
sourceMap: string;
|
|
231
|
+
sourceMapHook: SourceMapHook;
|
|
232
|
+
sourceMapUrl: string;
|
|
233
|
+
readPowers: ReadFn | ReadPowers;
|
|
234
|
+
compartmentDescriptor: CompartmentDescriptor;
|
|
235
|
+
}>
|
|
236
|
+
];
|
|
237
|
+
/**
|
|
238
|
+
* Result of a {@link ParseFn} or {@link AsyncParseFn}
|
|
239
|
+
*/
|
|
240
|
+
export type ParseResult = {
|
|
241
|
+
bytes: Uint8Array;
|
|
242
|
+
parser: Language;
|
|
243
|
+
record: FinalStaticModuleType;
|
|
244
|
+
sourceMap?: string;
|
|
245
|
+
};
|
|
246
|
+
export type AsyncParseFn = (...args: ParseArguments) => Promise<ParseResult>;
|
|
247
|
+
export type ParseFn = {
|
|
248
|
+
isSyncParser?: true;
|
|
249
|
+
} & ((...args: ParseArguments) => ParseResult);
|
|
250
|
+
/**
|
|
251
|
+
* Mapping of `Language` to {@link ParserImplementation
|
|
252
|
+
* ParserImplementations}
|
|
253
|
+
*/
|
|
254
|
+
export type ParserForLanguage = Record<Language | string, ParserImplementation>;
|
|
255
|
+
export {};
|
|
256
|
+
//# sourceMappingURL=external.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"external.d.ts","sourceRoot":"","sources":["external.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EACV,qBAAqB,EACrB,gBAAgB,EAChB,+BAA+B,EAC/B,SAAS,EACV,MAAM,KAAK,CAAC;AACb,OAAO,KAAK,EACV,wBAAwB,EACxB,qBAAqB,EACrB,QAAQ,EACR,oBAAoB,EACrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9D;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC7B,kBAAkB,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACrC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,WAAW,EAAE,OAAO,WAAW,CAAC;CACjC,CAAC,GACA,aAAa,GACb,0BAA0B,CAAC;AAE7B,MAAM,MAAM,mBAAmB,GAAG,OAAO,CAAC;IACxC,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,qBAAqB,EAAE,yBAAyB,CAAC;IACjD,wBAAwB,EAAE,4BAA4B,CAAC;CACxD,CAAC,GACA,aAAa,GACb,iBAAiB,GACjB,uBAAuB,GACvB,0BAA0B,CAAC;AAE7B,MAAM,MAAM,kBAAkB,GAAG,mBAAmB,CAAC;AAErD,MAAM,MAAM,qBAAqB,GAAG,+BAA+B,GACjE,YAAY,CAAC;AACf,KAAK,+BAA+B,GAAG,OAAO,CAAC;IAC7C,qEAAqE;IACrE,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAClB;;;;;;;;OAQG;IACH,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACxB;;;;OAIG;IACH,GAAG,EAAE,OAAO,CAAC;IACb,sDAAsD;IACtD,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,0EAA0E;IAC1E,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,2EAA2E;IAC3E,0BAA0B,EAAE,oBAAoB,CAAC;IACjD,uFAAuF;IACvF,4BAA4B,EAAE,oBAAoB,CAAC;IACnD,uEAAuE;IACvE,6BAA6B,EAAE,oBAAoB,CAAC;IACpD;;;OAGG;IACH,mCAAmC,EAAE,oBAAoB,CAAC;IAC1D;;;OAGG;IACH,qCAAqC,EAAE,oBAAoB,CAAC;IAC5D;;;;;OAKG;IACH,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;CAC5B,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,mCAAmC,GAAG,IAAI,CACpD,qBAAqB,EACrB,YAAY,GAAG,MAAM,CACtB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,gBAAgB,GAC/C,cAAc,GACd,YAAY,CAAC;AAEf,MAAM,MAAM,kBAAkB,GAAG,yBAAyB,GACxD,sBAAsB,GACtB,gBAAgB,GAChB,0BAA0B,GAC1B,cAAc,CAAC;AAEjB,MAAM,MAAM,sBAAsB,GAAG,yBAAyB,GAC5D,0BAA0B,GAC1B,oBAAoB,GACpB,6BAA6B,CAAC;AAEhC,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,qBAAqB,EAAE,UAAU,CAAC,GAClE,kBAAkB,CAAC;AAErB,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,qBAAqB,EAAE,WAAW,CAAC,GACvE,sBAAsB,CAAC;AAEzB;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,cAAc,GAAG,kBAAkB,CAAC;AAEtE;;;GAGG;AACH,MAAM,MAAM,yBAAyB,GAAG,kBAAkB,GAAG,cAAc,CAAC;AAE5E,MAAM,MAAM,qBAAqB,GAAG,cAAc,GAAG,cAAc,CAAC;AAKpE,MAAM,MAAM,oBAAoB,GAAG;IACjC;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,UAAU,CAAC,EAAE,oBAAoB,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,aAAa,CAAC,EAAE,uBAAuB,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,WAAW,CAAC,EAAE,OAAO,WAAW,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,CAAC,EAAE,GAAG,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;CAC7C,CAAC;AAKF,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAAC;IAC9C,qBAAqB,EAAE,yBAAyB,CAAC;CAClD,CAAC,GACA,uBAAuB,GACvB,iBAAiB,GACjB,YAAY,CAAC;AAEf,KAAK,2BAA2B,GAAG,oBAAoB,GAAG,mBAAmB,CAAC;AAE9E,KAAK,gBAAgB,GAAG,aAAa,GACnC,2BAA2B,GAC3B,0BAA0B,CAAC;AAE7B,KAAK,oBAAoB,GAAG,aAAa,GACvC,2BAA2B,GAC3B,6BAA6B,CAAC;AAEhC,KAAK,cAAc,GAAG,uBAAuB,GAC3C,iBAAiB,GACjB,0BAA0B,GAC1B,sBAAsB,CAAC;AAIzB;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,qBAAqB,EAAE,wBAAwB,CAAC;IAChD,cAAc,EAAE,OAAO,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5C,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;AACzD,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAG9D,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC;IACjC,mDAAmD;IACnD,aAAa,EAAE,MAAM,CAAC;IACtB,gCAAgC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,+BAA+B;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,UAAU,CAAC;IAClB,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,QAAQ,CAAC;IACjB,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,MAAM,EAAE,gBAAgB,CAAC;CAC1B,CAAC,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAC1B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,oBAAoB,KAC1B,IAAI,CAAC;AACV,MAAM,MAAM,oBAAoB,GAAG;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;AAE/D,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;AAEvE,MAAM,MAAM,eAAe,GAAG,CAC5B,GAAG,IAAI,EAAE,wBAAwB,KAC9B,OAAO,CAAC,qBAAqB,CAAC,CAAC;AACpC,MAAM,MAAM,mBAAmB,GAAG,CAChC,GAAG,IAAI,EAAE,wBAAwB,KAC9B,qBAAqB,CAAC;AAE3B,KAAK,wBAAwB,GAAG;IAC9B,KAAK,EAAE,UAAU;IACjB,SAAS,EAAE,MAAM;IACjB,cAAc,EAAE,MAAM;IACtB,eAAe,EAAE,MAAM;IACvB,MAAM,EAAE;QACN,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB;CACF,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC3B,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE,QAAQ,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,CACjC,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,KACpB,OAAO,CAAC,+BAA+B,GAAG,SAAS,CAAC,CAAC;AAE1D,MAAM,MAAM,uBAAuB,GAAG,CACpC,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,KACpB,+BAA+B,GAAG,SAAS,CAAC;AAEjD,MAAM,MAAM,yBAAyB,GAAG,CACtC,eAAe,EAAE,MAAM,EACvB,eAAe,EAAE,MAAM,KACpB,MAAM,GAAG,SAAS,CAAC;AAExB;;;;;;;GAOG;AACH,MAAM,MAAM,yBAAyB,GAAG,CACtC,eAAe,EAAE,MAAM,EACvB,eAAe,EAAE,MAAM,EACvB,cAAc,EAAE,MAAM,KACnB,IAAI,CAAC;AAEV,MAAM,MAAM,+BAA+B,GAAG;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG,CACzC,OAAO,EAAE,+BAA+B,KACrC,MAAM,CAAC;AAEZ,MAAM,MAAM,oBAAoB,GAAG;IACjC;;;OAGG;IACH,gBAAgB,EAAE,OAAO,CAAC;IAC1B,KAAK,EAAE,OAAO,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,KAAK,cAAc,GAAG;IACpB,KAAK,EAAE,UAAU;IACjB,SAAS,EAAE,MAAM;IACjB,cAAc,EAAE,MAAM;IACtB,eAAe,EAAE,MAAM;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,EAAE,aAAa,CAAC;QAC7B,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,GAAG,UAAU,CAAC;QAChC,qBAAqB,EAAE,qBAAqB,CAAC;KAC9C,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE,QAAQ,CAAC;IACjB,MAAM,EAAE,qBAAqB,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,EAAE,cAAc,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;AAE7E,MAAM,MAAM,OAAO,GAAG;IAAE,YAAY,CAAC,EAAE,IAAI,CAAA;CAAE,GAAG,CAAC,CAC/C,GAAG,IAAI,EAAE,cAAc,KACpB,WAAW,CAAC,CAAC;AAElB;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,QAAQ,GAAG,MAAM,EAAE,oBAAoB,CAAC,CAAC"}
|