@endo/compartment-mapper 1.6.3 → 2.1.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/package.json +24 -14
- package/src/archive-lite.d.ts +7 -7
- package/src/archive-lite.d.ts.map +1 -1
- package/src/archive-lite.js +81 -30
- package/src/archive.d.ts.map +1 -1
- package/src/archive.js +7 -0
- package/src/bundle-lite.d.ts +3 -3
- package/src/bundle-lite.d.ts.map +1 -1
- package/src/bundle-lite.js +19 -24
- package/src/bundle.d.ts +3 -3
- package/src/bundle.d.ts.map +1 -1
- package/src/bundle.js +19 -24
- package/src/capture-lite.d.ts +2 -2
- package/src/capture-lite.d.ts.map +1 -1
- package/src/capture-lite.js +243 -25
- package/src/compartment-map.d.ts +9 -2
- package/src/compartment-map.d.ts.map +1 -1
- package/src/compartment-map.js +738 -254
- package/src/digest.d.ts +22 -2
- package/src/digest.d.ts.map +1 -1
- package/src/digest.js +180 -57
- package/src/generic-graph.d.ts +7 -25
- package/src/generic-graph.d.ts.map +1 -1
- package/src/generic-graph.js +83 -108
- package/src/guards.d.ts +18 -0
- package/src/guards.d.ts.map +1 -0
- package/src/guards.js +109 -0
- package/src/hooks.md +124 -0
- package/src/import-archive-lite.d.ts.map +1 -1
- package/src/import-archive-lite.js +15 -11
- package/src/import-archive.d.ts +5 -19
- package/src/import-archive.d.ts.map +1 -1
- package/src/import-archive.js +7 -27
- package/src/import-hook.d.ts +4 -3
- package/src/import-hook.d.ts.map +1 -1
- package/src/import-hook.js +140 -70
- package/src/import-lite.d.ts +6 -6
- package/src/import-lite.d.ts.map +1 -1
- package/src/import-lite.js +8 -5
- package/src/import.d.ts +3 -3
- package/src/import.d.ts.map +1 -1
- package/src/import.js +16 -6
- package/src/infer-exports.d.ts +4 -2
- package/src/infer-exports.d.ts.map +1 -1
- package/src/infer-exports.js +172 -23
- package/src/link.d.ts +4 -3
- package/src/link.d.ts.map +1 -1
- package/src/link.js +122 -52
- package/src/node-modules.d.ts +4 -3
- package/src/node-modules.d.ts.map +1 -1
- package/src/node-modules.js +513 -151
- package/src/parse-cjs-shared-export-wrapper.d.ts.map +1 -1
- package/src/parse-cjs-shared-export-wrapper.js +3 -1
- package/src/pattern-replacement.d.ts +6 -0
- package/src/pattern-replacement.d.ts.map +1 -0
- package/src/pattern-replacement.js +198 -0
- package/src/policy-format.d.ts +22 -5
- package/src/policy-format.d.ts.map +1 -1
- package/src/policy-format.js +342 -108
- package/src/policy.d.ts +13 -28
- package/src/policy.d.ts.map +1 -1
- package/src/policy.js +161 -106
- package/src/types/canonical-name.d.ts +97 -0
- package/src/types/canonical-name.d.ts.map +1 -0
- package/src/types/canonical-name.ts +151 -0
- package/src/types/compartment-map-schema.d.ts +121 -35
- package/src/types/compartment-map-schema.d.ts.map +1 -1
- package/src/types/compartment-map-schema.ts +211 -37
- package/src/types/external.d.ts +240 -76
- package/src/types/external.d.ts.map +1 -1
- package/src/types/external.ts +305 -74
- package/src/types/generic-graph.d.ts +8 -2
- package/src/types/generic-graph.d.ts.map +1 -1
- package/src/types/generic-graph.ts +7 -2
- package/src/types/internal.d.ts +31 -50
- package/src/types/internal.d.ts.map +1 -1
- package/src/types/internal.ts +60 -58
- package/src/types/node-modules.d.ts +112 -14
- package/src/types/node-modules.d.ts.map +1 -1
- package/src/types/node-modules.ts +152 -13
- package/src/types/pattern-replacement.d.ts +62 -0
- package/src/types/pattern-replacement.d.ts.map +1 -0
- package/src/types/pattern-replacement.ts +70 -0
- package/src/types/policy-schema.d.ts +26 -11
- package/src/types/policy-schema.d.ts.map +1 -1
- package/src/types/policy-schema.ts +29 -16
- package/src/types/policy.d.ts +6 -2
- package/src/types/policy.d.ts.map +1 -1
- package/src/types/policy.ts +7 -2
- package/src/types/powers.d.ts +11 -9
- package/src/types/powers.d.ts.map +1 -1
- package/src/types/powers.ts +11 -10
- package/src/types/typescript.d.ts +28 -0
- package/src/types/typescript.d.ts.map +1 -1
- package/src/types/typescript.ts +37 -1
|
@@ -4,14 +4,19 @@
|
|
|
4
4
|
* @module
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
+
/**
|
|
8
|
+
* A node in a `GenericGraph`.
|
|
9
|
+
*/
|
|
10
|
+
export type GenericGraphNode = string | { toString: () => string };
|
|
11
|
+
|
|
7
12
|
/**
|
|
8
13
|
* Context used for shortest-path traversal algorithm
|
|
9
14
|
*
|
|
10
15
|
* @template T The type of nodes in the graph
|
|
11
16
|
* @internal
|
|
12
17
|
*/
|
|
13
|
-
export interface TraversalContext<T
|
|
14
|
-
|
|
18
|
+
export interface TraversalContext<T extends GenericGraphNode = string> {
|
|
19
|
+
paths: Map<T, T[]>;
|
|
15
20
|
predecessors: Map<T, T>;
|
|
16
21
|
queue: Set<T>;
|
|
17
22
|
}
|
package/src/types/internal.d.ts
CHANGED
|
@@ -5,19 +5,20 @@
|
|
|
5
5
|
* @module
|
|
6
6
|
*/
|
|
7
7
|
import type { ImportHook, ImportNowHook, StaticModuleType } from 'ses';
|
|
8
|
-
import type { CompartmentDescriptor, Language, LanguageForExtension, LanguageForModuleSpecifier,
|
|
9
|
-
import type {
|
|
8
|
+
import type { CompartmentDescriptor, Language, LanguageForExtension, LanguageForModuleSpecifier, PackageCompartmentDescriptor, PackageCompartmentDescriptors, CompartmentModuleConfiguration, PackageCompartmentDescriptorName } from './compartment-map-schema.js';
|
|
9
|
+
import type { ArchiveOnlyOption, AsyncParseFn, CompartmentSources, ComputeSha512Option, ExecuteOptions, ExitModuleImportHookOption, ExitModuleImportNowHookOption, FileUrlString, ModuleSourceHook, PackageConnectionsHook, PreloadOption, LogOptions, ModuleTransforms, ParseFn, ParserForLanguage, PolicyOption, SearchSuffixesOption, SourceMapHook, SourceMapHookOption, Sources, SyncModuleTransforms, CompartmentsRenameFn } from './external.js';
|
|
10
|
+
import type { PackageDescriptor } from './node-modules.js';
|
|
10
11
|
import type { DeferredAttenuatorsProvider } from './policy.js';
|
|
11
|
-
import type {
|
|
12
|
+
import type { MaybeReadFn, MaybeReadNowFn, ReadFn, ReadPowers } from './powers.js';
|
|
12
13
|
export type LinkOptions = {
|
|
13
|
-
resolve?: ResolveHook;
|
|
14
|
+
resolve?: ResolveHook | undefined;
|
|
14
15
|
makeImportHook: ImportHookMaker;
|
|
15
|
-
makeImportNowHook?: ImportNowHookMaker;
|
|
16
|
-
parserForLanguage?: ParserForLanguage;
|
|
17
|
-
moduleTransforms?: ModuleTransforms;
|
|
18
|
-
syncModuleTransforms?: SyncModuleTransforms;
|
|
19
|
-
__native__?: boolean;
|
|
20
|
-
} & ArchiveOnlyOption & ExecuteOptions;
|
|
16
|
+
makeImportNowHook?: ImportNowHookMaker | undefined;
|
|
17
|
+
parserForLanguage?: ParserForLanguage | undefined;
|
|
18
|
+
moduleTransforms?: ModuleTransforms | undefined;
|
|
19
|
+
syncModuleTransforms?: SyncModuleTransforms | undefined;
|
|
20
|
+
__native__?: boolean | undefined;
|
|
21
|
+
} & ArchiveOnlyOption & ExecuteOptions & LogOptions;
|
|
21
22
|
export type LinkResult = {
|
|
22
23
|
compartment: Compartment;
|
|
23
24
|
compartments: Record<string, Compartment>;
|
|
@@ -36,12 +37,13 @@ export type MakeImportHookMakersOptions = {
|
|
|
36
37
|
/**
|
|
37
38
|
* For depositing captured compartment descriptors.
|
|
38
39
|
*/
|
|
39
|
-
compartmentDescriptors?:
|
|
40
|
-
|
|
40
|
+
compartmentDescriptors?: PackageCompartmentDescriptors;
|
|
41
|
+
moduleSourceHook?: ModuleSourceHook | undefined;
|
|
42
|
+
} & ComputeSha512Option & SearchSuffixesOption & ArchiveOnlyOption & SourceMapHookOption & LogOptions;
|
|
41
43
|
export type MakeImportHookMakerOptions = MakeImportHookMakersOptions & ExitModuleImportHookOption;
|
|
42
44
|
export type MakeImportNowHookMakerOptions = MakeImportHookMakersOptions & ExitModuleImportNowHookOption;
|
|
43
45
|
export type ImportHookMaker = (params: {
|
|
44
|
-
packageLocation:
|
|
46
|
+
packageLocation: PackageCompartmentDescriptorName;
|
|
45
47
|
packageName: string;
|
|
46
48
|
attenuators: DeferredAttenuatorsProvider;
|
|
47
49
|
parse: ParseFn | AsyncParseFn;
|
|
@@ -49,7 +51,7 @@ export type ImportHookMaker = (params: {
|
|
|
49
51
|
compartments: Record<string, Compartment>;
|
|
50
52
|
}) => ImportHook;
|
|
51
53
|
export type ImportNowHookMaker = (params: {
|
|
52
|
-
packageLocation:
|
|
54
|
+
packageLocation: PackageCompartmentDescriptorName;
|
|
53
55
|
packageName: string;
|
|
54
56
|
parse: ParseFn | AsyncParseFn;
|
|
55
57
|
compartments: Record<string, Compartment>;
|
|
@@ -71,13 +73,13 @@ export type ChooseModuleDescriptorParams = {
|
|
|
71
73
|
/** Module specifiers with each search suffix appended */
|
|
72
74
|
candidates: string[];
|
|
73
75
|
moduleSpecifier: string;
|
|
74
|
-
packageLocation:
|
|
76
|
+
packageLocation: FileUrlString;
|
|
75
77
|
/** Compartment descriptor from the compartment map */
|
|
76
|
-
compartmentDescriptor:
|
|
78
|
+
compartmentDescriptor: PackageCompartmentDescriptor;
|
|
77
79
|
/** All compartment descriptors from the compartment map */
|
|
78
|
-
compartmentDescriptors:
|
|
80
|
+
compartmentDescriptors: PackageCompartmentDescriptors;
|
|
79
81
|
/** All module descriptors in same compartment */
|
|
80
|
-
moduleDescriptors: Record<string,
|
|
82
|
+
moduleDescriptors: Record<string, CompartmentModuleConfiguration>;
|
|
81
83
|
/** All compartments */
|
|
82
84
|
compartments: Record<string, Compartment>;
|
|
83
85
|
packageSources: CompartmentSources;
|
|
@@ -86,9 +88,10 @@ export type ChooseModuleDescriptorParams = {
|
|
|
86
88
|
* Whether to embed a sourceURL in applicable compiled sources.
|
|
87
89
|
* Should be false for archives and bundles, but true for runtime.
|
|
88
90
|
*/
|
|
89
|
-
sourceMapHook?: SourceMapHook;
|
|
91
|
+
sourceMapHook?: SourceMapHook | undefined;
|
|
92
|
+
moduleSourceHook?: ModuleSourceHook | undefined;
|
|
90
93
|
strictlyRequiredForCompartment: StrictlyRequiredFn;
|
|
91
|
-
} & ComputeSha512Option & ArchiveOnlyOption;
|
|
94
|
+
} & ComputeSha512Option & ArchiveOnlyOption & LogOptions;
|
|
92
95
|
type ShouldDeferErrorOption = {
|
|
93
96
|
shouldDeferError: ShouldDeferError;
|
|
94
97
|
};
|
|
@@ -152,12 +155,12 @@ export type MakeMapParsersOptions = {
|
|
|
152
155
|
* If non-empty, synchronous import (specifically dynamic `require` in
|
|
153
156
|
* CommonJS or `compartment.importNow`) are unsupported.
|
|
154
157
|
*/
|
|
155
|
-
moduleTransforms?: ModuleTransforms;
|
|
158
|
+
moduleTransforms?: ModuleTransforms | undefined;
|
|
156
159
|
/**
|
|
157
160
|
* Sync module transforms.
|
|
158
161
|
* Always supported.
|
|
159
162
|
*/
|
|
160
|
-
syncModuleTransforms?: SyncModuleTransforms;
|
|
163
|
+
syncModuleTransforms?: SyncModuleTransforms | undefined;
|
|
161
164
|
};
|
|
162
165
|
/**
|
|
163
166
|
* Options for `search()`
|
|
@@ -198,34 +201,6 @@ export type ReadDescriptorFn<T = PackageDescriptor> = (location: string) => Prom
|
|
|
198
201
|
* @template T Format of package descriptor
|
|
199
202
|
*/
|
|
200
203
|
export type MaybeReadDescriptorFn<T = PackageDescriptor> = (location: string) => Promise<T | undefined>;
|
|
201
|
-
/**
|
|
202
|
-
* The type of a `package.json` file containing relevant fields; used by `graphPackages` and its ilk
|
|
203
|
-
*/
|
|
204
|
-
export interface PackageDescriptor {
|
|
205
|
-
/**
|
|
206
|
-
* TODO: In reality, this is optional, but `graphPackage` does not consider it to be. This will need to be fixed once support for "anonymous" packages lands; see https://github.com/endojs/endo/pull/2664
|
|
207
|
-
*/
|
|
208
|
-
name: string;
|
|
209
|
-
version?: string;
|
|
210
|
-
/**
|
|
211
|
-
* TODO: Update with proper type when this field is handled.
|
|
212
|
-
*/
|
|
213
|
-
exports?: unknown;
|
|
214
|
-
type?: 'module' | 'commonjs';
|
|
215
|
-
dependencies?: Record<string, string>;
|
|
216
|
-
devDependencies?: Record<string, string>;
|
|
217
|
-
peerDependencies?: Record<string, string>;
|
|
218
|
-
optionalDependencies?: Record<string, string>;
|
|
219
|
-
bundleDependencies?: string[];
|
|
220
|
-
peerDependenciesMeta?: Record<string, {
|
|
221
|
-
optional?: boolean;
|
|
222
|
-
[k: string]: unknown;
|
|
223
|
-
}>;
|
|
224
|
-
module?: string;
|
|
225
|
-
browser?: Record<string, string> | string;
|
|
226
|
-
main?: string;
|
|
227
|
-
[k: string]: unknown;
|
|
228
|
-
}
|
|
229
204
|
/**
|
|
230
205
|
* Function returning a set of module names (scoped to the compartment) whose
|
|
231
206
|
* parser is not using heuristics to determine imports.
|
|
@@ -246,5 +221,11 @@ specifier: string,
|
|
|
246
221
|
* The error that was thrown
|
|
247
222
|
*/
|
|
248
223
|
error: Error) => StaticModuleType;
|
|
224
|
+
export type MakeLoadCompartmentsOptions = LogOptions & PolicyOption & PreloadOption;
|
|
225
|
+
export type DigestCompartmentMapOptions<OldCompartmentName extends string = FileUrlString, NewCompartmentName extends string = PackageCompartmentDescriptorName> = LogOptions & {
|
|
226
|
+
packageConnectionsHook?: PackageConnectionsHook | undefined;
|
|
227
|
+
renameCompartments?: CompartmentsRenameFn<OldCompartmentName, NewCompartmentName>;
|
|
228
|
+
};
|
|
229
|
+
export type CaptureCompartmentMapOptions = DigestCompartmentMapOptions;
|
|
249
230
|
export {};
|
|
250
231
|
//# sourceMappingURL=internal.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["internal.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,KAAK,CAAC;AACvE,OAAO,KAAK,EACV,qBAAqB,EACrB,QAAQ,EACR,oBAAoB,EACpB,0BAA0B,EAC1B,
|
|
1
|
+
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["internal.ts"],"names":[],"mappings":"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"}
|
package/src/types/internal.ts
CHANGED
|
@@ -13,15 +13,11 @@ import type {
|
|
|
13
13
|
Language,
|
|
14
14
|
LanguageForExtension,
|
|
15
15
|
LanguageForModuleSpecifier,
|
|
16
|
-
|
|
16
|
+
PackageCompartmentDescriptor,
|
|
17
|
+
PackageCompartmentDescriptors,
|
|
18
|
+
CompartmentModuleConfiguration,
|
|
19
|
+
PackageCompartmentDescriptorName,
|
|
17
20
|
} from './compartment-map-schema.js';
|
|
18
|
-
import type {
|
|
19
|
-
MaybeReadFn,
|
|
20
|
-
MaybeReadNowFn,
|
|
21
|
-
ReadFn,
|
|
22
|
-
ReadPowers,
|
|
23
|
-
} from './powers.js';
|
|
24
|
-
import type { DeferredAttenuatorsProvider } from './policy.js';
|
|
25
21
|
import type {
|
|
26
22
|
ArchiveOnlyOption,
|
|
27
23
|
AsyncParseFn,
|
|
@@ -30,27 +26,43 @@ import type {
|
|
|
30
26
|
ExecuteOptions,
|
|
31
27
|
ExitModuleImportHookOption,
|
|
32
28
|
ExitModuleImportNowHookOption,
|
|
29
|
+
FileUrlString,
|
|
30
|
+
ModuleSourceHook,
|
|
31
|
+
PackageConnectionsHook,
|
|
32
|
+
PreloadOption,
|
|
33
33
|
LogOptions,
|
|
34
34
|
ModuleTransforms,
|
|
35
35
|
ParseFn,
|
|
36
36
|
ParserForLanguage,
|
|
37
|
+
PolicyOption,
|
|
37
38
|
SearchSuffixesOption,
|
|
38
39
|
SourceMapHook,
|
|
39
40
|
SourceMapHookOption,
|
|
40
41
|
Sources,
|
|
41
42
|
SyncModuleTransforms,
|
|
43
|
+
CompartmentsRenameFn,
|
|
44
|
+
RedundantPreloadHook,
|
|
42
45
|
} from './external.js';
|
|
46
|
+
import type { PackageDescriptor } from './node-modules.js';
|
|
47
|
+
import type { DeferredAttenuatorsProvider } from './policy.js';
|
|
48
|
+
import type {
|
|
49
|
+
MaybeReadFn,
|
|
50
|
+
MaybeReadNowFn,
|
|
51
|
+
ReadFn,
|
|
52
|
+
ReadPowers,
|
|
53
|
+
} from './powers.js';
|
|
43
54
|
|
|
44
55
|
export type LinkOptions = {
|
|
45
|
-
resolve?: ResolveHook;
|
|
56
|
+
resolve?: ResolveHook | undefined;
|
|
46
57
|
makeImportHook: ImportHookMaker;
|
|
47
|
-
makeImportNowHook?: ImportNowHookMaker;
|
|
48
|
-
parserForLanguage?: ParserForLanguage;
|
|
49
|
-
moduleTransforms?: ModuleTransforms;
|
|
50
|
-
syncModuleTransforms?: SyncModuleTransforms;
|
|
51
|
-
__native__?: boolean;
|
|
58
|
+
makeImportNowHook?: ImportNowHookMaker | undefined;
|
|
59
|
+
parserForLanguage?: ParserForLanguage | undefined;
|
|
60
|
+
moduleTransforms?: ModuleTransforms | undefined;
|
|
61
|
+
syncModuleTransforms?: SyncModuleTransforms | undefined;
|
|
62
|
+
__native__?: boolean | undefined;
|
|
52
63
|
} & ArchiveOnlyOption &
|
|
53
|
-
ExecuteOptions
|
|
64
|
+
ExecuteOptions &
|
|
65
|
+
LogOptions;
|
|
54
66
|
|
|
55
67
|
export type LinkResult = {
|
|
56
68
|
compartment: Compartment;
|
|
@@ -76,11 +88,13 @@ export type MakeImportHookMakersOptions = {
|
|
|
76
88
|
/**
|
|
77
89
|
* For depositing captured compartment descriptors.
|
|
78
90
|
*/
|
|
79
|
-
compartmentDescriptors?:
|
|
91
|
+
compartmentDescriptors?: PackageCompartmentDescriptors;
|
|
92
|
+
moduleSourceHook?: ModuleSourceHook | undefined;
|
|
80
93
|
} & ComputeSha512Option &
|
|
81
94
|
SearchSuffixesOption &
|
|
82
95
|
ArchiveOnlyOption &
|
|
83
|
-
SourceMapHookOption
|
|
96
|
+
SourceMapHookOption &
|
|
97
|
+
LogOptions;
|
|
84
98
|
|
|
85
99
|
export type MakeImportHookMakerOptions = MakeImportHookMakersOptions &
|
|
86
100
|
ExitModuleImportHookOption;
|
|
@@ -88,7 +102,7 @@ export type MakeImportNowHookMakerOptions = MakeImportHookMakersOptions &
|
|
|
88
102
|
ExitModuleImportNowHookOption;
|
|
89
103
|
|
|
90
104
|
export type ImportHookMaker = (params: {
|
|
91
|
-
packageLocation:
|
|
105
|
+
packageLocation: PackageCompartmentDescriptorName;
|
|
92
106
|
packageName: string;
|
|
93
107
|
attenuators: DeferredAttenuatorsProvider;
|
|
94
108
|
parse: ParseFn | AsyncParseFn;
|
|
@@ -97,7 +111,7 @@ export type ImportHookMaker = (params: {
|
|
|
97
111
|
}) => ImportHook;
|
|
98
112
|
|
|
99
113
|
export type ImportNowHookMaker = (params: {
|
|
100
|
-
packageLocation:
|
|
114
|
+
packageLocation: PackageCompartmentDescriptorName;
|
|
101
115
|
packageName: string;
|
|
102
116
|
parse: ParseFn | AsyncParseFn;
|
|
103
117
|
compartments: Record<string, Compartment>;
|
|
@@ -125,13 +139,13 @@ export type ChooseModuleDescriptorParams = {
|
|
|
125
139
|
/** Module specifiers with each search suffix appended */
|
|
126
140
|
candidates: string[];
|
|
127
141
|
moduleSpecifier: string;
|
|
128
|
-
packageLocation:
|
|
142
|
+
packageLocation: FileUrlString;
|
|
129
143
|
/** Compartment descriptor from the compartment map */
|
|
130
|
-
compartmentDescriptor:
|
|
144
|
+
compartmentDescriptor: PackageCompartmentDescriptor;
|
|
131
145
|
/** All compartment descriptors from the compartment map */
|
|
132
|
-
compartmentDescriptors:
|
|
146
|
+
compartmentDescriptors: PackageCompartmentDescriptors;
|
|
133
147
|
/** All module descriptors in same compartment */
|
|
134
|
-
moduleDescriptors: Record<string,
|
|
148
|
+
moduleDescriptors: Record<string, CompartmentModuleConfiguration>;
|
|
135
149
|
/** All compartments */
|
|
136
150
|
compartments: Record<string, Compartment>;
|
|
137
151
|
packageSources: CompartmentSources;
|
|
@@ -140,11 +154,13 @@ export type ChooseModuleDescriptorParams = {
|
|
|
140
154
|
* Whether to embed a sourceURL in applicable compiled sources.
|
|
141
155
|
* Should be false for archives and bundles, but true for runtime.
|
|
142
156
|
*/
|
|
143
|
-
sourceMapHook?: SourceMapHook;
|
|
157
|
+
sourceMapHook?: SourceMapHook | undefined;
|
|
158
|
+
moduleSourceHook?: ModuleSourceHook | undefined;
|
|
144
159
|
|
|
145
160
|
strictlyRequiredForCompartment: StrictlyRequiredFn;
|
|
146
161
|
} & ComputeSha512Option &
|
|
147
|
-
ArchiveOnlyOption
|
|
162
|
+
ArchiveOnlyOption &
|
|
163
|
+
LogOptions;
|
|
148
164
|
|
|
149
165
|
type ShouldDeferErrorOption = {
|
|
150
166
|
shouldDeferError: ShouldDeferError;
|
|
@@ -219,12 +235,12 @@ export type MakeMapParsersOptions = {
|
|
|
219
235
|
* If non-empty, synchronous import (specifically dynamic `require` in
|
|
220
236
|
* CommonJS or `compartment.importNow`) are unsupported.
|
|
221
237
|
*/
|
|
222
|
-
moduleTransforms?: ModuleTransforms;
|
|
238
|
+
moduleTransforms?: ModuleTransforms | undefined;
|
|
223
239
|
/**
|
|
224
240
|
* Sync module transforms.
|
|
225
241
|
* Always supported.
|
|
226
242
|
*/
|
|
227
|
-
syncModuleTransforms?: SyncModuleTransforms;
|
|
243
|
+
syncModuleTransforms?: SyncModuleTransforms | undefined;
|
|
228
244
|
};
|
|
229
245
|
|
|
230
246
|
/**
|
|
@@ -276,37 +292,6 @@ export type MaybeReadDescriptorFn<T = PackageDescriptor> = (
|
|
|
276
292
|
location: string,
|
|
277
293
|
) => Promise<T | undefined>;
|
|
278
294
|
|
|
279
|
-
/**
|
|
280
|
-
* The type of a `package.json` file containing relevant fields; used by `graphPackages` and its ilk
|
|
281
|
-
*/
|
|
282
|
-
export interface PackageDescriptor {
|
|
283
|
-
/**
|
|
284
|
-
* TODO: In reality, this is optional, but `graphPackage` does not consider it to be. This will need to be fixed once support for "anonymous" packages lands; see https://github.com/endojs/endo/pull/2664
|
|
285
|
-
*/
|
|
286
|
-
name: string;
|
|
287
|
-
version?: string;
|
|
288
|
-
/**
|
|
289
|
-
* TODO: Update with proper type when this field is handled.
|
|
290
|
-
*/
|
|
291
|
-
exports?: unknown;
|
|
292
|
-
type?: 'module' | 'commonjs';
|
|
293
|
-
dependencies?: Record<string, string>;
|
|
294
|
-
devDependencies?: Record<string, string>;
|
|
295
|
-
peerDependencies?: Record<string, string>;
|
|
296
|
-
optionalDependencies?: Record<string, string>;
|
|
297
|
-
bundleDependencies?: string[];
|
|
298
|
-
peerDependenciesMeta?: Record<
|
|
299
|
-
string,
|
|
300
|
-
{ optional?: boolean; [k: string]: unknown }
|
|
301
|
-
>;
|
|
302
|
-
module?: string;
|
|
303
|
-
browser?: Record<string, string> | string;
|
|
304
|
-
|
|
305
|
-
main?: string;
|
|
306
|
-
|
|
307
|
-
[k: string]: unknown;
|
|
308
|
-
}
|
|
309
|
-
|
|
310
295
|
/**
|
|
311
296
|
* Function returning a set of module names (scoped to the compartment) whose
|
|
312
297
|
* parser is not using heuristics to determine imports.
|
|
@@ -329,3 +314,20 @@ export type DeferErrorFn = (
|
|
|
329
314
|
*/
|
|
330
315
|
error: Error,
|
|
331
316
|
) => StaticModuleType;
|
|
317
|
+
|
|
318
|
+
export type MakeLoadCompartmentsOptions = LogOptions &
|
|
319
|
+
PolicyOption &
|
|
320
|
+
PreloadOption;
|
|
321
|
+
|
|
322
|
+
export type DigestCompartmentMapOptions<
|
|
323
|
+
OldCompartmentName extends string = FileUrlString,
|
|
324
|
+
NewCompartmentName extends string = PackageCompartmentDescriptorName,
|
|
325
|
+
> = LogOptions & {
|
|
326
|
+
packageConnectionsHook?: PackageConnectionsHook | undefined;
|
|
327
|
+
renameCompartments?: CompartmentsRenameFn<
|
|
328
|
+
OldCompartmentName,
|
|
329
|
+
NewCompartmentName
|
|
330
|
+
>;
|
|
331
|
+
};
|
|
332
|
+
|
|
333
|
+
export type CaptureCompartmentMapOptions = DigestCompartmentMapOptions;
|
|
@@ -1,8 +1,42 @@
|
|
|
1
1
|
import type { GenericGraph } from '../generic-graph.js';
|
|
2
|
+
import type { CanonicalName, PackageCompartmentDescriptorName, PolicyOption } from '../types.js';
|
|
2
3
|
import type { Language, LanguageForExtension } from './compartment-map-schema.js';
|
|
3
|
-
import type { LogOptions,
|
|
4
|
-
import type {
|
|
4
|
+
import type { FileUrlString, LogOptions, PackageDependenciesHook } from './external.js';
|
|
5
|
+
import type { PatternDescriptor } from './pattern-replacement.js';
|
|
5
6
|
import type { LiteralUnion } from './typescript.js';
|
|
7
|
+
import { ATTENUATORS_COMPARTMENT } from '../policy-format.js';
|
|
8
|
+
/**
|
|
9
|
+
* A mapping of conditions to their resolved exports.
|
|
10
|
+
* Each condition key (e.g., "import", "require", "node", "default")
|
|
11
|
+
* maps to an {@link Exports} value.
|
|
12
|
+
*
|
|
13
|
+
* @see {@link https://github.com/sindresorhus/type-fest/blob/850b33c4dd292e0ff8cff039ee167d69be324fce/source/package-json.d.ts#L227-L248 | type-fest ExportConditions}
|
|
14
|
+
*/
|
|
15
|
+
export type ExportConditions = {
|
|
16
|
+
[condition: string]: Exports;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Entry points of a module, optionally with conditions and subpath exports.
|
|
20
|
+
* Follows the recursive structure defined by Node.js for `package.json`
|
|
21
|
+
* `exports` and `imports` fields.
|
|
22
|
+
*
|
|
23
|
+
* - `null` excludes a subpath (null target).
|
|
24
|
+
* - `string` is a direct path.
|
|
25
|
+
* - `Array` is a fallback list (first match wins).
|
|
26
|
+
* - `ExportConditions` is a mapping of conditions to nested `Exports`.
|
|
27
|
+
*
|
|
28
|
+
* @see {@link https://github.com/sindresorhus/type-fest/blob/850b33c4dd292e0ff8cff039ee167d69be324fce/source/package-json.d.ts#L227-L248 | type-fest Exports}
|
|
29
|
+
*/
|
|
30
|
+
export type Exports = null | string | Array<string | ExportConditions> | ExportConditions;
|
|
31
|
+
/**
|
|
32
|
+
* The `imports` field of `package.json`.
|
|
33
|
+
* Keys must start with `#`.
|
|
34
|
+
*
|
|
35
|
+
* @see {@link https://github.com/sindresorhus/type-fest/blob/850b33c4dd292e0ff8cff039ee167d69be324fce/source/package-json.d.ts#L227-L248 | type-fest Imports}
|
|
36
|
+
*/
|
|
37
|
+
export type Imports = {
|
|
38
|
+
[key: `#${string}`]: Exports;
|
|
39
|
+
};
|
|
6
40
|
export type CommonDependencyDescriptors = Record<string, {
|
|
7
41
|
spec: string;
|
|
8
42
|
alias: string;
|
|
@@ -15,28 +49,63 @@ export type CommonDependencyDescriptorsOptions = {
|
|
|
15
49
|
/**
|
|
16
50
|
* Dependencies added to _all_ packages
|
|
17
51
|
*/
|
|
18
|
-
commonDependencyDescriptors?: CommonDependencyDescriptors;
|
|
52
|
+
commonDependencyDescriptors?: CommonDependencyDescriptors | undefined;
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* Options bag containing a {@link PackageDependenciesHook}
|
|
56
|
+
*/
|
|
57
|
+
export type PackageDependenciesHookOption = {
|
|
58
|
+
packageDependenciesHook?: PackageDependenciesHook | undefined;
|
|
19
59
|
};
|
|
20
60
|
/**
|
|
21
61
|
* Options for `graphPackage()`
|
|
22
62
|
*/
|
|
23
|
-
export type GraphPackageOptions =
|
|
24
|
-
logicalPath?: string[];
|
|
25
|
-
} & LogOptions & CommonDependencyDescriptorsOptions;
|
|
63
|
+
export type GraphPackageOptions = LogOptions & PolicyOption & PackageDependenciesHookOption & CommonDependencyDescriptorsOptions;
|
|
26
64
|
/**
|
|
27
65
|
* Options for `graphPackages()`
|
|
28
66
|
*/
|
|
29
|
-
export type GraphPackagesOptions = LogOptions;
|
|
67
|
+
export type GraphPackagesOptions = LogOptions & PolicyOption & PackageDependenciesHookOption;
|
|
30
68
|
/**
|
|
31
69
|
* Options for `gatherDependency()`
|
|
32
70
|
*/
|
|
33
71
|
export type GatherDependencyOptions = {
|
|
34
|
-
childLogicalPath?: string[];
|
|
72
|
+
childLogicalPath?: string[] | undefined;
|
|
35
73
|
/**
|
|
36
74
|
* If `true` the dependency is optional
|
|
37
75
|
*/
|
|
38
|
-
optional?: boolean;
|
|
39
|
-
} & LogOptions & CommonDependencyDescriptorsOptions;
|
|
76
|
+
optional?: boolean | undefined;
|
|
77
|
+
} & LogOptions & PackageDependenciesHookOption & PolicyOption & CommonDependencyDescriptorsOptions;
|
|
78
|
+
/**
|
|
79
|
+
* The type of a `package.json` file containing relevant fields; used by `graphPackages` and its ilk
|
|
80
|
+
*/
|
|
81
|
+
export interface PackageDescriptor {
|
|
82
|
+
/**
|
|
83
|
+
* TODO: In reality, this is optional, but `graphPackage` does not consider it
|
|
84
|
+
* to be. This will need to be fixed once support for "anonymous" packages
|
|
85
|
+
* lands; see https://github.com/endojs/endo/pull/2664
|
|
86
|
+
*/
|
|
87
|
+
name: string;
|
|
88
|
+
version?: string;
|
|
89
|
+
exports?: Exports;
|
|
90
|
+
imports?: Imports;
|
|
91
|
+
type?: 'module' | 'commonjs';
|
|
92
|
+
dependencies?: Record<string, string>;
|
|
93
|
+
devDependencies?: Record<string, string>;
|
|
94
|
+
peerDependencies?: Record<string, string>;
|
|
95
|
+
optionalDependencies?: Record<string, string>;
|
|
96
|
+
bundleDependencies?: string[];
|
|
97
|
+
peerDependenciesMeta?: Record<string, {
|
|
98
|
+
optional?: boolean;
|
|
99
|
+
[k: string]: unknown;
|
|
100
|
+
}>;
|
|
101
|
+
module?: string;
|
|
102
|
+
browser?: Record<string, string> | string;
|
|
103
|
+
main?: string;
|
|
104
|
+
[k: string]: unknown;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Value in {@link Graph}
|
|
108
|
+
*/
|
|
40
109
|
export interface Node {
|
|
41
110
|
/**
|
|
42
111
|
* Informative compartment label based on the package name and version (if available)
|
|
@@ -46,14 +115,18 @@ export interface Node {
|
|
|
46
115
|
* Package name
|
|
47
116
|
*/
|
|
48
117
|
name: string;
|
|
49
|
-
|
|
50
|
-
logicalPath: Array<string>;
|
|
118
|
+
location: FileUrlString;
|
|
51
119
|
/**
|
|
52
120
|
* `true` if the package's {@link PackageDescriptor} has an `exports` field
|
|
53
121
|
*/
|
|
54
122
|
explicitExports: boolean;
|
|
55
123
|
internalAliases: Record<string, string>;
|
|
56
124
|
externalAliases: Record<string, string>;
|
|
125
|
+
/**
|
|
126
|
+
* Wildcard patterns extracted from the `exports` and `imports` fields.
|
|
127
|
+
* `*` matches exactly one path segment (Node.js semantics).
|
|
128
|
+
*/
|
|
129
|
+
patterns: PatternDescriptor[];
|
|
57
130
|
/**
|
|
58
131
|
* The name of the original package's parent directory, for reconstructing
|
|
59
132
|
* a sourceURL that is likely to converge with the original location in an IDE.
|
|
@@ -66,9 +139,20 @@ export interface Node {
|
|
|
66
139
|
*
|
|
67
140
|
* The values are the keys of other {@link Node Nodes} in the {@link Graph}.
|
|
68
141
|
*/
|
|
69
|
-
dependencyLocations: Record<string,
|
|
142
|
+
dependencyLocations: Record<string, FileUrlString>;
|
|
70
143
|
parsers: LanguageForExtension;
|
|
71
144
|
types: Record<string, Language>;
|
|
145
|
+
packageDescriptor: PackageDescriptor;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* A node in the graph that has been finalized, meaning it has a `label` and is
|
|
149
|
+
* ready for conversion into a `CompartmentDescriptor`.
|
|
150
|
+
*/
|
|
151
|
+
export interface FinalNode extends Node {
|
|
152
|
+
/**
|
|
153
|
+
* Canonical name of the package; used to identify it in policy
|
|
154
|
+
*/
|
|
155
|
+
label: string;
|
|
72
156
|
}
|
|
73
157
|
/**
|
|
74
158
|
* The graph is an intermediate object model that the functions of this module
|
|
@@ -79,7 +163,13 @@ export interface Node {
|
|
|
79
163
|
* Keys may either be a file URL string to a package or the special
|
|
80
164
|
* `<ATTENUATORS>` string.
|
|
81
165
|
*/
|
|
82
|
-
export type Graph = Record<LiteralUnion<
|
|
166
|
+
export type Graph = Record<LiteralUnion<typeof ATTENUATORS_COMPARTMENT, FileUrlString>, Node>;
|
|
167
|
+
/**
|
|
168
|
+
* A graph, but contains {@link FinalNode}s instead of {@link Node}s.
|
|
169
|
+
*
|
|
170
|
+
* A "final node" has a `label` prop.
|
|
171
|
+
*/
|
|
172
|
+
export type FinalGraph = Record<PackageCompartmentDescriptorName, Readonly<FinalNode>>;
|
|
83
173
|
export interface LanguageOptions {
|
|
84
174
|
commonjsLanguageForExtension: LanguageForExtension;
|
|
85
175
|
moduleLanguageForExtension: LanguageForExtension;
|
|
@@ -99,4 +189,12 @@ export interface PackageDetails {
|
|
|
99
189
|
* used by `mapNodeModules()` and its ilk.
|
|
100
190
|
*/
|
|
101
191
|
export type LogicalPathGraph = GenericGraph<FileUrlString>;
|
|
192
|
+
/**
|
|
193
|
+
* Options for `translateGraph()`
|
|
194
|
+
*/
|
|
195
|
+
export type TranslateGraphOptions = LogOptions & PolicyOption & PackageDependenciesHookOption;
|
|
196
|
+
/**
|
|
197
|
+
* Mapping to enable reverse-lookups of `CompartmentDescriptor`s from policy.
|
|
198
|
+
*/
|
|
199
|
+
export type CanonicalNameMap = Map<CanonicalName, PackageCompartmentDescriptorName>;
|
|
102
200
|
//# sourceMappingURL=node-modules.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-modules.d.ts","sourceRoot":"","sources":["node-modules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EACV,QAAQ,EACR,oBAAoB,EACrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"node-modules.d.ts","sourceRoot":"","sources":["node-modules.ts"],"names":[],"mappings":"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"}
|