@telorun/kernel 0.75.0 → 0.76.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/dist/bundle/module-artifact.d.ts +21 -4
- package/dist/bundle/module-artifact.d.ts.map +1 -1
- package/dist/bundle/module-artifact.js +42 -17
- package/dist/bundle/module-artifact.js.map +1 -1
- package/dist/bundle/module-manifest.d.ts +5 -1
- package/dist/bundle/module-manifest.d.ts.map +1 -1
- package/dist/bundle/module-manifest.js +5 -1
- package/dist/bundle/module-manifest.js.map +1 -1
- package/dist/controller-loader.d.ts +3 -2
- package/dist/controller-loader.d.ts.map +1 -1
- package/dist/controller-loader.js +10 -9
- package/dist/controller-loader.js.map +1 -1
- package/dist/controller-loaders/bundle-loader.d.ts +51 -4
- package/dist/controller-loaders/bundle-loader.d.ts.map +1 -1
- package/dist/controller-loaders/bundle-loader.js +260 -11
- package/dist/controller-loaders/bundle-loader.js.map +1 -1
- package/dist/controller-loaders/napi-loader.d.ts.map +1 -1
- package/dist/controller-loaders/napi-loader.js +8 -1
- package/dist/controller-loaders/napi-loader.js.map +1 -1
- package/dist/controller-loaders/npm-loader.d.ts.map +1 -1
- package/dist/controller-loaders/npm-loader.js +65 -3
- package/dist/controller-loaders/npm-loader.js.map +1 -1
- package/dist/controller-loaders/sibling-libraries.d.ts +93 -0
- package/dist/controller-loaders/sibling-libraries.d.ts.map +1 -0
- package/dist/controller-loaders/sibling-libraries.js +111 -0
- package/dist/controller-loaders/sibling-libraries.js.map +1 -0
- package/dist/controller-loaders/source-bundle-builder.d.ts +25 -2
- package/dist/controller-loaders/source-bundle-builder.d.ts.map +1 -1
- package/dist/controller-loaders/source-bundle-builder.js +232 -26
- package/dist/controller-loaders/source-bundle-builder.js.map +1 -1
- package/dist/controllers/resource-definition/resource-definition-controller.d.ts.map +1 -1
- package/dist/controllers/resource-definition/resource-definition-controller.js +5 -1
- package/dist/controllers/resource-definition/resource-definition-controller.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/kernel.d.ts +11 -1
- package/dist/kernel.d.ts.map +1 -1
- package/dist/kernel.js +37 -4
- package/dist/kernel.js.map +1 -1
- package/dist/manifest-sources/local-manifest-cache-source.d.ts +13 -2
- package/dist/manifest-sources/local-manifest-cache-source.d.ts.map +1 -1
- package/dist/manifest-sources/local-manifest-cache-source.js +19 -3
- package/dist/manifest-sources/local-manifest-cache-source.js.map +1 -1
- package/dist/resource-context.d.ts +5 -0
- package/dist/resource-context.d.ts.map +1 -1
- package/dist/resource-context.js +6 -0
- package/dist/resource-context.js.map +1 -1
- package/package.json +2 -2
- package/src/bundle/module-artifact.ts +50 -20
- package/src/bundle/module-manifest.ts +14 -1
- package/src/controller-loader.ts +25 -7
- package/src/controller-loaders/bundle-loader.ts +326 -10
- package/src/controller-loaders/napi-loader.ts +8 -1
- package/src/controller-loaders/npm-loader.ts +73 -3
- package/src/controller-loaders/sibling-libraries.ts +171 -0
- package/src/controller-loaders/source-bundle-builder.ts +281 -24
- package/src/controllers/resource-definition/resource-definition-controller.ts +7 -1
- package/src/index.ts +1 -0
- package/src/kernel.ts +50 -11
- package/src/manifest-sources/local-manifest-cache-source.ts +20 -3
- package/src/resource-context.ts +8 -0
|
@@ -65,7 +65,8 @@ export declare class ModuleArtifact {
|
|
|
65
65
|
* what a module-relative path resolves against. */
|
|
66
66
|
get directory(): string;
|
|
67
67
|
/**
|
|
68
|
-
* Materialize the
|
|
68
|
+
* Materialize the code layers carrying `selector` exactly — `controller` and
|
|
69
|
+
* `library` both — plus the `common` layer.
|
|
69
70
|
*
|
|
70
71
|
* Looked up by exact selector key rather than by re-matching the host: the
|
|
71
72
|
* candidate being resolved already *is* one selector, and it is by construction
|
|
@@ -75,15 +76,31 @@ export declare class ModuleArtifact {
|
|
|
75
76
|
* whichever came first regardless of which candidate asked — materializing the
|
|
76
77
|
* wrong layer and then reporting "bundle not found".
|
|
77
78
|
*
|
|
79
|
+
* **Both code roles**, because a module's controller entry points and its
|
|
80
|
+
* library entry point are one file whenever it declares both: the file lands in
|
|
81
|
+
* the `library` layer (the weaker precondition — a consumer must reach it
|
|
82
|
+
* without loading this module's controllers), so a controller resolution that
|
|
83
|
+
* fetched only its own role would find nothing. Which of the two holds a given
|
|
84
|
+
* `path=` is not the loader's business; both being on disk is.
|
|
85
|
+
*
|
|
78
86
|
* The `common` layer rides along because it is the sink for files no candidate
|
|
79
87
|
* claimed — an undeclared sidecar an entry point loads at runtime. Pulling it
|
|
80
|
-
* with any
|
|
88
|
+
* with any code layer is what makes a forgotten declaration cost bytes
|
|
81
89
|
* instead of a module-not-found at import.
|
|
82
90
|
*
|
|
83
|
-
* Returns `undefined` when the artifact ships no layer for this selector,
|
|
84
|
-
* is how a loader learns to fall through to the next candidate.
|
|
91
|
+
* Returns `undefined` when the artifact ships no code layer for this selector,
|
|
92
|
+
* which is how a loader learns to fall through to the next candidate.
|
|
85
93
|
*/
|
|
86
94
|
materializeController(selector: ArtifactSelector): Promise<ResolvedControllerLayer | undefined>;
|
|
95
|
+
/**
|
|
96
|
+
* Materialize the `library` layer for `selector`, plus `common`.
|
|
97
|
+
*
|
|
98
|
+
* What a *consumer's* bundle loader calls when it resolves a sibling module's
|
|
99
|
+
* declared specifier: the sibling's controllers are irrelevant there — only its
|
|
100
|
+
* library entry point is being imported — so this asks for exactly one role.
|
|
101
|
+
*/
|
|
102
|
+
materializeLibrary(selector: ArtifactSelector): Promise<ResolvedControllerLayer | undefined>;
|
|
103
|
+
private materializeCode;
|
|
87
104
|
/**
|
|
88
105
|
* Materialize everything a module-relative file read could need: the `assets`
|
|
89
106
|
* layer **and** the `common` layer.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-artifact.d.ts","sourceRoot":"","sources":["../../src/bundle/module-artifact.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAA6B,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAQtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAG7E;0EAC0E;AAC1E,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;;;;yDAKyD;AACzD,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,iBAAiB,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;CACtB;AA2DD,wBAAgB,kBAAkB,IAAI,cAAc,CAOnD;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,cAAc;IACzB;6DACyD;IACzD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2B;IAClD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B;;;;+BAI2B;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAuD;gBAEpE,IAAI,EAAE;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,SAAS,aAAa,EAAE,CAAC;QACjC,GAAG,EAAE,MAAM,CAAC;QACZ,UAAU,EAAE,iBAAiB,CAAC;QAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;KACd;IAQD;wDACoD;IACpD,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED
|
|
1
|
+
{"version":3,"file":"module-artifact.d.ts","sourceRoot":"","sources":["../../src/bundle/module-artifact.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAA6B,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAQtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAG7E;0EAC0E;AAC1E,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;;;;yDAKyD;AACzD,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,iBAAiB,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;CACtB;AA2DD,wBAAgB,kBAAkB,IAAI,cAAc,CAOnD;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,cAAc;IACzB;6DACyD;IACzD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2B;IAClD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B;;;;+BAI2B;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAuD;gBAEpE,IAAI,EAAE;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,SAAS,aAAa,EAAE,CAAC;QACjC,GAAG,EAAE,MAAM,CAAC;QACZ,UAAU,EAAE,iBAAiB,CAAC;QAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;KACd;IAQD;wDACoD;IACpD,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACG,qBAAqB,CACzB,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC;IAI/C;;;;;;OAMG;IACG,kBAAkB,CACtB,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC;YAIjC,eAAe;IAsB7B;;;;;;;;;OASG;IACG,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;IAI7C,8EAA8E;IACxE,iBAAiB,IAAI,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;IAKjE,+DAA+D;IACzD,iBAAiB,IAAI,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;IAIjE;;+EAE2E;YAC7D,wBAAwB;IAKtC;;;;OAIG;IACG,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAW1E;gDAC4C;IAC5C,cAAc,IAAI,MAAM;YAOV,WAAW;IAIzB;;;;;;;OAOG;IACH,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,UAAU;YAQJ,mBAAmB;YA0CnB,OAAO;CAkBtB;AAOD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,YAAY,EAAE,MAAM,GAAG,SAAS,GAC/B,MAAM,GAAG,IAAI,CAWf;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,aAAa,EAAE,GAAG,SAAS,CAAC;IAC7C,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,GAAG,cAAc,GAAG,SAAS,CAU7B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { codeLayerFor, matchCodeLayers, singletonLayer, splitIntegrity, describeSelector, } from "@telorun/analyzer";
|
|
2
2
|
import { NOOP_LOGGER, RuntimeError } from "@telorun/sdk";
|
|
3
3
|
import { existsSync } from "fs";
|
|
4
4
|
import * as fs from "fs/promises";
|
|
@@ -117,7 +117,8 @@ export class ModuleArtifact {
|
|
|
117
117
|
return this.dir;
|
|
118
118
|
}
|
|
119
119
|
/**
|
|
120
|
-
* Materialize the
|
|
120
|
+
* Materialize the code layers carrying `selector` exactly — `controller` and
|
|
121
|
+
* `library` both — plus the `common` layer.
|
|
121
122
|
*
|
|
122
123
|
* Looked up by exact selector key rather than by re-matching the host: the
|
|
123
124
|
* candidate being resolved already *is* one selector, and it is by construction
|
|
@@ -127,28 +128,52 @@ export class ModuleArtifact {
|
|
|
127
128
|
* whichever came first regardless of which candidate asked — materializing the
|
|
128
129
|
* wrong layer and then reporting "bundle not found".
|
|
129
130
|
*
|
|
131
|
+
* **Both code roles**, because a module's controller entry points and its
|
|
132
|
+
* library entry point are one file whenever it declares both: the file lands in
|
|
133
|
+
* the `library` layer (the weaker precondition — a consumer must reach it
|
|
134
|
+
* without loading this module's controllers), so a controller resolution that
|
|
135
|
+
* fetched only its own role would find nothing. Which of the two holds a given
|
|
136
|
+
* `path=` is not the loader's business; both being on disk is.
|
|
137
|
+
*
|
|
130
138
|
* The `common` layer rides along because it is the sink for files no candidate
|
|
131
139
|
* claimed — an undeclared sidecar an entry point loads at runtime. Pulling it
|
|
132
|
-
* with any
|
|
140
|
+
* with any code layer is what makes a forgotten declaration cost bytes
|
|
133
141
|
* instead of a module-not-found at import.
|
|
134
142
|
*
|
|
135
|
-
* Returns `undefined` when the artifact ships no layer for this selector,
|
|
136
|
-
* is how a loader learns to fall through to the next candidate.
|
|
143
|
+
* Returns `undefined` when the artifact ships no code layer for this selector,
|
|
144
|
+
* which is how a loader learns to fall through to the next candidate.
|
|
137
145
|
*/
|
|
138
146
|
async materializeController(selector) {
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
147
|
+
return this.materializeCode(selector, ["controller", "library"]);
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Materialize the `library` layer for `selector`, plus `common`.
|
|
151
|
+
*
|
|
152
|
+
* What a *consumer's* bundle loader calls when it resolves a sibling module's
|
|
153
|
+
* declared specifier: the sibling's controllers are irrelevant there — only its
|
|
154
|
+
* library entry point is being imported — so this asks for exactly one role.
|
|
155
|
+
*/
|
|
156
|
+
async materializeLibrary(selector) {
|
|
157
|
+
return this.materializeCode(selector, ["library"]);
|
|
158
|
+
}
|
|
159
|
+
async materializeCode(selector, roles) {
|
|
160
|
+
const wanted = roles
|
|
161
|
+
.map((role) => codeLayerFor(this.layers, role, selector))
|
|
162
|
+
.filter((l) => l !== undefined);
|
|
163
|
+
if (wanted.length === 0)
|
|
142
164
|
return undefined;
|
|
143
165
|
const common = await this.materializeCommonTracked();
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
layer
|
|
150
|
-
|
|
151
|
-
|
|
166
|
+
let transferred = common?.transferred ?? false;
|
|
167
|
+
const files = [];
|
|
168
|
+
for (const layer of wanted) {
|
|
169
|
+
// Every half is a transfer the caller waited on: the common layer's bytes
|
|
170
|
+
// come down on this call too, so they are as much of a wait as the code
|
|
171
|
+
// layer's.
|
|
172
|
+
const resolved = await this.materializeTracked(layer);
|
|
173
|
+
transferred = resolved.transferred || transferred;
|
|
174
|
+
files.push(...resolved.layer.files);
|
|
175
|
+
}
|
|
176
|
+
return { layer: { dir: this.dir, files: files.sort() }, transferred };
|
|
152
177
|
}
|
|
153
178
|
/**
|
|
154
179
|
* Materialize everything a module-relative file read could need: the `assets`
|
|
@@ -186,7 +211,7 @@ export class ModuleArtifact {
|
|
|
186
211
|
*/
|
|
187
212
|
async materializeAll(target) {
|
|
188
213
|
const wanted = [
|
|
189
|
-
...
|
|
214
|
+
...matchCodeLayers(this.layers, target),
|
|
190
215
|
singletonLayer(this.layers, "assets"),
|
|
191
216
|
singletonLayer(this.layers, "common"),
|
|
192
217
|
].filter((l) => l !== undefined);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-artifact.js","sourceRoot":"","sources":["../../src/bundle/module-artifact.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"module-artifact.js","sourceRoot":"","sources":["../../src/bundle/module-artifact.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type ArtifactLayer } from "@telorun/analyzer";
|
|
1
|
+
import { type ArtifactLayer, type LibraryCandidate } from "@telorun/analyzer";
|
|
2
2
|
import { type Document } from "yaml";
|
|
3
3
|
/** Parse a manifest's YAML documents, tolerating its `!cel` / `!ref` tags. */
|
|
4
4
|
export declare function parseManifestDocs(text: string): Document[];
|
|
@@ -19,6 +19,10 @@ export interface OwnerManifest {
|
|
|
19
19
|
/** Ordered `.gitignore`-style patterns the author claimed as the lazily
|
|
20
20
|
* materialized `assets` layer. */
|
|
21
21
|
assetPatterns: string[];
|
|
22
|
+
/** The entry points this module offers a sibling's controller bundle, one per
|
|
23
|
+
* format, each naming the bare specifier it is imported by. Empty for a module
|
|
24
|
+
* nothing imports the source of. */
|
|
25
|
+
library: LibraryCandidate[];
|
|
22
26
|
/** True when the owner doc declares a non-empty `files:` list. */
|
|
23
27
|
declaresFiles: boolean;
|
|
24
28
|
/** Descriptive provenance a transport projects into its backend's metadata
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-manifest.d.ts","sourceRoot":"","sources":["../../src/bundle/module-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"module-manifest.d.ts","sourceRoot":"","sources":["../../src/bundle/module-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACtB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAqB,KAAK,QAAQ,EAAE,MAAM,MAAM,CAAC;AAIxD,8EAA8E;AAC9E,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE,CAE1D;AAED;;;qBAGqB;AACrB,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,QAAQ,GAAG,SAAS,CAKnE;AAED;8CAC8C;AAC9C,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;uEAEmE;IACnE,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;IACzB;uCACmC;IACnC,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB;;yCAEqC;IACrC,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,kEAAkE;IAClE,aAAa,EAAE,OAAO,CAAC;IACvB;iEAC6D;IAC7D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;yEAEyE;AACzE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CA6B7D"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { parseLayerIndex } from "@telorun/analyzer";
|
|
1
|
+
import { parseLayerIndex, readLibraryCandidates, } from "@telorun/analyzer";
|
|
2
2
|
import { defaultCustomTags } from "@telorun/templating";
|
|
3
3
|
import { parseAllDocuments } from "yaml";
|
|
4
4
|
const OWNER_KINDS = new Set(["Telo.Application", "Telo.Library"]);
|
|
@@ -30,6 +30,10 @@ export function readOwnerManifest(text) {
|
|
|
30
30
|
version: str(md.version),
|
|
31
31
|
layers: parsed?.layers === undefined ? undefined : parseLayerIndex(parsed.layers),
|
|
32
32
|
assetPatterns: patterns(parsed?.assets),
|
|
33
|
+
// Malformed entries are dropped here and reported by the analyzer, which is
|
|
34
|
+
// the surface that can point at the line. A dropped candidate leaves the
|
|
35
|
+
// specifier unresolved at load, which fails loudly rather than silently.
|
|
36
|
+
library: readLibraryCandidates(parsed).candidates,
|
|
33
37
|
declaresFiles: Array.isArray(parsed?.files) && parsed.files.length > 0,
|
|
34
38
|
description: str(md.description),
|
|
35
39
|
repository: str(md.repository),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-manifest.js","sourceRoot":"","sources":["../../src/bundle/module-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"module-manifest.js","sourceRoot":"","sources":["../../src/bundle/module-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,qBAAqB,GAGtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAiB,MAAM,MAAM,CAAC;AAExD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC,CAAC;AAElE,8EAA8E;AAC9E,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,iBAAiB,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAC;AACtE,CAAC;AAED;;;qBAGqB;AACrB,MAAM,UAAU,YAAY,CAAC,IAAgB;IAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;QACrB,MAAM,IAAI,GAAI,CAAC,CAAC,MAAM,EAA+B,EAAE,IAAI,CAAC;QAC5D,OAAO,IAAI,KAAK,SAAS,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC;AA4BD;;yEAEyE;AACzE,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,MAAM,KAAK,GAAG,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,KAAK,EAAE,MAAM,EAOf,CAAC;IACd,MAAM,EAAE,GAAG,MAAM,EAAE,QAAQ,IAAI,EAAE,CAAC;IAClC,MAAM,GAAG,GAAG,CAAC,CAAU,EAAsB,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACxF,MAAM,QAAQ,GAAG,CAAC,CAAU,EAAY,EAAE,CACxC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9E,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC;QAClB,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC;QACxB,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC;QACjF,aAAa,EAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACvC,4EAA4E;QAC5E,yEAAyE;QACzE,yEAAyE;QACzE,OAAO,EAAE,qBAAqB,CAAC,MAAM,CAAC,CAAC,UAAU;QACjD,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;QACtE,WAAW,EAAE,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC;QAChC,UAAU,EAAE,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC;QAC9B,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC;QACxB,aAAa,EAAE,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC;KACrC,CAAC;AACJ,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ControllerInstance, type Logger } from "@telorun/sdk";
|
|
2
2
|
import type { ModuleArtifact } from "./bundle/module-artifact.js";
|
|
3
|
+
import { type SiblingLibraryMap } from "./controller-loaders/sibling-libraries.js";
|
|
3
4
|
import { ControllerPolicy } from "./runtime-registry.js";
|
|
4
5
|
export type { ControllerPolicy } from "./runtime-registry.js";
|
|
5
6
|
/**
|
|
@@ -112,7 +113,7 @@ export declare class ControllerLoader {
|
|
|
112
113
|
private readonly napiLoader;
|
|
113
114
|
private readonly bundleLoader;
|
|
114
115
|
constructor(options?: ControllerLoaderOptions);
|
|
115
|
-
load(purlCandidates: string[], baseUri: string, policy?: ControllerPolicy, artifact?: ModuleArtifact): Promise<ControllerInstance>;
|
|
116
|
+
load(purlCandidates: string[], baseUri: string, policy?: ControllerPolicy, artifact?: ModuleArtifact, libraries?: SiblingLibraryMap): Promise<ControllerInstance>;
|
|
116
117
|
/**
|
|
117
118
|
* Resolve a controller without importing it: pick the first candidate this
|
|
118
119
|
* environment can host (same ordering + env-missing fallback as {@link load}),
|
|
@@ -128,7 +129,7 @@ export declare class ControllerLoader {
|
|
|
128
129
|
* load actually happens. A total resolution failure throws, mirroring
|
|
129
130
|
* {@link load}'s aggregated error.
|
|
130
131
|
*/
|
|
131
|
-
resolve(purlCandidates: string[], baseUri: string, policy?: ControllerPolicy, artifact?: ModuleArtifact): Promise<ResolvedController>;
|
|
132
|
+
resolve(purlCandidates: string[], baseUri: string, policy?: ControllerPolicy, artifact?: ModuleArtifact, libraries?: SiblingLibraryMap): Promise<ResolvedController>;
|
|
132
133
|
private dispatchOne;
|
|
133
134
|
private dispatchResolveOne;
|
|
134
135
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller-loader.d.ts","sourceRoot":"","sources":["../src/controller-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAgB,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAE7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"controller-loader.d.ts","sourceRoot":"","sources":["../src/controller-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAgB,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAE7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,2CAA2C,CAAC;AAGnD,OAAO,EAAE,gBAAgB,EAAmC,MAAM,uBAAuB,CAAC;AAE1F,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D;;;;;;;;GAQG;AACH,MAAM,MAAM,uBAAuB,GAC/B,OAAO,GACP,cAAc,GACd,OAAO,GACP,aAAa,GACb,aAAa,GACb,QAAQ,CAAC;AAEb;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,uBAAuB,CAAC;IAChC,cAAc,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,CAAC;CACnD;AAED,MAAM,MAAM,qBAAqB,GAC7B;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACxD;IACE,IAAI,EAAE,kBAAkB,CAAC;IACzB,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,uBAAuB,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;CAChF,GACD;IAAE,IAAI,EAAE,sBAAsB,CAAC;IAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE;AAC5E;;;;;;GAMG;GACD;IAAE,IAAI,EAAE,uBAAuB,CAAC;IAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAEjF;;;;;;GAMG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1F,MAAM,WAAW,uBAAuB;IACtC,IAAI,CAAC,EAAE,oBAAoB,CAAC;IAC5B;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;kDAE8C;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;oDAEgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;2DAGuD;IACvD,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAmC;IACxD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsB;IAChD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAuB;IAClD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAyB;gBAE1C,OAAO,GAAE,uBAA4B;IAW3C,IAAI,CACR,cAAc,EAAE,MAAM,EAAE,EACxB,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,gBAAgB,EACzB,QAAQ,CAAC,EAAE,cAAc,EACzB,SAAS,GAAE,iBAAwC,GAClD,OAAO,CAAC,kBAAkB,CAAC;IAqD9B;;;;;;;;;;;;;;OAcG;IACG,OAAO,CACX,cAAc,EAAE,MAAM,EAAE,EACxB,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,gBAAgB,EACzB,QAAQ,CAAC,EAAE,cAAc,EACzB,SAAS,GAAE,iBAAwC,GAClD,OAAO,CAAC,kBAAkB,CAAC;YAoChB,WAAW;YAeX,kBAAkB;CAiBjC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { RuntimeError } from "@telorun/sdk";
|
|
2
2
|
import { BundleControllerLoader } from "./controller-loaders/bundle-loader.js";
|
|
3
|
+
import { NO_SIBLING_LIBRARIES, } from "./controller-loaders/sibling-libraries.js";
|
|
3
4
|
import { ControllerEnvMissingError, NapiControllerLoader } from "./controller-loaders/napi-loader.js";
|
|
4
5
|
import { NpmControllerLoader } from "./controller-loaders/npm-loader.js";
|
|
5
6
|
import { DEFAULT_POLICY, POLICY_WILDCARD } from "./runtime-registry.js";
|
|
@@ -34,9 +35,9 @@ export class ControllerLoader {
|
|
|
34
35
|
if (options.log)
|
|
35
36
|
this.npmLoader.setLogger(options.log);
|
|
36
37
|
this.napiLoader = new NapiControllerLoader();
|
|
37
|
-
this.bundleLoader = new BundleControllerLoader(options.cacheRoot);
|
|
38
|
+
this.bundleLoader = new BundleControllerLoader(options.cacheRoot, options.log);
|
|
38
39
|
}
|
|
39
|
-
async load(purlCandidates, baseUri, policy, artifact) {
|
|
40
|
+
async load(purlCandidates, baseUri, policy, artifact, libraries = NO_SIBLING_LIBRARIES) {
|
|
40
41
|
if (!purlCandidates || purlCandidates.length === 0) {
|
|
41
42
|
throw new RuntimeError("ERR_CONTROLLER_NOT_FOUND", "Missing controller PURL candidates");
|
|
42
43
|
}
|
|
@@ -50,7 +51,7 @@ export class ControllerLoader {
|
|
|
50
51
|
await this.emit?.({ name: "ControllerLoading", payload: { purl } });
|
|
51
52
|
const startedAt = Date.now();
|
|
52
53
|
try {
|
|
53
|
-
const { instance, source } = await this.dispatchOne(purl, baseUri, artifact);
|
|
54
|
+
const { instance, source } = await this.dispatchOne(purl, baseUri, artifact, libraries);
|
|
54
55
|
await this.emit?.({
|
|
55
56
|
name: "ControllerLoaded",
|
|
56
57
|
payload: { purl, source, durationMs: Date.now() - startedAt },
|
|
@@ -100,7 +101,7 @@ export class ControllerLoader {
|
|
|
100
101
|
* load actually happens. A total resolution failure throws, mirroring
|
|
101
102
|
* {@link load}'s aggregated error.
|
|
102
103
|
*/
|
|
103
|
-
async resolve(purlCandidates, baseUri, policy, artifact) {
|
|
104
|
+
async resolve(purlCandidates, baseUri, policy, artifact, libraries = NO_SIBLING_LIBRARIES) {
|
|
104
105
|
if (!purlCandidates || purlCandidates.length === 0) {
|
|
105
106
|
throw new RuntimeError("ERR_CONTROLLER_NOT_FOUND", "Missing controller PURL candidates");
|
|
106
107
|
}
|
|
@@ -112,7 +113,7 @@ export class ControllerLoader {
|
|
|
112
113
|
const errors = [];
|
|
113
114
|
for (const purl of ordered) {
|
|
114
115
|
try {
|
|
115
|
-
const { source, importInstance } = await this.dispatchResolveOne(purl, baseUri, artifact);
|
|
116
|
+
const { source, importInstance } = await this.dispatchResolveOne(purl, baseUri, artifact, libraries);
|
|
116
117
|
return { purl, source, importInstance };
|
|
117
118
|
}
|
|
118
119
|
catch (err) {
|
|
@@ -125,11 +126,11 @@ export class ControllerLoader {
|
|
|
125
126
|
}
|
|
126
127
|
throw new RuntimeError("ERR_CONTROLLER_NOT_FOUND", `No controller resolved. Tried ${ordered.length} candidate(s):\n${errors.join("\n")}`);
|
|
127
128
|
}
|
|
128
|
-
async dispatchOne(purl, baseUri, artifact) {
|
|
129
|
-
const { source, importInstance } = await this.dispatchResolveOne(purl, baseUri, artifact);
|
|
129
|
+
async dispatchOne(purl, baseUri, artifact, libraries) {
|
|
130
|
+
const { source, importInstance } = await this.dispatchResolveOne(purl, baseUri, artifact, libraries);
|
|
130
131
|
return { instance: await importInstance(), source };
|
|
131
132
|
}
|
|
132
|
-
async dispatchResolveOne(purl, baseUri, artifact) {
|
|
133
|
+
async dispatchResolveOne(purl, baseUri, artifact, libraries) {
|
|
133
134
|
if (purl.startsWith("pkg:npm")) {
|
|
134
135
|
return this.npmLoader.resolve(purl, baseUri);
|
|
135
136
|
}
|
|
@@ -137,7 +138,7 @@ export class ControllerLoader {
|
|
|
137
138
|
return this.napiLoader.resolve(purl, baseUri);
|
|
138
139
|
}
|
|
139
140
|
if (purl.startsWith("pkg:telo")) {
|
|
140
|
-
return this.bundleLoader.resolve(purl, baseUri, artifact);
|
|
141
|
+
return this.bundleLoader.resolve(purl, baseUri, artifact, libraries);
|
|
141
142
|
}
|
|
142
143
|
throw new ControllerEnvMissingError(`Unsupported PURL scheme: ${purl}`);
|
|
143
144
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller-loader.js","sourceRoot":"","sources":["../src/controller-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,YAAY,EAAe,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAE/E,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AACtG,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAoB,cAAc,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAoF1F;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,gBAAgB;IACV,IAAI,CAAmC;IACvC,SAAS,CAAsB;IAC/B,UAAU,CAAuB;IACjC,YAAY,CAAyB;IAEtD,YAAY,UAAmC,EAAE;QAC/C,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,IAAI,mBAAmB,CAAC;YACvC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;SACjC,CAAC,CAAC;QACH,IAAI,OAAO,CAAC,GAAG;YAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACvD,IAAI,CAAC,UAAU,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC7C,IAAI,CAAC,YAAY,GAAG,IAAI,sBAAsB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"controller-loader.js","sourceRoot":"","sources":["../src/controller-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { ControllerInstance } from "@telorun/sdk";
|
|
1
|
+
import { ControllerInstance, type Logger } from "@telorun/sdk";
|
|
2
2
|
import { type ModuleArtifact } from "../bundle/module-artifact.js";
|
|
3
3
|
import type { ControllerResolveSource } from "../controller-loader.js";
|
|
4
|
+
import { type SiblingLibraryMap } from "./sibling-libraries.js";
|
|
4
5
|
/**
|
|
5
6
|
* Loads a `pkg:telo` controller — a controller delivered inside the module's own
|
|
6
7
|
* bundle (the Telo registry artifact), not fetched from an external package
|
|
@@ -48,14 +49,60 @@ import type { ControllerResolveSource } from "../controller-loader.js";
|
|
|
48
49
|
*/
|
|
49
50
|
export declare class BundleControllerLoader {
|
|
50
51
|
private readonly cacheRoot?;
|
|
52
|
+
/** Reports what resolution had to leave alone — a sibling-library slot an
|
|
53
|
+
* installer already owns, which resolves but not to this module's own copy. */
|
|
54
|
+
private readonly log?;
|
|
51
55
|
/** Where a dev build from `local_path` is cached (`<cache-root>/controller-src`).
|
|
52
56
|
* Absent for callers that resolved no cache root, which simply disables the
|
|
53
57
|
* source path — a prebuilt `path=` still loads. */
|
|
54
|
-
constructor(cacheRoot?: string | undefined
|
|
55
|
-
|
|
58
|
+
constructor(cacheRoot?: string | undefined,
|
|
59
|
+
/** Reports what resolution had to leave alone — a sibling-library slot an
|
|
60
|
+
* installer already owns, which resolves but not to this module's own copy. */
|
|
61
|
+
log?: Logger | undefined);
|
|
62
|
+
load(purl: string, baseUri: string, artifact?: ModuleArtifact, libraries?: SiblingLibraryMap): Promise<{
|
|
56
63
|
instance: ControllerInstance;
|
|
57
64
|
source: ControllerResolveSource;
|
|
58
65
|
}>;
|
|
66
|
+
/**
|
|
67
|
+
* Resolve every sibling library this bundle imports to a file on disk, and
|
|
68
|
+
* prepare the module scope each one will run in.
|
|
69
|
+
*
|
|
70
|
+
* Filtered to the candidate's own format: a `js` bundle imports the `js` entry
|
|
71
|
+
* point, and a Rust crate of the same module — a different specifier entirely —
|
|
72
|
+
* is not its business. The host platform gate is the same one the candidate
|
|
73
|
+
* itself passed, since a library layer is selected exactly as a controller
|
|
74
|
+
* layer is.
|
|
75
|
+
*/
|
|
76
|
+
private libraryEntries;
|
|
77
|
+
/**
|
|
78
|
+
* The file a sibling's specifier resolves to, with that file's own imports made
|
|
79
|
+
* resolvable in turn.
|
|
80
|
+
*
|
|
81
|
+
* A library is delivered exactly as a controller is, so it takes the same two
|
|
82
|
+
* routes: a published module's entry point comes out of its `library` layer,
|
|
83
|
+
* and a working copy's is built from `local_path` so an edit is picked up with
|
|
84
|
+
* no build step. The recursion is real — a library that imports another library
|
|
85
|
+
* needs its own shims beside it — and `seen` bounds it at one visit per module.
|
|
86
|
+
*/
|
|
87
|
+
private prepareLibrary;
|
|
88
|
+
/**
|
|
89
|
+
* The file a library's specifier resolves to.
|
|
90
|
+
*
|
|
91
|
+
* Every failure here is `ControllerEnvMissingError`, and that is a choice worth
|
|
92
|
+
* defending: it is not "this host lacks an environment" in the ordinary sense.
|
|
93
|
+
* But a library is resolved **per format**, so a failure is scoped to ONE
|
|
94
|
+
* candidate — the `js` library being absent says nothing about whether a
|
|
95
|
+
* `napi` candidate of the same kind can run, and the candidate list is exactly
|
|
96
|
+
* the mechanism for trying it. Failing hard would abort a list a sibling
|
|
97
|
+
* candidate could still satisfy. It also matches how the controller path
|
|
98
|
+
* already treats the same shapes: a missing bundle file and a selector the
|
|
99
|
+
* artifact ships no layer for are both env-missing there. What must never be
|
|
100
|
+
* masked this way is a *build* failure or a malformed bundle, and neither is
|
|
101
|
+
* reachable from here — those keep their hard codes. Each message names the
|
|
102
|
+
* sibling module and the action, and the aggregated
|
|
103
|
+
* `ERR_CONTROLLER_NOT_FOUND` carries every one of them.
|
|
104
|
+
*/
|
|
105
|
+
private libraryEntryFile;
|
|
59
106
|
/**
|
|
60
107
|
* Resolve without importing: parse + validate the PURL, reject a candidate this
|
|
61
108
|
* host cannot run, materialize the layer that carries it, confirm the file
|
|
@@ -63,7 +110,7 @@ export declare class BundleControllerLoader {
|
|
|
63
110
|
* bundle `import()` (the eval cost) into the returned `importInstance` thunk.
|
|
64
111
|
* Used by lazy controller loading.
|
|
65
112
|
*/
|
|
66
|
-
resolve(purl: string, baseUri: string, artifact?: ModuleArtifact): Promise<{
|
|
113
|
+
resolve(purl: string, baseUri: string, artifact?: ModuleArtifact, libraries?: SiblingLibraryMap): Promise<{
|
|
67
114
|
source: ControllerResolveSource;
|
|
68
115
|
importInstance: () => Promise<ControllerInstance>;
|
|
69
116
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundle-loader.d.ts","sourceRoot":"","sources":["../../src/controller-loaders/bundle-loader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAgB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"bundle-loader.d.ts","sourceRoot":"","sources":["../../src/controller-loaders/bundle-loader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAgB,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAO7E,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACvF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAQvE,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,wBAAwB,CAAC;AAwQhC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,qBAAa,sBAAsB;IAK/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;IAC3B;oFACgF;IAChF,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;IAPvB;;wDAEoD;gBAEjC,SAAS,CAAC,EAAE,MAAM,YAAA;IACnC;oFACgF;IAC/D,GAAG,CAAC,EAAE,MAAM,YAAA;IAGzB,IAAI,CACR,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,cAAc,EACzB,SAAS,GAAE,iBAAwC,GAClD,OAAO,CAAC;QAAE,QAAQ,EAAE,kBAAkB,CAAC;QAAC,MAAM,EAAE,uBAAuB,CAAA;KAAE,CAAC;IAK7E;;;;;;;;;OASG;YACW,cAAc;IAmB5B;;;;;;;;;OASG;YACW,cAAc;IAkB5B;;;;;;;;;;;;;;;;OAgBG;YACW,gBAAgB;IAkD9B;;;;;;OAMG;IACG,OAAO,CACX,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,cAAc,EACzB,SAAS,GAAE,iBAAwC,GAClD,OAAO,CAAC;QAAE,MAAM,EAAE,uBAAuB,CAAC;QAAC,cAAc,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,CAAA;KAAE,CAAC;IAkKlG;;uDAEmD;IACnD,OAAO,CAAC,eAAe;IAMvB;2DACuD;IACvD,OAAO,CAAC,SAAS;CAGlB"}
|