@endo/compartment-mapper 1.6.2 → 2.0.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 +12 -16
- package/src/archive-lite.d.ts +7 -7
- package/src/archive-lite.d.ts.map +1 -1
- package/src/archive-lite.js +78 -27
- 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 +217 -25
- package/src/compartment-map.d.ts +9 -2
- package/src/compartment-map.d.ts.map +1 -1
- package/src/compartment-map.js +737 -254
- package/src/digest.d.ts +22 -2
- package/src/digest.d.ts.map +1 -1
- package/src/digest.js +179 -56
- package/src/generic-graph.d.ts +84 -0
- package/src/generic-graph.d.ts.map +1 -0
- package/src/generic-graph.js +356 -0
- 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 +156 -71
- 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.map +1 -1
- package/src/infer-exports.js +16 -6
- package/src/json.d.ts +1 -1
- package/src/json.d.ts.map +1 -1
- package/src/json.js +10 -3
- package/src/link.d.ts +4 -3
- package/src/link.d.ts.map +1 -1
- package/src/link.js +70 -58
- package/src/node-modules.d.ts +5 -3
- package/src/node-modules.d.ts.map +1 -1
- package/src/node-modules.js +648 -245
- package/src/node-powers.d.ts +6 -5
- package/src/node-powers.d.ts.map +1 -1
- package/src/node-powers.js +11 -8
- package/src/parse-cjs-shared-export-wrapper.d.ts.map +1 -1
- package/src/parse-cjs-shared-export-wrapper.js +3 -1
- 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 +114 -35
- package/src/types/compartment-map-schema.d.ts.map +1 -1
- package/src/types/compartment-map-schema.ts +202 -37
- package/src/types/external.d.ts +173 -29
- package/src/types/external.d.ts.map +1 -1
- package/src/types/external.ts +221 -27
- package/src/types/generic-graph.d.ts +17 -0
- package/src/types/generic-graph.d.ts.map +1 -0
- package/src/types/generic-graph.ts +17 -0
- package/src/types/internal.d.ts +24 -42
- package/src/types/internal.d.ts.map +1 -1
- package/src/types/internal.ts +52 -50
- package/src/types/node-modules.d.ts +101 -17
- package/src/types/node-modules.d.ts.map +1 -1
- package/src/types/node-modules.ts +142 -17
- 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 +38 -11
- package/src/types/powers.d.ts.map +1 -1
- package/src/types/powers.ts +50 -17
- package/src/types/typescript.d.ts +28 -0
- package/src/types/typescript.d.ts.map +1 -1
- package/src/types/typescript.ts +37 -1
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,16 +26,30 @@ 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,
|
|
42
44
|
} from './external.js';
|
|
45
|
+
import type { PackageDescriptor } from './node-modules.js';
|
|
46
|
+
import type { DeferredAttenuatorsProvider } from './policy.js';
|
|
47
|
+
import type {
|
|
48
|
+
MaybeReadFn,
|
|
49
|
+
MaybeReadNowFn,
|
|
50
|
+
ReadFn,
|
|
51
|
+
ReadPowers,
|
|
52
|
+
} from './powers.js';
|
|
43
53
|
|
|
44
54
|
export type LinkOptions = {
|
|
45
55
|
resolve?: ResolveHook;
|
|
@@ -50,7 +60,8 @@ export type LinkOptions = {
|
|
|
50
60
|
syncModuleTransforms?: SyncModuleTransforms;
|
|
51
61
|
__native__?: boolean;
|
|
52
62
|
} & ArchiveOnlyOption &
|
|
53
|
-
ExecuteOptions
|
|
63
|
+
ExecuteOptions &
|
|
64
|
+
LogOptions;
|
|
54
65
|
|
|
55
66
|
export type LinkResult = {
|
|
56
67
|
compartment: Compartment;
|
|
@@ -76,11 +87,13 @@ export type MakeImportHookMakersOptions = {
|
|
|
76
87
|
/**
|
|
77
88
|
* For depositing captured compartment descriptors.
|
|
78
89
|
*/
|
|
79
|
-
compartmentDescriptors?:
|
|
90
|
+
compartmentDescriptors?: PackageCompartmentDescriptors;
|
|
91
|
+
moduleSourceHook?: ModuleSourceHook | undefined;
|
|
80
92
|
} & ComputeSha512Option &
|
|
81
93
|
SearchSuffixesOption &
|
|
82
94
|
ArchiveOnlyOption &
|
|
83
|
-
SourceMapHookOption
|
|
95
|
+
SourceMapHookOption &
|
|
96
|
+
LogOptions;
|
|
84
97
|
|
|
85
98
|
export type MakeImportHookMakerOptions = MakeImportHookMakersOptions &
|
|
86
99
|
ExitModuleImportHookOption;
|
|
@@ -88,7 +101,7 @@ export type MakeImportNowHookMakerOptions = MakeImportHookMakersOptions &
|
|
|
88
101
|
ExitModuleImportNowHookOption;
|
|
89
102
|
|
|
90
103
|
export type ImportHookMaker = (params: {
|
|
91
|
-
packageLocation:
|
|
104
|
+
packageLocation: PackageCompartmentDescriptorName;
|
|
92
105
|
packageName: string;
|
|
93
106
|
attenuators: DeferredAttenuatorsProvider;
|
|
94
107
|
parse: ParseFn | AsyncParseFn;
|
|
@@ -97,7 +110,7 @@ export type ImportHookMaker = (params: {
|
|
|
97
110
|
}) => ImportHook;
|
|
98
111
|
|
|
99
112
|
export type ImportNowHookMaker = (params: {
|
|
100
|
-
packageLocation:
|
|
113
|
+
packageLocation: PackageCompartmentDescriptorName;
|
|
101
114
|
packageName: string;
|
|
102
115
|
parse: ParseFn | AsyncParseFn;
|
|
103
116
|
compartments: Record<string, Compartment>;
|
|
@@ -125,13 +138,13 @@ export type ChooseModuleDescriptorParams = {
|
|
|
125
138
|
/** Module specifiers with each search suffix appended */
|
|
126
139
|
candidates: string[];
|
|
127
140
|
moduleSpecifier: string;
|
|
128
|
-
packageLocation:
|
|
141
|
+
packageLocation: FileUrlString;
|
|
129
142
|
/** Compartment descriptor from the compartment map */
|
|
130
|
-
compartmentDescriptor:
|
|
143
|
+
compartmentDescriptor: PackageCompartmentDescriptor;
|
|
131
144
|
/** All compartment descriptors from the compartment map */
|
|
132
|
-
compartmentDescriptors:
|
|
145
|
+
compartmentDescriptors: PackageCompartmentDescriptors;
|
|
133
146
|
/** All module descriptors in same compartment */
|
|
134
|
-
moduleDescriptors: Record<string,
|
|
147
|
+
moduleDescriptors: Record<string, CompartmentModuleConfiguration>;
|
|
135
148
|
/** All compartments */
|
|
136
149
|
compartments: Record<string, Compartment>;
|
|
137
150
|
packageSources: CompartmentSources;
|
|
@@ -140,11 +153,13 @@ export type ChooseModuleDescriptorParams = {
|
|
|
140
153
|
* Whether to embed a sourceURL in applicable compiled sources.
|
|
141
154
|
* Should be false for archives and bundles, but true for runtime.
|
|
142
155
|
*/
|
|
143
|
-
sourceMapHook?: SourceMapHook;
|
|
156
|
+
sourceMapHook?: SourceMapHook | undefined;
|
|
157
|
+
moduleSourceHook?: ModuleSourceHook | undefined;
|
|
144
158
|
|
|
145
159
|
strictlyRequiredForCompartment: StrictlyRequiredFn;
|
|
146
160
|
} & ComputeSha512Option &
|
|
147
|
-
ArchiveOnlyOption
|
|
161
|
+
ArchiveOnlyOption &
|
|
162
|
+
LogOptions;
|
|
148
163
|
|
|
149
164
|
type ShouldDeferErrorOption = {
|
|
150
165
|
shouldDeferError: ShouldDeferError;
|
|
@@ -262,6 +277,7 @@ export type SearchDescriptorOptions = LogOptions;
|
|
|
262
277
|
/**
|
|
263
278
|
* A power to read a package descriptor
|
|
264
279
|
* @template T Format of package descriptor
|
|
280
|
+
* @deprecated Use {@link MaybeReadDescriptorFn} instead.
|
|
265
281
|
*/
|
|
266
282
|
export type ReadDescriptorFn<T = PackageDescriptor> = (
|
|
267
283
|
location: string,
|
|
@@ -275,37 +291,6 @@ export type MaybeReadDescriptorFn<T = PackageDescriptor> = (
|
|
|
275
291
|
location: string,
|
|
276
292
|
) => Promise<T | undefined>;
|
|
277
293
|
|
|
278
|
-
/**
|
|
279
|
-
* The type of a `package.json` file containing relevant fields; used by `graphPackages` and its ilk
|
|
280
|
-
*/
|
|
281
|
-
export interface PackageDescriptor {
|
|
282
|
-
/**
|
|
283
|
-
* 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
|
|
284
|
-
*/
|
|
285
|
-
name: string;
|
|
286
|
-
version?: string;
|
|
287
|
-
/**
|
|
288
|
-
* TODO: Update with proper type when this field is handled.
|
|
289
|
-
*/
|
|
290
|
-
exports?: unknown;
|
|
291
|
-
type?: 'module' | 'commonjs';
|
|
292
|
-
dependencies?: Record<string, string>;
|
|
293
|
-
devDependencies?: Record<string, string>;
|
|
294
|
-
peerDependencies?: Record<string, string>;
|
|
295
|
-
optionalDependencies?: Record<string, string>;
|
|
296
|
-
bundleDependencies?: string[];
|
|
297
|
-
peerDependenciesMeta?: Record<
|
|
298
|
-
string,
|
|
299
|
-
{ optional?: boolean; [k: string]: unknown }
|
|
300
|
-
>;
|
|
301
|
-
module?: string;
|
|
302
|
-
browser?: Record<string, string> | string;
|
|
303
|
-
|
|
304
|
-
main?: string;
|
|
305
|
-
|
|
306
|
-
[k: string]: unknown;
|
|
307
|
-
}
|
|
308
|
-
|
|
309
294
|
/**
|
|
310
295
|
* Function returning a set of module names (scoped to the compartment) whose
|
|
311
296
|
* parser is not using heuristics to determine imports.
|
|
@@ -328,3 +313,20 @@ export type DeferErrorFn = (
|
|
|
328
313
|
*/
|
|
329
314
|
error: Error,
|
|
330
315
|
) => StaticModuleType;
|
|
316
|
+
|
|
317
|
+
export type MakeLoadCompartmentsOptions = LogOptions &
|
|
318
|
+
PolicyOption &
|
|
319
|
+
PreloadOption;
|
|
320
|
+
|
|
321
|
+
export type DigestCompartmentMapOptions<
|
|
322
|
+
OldCompartmentName extends string = FileUrlString,
|
|
323
|
+
NewCompartmentName extends string = PackageCompartmentDescriptorName,
|
|
324
|
+
> = LogOptions & {
|
|
325
|
+
packageConnectionsHook?: PackageConnectionsHook | undefined;
|
|
326
|
+
renameCompartments?: CompartmentsRenameFn<
|
|
327
|
+
OldCompartmentName,
|
|
328
|
+
NewCompartmentName
|
|
329
|
+
>;
|
|
330
|
+
};
|
|
331
|
+
|
|
332
|
+
export type CaptureCompartmentMapOptions = DigestCompartmentMapOptions;
|
|
@@ -1,27 +1,79 @@
|
|
|
1
|
+
import type { GenericGraph } from '../generic-graph.js';
|
|
2
|
+
import type { CanonicalName, PackageCompartmentDescriptorName, PolicyOption } from '../types.js';
|
|
1
3
|
import type { Language, LanguageForExtension } from './compartment-map-schema.js';
|
|
2
|
-
import type { LogOptions } from './external.js';
|
|
3
|
-
import type {
|
|
4
|
+
import type { FileUrlString, LogOptions, PackageDependenciesHook } from './external.js';
|
|
5
|
+
import type { LiteralUnion } from './typescript.js';
|
|
4
6
|
export type CommonDependencyDescriptors = Record<string, {
|
|
5
7
|
spec: string;
|
|
6
8
|
alias: string;
|
|
7
9
|
}>;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
10
|
+
/**
|
|
11
|
+
* Options bag containing {@link CommonDependencyDescriptors} that will be added to
|
|
12
|
+
* _all_ packages in the graph.
|
|
13
|
+
*/
|
|
14
|
+
export type CommonDependencyDescriptorsOptions = {
|
|
15
|
+
/**
|
|
16
|
+
* Dependencies added to _all_ packages
|
|
17
|
+
*/
|
|
11
18
|
commonDependencyDescriptors?: CommonDependencyDescriptors;
|
|
12
|
-
}
|
|
13
|
-
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Options bag containing a {@link PackageDependenciesHook}
|
|
22
|
+
*/
|
|
23
|
+
export type PackageDependenciesHookOption = {
|
|
24
|
+
packageDependenciesHook?: PackageDependenciesHook | undefined;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Options for `graphPackage()`
|
|
28
|
+
*/
|
|
29
|
+
export type GraphPackageOptions = LogOptions & PolicyOption & PackageDependenciesHookOption & CommonDependencyDescriptorsOptions;
|
|
30
|
+
/**
|
|
31
|
+
* Options for `graphPackages()`
|
|
32
|
+
*/
|
|
33
|
+
export type GraphPackagesOptions = LogOptions & PolicyOption & PackageDependenciesHookOption;
|
|
34
|
+
/**
|
|
35
|
+
* Options for `gatherDependency()`
|
|
36
|
+
*/
|
|
14
37
|
export type GatherDependencyOptions = {
|
|
15
38
|
childLogicalPath?: string[];
|
|
16
39
|
/**
|
|
17
40
|
* If `true` the dependency is optional
|
|
18
41
|
*/
|
|
19
42
|
optional?: boolean;
|
|
43
|
+
} & LogOptions & PackageDependenciesHookOption & PolicyOption & CommonDependencyDescriptorsOptions;
|
|
44
|
+
/**
|
|
45
|
+
* The type of a `package.json` file containing relevant fields; used by `graphPackages` and its ilk
|
|
46
|
+
*/
|
|
47
|
+
export interface PackageDescriptor {
|
|
20
48
|
/**
|
|
21
|
-
*
|
|
49
|
+
* TODO: In reality, this is optional, but `graphPackage` does not consider it
|
|
50
|
+
* to be. This will need to be fixed once support for "anonymous" packages
|
|
51
|
+
* lands; see https://github.com/endojs/endo/pull/2664
|
|
22
52
|
*/
|
|
23
|
-
|
|
24
|
-
|
|
53
|
+
name: string;
|
|
54
|
+
version?: string;
|
|
55
|
+
/**
|
|
56
|
+
* TODO: Update with proper type when this field is handled.
|
|
57
|
+
*/
|
|
58
|
+
exports?: unknown;
|
|
59
|
+
type?: 'module' | 'commonjs';
|
|
60
|
+
dependencies?: Record<string, string>;
|
|
61
|
+
devDependencies?: Record<string, string>;
|
|
62
|
+
peerDependencies?: Record<string, string>;
|
|
63
|
+
optionalDependencies?: Record<string, string>;
|
|
64
|
+
bundleDependencies?: string[];
|
|
65
|
+
peerDependenciesMeta?: Record<string, {
|
|
66
|
+
optional?: boolean;
|
|
67
|
+
[k: string]: unknown;
|
|
68
|
+
}>;
|
|
69
|
+
module?: string;
|
|
70
|
+
browser?: Record<string, string> | string;
|
|
71
|
+
main?: string;
|
|
72
|
+
[k: string]: unknown;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Value in {@link Graph}
|
|
76
|
+
*/
|
|
25
77
|
export interface Node {
|
|
26
78
|
/**
|
|
27
79
|
* Informative compartment label based on the package name and version (if available)
|
|
@@ -31,8 +83,7 @@ export interface Node {
|
|
|
31
83
|
* Package name
|
|
32
84
|
*/
|
|
33
85
|
name: string;
|
|
34
|
-
|
|
35
|
-
logicalPath: Array<string>;
|
|
86
|
+
location: FileUrlString;
|
|
36
87
|
/**
|
|
37
88
|
* `true` if the package's {@link PackageDescriptor} has an `exports` field
|
|
38
89
|
*/
|
|
@@ -51,17 +102,37 @@ export interface Node {
|
|
|
51
102
|
*
|
|
52
103
|
* The values are the keys of other {@link Node Nodes} in the {@link Graph}.
|
|
53
104
|
*/
|
|
54
|
-
dependencyLocations: Record<string,
|
|
105
|
+
dependencyLocations: Record<string, FileUrlString>;
|
|
55
106
|
parsers: LanguageForExtension;
|
|
56
107
|
types: Record<string, Language>;
|
|
108
|
+
packageDescriptor: PackageDescriptor;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* A node in the graph that has been finalized, meaning it has a `label` and is
|
|
112
|
+
* ready for conversion into a `CompartmentDescriptor`.
|
|
113
|
+
*/
|
|
114
|
+
export interface FinalNode extends Node {
|
|
115
|
+
/**
|
|
116
|
+
* Canonical name of the package; used to identify it in policy
|
|
117
|
+
*/
|
|
118
|
+
label: string;
|
|
57
119
|
}
|
|
58
120
|
/**
|
|
59
121
|
* The graph is an intermediate object model that the functions of this module
|
|
60
122
|
* build by exploring the `node_modules` tree dropped by tools like npm and
|
|
61
|
-
* consumed by tools like Node.js.
|
|
62
|
-
*
|
|
123
|
+
* consumed by tools like Node.js. This gets translated finally into a
|
|
124
|
+
* compartment map.
|
|
125
|
+
*
|
|
126
|
+
* Keys may either be a file URL string to a package or the special
|
|
127
|
+
* `<ATTENUATORS>` string.
|
|
128
|
+
*/
|
|
129
|
+
export type Graph = Record<LiteralUnion<'<ATTENUATORS>', FileUrlString>, Node>;
|
|
130
|
+
/**
|
|
131
|
+
* A graph, but contains {@link FinalNode}s instead of {@link Node}s.
|
|
132
|
+
*
|
|
133
|
+
* A "final node" has a `label` prop.
|
|
63
134
|
*/
|
|
64
|
-
export type
|
|
135
|
+
export type FinalGraph = Record<PackageCompartmentDescriptorName, Readonly<FinalNode>>;
|
|
65
136
|
export interface LanguageOptions {
|
|
66
137
|
commonjsLanguageForExtension: LanguageForExtension;
|
|
67
138
|
moduleLanguageForExtension: LanguageForExtension;
|
|
@@ -73,7 +144,20 @@ export interface LanguageOptions {
|
|
|
73
144
|
* Object result of `findPackage()`
|
|
74
145
|
*/
|
|
75
146
|
export interface PackageDetails {
|
|
76
|
-
packageLocation:
|
|
147
|
+
packageLocation: FileUrlString;
|
|
77
148
|
packageDescriptor: PackageDescriptor;
|
|
78
149
|
}
|
|
150
|
+
/**
|
|
151
|
+
* Specific type of {@link GenericGraph} that uses file URL strings for nodes;
|
|
152
|
+
* used by `mapNodeModules()` and its ilk.
|
|
153
|
+
*/
|
|
154
|
+
export type LogicalPathGraph = GenericGraph<FileUrlString>;
|
|
155
|
+
/**
|
|
156
|
+
* Options for `translateGraph()`
|
|
157
|
+
*/
|
|
158
|
+
export type TranslateGraphOptions = LogOptions & PolicyOption & PackageDependenciesHookOption;
|
|
159
|
+
/**
|
|
160
|
+
* Mapping to enable reverse-lookups of `CompartmentDescriptor`s from policy.
|
|
161
|
+
*/
|
|
162
|
+
export type CanonicalNameMap = Map<CanonicalName, PackageCompartmentDescriptorName>;
|
|
79
163
|
//# 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,EACV,QAAQ,EACR,oBAAoB,
|
|
1
|
+
{"version":3,"file":"node-modules.d.ts","sourceRoot":"","sources":["node-modules.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,35 +1,115 @@
|
|
|
1
|
+
import type { GenericGraph } from '../generic-graph.js';
|
|
2
|
+
import type {
|
|
3
|
+
ATTENUATORS_COMPARTMENT,
|
|
4
|
+
ENTRY_COMPARTMENT,
|
|
5
|
+
} from '../policy-format.js';
|
|
6
|
+
import type {
|
|
7
|
+
CanonicalName,
|
|
8
|
+
CompartmentMapDescriptor,
|
|
9
|
+
PackageCompartmentDescriptorName,
|
|
10
|
+
PolicyOption,
|
|
11
|
+
SomePolicy,
|
|
12
|
+
} from '../types.js';
|
|
1
13
|
import type {
|
|
2
14
|
Language,
|
|
3
15
|
LanguageForExtension,
|
|
16
|
+
PackageCompartmentMapDescriptor,
|
|
4
17
|
} from './compartment-map-schema.js';
|
|
5
|
-
import type {
|
|
6
|
-
|
|
18
|
+
import type {
|
|
19
|
+
FileUrlString,
|
|
20
|
+
LogOptions,
|
|
21
|
+
PackageDependenciesHook,
|
|
22
|
+
} from './external.js';
|
|
23
|
+
import type { LiteralUnion } from './typescript.js';
|
|
7
24
|
|
|
8
25
|
export type CommonDependencyDescriptors = Record<
|
|
9
26
|
string,
|
|
10
27
|
{ spec: string; alias: string }
|
|
11
28
|
>;
|
|
12
29
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
30
|
+
/**
|
|
31
|
+
* Options bag containing {@link CommonDependencyDescriptors} that will be added to
|
|
32
|
+
* _all_ packages in the graph.
|
|
33
|
+
*/
|
|
34
|
+
export type CommonDependencyDescriptorsOptions = {
|
|
35
|
+
/**
|
|
36
|
+
* Dependencies added to _all_ packages
|
|
37
|
+
*/
|
|
16
38
|
commonDependencyDescriptors?: CommonDependencyDescriptors;
|
|
17
|
-
}
|
|
39
|
+
};
|
|
18
40
|
|
|
19
|
-
|
|
41
|
+
/**
|
|
42
|
+
* Options bag containing a {@link PackageDependenciesHook}
|
|
43
|
+
*/
|
|
44
|
+
export type PackageDependenciesHookOption = {
|
|
45
|
+
packageDependenciesHook?: PackageDependenciesHook | undefined;
|
|
46
|
+
};
|
|
20
47
|
|
|
48
|
+
/**
|
|
49
|
+
* Options for `graphPackage()`
|
|
50
|
+
*/
|
|
51
|
+
export type GraphPackageOptions = LogOptions &
|
|
52
|
+
PolicyOption &
|
|
53
|
+
PackageDependenciesHookOption &
|
|
54
|
+
CommonDependencyDescriptorsOptions;
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Options for `graphPackages()`
|
|
58
|
+
*/
|
|
59
|
+
export type GraphPackagesOptions = LogOptions &
|
|
60
|
+
PolicyOption &
|
|
61
|
+
PackageDependenciesHookOption;
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Options for `gatherDependency()`
|
|
65
|
+
*/
|
|
21
66
|
export type GatherDependencyOptions = {
|
|
22
67
|
childLogicalPath?: string[];
|
|
23
68
|
/**
|
|
24
69
|
* If `true` the dependency is optional
|
|
25
70
|
*/
|
|
26
71
|
optional?: boolean;
|
|
72
|
+
} & LogOptions &
|
|
73
|
+
PackageDependenciesHookOption &
|
|
74
|
+
PolicyOption &
|
|
75
|
+
CommonDependencyDescriptorsOptions;
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* The type of a `package.json` file containing relevant fields; used by `graphPackages` and its ilk
|
|
79
|
+
*/
|
|
80
|
+
export interface PackageDescriptor {
|
|
27
81
|
/**
|
|
28
|
-
*
|
|
82
|
+
* TODO: In reality, this is optional, but `graphPackage` does not consider it
|
|
83
|
+
* to be. This will need to be fixed once support for "anonymous" packages
|
|
84
|
+
* lands; see https://github.com/endojs/endo/pull/2664
|
|
29
85
|
*/
|
|
30
|
-
|
|
31
|
-
|
|
86
|
+
name: string;
|
|
87
|
+
version?: string;
|
|
88
|
+
/**
|
|
89
|
+
* TODO: Update with proper type when this field is handled.
|
|
90
|
+
*/
|
|
91
|
+
exports?: unknown;
|
|
92
|
+
type?: 'module' | 'commonjs';
|
|
93
|
+
dependencies?: Record<string, string>;
|
|
94
|
+
devDependencies?: Record<string, string>;
|
|
95
|
+
peerDependencies?: Record<string, string>;
|
|
96
|
+
optionalDependencies?: Record<string, string>;
|
|
97
|
+
bundleDependencies?: string[];
|
|
98
|
+
peerDependenciesMeta?: Record<
|
|
99
|
+
string,
|
|
100
|
+
{ optional?: boolean; [k: string]: unknown }
|
|
101
|
+
>;
|
|
102
|
+
module?: string;
|
|
103
|
+
browser?: Record<string, string> | string;
|
|
104
|
+
|
|
105
|
+
main?: string;
|
|
32
106
|
|
|
107
|
+
[k: string]: unknown;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Value in {@link Graph}
|
|
112
|
+
*/
|
|
33
113
|
export interface Node {
|
|
34
114
|
/**
|
|
35
115
|
* Informative compartment label based on the package name and version (if available)
|
|
@@ -39,8 +119,7 @@ export interface Node {
|
|
|
39
119
|
* Package name
|
|
40
120
|
*/
|
|
41
121
|
name: string;
|
|
42
|
-
|
|
43
|
-
logicalPath: Array<string>;
|
|
122
|
+
location: FileUrlString;
|
|
44
123
|
/**
|
|
45
124
|
* `true` if the package's {@link PackageDescriptor} has an `exports` field
|
|
46
125
|
*/
|
|
@@ -59,18 +138,43 @@ export interface Node {
|
|
|
59
138
|
*
|
|
60
139
|
* The values are the keys of other {@link Node Nodes} in the {@link Graph}.
|
|
61
140
|
*/
|
|
62
|
-
dependencyLocations: Record<string,
|
|
141
|
+
dependencyLocations: Record<string, FileUrlString>;
|
|
63
142
|
parsers: LanguageForExtension;
|
|
64
143
|
types: Record<string, Language>;
|
|
144
|
+
packageDescriptor: PackageDescriptor;
|
|
145
|
+
}
|
|
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;
|
|
65
156
|
}
|
|
66
157
|
|
|
67
158
|
/**
|
|
68
159
|
* The graph is an intermediate object model that the functions of this module
|
|
69
160
|
* build by exploring the `node_modules` tree dropped by tools like npm and
|
|
70
|
-
* consumed by tools like Node.js.
|
|
71
|
-
*
|
|
161
|
+
* consumed by tools like Node.js. This gets translated finally into a
|
|
162
|
+
* compartment map.
|
|
163
|
+
*
|
|
164
|
+
* Keys may either be a file URL string to a package or the special
|
|
165
|
+
* `<ATTENUATORS>` string.
|
|
166
|
+
*/
|
|
167
|
+
export type Graph = Record<LiteralUnion<'<ATTENUATORS>', FileUrlString>, Node>;
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* A graph, but contains {@link FinalNode}s instead of {@link Node}s.
|
|
171
|
+
*
|
|
172
|
+
* A "final node" has a `label` prop.
|
|
72
173
|
*/
|
|
73
|
-
export type
|
|
174
|
+
export type FinalGraph = Record<
|
|
175
|
+
PackageCompartmentDescriptorName,
|
|
176
|
+
Readonly<FinalNode>
|
|
177
|
+
>;
|
|
74
178
|
|
|
75
179
|
export interface LanguageOptions {
|
|
76
180
|
commonjsLanguageForExtension: LanguageForExtension;
|
|
@@ -84,6 +188,27 @@ export interface LanguageOptions {
|
|
|
84
188
|
* Object result of `findPackage()`
|
|
85
189
|
*/
|
|
86
190
|
export interface PackageDetails {
|
|
87
|
-
packageLocation:
|
|
191
|
+
packageLocation: FileUrlString;
|
|
88
192
|
packageDescriptor: PackageDescriptor;
|
|
89
193
|
}
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* Specific type of {@link GenericGraph} that uses file URL strings for nodes;
|
|
197
|
+
* used by `mapNodeModules()` and its ilk.
|
|
198
|
+
*/
|
|
199
|
+
export type LogicalPathGraph = GenericGraph<FileUrlString>;
|
|
200
|
+
|
|
201
|
+
/**
|
|
202
|
+
* Options for `translateGraph()`
|
|
203
|
+
*/
|
|
204
|
+
export type TranslateGraphOptions = LogOptions &
|
|
205
|
+
PolicyOption &
|
|
206
|
+
PackageDependenciesHookOption;
|
|
207
|
+
|
|
208
|
+
/**
|
|
209
|
+
* Mapping to enable reverse-lookups of `CompartmentDescriptor`s from policy.
|
|
210
|
+
*/
|
|
211
|
+
export type CanonicalNameMap = Map<
|
|
212
|
+
CanonicalName,
|
|
213
|
+
PackageCompartmentDescriptorName
|
|
214
|
+
>;
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
*
|
|
5
5
|
* @module
|
|
6
6
|
*/
|
|
7
|
+
import type { WILDCARD_POLICY_VALUE } from '../policy-format.js';
|
|
7
8
|
/**
|
|
8
9
|
* An object representing a full attenuation definition.
|
|
9
10
|
*/
|
|
@@ -11,7 +12,7 @@ export type FullAttenuationDefinition = {
|
|
|
11
12
|
/** The type of attenuation. */
|
|
12
13
|
attenuate: string;
|
|
13
14
|
/** The parameters for the attenuation. */
|
|
14
|
-
params
|
|
15
|
+
params?: ImplicitAttenuationDefinition;
|
|
15
16
|
};
|
|
16
17
|
/**
|
|
17
18
|
* An array of any type representing an implicit attenuation definition.
|
|
@@ -30,7 +31,7 @@ export type UnifiedAttenuationDefinition = {
|
|
|
30
31
|
/**
|
|
31
32
|
* A type representing a wildcard policy, which can be 'any'.
|
|
32
33
|
*/
|
|
33
|
-
export type WildcardPolicy =
|
|
34
|
+
export type WildcardPolicy = typeof WILDCARD_POLICY_VALUE;
|
|
34
35
|
/**
|
|
35
36
|
* A type representing a property policy, which is a record of string keys and
|
|
36
37
|
* boolean values
|
|
@@ -41,7 +42,7 @@ export type PropertyPolicy = Record<string, boolean>;
|
|
|
41
42
|
* wildcard policy}, a property policy, `undefined`, or defined by an
|
|
42
43
|
* attenuator
|
|
43
44
|
*/
|
|
44
|
-
export type PolicyItem<T = void> = WildcardPolicy | PropertyPolicy | T;
|
|
45
|
+
export type PolicyItem<T = void> = [T] extends [void] ? WildcardPolicy | PropertyPolicy : WildcardPolicy | PropertyPolicy | T;
|
|
45
46
|
/**
|
|
46
47
|
* An object representing a nested attenuation definition.
|
|
47
48
|
*/
|
|
@@ -50,19 +51,33 @@ export type NestedAttenuationDefinition = Record<string, AttenuationDefinition |
|
|
|
50
51
|
* An object representing a base package policy.
|
|
51
52
|
*/
|
|
52
53
|
export type PackagePolicy<PackagePolicyItem = void, GlobalsPolicyItem = void, BuiltinsPolicyItem = void, ExtraOptions = unknown> = {
|
|
53
|
-
/**
|
|
54
|
+
/**
|
|
55
|
+
* The default attenuator, if any.
|
|
56
|
+
*/
|
|
54
57
|
defaultAttenuator?: string | undefined;
|
|
55
|
-
/**
|
|
58
|
+
/**
|
|
59
|
+
* The policy item for packages.
|
|
60
|
+
*/
|
|
56
61
|
packages?: PolicyItem<PackagePolicyItem> | undefined;
|
|
57
|
-
/**
|
|
62
|
+
/**
|
|
63
|
+
* The policy item or full attenuation definition for globals.
|
|
64
|
+
*/
|
|
58
65
|
globals?: AttenuationDefinition | PolicyItem<GlobalsPolicyItem> | undefined;
|
|
59
|
-
/**
|
|
66
|
+
/**
|
|
67
|
+
* The policy item or nested attenuation definition for builtins.
|
|
68
|
+
*/
|
|
60
69
|
builtins?: NestedAttenuationDefinition | PolicyItem<BuiltinsPolicyItem> | undefined;
|
|
61
|
-
/**
|
|
70
|
+
/**
|
|
71
|
+
* Whether to disable global freeze.
|
|
72
|
+
*/
|
|
62
73
|
noGlobalFreeze?: boolean | undefined;
|
|
63
|
-
/**
|
|
74
|
+
/**
|
|
75
|
+
* Whether to allow dynamic imports
|
|
76
|
+
*/
|
|
64
77
|
dynamic?: boolean | undefined;
|
|
65
|
-
/**
|
|
78
|
+
/**
|
|
79
|
+
* Any additional user-defined options can be added to the policy here
|
|
80
|
+
*/
|
|
66
81
|
options?: ExtraOptions | undefined;
|
|
67
82
|
};
|
|
68
83
|
/**
|
|
@@ -79,5 +94,5 @@ export type Policy<PackagePolicyItem = void, GlobalsPolicyItem = void, BuiltinsP
|
|
|
79
94
|
/** Any {@link Policy} */
|
|
80
95
|
export type SomePolicy = Policy<any, any, any, any>;
|
|
81
96
|
/** Any {@link PackagePolicy} */
|
|
82
|
-
export type SomePackagePolicy = PackagePolicy<
|
|
97
|
+
export type SomePackagePolicy = PackagePolicy<void, void, void, unknown>;
|
|
83
98
|
//# sourceMappingURL=policy-schema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy-schema.d.ts","sourceRoot":"","sources":["policy-schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"policy-schema.d.ts","sourceRoot":"","sources":["policy-schema.ts"],"names":[],"mappings":"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"}
|