@scriptc/compiler 0.2.1 → 0.2.3
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/ambient/scriptc-node-fallback.d.ts +158 -31
- package/dist/backend/cycle-analysis.js +63 -50
- package/dist/backend/cycle-analysis.js.map +1 -1
- package/dist/backend/cycle-analysis.test.js +51 -0
- package/dist/backend/cycle-analysis.test.js.map +1 -1
- package/dist/backend/llvm/borrowed-receivers.d.ts +9 -0
- package/dist/backend/llvm/borrowed-receivers.js +58 -0
- package/dist/backend/llvm/borrowed-receivers.js.map +1 -0
- package/dist/backend/llvm/call-lifetimes.d.ts +20 -0
- package/dist/backend/llvm/call-lifetimes.js +179 -0
- package/dist/backend/llvm/call-lifetimes.js.map +1 -0
- package/dist/backend/llvm/call-lifetimes.test.d.ts +1 -0
- package/dist/backend/llvm/call-lifetimes.test.js +205 -0
- package/dist/backend/llvm/call-lifetimes.test.js.map +1 -0
- package/dist/backend/llvm/dyn.d.ts +5 -2
- package/dist/backend/llvm/dyn.js +163 -47
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emitter.d.ts +37 -1
- package/dist/backend/llvm/emitter.js +209 -21
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/backend/llvm/emitter.test.js +29 -2
- package/dist/backend/llvm/emitter.test.js.map +1 -1
- package/dist/backend/llvm/expr-async.js +1 -1
- package/dist/backend/llvm/expr-async.js.map +1 -1
- package/dist/backend/llvm/expr-calls.js +42 -5
- package/dist/backend/llvm/expr-calls.js.map +1 -1
- package/dist/backend/llvm/expr-containers.js +75 -13
- package/dist/backend/llvm/expr-containers.js.map +1 -1
- package/dist/backend/llvm/expr-dynamic.js +31 -6
- package/dist/backend/llvm/expr-dynamic.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.js +6 -5
- package/dist/backend/llvm/expr-primitives.js.map +1 -1
- package/dist/backend/llvm/expr-records.js +1 -1
- package/dist/backend/llvm/expr-records.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.js +75 -19
- package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
- package/dist/backend/llvm/expr-stream-callbacks.d.ts +2 -2
- package/dist/backend/llvm/expr-stream-callbacks.js +7 -57
- package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
- package/dist/backend/llvm/lib-dispatch.js +41 -3
- package/dist/backend/llvm/lib-dispatch.js.map +1 -1
- package/dist/backend/llvm/lib-filesystem.js +12 -9
- package/dist/backend/llvm/lib-filesystem.js.map +1 -1
- package/dist/backend/llvm/lib-shared.js +70 -2
- package/dist/backend/llvm/lib-shared.js.map +1 -1
- package/dist/backend/llvm/local-array-reads.d.ts +44 -0
- package/dist/backend/llvm/local-array-reads.js +313 -0
- package/dist/backend/llvm/local-array-reads.js.map +1 -0
- package/dist/backend/llvm/local-array-reads.test.d.ts +1 -0
- package/dist/backend/llvm/local-array-reads.test.js +446 -0
- package/dist/backend/llvm/local-array-reads.test.js.map +1 -0
- package/dist/backend/llvm/map-read-lifetimes.d.ts +36 -0
- package/dist/backend/llvm/map-read-lifetimes.js +128 -0
- package/dist/backend/llvm/map-read-lifetimes.js.map +1 -0
- package/dist/backend/llvm/map-read-lifetimes.test.d.ts +1 -0
- package/dist/backend/llvm/map-read-lifetimes.test.js +123 -0
- package/dist/backend/llvm/map-read-lifetimes.test.js.map +1 -0
- package/dist/backend/llvm/shapes.js +1 -0
- package/dist/backend/llvm/shapes.js.map +1 -1
- package/dist/backend/llvm/split.js +15 -5
- package/dist/backend/llvm/split.js.map +1 -1
- package/dist/backend/llvm/split.test.js +17 -0
- package/dist/backend/llvm/split.test.js.map +1 -1
- package/dist/backend/llvm/stack-unions.d.ts +20 -0
- package/dist/backend/llvm/stack-unions.js +61 -0
- package/dist/backend/llvm/stack-unions.js.map +1 -0
- package/dist/backend/llvm/stack-unions.test.d.ts +1 -0
- package/dist/backend/llvm/stack-unions.test.js +241 -0
- package/dist/backend/llvm/stack-unions.test.js.map +1 -0
- package/dist/backend/llvm/string-lifetimes.d.ts +12 -0
- package/dist/backend/llvm/string-lifetimes.js +70 -0
- package/dist/backend/llvm/string-lifetimes.js.map +1 -0
- package/dist/backend/llvm/string-lifetimes.test.d.ts +1 -0
- package/dist/backend/llvm/string-lifetimes.test.js +230 -0
- package/dist/backend/llvm/string-lifetimes.test.js.map +1 -0
- package/dist/backend/mangle.d.ts +2 -0
- package/dist/backend/mangle.js +4 -0
- package/dist/backend/mangle.js.map +1 -1
- package/dist/backend/may-throw.js +71 -29
- package/dist/backend/may-throw.js.map +1 -1
- package/dist/backend/may-throw.test.js +104 -1
- package/dist/backend/may-throw.test.js.map +1 -1
- package/dist/backend/native-codegen.d.ts +1 -1
- package/dist/backend/native-codegen.js +4 -3
- package/dist/backend/native-codegen.js.map +1 -1
- package/dist/backend/native-codegen.test.js +11 -0
- package/dist/backend/native-codegen.test.js.map +1 -1
- package/dist/backend/native-toolchain.d.ts +2 -2
- package/dist/backend/native-toolchain.js +2 -0
- package/dist/backend/native-toolchain.js.map +1 -1
- package/dist/backend/target-diagnostics.d.ts +5 -0
- package/dist/backend/target-diagnostics.js +72 -1
- package/dist/backend/target-diagnostics.js.map +1 -1
- package/dist/backend/target-diagnostics.test.d.ts +1 -0
- package/dist/backend/target-diagnostics.test.js +68 -0
- package/dist/backend/target-diagnostics.test.js.map +1 -0
- package/dist/coverage/surface-manifest.js +5 -3
- package/dist/coverage/surface-manifest.js.map +1 -1
- package/dist/executable/executable-cache.d.ts +7 -3
- package/dist/executable/executable-cache.js +47 -11
- package/dist/executable/executable-cache.js.map +1 -1
- package/dist/executable/executable-cache.test.js +109 -2
- package/dist/executable/executable-cache.test.js.map +1 -1
- package/dist/executable/prepare.js +2 -1
- package/dist/executable/prepare.js.map +1 -1
- package/dist/frontend/builtin-modules.d.ts +1 -1
- package/dist/frontend/builtin-modules.js +1 -1
- package/dist/frontend/builtin-modules.js.map +1 -1
- package/dist/frontend/function-completion.d.ts +6 -0
- package/dist/frontend/function-completion.js +50 -0
- package/dist/frontend/function-completion.js.map +1 -0
- package/dist/frontend/input-tracker.js +3 -3
- package/dist/frontend/input-tracker.js.map +1 -1
- package/dist/frontend/input-tracker.test.js +38 -2
- package/dist/frontend/input-tracker.test.js.map +1 -1
- package/dist/frontend/lowering/abstract-equality.js +5 -1
- package/dist/frontend/lowering/abstract-equality.js.map +1 -1
- package/dist/frontend/lowering/checked-iterable-spread.d.ts +4 -0
- package/dist/frontend/lowering/checked-iterable-spread.js +30 -0
- package/dist/frontend/lowering/checked-iterable-spread.js.map +1 -0
- package/dist/frontend/lowering/checked-promise-all.d.ts +5 -0
- package/dist/frontend/lowering/checked-promise-all.js +31 -0
- package/dist/frontend/lowering/checked-promise-all.js.map +1 -0
- package/dist/frontend/lowering/class-callbacks.d.ts +1 -1
- package/dist/frontend/lowering/class-callbacks.js +7 -6
- package/dist/frontend/lowering/class-callbacks.js.map +1 -1
- package/dist/frontend/lowering/class-construction.d.ts +2 -0
- package/dist/frontend/lowering/class-construction.js +34 -5
- package/dist/frontend/lowering/class-construction.js.map +1 -1
- package/dist/frontend/lowering/class-descriptors.d.ts +1 -1
- package/dist/frontend/lowering/class-descriptors.js +12 -5
- package/dist/frontend/lowering/class-descriptors.js.map +1 -1
- package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +25 -0
- package/dist/frontend/lowering/class-dynamic-dispatch.js +597 -78
- package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
- package/dist/frontend/lowering/class-dynamic-dispatch.test.js +64 -2
- package/dist/frontend/lowering/class-dynamic-dispatch.test.js.map +1 -1
- package/dist/frontend/lowering/class-instance-constructor.d.ts +1 -1
- package/dist/frontend/lowering/class-instance-constructor.js +11 -41
- package/dist/frontend/lowering/class-instance-constructor.js.map +1 -1
- package/dist/frontend/lowering/class-method-values.d.ts +16 -0
- package/dist/frontend/lowering/class-method-values.js +60 -29
- package/dist/frontend/lowering/class-method-values.js.map +1 -1
- package/dist/frontend/lowering/class-prototypes.d.ts +5 -1
- package/dist/frontend/lowering/class-prototypes.js +69 -10
- package/dist/frontend/lowering/class-prototypes.js.map +1 -1
- package/dist/frontend/lowering/class-runtime-statics.d.ts +4 -4
- package/dist/frontend/lowering/class-runtime-statics.js +26 -8
- package/dist/frontend/lowering/class-runtime-statics.js.map +1 -1
- package/dist/frontend/lowering/class-static-data.d.ts +1 -0
- package/dist/frontend/lowering/class-static-data.js +4 -2
- package/dist/frontend/lowering/class-static-data.js.map +1 -1
- package/dist/frontend/lowering/collection-ingestion.d.ts +31 -0
- package/dist/frontend/lowering/collection-ingestion.js +215 -0
- package/dist/frontend/lowering/collection-ingestion.js.map +1 -0
- package/dist/frontend/lowering/containers/bytes.js +19 -4
- package/dist/frontend/lowering/containers/bytes.js.map +1 -1
- package/dist/frontend/lowering/containers/string-and-regexp.js +6 -1
- package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
- package/dist/frontend/lowering/deferred-module-initializers.d.ts +13 -0
- package/dist/frontend/lowering/deferred-module-initializers.js +410 -0
- package/dist/frontend/lowering/deferred-module-initializers.js.map +1 -0
- package/dist/frontend/lowering/deferred-module-initializers.test.d.ts +1 -0
- package/dist/frontend/lowering/deferred-module-initializers.test.js +92 -0
- package/dist/frontend/lowering/deferred-module-initializers.test.js.map +1 -0
- package/dist/frontend/lowering/expressions/object-literals.js +31 -1
- package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
- package/dist/frontend/lowering/expressions/optional-chains.js +3 -3
- package/dist/frontend/lowering/expressions/optional-chains.js.map +1 -1
- package/dist/frontend/lowering/import-meta.d.ts +10 -0
- package/dist/frontend/lowering/import-meta.js +52 -0
- package/dist/frontend/lowering/import-meta.js.map +1 -0
- package/dist/frontend/lowering/lower-assert.js +105 -41
- package/dist/frontend/lowering/lower-assert.js.map +1 -1
- package/dist/frontend/lowering/lower-builtin-values.d.ts +2 -0
- package/dist/frontend/lowering/lower-builtin-values.js +22 -1
- package/dist/frontend/lowering/lower-builtin-values.js.map +1 -1
- package/dist/frontend/lowering/lower-builtins.d.ts +7 -22
- package/dist/frontend/lowering/lower-builtins.js +439 -95
- package/dist/frontend/lowering/lower-builtins.js.map +1 -1
- package/dist/frontend/lowering/lower-calls.js +289 -76
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-classes.d.ts +5 -0
- package/dist/frontend/lowering/lower-classes.js +443 -29
- package/dist/frontend/lowering/lower-classes.js.map +1 -1
- package/dist/frontend/lowering/lower-containers.d.ts +6 -2
- package/dist/frontend/lowering/lower-containers.js +79 -20
- package/dist/frontend/lowering/lower-containers.js.map +1 -1
- package/dist/frontend/lowering/lower-exprs.d.ts +10 -6
- package/dist/frontend/lowering/lower-exprs.js +329 -170
- package/dist/frontend/lowering/lower-exprs.js.map +1 -1
- package/dist/frontend/lowering/lower-generators.js +5 -1
- package/dist/frontend/lowering/lower-generators.js.map +1 -1
- package/dist/frontend/lowering/lower-inspect.js +58 -1
- package/dist/frontend/lowering/lower-inspect.js.map +1 -1
- package/dist/frontend/lowering/lower-island.js +4 -0
- package/dist/frontend/lowering/lower-island.js.map +1 -1
- package/dist/frontend/lowering/lower-island.test.d.ts +1 -0
- package/dist/frontend/lowering/lower-island.test.js +51 -0
- package/dist/frontend/lowering/lower-island.test.js.map +1 -0
- package/dist/frontend/lowering/lower-modules.d.ts +1 -3
- package/dist/frontend/lowering/lower-modules.js +186 -82
- package/dist/frontend/lowering/lower-modules.js.map +1 -1
- package/dist/frontend/lowering/lower-modules.test.js +69 -1
- package/dist/frontend/lowering/lower-modules.test.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.js +172 -103
- package/dist/frontend/lowering/lower-stmts.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.test.d.ts +1 -0
- package/dist/frontend/lowering/lower-stmts.test.js +77 -0
- package/dist/frontend/lowering/lower-stmts.test.js.map +1 -0
- package/dist/frontend/lowering/lower-stream.js +2 -0
- package/dist/frontend/lowering/lower-stream.js.map +1 -1
- package/dist/frontend/lowering/lower-system-errors.d.ts +6 -0
- package/dist/frontend/lowering/lower-system-errors.js +29 -0
- package/dist/frontend/lowering/lower-system-errors.js.map +1 -0
- package/dist/frontend/lowering/lower-url.d.ts +2 -1
- package/dist/frontend/lowering/lower-url.js +32 -9
- package/dist/frontend/lowering/lower-url.js.map +1 -1
- package/dist/frontend/lowering/lowerer.d.ts +30 -12
- package/dist/frontend/lowering/lowerer.js +268 -49
- package/dist/frontend/lowering/lowerer.js.map +1 -1
- package/dist/frontend/lowering/lowerer.test.js +38 -0
- package/dist/frontend/lowering/lowerer.test.js.map +1 -1
- package/dist/frontend/lowering/module-namespace-elements.d.ts +7 -0
- package/dist/frontend/lowering/module-namespace-elements.js +54 -0
- package/dist/frontend/lowering/module-namespace-elements.js.map +1 -0
- package/dist/frontend/lowering/object-factory-new.d.ts +4 -3
- package/dist/frontend/lowering/object-factory-new.js +27 -14
- package/dist/frontend/lowering/object-factory-new.js.map +1 -1
- package/dist/frontend/lowering/surfaces.d.ts +3 -2
- package/dist/frontend/lowering/surfaces.js +93 -33
- package/dist/frontend/lowering/surfaces.js.map +1 -1
- package/dist/frontend/lowering/text-decoder-encoding.js +3 -0
- package/dist/frontend/lowering/text-decoder-encoding.js.map +1 -1
- package/dist/frontend/lowering/text-decoder-encoding.test.js +2 -1
- package/dist/frontend/lowering/text-decoder-encoding.test.js.map +1 -1
- package/dist/frontend/module-syntax.d.ts +1 -1
- package/dist/frontend/module-syntax.js +8 -1
- package/dist/frontend/module-syntax.js.map +1 -1
- package/dist/frontend/module-syntax.test.js +10 -0
- package/dist/frontend/module-syntax.test.js.map +1 -1
- package/dist/frontend/npm.d.ts +4 -0
- package/dist/frontend/npm.js +86 -33
- package/dist/frontend/npm.js.map +1 -1
- package/dist/frontend/npm.test.js +103 -0
- package/dist/frontend/npm.test.js.map +1 -1
- package/dist/frontend/pipeline-native.js +2 -1
- package/dist/frontend/pipeline-native.js.map +1 -1
- package/dist/frontend/program.js +4 -2
- package/dist/frontend/program.js.map +1 -1
- package/dist/frontend/services-node.js +3 -2
- package/dist/frontend/services-node.js.map +1 -1
- package/dist/frontend/services.d.ts +5 -1
- package/dist/frontend/services.js +9 -1
- package/dist/frontend/services.js.map +1 -1
- package/dist/frontend/services.test.js +21 -0
- package/dist/frontend/services.test.js.map +1 -1
- package/dist/frontend/ts7/ast-node.d.ts +2 -0
- package/dist/frontend/ts7/ast-node.js +30 -4
- package/dist/frontend/ts7/ast-node.js.map +1 -1
- package/dist/frontend/ts7/ast-node.test.js +60 -1
- package/dist/frontend/ts7/ast-node.test.js.map +1 -1
- package/dist/frontend/type-mapper.js +89 -14
- package/dist/frontend/type-mapper.js.map +1 -1
- package/dist/frontend/union-discriminants.js +22 -7
- package/dist/frontend/union-discriminants.js.map +1 -1
- package/dist/index.js +19 -12
- package/dist/index.js.map +1 -1
- package/dist/ir/analysis.js +1 -0
- package/dist/ir/analysis.js.map +1 -1
- package/dist/ir/integer-loops.d.ts +7 -0
- package/dist/ir/integer-loops.js +23 -0
- package/dist/ir/integer-loops.js.map +1 -1
- package/dist/ir/integer-loops.test.d.ts +1 -0
- package/dist/ir/integer-loops.test.js +41 -0
- package/dist/ir/integer-loops.test.js.map +1 -0
- package/dist/ir/ir.d.ts +44 -26
- package/dist/ir/ir.js +69 -11
- package/dist/ir/ir.js.map +1 -1
- package/dist/ir/ir.test.js +18 -0
- package/dist/ir/ir.test.js.map +1 -1
- package/dist/ir/serialize.js +21 -1
- package/dist/ir/serialize.js.map +1 -1
- package/dist/ir/serialize.test.js +21 -0
- package/dist/ir/serialize.test.js.map +1 -1
- package/dist/ir/traverse.d.ts +0 -3
- package/dist/ir/traverse.js +33 -20
- package/dist/ir/traverse.js.map +1 -1
- package/dist/ir/validate.js +216 -80
- package/dist/ir/validate.js.map +1 -1
- package/dist/ir/validate.test.js +244 -1
- package/dist/ir/validate.test.js.map +1 -1
- package/dist/library/compiler-self-identity.js +1 -1
- package/dist/library/compiler-self-identity.test.js +2 -2
- package/dist/library/compiler-self-identity.test.js.map +1 -1
- package/dist/library/fence-eval.js +9 -2
- package/dist/library/fence-eval.js.map +1 -1
- package/dist/library/fence-eval.test.d.ts +1 -0
- package/dist/library/fence-eval.test.js +21 -0
- package/dist/library/fence-eval.test.js.map +1 -0
- package/dist/library/int-infer.d.ts +2 -2
- package/dist/library/int-infer.js +10 -7
- package/dist/library/int-infer.js.map +1 -1
- package/dist/library/int-infer.test.js +44 -0
- package/dist/library/int-infer.test.js.map +1 -1
- package/dist/library/prepare.js +2 -1
- package/dist/library/prepare.js.map +1 -1
- package/dist/native/runtime-typescript.d.ts +4 -0
- package/dist/native/runtime-typescript.js +61 -0
- package/dist/native/runtime-typescript.js.map +1 -0
- package/dist/native/runtime-typescript.test.d.ts +1 -0
- package/dist/native/runtime-typescript.test.js +41 -0
- package/dist/native/runtime-typescript.test.js.map +1 -0
- package/package.json +20 -20
- package/surface-manifest.json +385 -29
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import type { LlvmUnsupportedError } from "./llvm/emitter.js";
|
|
2
2
|
import type { ScrDiagnostic } from "../diagnostics/diagnostic.js";
|
|
3
3
|
import { type IrModule, type SrcLoc } from "../ir/ir.js";
|
|
4
|
+
/** Reflection tables expose methods that the program never calls. On WASI,
|
|
5
|
+
* keep their host-only implementations as explicit runtime refusals. Typed
|
|
6
|
+
* calls, escaped callables, constructors, and exported roots still retain
|
|
7
|
+
* the ordinary target diagnostic. ABI types remain checked by the gate. */
|
|
8
|
+
export declare function fenceSpeculativeWasiFunctions(mod: IrModule): void;
|
|
4
9
|
/** The LLVM backend's tier refusal as a diagnostic. SC3xxx = backend
|
|
5
10
|
* coverage (the program is fine — this backend doesn't compile it yet);
|
|
6
11
|
* the parenthesized kind tag is machine-readable for the differential
|
|
@@ -1,5 +1,76 @@
|
|
|
1
|
-
import { everyModuleNode } from "../ir/traverse.js";
|
|
1
|
+
import { everyModuleNode, everyStmtList, transformStmtList } from "../ir/traverse.js";
|
|
2
2
|
import { moduleUsesFetch, moduleEmbedsBuiltin } from "../ir/ir.js";
|
|
3
|
+
/** Reflection tables expose methods that the program never calls. On WASI,
|
|
4
|
+
* keep their host-only implementations as explicit runtime refusals. Typed
|
|
5
|
+
* calls, escaped callables, constructors, and exported roots still retain
|
|
6
|
+
* the ordinary target diagnostic. ABI types remain checked by the gate. */
|
|
7
|
+
export function fenceSpeculativeWasiFunctions(mod) {
|
|
8
|
+
for (const fn of mod.functions)
|
|
9
|
+
fn.body = transformStmtList(fn.body, { stmt: (statement) => statement,
|
|
10
|
+
expr: (expr) => {
|
|
11
|
+
if (expr.kind !== "libCall")
|
|
12
|
+
return expr;
|
|
13
|
+
const portable = expr.fn === "fetch.abortControllerNew" ? "abort.controllerNew"
|
|
14
|
+
: expr.fn === "fetch.abortTimeout" ? "abort.timeout"
|
|
15
|
+
: expr.fn === "fetch.abortNow" ? "abort.now"
|
|
16
|
+
: expr.fn === "fetch.abortAny" ? "abort.any" : null;
|
|
17
|
+
return portable ? { ...expr, fn: portable } : expr;
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
if (!mod.functions.some((fn) => fn.speculativeDispatch))
|
|
21
|
+
return;
|
|
22
|
+
const functions = new Map(mod.functions.map((fn) => [fn.name, fn]));
|
|
23
|
+
const classes = new Map((mod.classes ?? []).map((info) => [info.name, info]));
|
|
24
|
+
const descends = (name, base) => {
|
|
25
|
+
for (let info = classes.get(name); info; info = info.base ? classes.get(info.base) : undefined) {
|
|
26
|
+
if (info.name === base)
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
return false;
|
|
30
|
+
};
|
|
31
|
+
const mandatory = new Set();
|
|
32
|
+
const queue = [mod.entry, ...(mod.lib?.exports.map((entry) => entry.fnName) ?? [])];
|
|
33
|
+
for (let i = 0; i < queue.length; i++) {
|
|
34
|
+
const name = queue[i];
|
|
35
|
+
if (mandatory.has(name))
|
|
36
|
+
continue;
|
|
37
|
+
mandatory.add(name);
|
|
38
|
+
const fn = functions.get(name);
|
|
39
|
+
if (!fn || fn.speculativeDispatch)
|
|
40
|
+
continue;
|
|
41
|
+
everyStmtList(fn.body, { stmt: () => true, expr: (expr) => {
|
|
42
|
+
if (expr.kind === "call")
|
|
43
|
+
queue.push(expr.callee);
|
|
44
|
+
if (expr.kind === "closure")
|
|
45
|
+
queue.push(expr.fnName);
|
|
46
|
+
if (expr.kind === "new")
|
|
47
|
+
queue.push(`%${expr.className}.constructor`);
|
|
48
|
+
if (expr.kind === "newValue" && expr.callee.type.kind === "classval") {
|
|
49
|
+
const base = expr.callee.type.className;
|
|
50
|
+
for (const info of classes.values())
|
|
51
|
+
if (descends(info.name, base))
|
|
52
|
+
queue.push(`%${info.name}.constructor`);
|
|
53
|
+
}
|
|
54
|
+
if (expr.kind === "virtualCall") {
|
|
55
|
+
for (const info of classes.values())
|
|
56
|
+
if (descends(info.name, expr.className))
|
|
57
|
+
queue.push(`%${info.name}.${expr.method}`);
|
|
58
|
+
}
|
|
59
|
+
return true;
|
|
60
|
+
} });
|
|
61
|
+
}
|
|
62
|
+
for (const fn of mod.functions) {
|
|
63
|
+
if (mandatory.has(fn.name) || fn.speculativeDispatch)
|
|
64
|
+
continue;
|
|
65
|
+
const unavailable = moduleWasiUnavailableSurface({ irVersion: mod.irVersion, sourceFile: mod.sourceFile,
|
|
66
|
+
functions: [fn], classes: [], records: [], unions: [], globals: [], entry: fn.name });
|
|
67
|
+
if (!unavailable)
|
|
68
|
+
continue;
|
|
69
|
+
fn.body = [{ kind: "runtimeFence", code: "SC3002", message: `wasm32-wasi target does not support ${unavailable.surface}`, loc: unavailable.loc }];
|
|
70
|
+
const parameters = new Set([...fn.params, ...(fn.captures ?? []), ...(fn.classCaptures ?? [])].map((param) => param.localId));
|
|
71
|
+
fn.locals = fn.locals.filter((local) => parameters.has(local.id));
|
|
72
|
+
}
|
|
73
|
+
}
|
|
3
74
|
/** The LLVM backend's tier refusal as a diagnostic. SC3xxx = backend
|
|
4
75
|
* coverage (the program is fine — this backend doesn't compile it yet);
|
|
5
76
|
* the parenthesized kind tag is machine-readable for the differential
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"target-diagnostics.js","sourceRoot":"","sources":["../../src/backend/target-diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"target-diagnostics.js","sourceRoot":"","sources":["../../src/backend/target-diagnostics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { expect, test } from "vitest";
|
|
2
|
+
import { DYN, STRING, VOID } from "../ir/ir.js";
|
|
3
|
+
import { fenceSpeculativeWasiFunctions, moduleWasiUnavailableSurface } from "./target-diagnostics.js";
|
|
4
|
+
const loc = { file: "host.ts", start: 0, end: 1 };
|
|
5
|
+
function fn(name, expressions, speculativeDispatch = false) {
|
|
6
|
+
return { name, params: [], returnType: VOID, locals: [], speculativeDispatch,
|
|
7
|
+
body: expressions.map((expr) => ({ kind: "exprStmt", expr, loc })), loc };
|
|
8
|
+
}
|
|
9
|
+
const call = (callee) => ({ kind: "call", callee, args: [], type: VOID, loc });
|
|
10
|
+
const fetch = { kind: "libCall", fn: "fetch.input", args: [
|
|
11
|
+
{ kind: "dynFrom", value: { kind: "strLit", value: "https://example.com", type: STRING, loc }, type: DYN, loc },
|
|
12
|
+
{ kind: "dynObjLit", fields: [], type: DYN, loc },
|
|
13
|
+
], type: { kind: "promise", inner: DYN }, loc };
|
|
14
|
+
function module(direct = []) {
|
|
15
|
+
return { irVersion: 13, sourceFile: loc.file, entry: "%main", records: [], unions: [], globals: [], classes: [], functions: [
|
|
16
|
+
fn("%main", [call("dispatch"), ...direct]), fn("dispatch", [call("loader")], true),
|
|
17
|
+
fn("loader", [call("network")]), fn("network", [fetch]),
|
|
18
|
+
] };
|
|
19
|
+
}
|
|
20
|
+
test("portable reflection keeps host-only speculative methods as runtime refusals", () => {
|
|
21
|
+
const mod = module();
|
|
22
|
+
fenceSpeculativeWasiFunctions(mod);
|
|
23
|
+
expect(moduleWasiUnavailableSurface(mod)).toBeNull();
|
|
24
|
+
expect(mod.functions[3]?.body).toMatchObject([{ kind: "runtimeFence", code: "SC3002", message: expect.stringContaining("network-backed fetch") }]);
|
|
25
|
+
});
|
|
26
|
+
test.each(["call", "closure"])("actual %s references retain the WASI networking diagnostic", (kind) => {
|
|
27
|
+
const mod = module([kind === "call" ? call("loader") : { kind: "closure", fnName: "loader", captures: [], type: { kind: "func", params: [], ret: VOID }, loc }]);
|
|
28
|
+
fenceSpeculativeWasiFunctions(mod);
|
|
29
|
+
expect(moduleWasiUnavailableSurface(mod)?.surface).toContain("network-backed fetch");
|
|
30
|
+
expect(mod.functions[3]?.body[0]?.kind).toBe("exprStmt");
|
|
31
|
+
});
|
|
32
|
+
test("host-exported roots retain their networking diagnostic", () => {
|
|
33
|
+
const mod = module();
|
|
34
|
+
mod.lib = { exports: [{ symbol: "load", fnName: "loader", params: [], returns: "void" }] };
|
|
35
|
+
fenceSpeculativeWasiFunctions(mod);
|
|
36
|
+
expect(moduleWasiUnavailableSurface(mod)?.surface).toContain("network-backed fetch");
|
|
37
|
+
});
|
|
38
|
+
test("prototype tables store optional methods without invoking their host capabilities", () => {
|
|
39
|
+
const mod = module();
|
|
40
|
+
mod.functions = [fn("%main", [call("prototype")]), fn("prototype", [
|
|
41
|
+
{ kind: "closure", fnName: "network", captures: [], type: { kind: "func", params: [], ret: VOID }, loc },
|
|
42
|
+
], true), fn("network", [fetch])];
|
|
43
|
+
fenceSpeculativeWasiFunctions(mod);
|
|
44
|
+
expect(moduleWasiUnavailableSurface(mod)).toBeNull();
|
|
45
|
+
expect(mod.functions[2]?.body).toMatchObject([{ kind: "runtimeFence", code: "SC3002" }]);
|
|
46
|
+
});
|
|
47
|
+
test("local abort signals remain available without a reflection dispatcher", () => {
|
|
48
|
+
const mod = module();
|
|
49
|
+
mod.functions = [fn("%main", [{ kind: "libCall", fn: "fetch.abortControllerNew", args: [], type: DYN, loc }])];
|
|
50
|
+
fenceSpeculativeWasiFunctions(mod);
|
|
51
|
+
expect(moduleWasiUnavailableSurface(mod)).toBeNull();
|
|
52
|
+
expect(mod.functions[0]?.body[0]).toMatchObject({ kind: "exprStmt", expr: { fn: "abort.controllerNew" } });
|
|
53
|
+
});
|
|
54
|
+
test("actual constructors retain host diagnostics while stored class values do not execute them", () => {
|
|
55
|
+
const make = (expression) => {
|
|
56
|
+
const mod = module([expression]);
|
|
57
|
+
mod.classes = [{ name: "Loader", fields: [], loc }];
|
|
58
|
+
mod.functions.push(fn("%Loader.constructor", [fetch]));
|
|
59
|
+
return mod;
|
|
60
|
+
};
|
|
61
|
+
const constructed = make({ kind: "new", className: "Loader", args: [], type: { kind: "object", className: "Loader" }, loc });
|
|
62
|
+
fenceSpeculativeWasiFunctions(constructed);
|
|
63
|
+
expect(moduleWasiUnavailableSurface(constructed)?.surface).toContain("network-backed fetch");
|
|
64
|
+
const stored = make({ kind: "classRef", className: "Loader", type: { kind: "classval", className: "Loader" }, loc });
|
|
65
|
+
fenceSpeculativeWasiFunctions(stored);
|
|
66
|
+
expect(moduleWasiUnavailableSurface(stored)).toBeNull();
|
|
67
|
+
});
|
|
68
|
+
//# sourceMappingURL=target-diagnostics.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"target-diagnostics.test.js","sourceRoot":"","sources":["../../src/backend/target-diagnostics.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,7 +41,7 @@ import { InternalCompilerError } from "../errors.js";
|
|
|
41
41
|
import { FENCE_CODES, UNSUPPORTED } from "../diagnostics/diagnostic.js";
|
|
42
42
|
import { NODE24_FETCH_COMPAT_PROFILE } from "../compat/fetch-profile.js";
|
|
43
43
|
import { SUPPORTED_BUILTIN_MODULES, SUPPORTED_NODE_MODULES } from "../frontend/builtin-modules.js";
|
|
44
|
-
import { AMBIENT_SURFACE_FNS, ARRAY_METHODS, BUILTIN_MODULE_CONSTS, BUILTIN_MODULE_FENCE_HINTS, BUILTIN_MODULE_FNS, COMPOUND_ASSIGN_OPS, ISLAND_SURFACE, MAP_METHODS, SET_COMBINE_METHODS, SET_METHODS, STATIC_MATH_FNS, STATIC_MATH_PROPS, STATIC_NUMBER_METHODS, STRING_INDEX_METHODS, STRING_REPLACE_METHODS, STR_METHODS, UNSUPPORTED_EXPR, UNSUPPORTED_STMT, } from "../frontend/lowering/surfaces.js";
|
|
44
|
+
import { AMBIENT_SURFACE_FNS, ARRAY_METHODS, BUILTIN_MODULE_CONSTS, BUILTIN_MODULE_FENCE_HINTS, BUILTIN_MODULE_FNS, COLLECTION_ITERATOR_METHODS, COMPOUND_ASSIGN_OPS, ISLAND_SURFACE, MAP_METHODS, SET_COMBINE_METHODS, SET_METHODS, STATIC_MATH_FNS, STATIC_MATH_PROPS, STATIC_NUMBER_METHODS, STRING_INDEX_METHODS, STRING_REPLACE_METHODS, STR_METHODS, UNSUPPORTED_EXPR, UNSUPPORTED_STMT, } from "../frontend/lowering/surfaces.js";
|
|
45
45
|
export const MANIFEST_SCHEMA_VERSION = 1;
|
|
46
46
|
/** The manifest's own scope statement: what the projection covers and —
|
|
47
47
|
* just as load-bearing — what it deliberately leaves out, so absence is
|
|
@@ -164,10 +164,12 @@ export function generateSurfaceManifest(compilerVersion) {
|
|
|
164
164
|
add({ id: `stdlib.array.${name}`, kind: "stdlib", name: `Array.prototype.${name}`, status: "static" });
|
|
165
165
|
}
|
|
166
166
|
for (const name of [...MAP_METHODS]) {
|
|
167
|
-
add({ id: `stdlib.map.${name}`, kind: "stdlib", name: `Map.prototype.${name}`, status: "static"
|
|
167
|
+
add({ id: `stdlib.map.${name}`, kind: "stdlib", name: `Map.prototype.${name}`, status: "static",
|
|
168
|
+
...(COLLECTION_ITERATOR_METHODS.has(name) ? { note: "live native iterators support next(), for...of, and drains; iterator helper methods are refused" } : {}) });
|
|
168
169
|
}
|
|
169
170
|
for (const name of [...SET_METHODS]) {
|
|
170
|
-
add({ id: `stdlib.set.${name}`, kind: "stdlib", name: `Set.prototype.${name}`, status: "static"
|
|
171
|
+
add({ id: `stdlib.set.${name}`, kind: "stdlib", name: `Set.prototype.${name}`, status: "static",
|
|
172
|
+
...(COLLECTION_ITERATOR_METHODS.has(name) ? { note: "live native iterators support next(), for...of, and drains; iterator helper methods are refused" } : {}) });
|
|
171
173
|
}
|
|
172
174
|
for (const name of [...SET_COMBINE_METHODS]) {
|
|
173
175
|
add({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"surface-manifest.js","sourceRoot":"","sources":["../../src/coverage/surface-manifest.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"surface-manifest.js","sourceRoot":"","sources":["../../src/coverage/surface-manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -64,7 +64,10 @@ export interface EarlyExecutableCacheOptions {
|
|
|
64
64
|
implementation: string;
|
|
65
65
|
implementationDependencies: CompilerImplementationDependency[];
|
|
66
66
|
}
|
|
67
|
-
export type EarlyExecutableRouteOptions = Omit<EarlyExecutableCacheOptions, "implementation" | "implementationDependencies"
|
|
67
|
+
export type EarlyExecutableRouteOptions = Omit<EarlyExecutableCacheOptions, "implementation" | "implementationDependencies" | "nativeEnvironment"> & {
|
|
68
|
+
/** Discovery waits until a complete payload and its frontend proof match. */
|
|
69
|
+
nativeEnvironment: string | (() => Promise<string>);
|
|
70
|
+
};
|
|
68
71
|
export interface EarlyExecutableCacheHit {
|
|
69
72
|
llvmPath: string;
|
|
70
73
|
irPath?: string;
|
|
@@ -79,8 +82,9 @@ export interface EarlyExecutableCachePublish extends EarlyExecutableCacheHit {
|
|
|
79
82
|
}
|
|
80
83
|
export declare function readEarlyExecutableCache(root: string | null, options: EarlyExecutableCacheOptions): Promise<EarlyExecutableCacheHit | null>;
|
|
81
84
|
/** Follow the exact-invocation route without hashing/importing the complete
|
|
82
|
-
* compiler package.
|
|
83
|
-
*
|
|
85
|
+
* compiler package. Source/configuration misses skip deferred driver discovery;
|
|
86
|
+
* a hit still proves the current native environment before restoring output.
|
|
87
|
+
* The route is only an index: the full payload key retains that environment. */
|
|
84
88
|
export declare function readRoutedExecutableCache(root: string | null, options: EarlyExecutableRouteOptions): Promise<EarlyExecutableCacheHit | null>;
|
|
85
89
|
/** Publish the lightweight lookup metadata for an already-validated payload.
|
|
86
90
|
* Full-compiler cache hits call this as a repair path: route/proof files can be
|
|
@@ -72,7 +72,7 @@ function cacheKey(options) {
|
|
|
72
72
|
}
|
|
73
73
|
function routeKey(options) {
|
|
74
74
|
const hash = createHash("sha256")
|
|
75
|
-
.update("early-executable-route-
|
|
75
|
+
.update("early-executable-route-v2\0")
|
|
76
76
|
.update(compilerReleaseVersion()).update("\0")
|
|
77
77
|
.update(compilerImplementationRoot()).update("\0")
|
|
78
78
|
.update(resolve(options.entryPath)).update("\0")
|
|
@@ -96,7 +96,6 @@ function routeKey(options) {
|
|
|
96
96
|
: JSON.stringify(options.npmStatic)).update("\0")
|
|
97
97
|
.update(options.target).update("\0")
|
|
98
98
|
.update(options.compiler.join("\x1f")).update("\0")
|
|
99
|
-
.update(options.nativeEnvironment).update("\0")
|
|
100
99
|
.update(options.nodeVersion).update("\0");
|
|
101
100
|
if (options.ffiProfile === null) {
|
|
102
101
|
hash.update("<ffi-off>");
|
|
@@ -113,7 +112,7 @@ function routePath(root, options) {
|
|
|
113
112
|
}
|
|
114
113
|
function routeIntegrity(stamp) {
|
|
115
114
|
return createHash("sha256")
|
|
116
|
-
.update("early-executable-route-stamp-
|
|
115
|
+
.update("early-executable-route-stamp-v2\0")
|
|
117
116
|
.update(JSON.stringify(stamp))
|
|
118
117
|
.digest("hex");
|
|
119
118
|
}
|
|
@@ -148,6 +147,15 @@ function stampIntegrity(stamp) {
|
|
|
148
147
|
function executableFrontendOutputExclusions(options, backend) {
|
|
149
148
|
return frontendOutputExclusions(options, backend, "", [options.outPath, `${options.outPath}.dSYM`]);
|
|
150
149
|
}
|
|
150
|
+
/** Ordinary source/configuration edits are cheap misses before driver
|
|
151
|
+
* discovery. Replay declaration-file bytes and resolution metadata in the
|
|
152
|
+
* final complete proof instead of twice. */
|
|
153
|
+
function routedFrontendCandidate(frontend) {
|
|
154
|
+
return {
|
|
155
|
+
...frontend,
|
|
156
|
+
probes: frontend.probes.filter((probe) => probe.op === "file" && !/\.d\.(?:ts|mts|cts)$/.test(probe.path)),
|
|
157
|
+
};
|
|
158
|
+
}
|
|
151
159
|
async function fileMatches(destination, expectedDigest, expectedMode) {
|
|
152
160
|
try {
|
|
153
161
|
if (expectedMode !== undefined) {
|
|
@@ -174,6 +182,9 @@ async function installExecutable(bytes, destination) {
|
|
|
174
182
|
}
|
|
175
183
|
}
|
|
176
184
|
export async function readEarlyExecutableCache(root, options) {
|
|
185
|
+
return readExecutableCache(root, options);
|
|
186
|
+
}
|
|
187
|
+
async function readExecutableCache(root, options, validateRoute) {
|
|
177
188
|
if (root === null)
|
|
178
189
|
return null;
|
|
179
190
|
const path = stampPath(root, options);
|
|
@@ -197,7 +208,12 @@ export async function readEarlyExecutableCache(root, options) {
|
|
|
197
208
|
(stamp.nativeDependencies !== null && !Array.isArray(stamp.nativeDependencies)) ||
|
|
198
209
|
(stamp.files.ir !== null) !== options.emitIr ||
|
|
199
210
|
stampIntegrity(unsigned) !== integrity ||
|
|
200
|
-
!frontendInputsStillMatch(stamp.frontend, executableFrontendOutputExclusions(options, stamp.native.backend)))
|
|
211
|
+
!frontendInputsStillMatch(validateRoute === undefined ? stamp.frontend : routedFrontendCandidate(stamp.frontend), executableFrontendOutputExclusions(options, stamp.native.backend)))
|
|
212
|
+
return null;
|
|
213
|
+
// Startup may defer driver discovery until the source/configuration proof
|
|
214
|
+
// matches. A frontend-only entry cannot serve that route, so it should
|
|
215
|
+
// fall through without probing a driver the full compiler will probe too.
|
|
216
|
+
if (validateRoute !== undefined && stamp.files.executable === null)
|
|
201
217
|
return null;
|
|
202
218
|
const directory = dirname(path);
|
|
203
219
|
const [translationUnit, ir, executable, debugSymbols] = await Promise.all([
|
|
@@ -217,6 +233,14 @@ export async function readEarlyExecutableCache(root, options) {
|
|
|
217
233
|
stamp.files.executable !== null && executable === null ||
|
|
218
234
|
stamp.files.debugSymbols !== undefined && debugSymbols === null)
|
|
219
235
|
return null;
|
|
236
|
+
if (validateRoute !== undefined) {
|
|
237
|
+
if (!(await validateRoute()))
|
|
238
|
+
return null;
|
|
239
|
+
// The compiler proof is checked AFTER deferred discovery by the routed
|
|
240
|
+
// reader. Recheck source/configuration bytes here too before restoring.
|
|
241
|
+
if (!frontendInputsStillMatch(stamp.frontend, executableFrontendOutputExclusions(options, stamp.native.backend)))
|
|
242
|
+
return null;
|
|
243
|
+
}
|
|
220
244
|
// Validate the native proof before restoring frontend artifacts: replacing
|
|
221
245
|
// a TU can update its output directory metadata, which is itself part of
|
|
222
246
|
// compileC's same-output dependency snapshot.
|
|
@@ -225,6 +249,8 @@ export async function readEarlyExecutableCache(root, options) {
|
|
|
225
249
|
// Recheck after hashing every dependency: a concurrent tool/runtime
|
|
226
250
|
// update must not win the window immediately before installation.
|
|
227
251
|
await nativeArtifactDependenciesStillMatch(stamp.nativeDependencies);
|
|
252
|
+
if (validateRoute !== undefined && !executableRestored)
|
|
253
|
+
return null;
|
|
228
254
|
const paths = outputPaths(options, stamp.native.backend);
|
|
229
255
|
if (!(await fileMatches(paths.llvmPath, stamp.files.translationUnit.digest))) {
|
|
230
256
|
await installBytes(translationUnit, paths.llvmPath);
|
|
@@ -269,8 +295,9 @@ export async function readEarlyExecutableCache(root, options) {
|
|
|
269
295
|
}
|
|
270
296
|
}
|
|
271
297
|
/** Follow the exact-invocation route without hashing/importing the complete
|
|
272
|
-
* compiler package.
|
|
273
|
-
*
|
|
298
|
+
* compiler package. Source/configuration misses skip deferred driver discovery;
|
|
299
|
+
* a hit still proves the current native environment before restoring output.
|
|
300
|
+
* The route is only an index: the full payload key retains that environment. */
|
|
274
301
|
export async function readRoutedExecutableCache(root, options) {
|
|
275
302
|
if (root === null)
|
|
276
303
|
return null;
|
|
@@ -278,9 +305,11 @@ export async function readRoutedExecutableCache(root, options) {
|
|
|
278
305
|
const routeFile = routePath(root, options);
|
|
279
306
|
const route = JSON.parse(await readFile(routeFile, "utf8"));
|
|
280
307
|
const { integrity, ...unsigned } = route;
|
|
281
|
-
if (route.version !==
|
|
308
|
+
if (route.version !== 2 ||
|
|
282
309
|
!/^[0-9a-f]{64}$/.test(route.key) ||
|
|
283
310
|
!/^[0-9a-f]{64}$/.test(route.implementation) ||
|
|
311
|
+
typeof route.nativeEnvironment !== "string" ||
|
|
312
|
+
(typeof options.nativeEnvironment === "string" && options.nativeEnvironment !== route.nativeEnvironment) ||
|
|
284
313
|
routeIntegrity(unsigned) !== integrity)
|
|
285
314
|
return null;
|
|
286
315
|
const proofFile = implementationProofPath(root, route.implementation);
|
|
@@ -288,17 +317,23 @@ export async function readRoutedExecutableCache(root, options) {
|
|
|
288
317
|
const { integrity: proofIntegrity, ...proofUnsigned } = proof;
|
|
289
318
|
if (proof.version !== 1 || proof.implementation !== route.implementation ||
|
|
290
319
|
!Array.isArray(proof.dependencies) ||
|
|
291
|
-
implementationProofIntegrity(proofUnsigned) !== proofIntegrity
|
|
292
|
-
!(await compilerImplementationDependenciesStillMatch(proof.dependencies)))
|
|
320
|
+
implementationProofIntegrity(proofUnsigned) !== proofIntegrity)
|
|
293
321
|
return null;
|
|
294
322
|
const complete = {
|
|
295
323
|
...options,
|
|
324
|
+
nativeEnvironment: route.nativeEnvironment,
|
|
296
325
|
implementation: route.implementation,
|
|
297
326
|
implementationDependencies: proof.dependencies,
|
|
298
327
|
};
|
|
299
328
|
if (cacheKey(complete) !== route.key)
|
|
300
329
|
return null;
|
|
301
|
-
const hit = await
|
|
330
|
+
const hit = await readExecutableCache(root, complete, async () => {
|
|
331
|
+
const environment = typeof options.nativeEnvironment === "function"
|
|
332
|
+
? await options.nativeEnvironment()
|
|
333
|
+
: options.nativeEnvironment;
|
|
334
|
+
return environment === route.nativeEnvironment &&
|
|
335
|
+
await compilerImplementationDependenciesStillMatch(proof.dependencies);
|
|
336
|
+
});
|
|
302
337
|
if (hit?.executableRestored !== true)
|
|
303
338
|
return null;
|
|
304
339
|
const now = new Date();
|
|
@@ -341,9 +376,10 @@ export async function publishEarlyExecutableRoute(root, options) {
|
|
|
341
376
|
const routeOptions = options;
|
|
342
377
|
const routeDestination = routePath(root, routeOptions);
|
|
343
378
|
const routeUnsigned = {
|
|
344
|
-
version:
|
|
379
|
+
version: 2,
|
|
345
380
|
key: cacheKey(options),
|
|
346
381
|
implementation: options.implementation,
|
|
382
|
+
nativeEnvironment: options.nativeEnvironment,
|
|
347
383
|
};
|
|
348
384
|
const route = {
|
|
349
385
|
...routeUnsigned,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executable-cache.js","sourceRoot":"","sources":["../../src/executable/executable-cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACzG,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE7D,OAAO,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AACpG,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,oCAAoC,EAAiC,MAAM,gCAAgC,CAAC;AAErH,OAAO,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACzH,OAAO,EAAE,4CAA4C,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAChI,OAAO,EACL,QAAQ,IAAI,cAAc,EAC1B,MAAM,EACN,wBAAwB,EACxB,YAAY,EACZ,WAAW,EACX,cAAc,EACd,cAAc,IAAI,oBAAoB,EACtC,SAAS,IAAI,eAAe,EAC5B,mBAAmB,IAAI,yBAAyB,GACjD,MAAM,gCAAgC,CAAC;AAqHxC,MAAM,mBAAmB,GAAG;IAC1B,SAAS;IACT,OAAO;IACP,SAAS;IACT,mBAAmB;IACnB,YAAY;IACZ,OAAO;IACP,WAAW;IACX,MAAM;IACN,QAAQ;IACR,SAAS;IACT,WAAW;IACX,IAAI;IACJ,UAAU;IACV,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,QAAQ;IACR,cAAc;IACd,IAAI;IACJ,WAAW;IACX,QAAQ;IACR,KAAK;IACL,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,YAAY;IACZ,UAAU;IACV,KAAK;IACL,OAAO;CAC4D,CAAC;AAEtE,SAAS,mBAAmB,CAAC,KAAc;IACzC,OAAO,yBAAyB,CAC9B,KAAK,EACL,mBAAmB,EACnB,CAAC,MAAM,EAAE,EAAE,CACT,CAAC,MAAM,CAAC,YAAY,KAAK,SAAS,IAAI,MAAM,CAAC,YAAY,KAAK,KAAK,CAAC,CACvE,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,OAAoC;IACpD,MAAM,QAAQ,GAA4B,OAAO,CAAC,UAAU,KAAK,IAAI;QACnE,CAAC,CAAC,CAAC,WAAW,CAAC;QACf,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACjE,OAAO,cAAc,CAAC,qBAAqB,EAAE;QAC3C,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;QAC1B,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;QACvB,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;QACxB,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO;QACpC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO;QACvC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;QACtC,OAAO,CAAC,OAAO;QACf,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnC,GAAG,CAAC,OAAO,CAAC,gBAAgB,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,OAAO,CAAC,SAAS,KAAK,IAAI;YACxB,CAAC,CAAC,kBAAkB;YACpB,CAAC,CAAC,OAAO,CAAC,SAAS,KAAK,MAAM;gBAC5B,CAAC,CAAC,mBAAmB;gBACrB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC;QACvC,OAAO,CAAC,MAAM;QACd,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;QAC7B,OAAO,CAAC,iBAAiB;QACzB,OAAO,CAAC,WAAW;QACnB,OAAO,CAAC,cAAc;QACtB,GAAG,QAAQ;KACZ,CAAC,CAAC;AACL,CAAC;AAED,SAAS,QAAQ,CAAC,OAAoC;IACpD,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC;SAC9B,MAAM,CAAC,6BAA6B,CAAC;SACrC,MAAM,CAAC,sBAAsB,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;SAC7C,MAAM,CAAC,0BAA0B,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;SACjD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;SAC/C,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;SAC5C,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;SAC7C,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;SACzD,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;SAC5D,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;SAC3D,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,OAAO,CAAC,YAAY,KAAK,KAAK;QAAE,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IACtE,IAAI,OAAO,CAAC,KAAK;QAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC1C,IAAI,OAAO,CAAC,gBAAgB,KAAK,KAAK;QAAE,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;IAC/E,IAAI;SACD,MAAM,CAAC,OAAO,CAAC,SAAS,KAAK,IAAI;QAChC,CAAC,CAAC,kBAAkB;QACpB,CAAC,CAAC,OAAO,CAAC,SAAS,KAAK,MAAM;YAC5B,CAAC,CAAC,mBAAmB;YACrB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;SACpD,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;SACnC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;SAClD,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;SAC9C,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,OAAO,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC3B,CAAC;SAAM,CAAC;QACN,IAAI;aACD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;aACrD,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,SAAS,CAAC,IAAY,EAAE,OAAoC;IACnE,OAAO,IAAI,CAAC,IAAI,EAAE,iBAAiB,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,cAAc,CAAC,KAAmD;IACzE,OAAO,UAAU,CAAC,QAAQ,CAAC;SACxB,MAAM,CAAC,mCAAmC,CAAC;SAC3C,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SAC7B,MAAM,CAAC,KAAK,CAAC,CAAC;AACnB,CAAC;AAED,SAAS,uBAAuB,CAAC,IAAY,EAAE,cAAsB;IACnE,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC;SACjC,MAAM,CAAC,+BAA+B,CAAC;SACvC,MAAM,CAAC,0BAA0B,EAAE,CAAC;SACpC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjB,OAAO,IAAI,CAAC,IAAI,EAAE,0BAA0B,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;AACzE,CAAC;AAED,SAAS,4BAA4B,CACnC,KAA4D;IAE5D,OAAO,UAAU,CAAC,QAAQ,CAAC;SACxB,MAAM,CAAC,4CAA4C,CAAC;SACpD,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SAC7B,MAAM,CAAC,KAAK,CAAC,CAAC;AACnB,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,MAAc,EAAE,WAAmB;IACrE,MAAM,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE;QACjD,wEAAwE;QACxE,wEAAwE;QACxE,mEAAmE;QACnE,MAAM,EAAE,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACvC,MAAM,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,SAAS,CAAC,IAAY,EAAE,OAAoC;IACnE,OAAO,eAAe,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,SAAS,cAAc,CAAC,KAAmD;IACzE,OAAO,oBAAoB,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,kCAAkC,CACzC,OAAoC,EACpC,OAAe;IAEf,OAAO,wBAAwB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,OAAO,CAAC,CAAC,CAAC;AACtG,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,WAAmB,EACnB,cAAsB,EACtB,YAAqB;IAErB,IAAI,CAAC;QACH,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC;YACrC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,YAAY;gBAAE,OAAO,KAAK,CAAC;QAC3E,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,QAAQ,CAAC,WAAW,CAAC,CAAC,KAAK,cAAc,CAAC;IAChE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,KAAiB,EAAE,WAAmB;IACrE,MAAM,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,MAAM,GAAG,GAAG,IAAI,CACd,OAAO,CAAC,WAAW,CAAC,EACpB,oBAAoB,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CACzE,CAAC;IACF,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC7C,MAAM,KAAK,CAAC,GAAG,EAAE,KAAK,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QAC3C,MAAM,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACjC,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IACxD,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,IAAmB,EACnB,OAAoC;IAEpC,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC/B,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACtC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAA8B,CAAC;QACpF,MAAM,EAAE,SAAS,EAAE,GAAG,QAAQ,EAAE,GAAG,KAAK,CAAC;QACzC,IACE,KAAK,CAAC,OAAO,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,CAAC,OAAO,CAAC;YACtD,CAAC,0BAA0B,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC;YACjF,KAAK,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,KAAK,YAAY;YACnD,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC;YAC1D,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,IAAI,IAAI,CAC1B,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,KAAK,iBAAiB;gBAC1C,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CAC9C,CAAC;YACF,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,KAAK,IAAI,IAAI,CAClC,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,KAAK,aAAa;gBAC9C,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CACtD,CAAC;YACF,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,KAAK,SAAS,IAAI,CACzC,KAAK,CAAC,KAAK,CAAC,UAAU,KAAK,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,KAAK,cAAc;gBACnF,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CACxD,CAAC;YACF,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,KAAK,IAAI;gBAC9B,uBAAuB,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,KAAK,CAAC;oBAChG,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC;YAC3C,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,kBAAkB,KAAK,IAAI,CAAC;YACzE,CAAC,KAAK,CAAC,kBAAkB,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;YAC/E,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,KAAK,OAAO,CAAC,MAAM;YAC5C,cAAc,CAAC,QAAQ,CAAC,KAAK,SAAS;YACtC,CAAC,wBAAwB,CACvB,KAAK,CAAC,QAAQ,EACd,kCAAkC,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAClE;YACD,OAAO,IAAI,CAAC;QAEd,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,CAAC,eAAe,EAAE,EAAE,EAAE,UAAU,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACxE,cAAc,CACZ,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,EACjD,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CACnC;YACD,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,IAAI;gBACrB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;gBACvB,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC;YAC/E,KAAK,CAAC,KAAK,CAAC,UAAU,KAAK,IAAI;gBAC7B,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;gBACvB,CAAC,CAAC,cAAc,CACZ,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAC5C,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAC9B;YACL,KAAK,CAAC,KAAK,CAAC,YAAY,KAAK,SAAS;gBACpC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;gBACvB,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC;SACpG,CAAC,CAAC;QACH,IACE,eAAe,KAAK,IAAI;YACxB,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI;YACtC,KAAK,CAAC,KAAK,CAAC,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,IAAI;YACtD,KAAK,CAAC,KAAK,CAAC,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,IAAI;YAC/D,OAAO,IAAI,CAAC;QAEd,2EAA2E;QAC3E,yEAAyE;QACzE,8CAA8C;QAC9C,IAAI,kBAAkB,GACpB,UAAU,KAAK,IAAI,IAAI,KAAK,CAAC,kBAAkB,KAAK,IAAI;YACxD,MAAM,oCAAoC,CAAC,KAAK,CAAC,kBAAkB,CAAC;YACpE,oEAAoE;YACpE,kEAAkE;YAClE,MAAM,oCAAoC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACvE,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACzD,IAAI,CAAC,CAAC,MAAM,WAAW,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YAC7E,MAAM,YAAY,CAAC,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QACtD,CAAC;QACD,IACE,EAAE,KAAK,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,IAAI;YACtC,CAAC,CAAC,MAAM,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;YACzD,MAAM,YAAY,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,kBAAkB,EAAE,CAAC;YACvB,IAAI,CAAC;gBACH,IAAI,YAAY,KAAK,IAAI;oBAAE,MAAM,yBAAyB,CAAC,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC1F,MAAM,YAAY,GAAG,KAAK,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBAC9C,IAAI,CAAC,CAAC,MAAM,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,UAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC;oBACxF,MAAM,iBAAiB,CAAC,UAAW,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;gBACxD,CAAC;gBACD,IAAI,YAAY,KAAK,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;oBACvE,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBACxE,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,kBAAkB,GAAG,KAAK,CAAC;YAC7B,CAAC;QACH,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,IAAI;YACJ,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC;YACjD,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;YAC1E,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;YAC1F,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;SACpG,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC1E,OAAO;YACL,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,kBAAkB;YAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;SACjD,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;8EAE8E;AAC9E,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,IAAmB,EACnB,OAAoC;IAEpC,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC/B,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CACtB,MAAM,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CACL,CAAC;QAC/B,MAAM,EAAE,SAAS,EAAE,GAAG,QAAQ,EAAE,GAAG,KAAK,CAAC;QACzC,IACE,KAAK,CAAC,OAAO,KAAK,CAAC;YACnB,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;YACjC,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;YAC5C,cAAc,CAAC,QAAQ,CAAC,KAAK,SAAS;YACtC,OAAO,IAAI,CAAC;QACd,MAAM,SAAS,GAAG,uBAAuB,CAAC,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;QACtE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAuC,CAAC;QAClG,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,aAAa,EAAE,GAAG,KAAK,CAAC;QAC9D,IACE,KAAK,CAAC,OAAO,KAAK,CAAC,IAAI,KAAK,CAAC,cAAc,KAAK,KAAK,CAAC,cAAc;YACpE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC;YAClC,4BAA4B,CAAC,aAAa,CAAC,KAAK,cAAc;YAC9D,CAAC,CAAC,MAAM,4CAA4C,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YACzE,OAAO,IAAI,CAAC;QACd,MAAM,QAAQ,GAAgC;YAC5C,GAAG,OAAO;YACV,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,0BAA0B,EAAE,KAAK,CAAC,YAAY;SAC/C,CAAC;QACF,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,KAAK,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QAClD,MAAM,GAAG,GAAG,MAAM,wBAAwB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC3D,IAAI,GAAG,EAAE,kBAAkB,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAClD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,SAAS;YACT,SAAS;SACV,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC1E,OAAO,GAAG,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;iEAGiE;AACjE,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,IAAmB,EACnB,OAAoC;IAEpC,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO;IAC1B,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IAC/E,MAAM,aAAa,GAA0D;QAC3E,OAAO,EAAE,CAAC;QACV,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,YAAY,EAAE,OAAO,CAAC,0BAA0B;KACjD,CAAC;IACF,MAAM,KAAK,GAAuC;QAChD,GAAG,aAAa;QAChB,SAAS,EAAE,4BAA4B,CAAC,aAAa,CAAC;KACvD,CAAC;IACF,MAAM,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACzE,MAAM,QAAQ,GAAG,GAAG,gBAAgB,QAAQ,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACjG,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACzE,MAAM,oBAAoB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IACzD,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,YAAY,GAAgC,OAAO,CAAC;IAC1D,MAAM,gBAAgB,GAAG,SAAS,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IACvD,MAAM,aAAa,GAAiD;QAClE,OAAO,EAAE,CAAC;QACV,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC;QACtB,cAAc,EAAE,OAAO,CAAC,cAAc;KACvC,CAAC;IACF,MAAM,KAAK,GAA8B;QACvC,GAAG,aAAa;QAChB,SAAS,EAAE,cAAc,CAAC,aAAa,CAAC;KACzC,CAAC;IACF,MAAM,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACzE,MAAM,QAAQ,GAAG,GAAG,gBAAgB,QAAQ,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACjG,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACzE,MAAM,oBAAoB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IACzD,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,IAAmB,EACnB,OAAoC,EACpC,MAAmC;IAEnC,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM;QAAE,OAAO;IACrD,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,IAAI,CAChB,MAAM,EACN,QAAQ,QAAQ,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CACnG,CAAC;IACF,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACrD,MAAM,WAAW,GAAG,KAAK,EAAE,MAAc,EAAE,IAAY,EAAiC,EAAE;YACxF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACjC,MAAM,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC/B,MAAM,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAC3B,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QAC1D,CAAC,CAAC;QACF,MAAM,iBAAiB,GACrB,MAAM,CAAC,kBAAkB,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,kBAAkB;YACnE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;YACvB,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAClD,MAAM,CAAC,eAAe,EAAE,EAAE,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC1D,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC;YAC1C,MAAM,CAAC,MAAM,KAAK,SAAS;gBACzB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;gBACvB,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC;YACjD,iBAAiB;SAClB,CAAC,CAAC;QACH,IAAI,YAA8C,CAAC;QACnD,IAAI,UAAU,KAAK,IAAI,IAAI,uBAAuB,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5H,MAAM,KAAK,GAAG,MAAM,sBAAsB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC5D,MAAM,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACrE,YAAY,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QACjE,CAAC;QACD,IAAI,CAAC,wBAAwB,CAC3B,MAAM,CAAC,QAAQ,EACf,kCAAkC,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CACnE;YAAE,OAAO;QACV,MAAM,QAAQ,GAAiD;YAC7D,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC;YACtB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,KAAK,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;YACnG,kBAAkB,EAAE,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,kBAAmB;YAC3E,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC;QACF,MAAM,KAAK,GAA8B,EAAE,GAAG,QAAQ,EAAE,SAAS,EAAE,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9F,MAAM,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1F,MAAM,KAAK,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAG,KAAK,EAAE,IAAY,EAAiB,EAAE;YACpD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACjC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YACvC,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE;gBAC5C,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBAClC,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC/B,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QACF,MAAM,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,EAAE,KAAK,IAAI;YAAE,MAAM,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,UAAU,KAAK,IAAI;YAAE,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,YAAY,KAAK,SAAS;YAAE,MAAM,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACjE,MAAM,OAAO,CAAC,YAAY,CAAC,CAAC;QAC5B,MAAM,2BAA2B,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"executable-cache.js","sourceRoot":"","sources":["../../src/executable/executable-cache.ts"],"names":[],"mappings":"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"}
|