semantifold 0.9.0 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -3
- package/bin/semantifold.js +6 -0
- package/build/bin/semantifold.d.ts +3 -0
- package/build/bin/semantifold.d.ts.map +1 -0
- package/build/bin/semantifold.js +5 -0
- package/build/index.d.ts +8 -0
- package/build/index.d.ts.map +1 -1
- package/build/index.js +9 -1
- package/build/src/artifact-path.d.ts +16 -0
- package/build/src/artifact-path.d.ts.map +1 -1
- package/build/src/artifact-path.js +29 -3
- package/build/src/backends/c-check.d.ts +7 -0
- package/build/src/backends/c-check.d.ts.map +1 -0
- package/build/src/backends/c-check.js +65 -0
- package/build/src/backends/check-plan.d.ts +96 -0
- package/build/src/backends/check-plan.d.ts.map +1 -0
- package/build/src/backends/check-plan.js +135 -0
- package/build/src/backends/cpp-check.d.ts +7 -0
- package/build/src/backends/cpp-check.d.ts.map +1 -0
- package/build/src/backends/cpp-check.js +59 -0
- package/build/src/backends/csharp-check.d.ts +7 -0
- package/build/src/backends/csharp-check.d.ts.map +1 -0
- package/build/src/backends/csharp-check.js +125 -0
- package/build/src/backends/csharp.d.ts +1 -0
- package/build/src/backends/csharp.d.ts.map +1 -1
- package/build/src/backends/csharp.js +5 -4
- package/build/src/backends/dart-check.d.ts +7 -0
- package/build/src/backends/dart-check.d.ts.map +1 -0
- package/build/src/backends/dart-check.js +103 -0
- package/build/src/backends/dart.d.ts +2 -0
- package/build/src/backends/dart.d.ts.map +1 -1
- package/build/src/backends/dart.js +5 -5
- package/build/src/backends/go-check.d.ts +7 -0
- package/build/src/backends/go-check.d.ts.map +1 -0
- package/build/src/backends/go-check.js +77 -0
- package/build/src/backends/go.d.ts +1 -0
- package/build/src/backends/go.d.ts.map +1 -1
- package/build/src/backends/go.js +3 -3
- package/build/src/backends/java-check.d.ts +21 -0
- package/build/src/backends/java-check.d.ts.map +1 -0
- package/build/src/backends/java-check.js +73 -0
- package/build/src/backends/javascript-check.d.ts +7 -0
- package/build/src/backends/javascript-check.d.ts.map +1 -0
- package/build/src/backends/javascript-check.js +29 -0
- package/build/src/backends/kotlin-check.d.ts +7 -0
- package/build/src/backends/kotlin-check.d.ts.map +1 -0
- package/build/src/backends/kotlin-check.js +31 -0
- package/build/src/backends/php-check.d.ts +7 -0
- package/build/src/backends/php-check.d.ts.map +1 -0
- package/build/src/backends/php-check.js +21 -0
- package/build/src/backends/program.d.ts +7 -0
- package/build/src/backends/program.d.ts.map +1 -1
- package/build/src/backends/program.js +16 -1
- package/build/src/backends/python-check.d.ts +7 -0
- package/build/src/backends/python-check.d.ts.map +1 -0
- package/build/src/backends/python-check.js +28 -0
- package/build/src/backends/ruby-check.d.ts +7 -0
- package/build/src/backends/ruby-check.d.ts.map +1 -0
- package/build/src/backends/ruby-check.js +21 -0
- package/build/src/backends/rust-check.d.ts +7 -0
- package/build/src/backends/rust-check.d.ts.map +1 -0
- package/build/src/backends/rust-check.js +65 -0
- package/build/src/backends/swift-check.d.ts +7 -0
- package/build/src/backends/swift-check.d.ts.map +1 -0
- package/build/src/backends/swift-check.js +77 -0
- package/build/src/backends/typescript-check.d.ts +7 -0
- package/build/src/backends/typescript-check.d.ts.map +1 -0
- package/build/src/backends/typescript-check.js +33 -0
- package/build/src/backends/zig-check.d.ts +7 -0
- package/build/src/backends/zig-check.d.ts.map +1 -0
- package/build/src/backends/zig-check.js +70 -0
- package/build/src/diagnostic.d.ts +13 -1
- package/build/src/diagnostic.d.ts.map +1 -1
- package/build/src/diagnostic.js +14 -2
- package/build/src/frontends/program.d.ts +6 -0
- package/build/src/frontends/program.d.ts.map +1 -1
- package/build/src/frontends/program.js +9 -1
- package/build/src/language-registry.d.ts +54 -0
- package/build/src/language-registry.d.ts.map +1 -1
- package/build/src/language-registry.js +107 -5
- package/build/src/project-build.d.ts +172 -0
- package/build/src/project-build.d.ts.map +1 -0
- package/build/src/project-build.js +320 -0
- package/build/src/project-cli.d.ts +40 -0
- package/build/src/project-cli.d.ts.map +1 -0
- package/build/src/project-cli.js +145 -0
- package/build/src/project-manifest.d.ts +148 -0
- package/build/src/project-manifest.d.ts.map +1 -0
- package/build/src/project-manifest.js +432 -0
- package/build/src/project-reporter.d.ts +81 -0
- package/build/src/project-reporter.d.ts.map +1 -0
- package/build/src/project-reporter.js +293 -0
- package/build/src/project-snapshot.d.ts +129 -0
- package/build/src/project-snapshot.d.ts.map +1 -0
- package/build/src/project-snapshot.js +362 -0
- package/build/src/project-watch-reporter.d.ts +125 -0
- package/build/src/project-watch-reporter.d.ts.map +1 -0
- package/build/src/project-watch-reporter.js +280 -0
- package/build/src/project-watch.d.ts +133 -0
- package/build/src/project-watch.d.ts.map +1 -0
- package/build/src/project-watch.js +839 -0
- package/build/src/publication.d.ts +69 -5
- package/build/src/publication.d.ts.map +1 -1
- package/build/src/publication.js +246 -57
- package/build/src/semantic/types.d.ts +303 -2
- package/build/src/semantic/types.d.ts.map +1 -1
- package/build/src/semantic/types.js +79 -2
- package/build/src/subprocess.d.ts +8 -0
- package/build/src/subprocess.d.ts.map +1 -1
- package/build/src/subprocess.js +50 -9
- package/build/src/target-check.d.ts +52 -0
- package/build/src/target-check.d.ts.map +1 -0
- package/build/src/target-check.js +796 -0
- package/build/src/toolchains.d.ts.map +1 -1
- package/build/src/toolchains.js +3 -3
- package/docs/architecture.md +3 -1
- package/docs/c.md +4 -0
- package/docs/cpp.md +4 -0
- package/docs/dart.md +4 -0
- package/docs/generated-artifact-publication.md +11 -8
- package/docs/kotlin.md +2 -2
- package/docs/language-support.md +29 -3
- package/docs/project-build-cli.md +147 -0
- package/docs/project-watch.md +60 -0
- package/docs/rust.md +4 -0
- package/docs/swift.md +2 -0
- package/docs/testing.md +70 -3
- package/docs/watch-build-pipeline.md +39 -23
- package/docs/zig.md +2 -0
- package/examples/jsdoc-java-watch/expected-output.txt +3 -0
- package/examples/jsdoc-java-watch/semantifold.json +23 -0
- package/examples/jsdoc-java-watch/src/main.js +21 -0
- package/index.js +8 -0
- package/package.json +6 -1
- package/src/artifact-path.js +31 -2
- package/src/backends/c-check.js +80 -0
- package/src/backends/check-plan.js +147 -0
- package/src/backends/cpp-check.js +73 -0
- package/src/backends/csharp-check.js +139 -0
- package/src/backends/csharp.js +4 -3
- package/src/backends/dart-check.js +117 -0
- package/src/backends/dart.js +4 -4
- package/src/backends/go-check.js +89 -0
- package/src/backends/go.js +2 -2
- package/src/backends/java-check.js +77 -0
- package/src/backends/javascript-check.js +33 -0
- package/src/backends/kotlin-check.js +41 -0
- package/src/backends/php-check.js +23 -0
- package/src/backends/program.js +17 -0
- package/src/backends/python-check.js +30 -0
- package/src/backends/ruby-check.js +23 -0
- package/src/backends/rust-check.js +78 -0
- package/src/backends/swift-check.js +89 -0
- package/src/backends/typescript-check.js +37 -0
- package/src/backends/zig-check.js +81 -0
- package/src/diagnostic.js +9 -1
- package/src/frontends/program.js +9 -0
- package/src/language-registry.js +113 -4
- package/src/project-build.js +353 -0
- package/src/project-cli.js +155 -0
- package/src/project-manifest.js +479 -0
- package/src/project-reporter.js +320 -0
- package/src/project-snapshot.js +403 -0
- package/src/project-watch-reporter.js +303 -0
- package/src/project-watch.js +870 -0
- package/src/publication.js +275 -58
- package/src/semantic/types.js +87 -1
- package/src/subprocess.js +49 -8
- package/src/target-check.js +844 -0
- package/src/toolchains.js +3 -2
- package/tsconfig.json +1 -1
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Constructs Python's isolated bytecode compiler plan.
|
|
3
|
+
* @param {import("../language-registry.js").TargetCheckPlanContext} context - Validated candidate context.
|
|
4
|
+
* @returns {import("../semantic/types.js").TargetCheckPlan} Immutable Python plan.
|
|
5
|
+
*/
|
|
6
|
+
export declare function createPythonCheckPlan(context: import("../language-registry.js").TargetCheckPlanContext): import("../semantic/types.js").TargetCheckPlan;
|
|
7
|
+
//# sourceMappingURL=python-check.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"python-check.d.ts","sourceRoot":"","sources":["../../../src/backends/python-check.js"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAHlC,OAAO,yBAAyB,EAAE,sBAGA,GAFhC,OAAO,sBAAsB,EAAE,eAAe,CAqB1D"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { checkArtifacts, checkOutput, checkPlan, checkStage, checkTool, pathArgument } from "./check-plan.js";
|
|
4
|
+
/**
|
|
5
|
+
* Constructs Python's isolated bytecode compiler plan.
|
|
6
|
+
* @param {import("../language-registry.js").TargetCheckPlanContext} context - Validated candidate context.
|
|
7
|
+
* @returns {import("../semantic/types.js").TargetCheckPlan} Immutable Python plan.
|
|
8
|
+
*/
|
|
9
|
+
export function createPythonCheckPlan(context) {
|
|
10
|
+
const tool = checkTool(context, "python", "python");
|
|
11
|
+
const artifacts = checkArtifacts(context, artifact => artifact.path.endsWith(".py"), "python", "only staged '.py' artifacts");
|
|
12
|
+
const compiler = "import py_compile,sys;[py_compile.compile(sys.argv[index],cfile=sys.argv[index+1],dfile=sys.argv[index+2],doraise=True,invalidation_mode=py_compile.PycInvalidationMode.CHECKED_HASH) for index in range(1,len(sys.argv),3)]";
|
|
13
|
+
const arguments_ = artifacts.flatMap(artifactPath => [
|
|
14
|
+
artifactPath,
|
|
15
|
+
path.join(context.buildPath, `${path.basename(artifactPath, ".py")}.pyc`),
|
|
16
|
+
path.basename(artifactPath)
|
|
17
|
+
]);
|
|
18
|
+
return checkPlan(context, "python", artifacts, [checkStage({
|
|
19
|
+
argv: ["-I", "-B", "-c", compiler, ...arguments_],
|
|
20
|
+
cwd: context.sourcePath,
|
|
21
|
+
inputs: artifacts,
|
|
22
|
+
output: checkOutput(context.buildPath, "application/x-python-bytecode", "compiler-output"),
|
|
23
|
+
pathArguments: artifacts.flatMap((_, index) => [pathArgument(4 + index * 3, "source"), pathArgument(5 + index * 3, "build")]),
|
|
24
|
+
stage: "compile",
|
|
25
|
+
tool
|
|
26
|
+
})]);
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHl0aG9uLWNoZWNrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JhY2tlbmRzL3B5dGhvbi1jaGVjay5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFBO0FBQzVCLE9BQU8sRUFBQyxjQUFjLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFBO0FBRTNHOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUscUJBQXFCLENBQUMsT0FBTztJQUMzQyxNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQTtJQUNuRCxNQUFNLFNBQVMsR0FBRyxjQUFjLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsUUFBUSxFQUFFLDZCQUE2QixDQUFDLENBQUE7SUFDN0gsTUFBTSxRQUFRLEdBQUcsOE5BQThOLENBQUE7SUFDL08sTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1FBQ25ELFlBQVk7UUFDWixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDO1FBQ3pFLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDO0tBQzVCLENBQUMsQ0FBQTtJQUVGLE9BQU8sU0FBUyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLENBQUMsVUFBVSxDQUFDO1lBQ3pELElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxHQUFHLFVBQVUsQ0FBQztZQUNqRCxHQUFHLEVBQUUsT0FBTyxDQUFDLFVBQVU7WUFDdkIsTUFBTSxFQUFFLFNBQVM7WUFDakIsTUFBTSxFQUFFLFdBQVcsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLCtCQUErQixFQUFFLGlCQUFpQixDQUFDO1lBQzFGLGFBQWEsRUFBRSxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLEVBQUUsUUFBUSxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDN0gsS0FBSyxFQUFFLFNBQVM7WUFDaEIsSUFBSTtTQUNMLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCBwYXRoIGZyb20gXCJub2RlOnBhdGhcIlxuaW1wb3J0IHtjaGVja0FydGlmYWN0cywgY2hlY2tPdXRwdXQsIGNoZWNrUGxhbiwgY2hlY2tTdGFnZSwgY2hlY2tUb29sLCBwYXRoQXJndW1lbnR9IGZyb20gXCIuL2NoZWNrLXBsYW4uanNcIlxuXG4vKipcbiAqIENvbnN0cnVjdHMgUHl0aG9uJ3MgaXNvbGF0ZWQgYnl0ZWNvZGUgY29tcGlsZXIgcGxhbi5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vbGFuZ3VhZ2UtcmVnaXN0cnkuanNcIikuVGFyZ2V0Q2hlY2tQbGFuQ29udGV4dH0gY29udGV4dCAtIFZhbGlkYXRlZCBjYW5kaWRhdGUgY29udGV4dC5cbiAqIEByZXR1cm5zIHtpbXBvcnQoXCIuLi9zZW1hbnRpYy90eXBlcy5qc1wiKS5UYXJnZXRDaGVja1BsYW59IEltbXV0YWJsZSBQeXRob24gcGxhbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVB5dGhvbkNoZWNrUGxhbihjb250ZXh0KSB7XG4gIGNvbnN0IHRvb2wgPSBjaGVja1Rvb2woY29udGV4dCwgXCJweXRob25cIiwgXCJweXRob25cIilcbiAgY29uc3QgYXJ0aWZhY3RzID0gY2hlY2tBcnRpZmFjdHMoY29udGV4dCwgYXJ0aWZhY3QgPT4gYXJ0aWZhY3QucGF0aC5lbmRzV2l0aChcIi5weVwiKSwgXCJweXRob25cIiwgXCJvbmx5IHN0YWdlZCAnLnB5JyBhcnRpZmFjdHNcIilcbiAgY29uc3QgY29tcGlsZXIgPSBcImltcG9ydCBweV9jb21waWxlLHN5cztbcHlfY29tcGlsZS5jb21waWxlKHN5cy5hcmd2W2luZGV4XSxjZmlsZT1zeXMuYXJndltpbmRleCsxXSxkZmlsZT1zeXMuYXJndltpbmRleCsyXSxkb3JhaXNlPVRydWUsaW52YWxpZGF0aW9uX21vZGU9cHlfY29tcGlsZS5QeWNJbnZhbGlkYXRpb25Nb2RlLkNIRUNLRURfSEFTSCkgZm9yIGluZGV4IGluIHJhbmdlKDEsbGVuKHN5cy5hcmd2KSwzKV1cIlxuICBjb25zdCBhcmd1bWVudHNfID0gYXJ0aWZhY3RzLmZsYXRNYXAoYXJ0aWZhY3RQYXRoID0+IFtcbiAgICBhcnRpZmFjdFBhdGgsXG4gICAgcGF0aC5qb2luKGNvbnRleHQuYnVpbGRQYXRoLCBgJHtwYXRoLmJhc2VuYW1lKGFydGlmYWN0UGF0aCwgXCIucHlcIil9LnB5Y2ApLFxuICAgIHBhdGguYmFzZW5hbWUoYXJ0aWZhY3RQYXRoKVxuICBdKVxuXG4gIHJldHVybiBjaGVja1BsYW4oY29udGV4dCwgXCJweXRob25cIiwgYXJ0aWZhY3RzLCBbY2hlY2tTdGFnZSh7XG4gICAgYXJndjogW1wiLUlcIiwgXCItQlwiLCBcIi1jXCIsIGNvbXBpbGVyLCAuLi5hcmd1bWVudHNfXSxcbiAgICBjd2Q6IGNvbnRleHQuc291cmNlUGF0aCxcbiAgICBpbnB1dHM6IGFydGlmYWN0cyxcbiAgICBvdXRwdXQ6IGNoZWNrT3V0cHV0KGNvbnRleHQuYnVpbGRQYXRoLCBcImFwcGxpY2F0aW9uL3gtcHl0aG9uLWJ5dGVjb2RlXCIsIFwiY29tcGlsZXItb3V0cHV0XCIpLFxuICAgIHBhdGhBcmd1bWVudHM6IGFydGlmYWN0cy5mbGF0TWFwKChfLCBpbmRleCkgPT4gW3BhdGhBcmd1bWVudCg0ICsgaW5kZXggKiAzLCBcInNvdXJjZVwiKSwgcGF0aEFyZ3VtZW50KDUgKyBpbmRleCAqIDMsIFwiYnVpbGRcIildKSxcbiAgICBzdGFnZTogXCJjb21waWxlXCIsXG4gICAgdG9vbFxuICB9KV0pXG59XG4iXX0=
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Constructs Ruby's non-executing syntax-check plan.
|
|
3
|
+
* @param {import("../language-registry.js").TargetCheckPlanContext} context - Validated candidate context.
|
|
4
|
+
* @returns {import("../semantic/types.js").TargetCheckPlan} Immutable Ruby plan.
|
|
5
|
+
*/
|
|
6
|
+
export declare function createRubyCheckPlan(context: import("../language-registry.js").TargetCheckPlanContext): import("../semantic/types.js").TargetCheckPlan;
|
|
7
|
+
//# sourceMappingURL=ruby-check.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ruby-check.d.ts","sourceRoot":"","sources":["../../../src/backends/ruby-check.js"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAHhC,OAAO,yBAAyB,EAAE,sBAGF,GAF9B,OAAO,sBAAsB,EAAE,eAAe,CAe1D"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
import { checkArtifacts, checkPlan, checkStage, checkTool, pathArgument } from "./check-plan.js";
|
|
3
|
+
/**
|
|
4
|
+
* Constructs Ruby's non-executing syntax-check plan.
|
|
5
|
+
* @param {import("../language-registry.js").TargetCheckPlanContext} context - Validated candidate context.
|
|
6
|
+
* @returns {import("../semantic/types.js").TargetCheckPlan} Immutable Ruby plan.
|
|
7
|
+
*/
|
|
8
|
+
export function createRubyCheckPlan(context) {
|
|
9
|
+
const tool = checkTool(context, "ruby", "ruby");
|
|
10
|
+
const artifacts = checkArtifacts(context, artifact => artifact.path.endsWith(".rb"), "ruby", "only staged '.rb' artifacts");
|
|
11
|
+
return checkPlan(context, "ruby", artifacts, artifacts.map(artifact => checkStage({
|
|
12
|
+
argv: ["--disable=gems", "-c", artifact],
|
|
13
|
+
cwd: context.sourcePath,
|
|
14
|
+
inputs: [artifact],
|
|
15
|
+
output: null,
|
|
16
|
+
pathArguments: [pathArgument(2, "source")],
|
|
17
|
+
stage: "validate",
|
|
18
|
+
tool
|
|
19
|
+
})));
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVieS1jaGVjay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYWNrZW5kcy9ydWJ5LWNoZWNrLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixPQUFPLEVBQUMsY0FBYyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFBO0FBRTlGOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsT0FBTztJQUN6QyxNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQTtJQUMvQyxNQUFNLFNBQVMsR0FBRyxjQUFjLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLDZCQUE2QixDQUFDLENBQUE7SUFFM0gsT0FBTyxTQUFTLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQztRQUNoRixJQUFJLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDO1FBQ3hDLEdBQUcsRUFBRSxPQUFPLENBQUMsVUFBVTtRQUN2QixNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUM7UUFDbEIsTUFBTSxFQUFFLElBQUk7UUFDWixhQUFhLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzFDLEtBQUssRUFBRSxVQUFVO1FBQ2pCLElBQUk7S0FDTCxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQge2NoZWNrQXJ0aWZhY3RzLCBjaGVja1BsYW4sIGNoZWNrU3RhZ2UsIGNoZWNrVG9vbCwgcGF0aEFyZ3VtZW50fSBmcm9tIFwiLi9jaGVjay1wbGFuLmpzXCJcblxuLyoqXG4gKiBDb25zdHJ1Y3RzIFJ1YnkncyBub24tZXhlY3V0aW5nIHN5bnRheC1jaGVjayBwbGFuLlxuICogQHBhcmFtIHtpbXBvcnQoXCIuLi9sYW5ndWFnZS1yZWdpc3RyeS5qc1wiKS5UYXJnZXRDaGVja1BsYW5Db250ZXh0fSBjb250ZXh0IC0gVmFsaWRhdGVkIGNhbmRpZGF0ZSBjb250ZXh0LlxuICogQHJldHVybnMge2ltcG9ydChcIi4uL3NlbWFudGljL3R5cGVzLmpzXCIpLlRhcmdldENoZWNrUGxhbn0gSW1tdXRhYmxlIFJ1YnkgcGxhbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVJ1YnlDaGVja1BsYW4oY29udGV4dCkge1xuICBjb25zdCB0b29sID0gY2hlY2tUb29sKGNvbnRleHQsIFwicnVieVwiLCBcInJ1YnlcIilcbiAgY29uc3QgYXJ0aWZhY3RzID0gY2hlY2tBcnRpZmFjdHMoY29udGV4dCwgYXJ0aWZhY3QgPT4gYXJ0aWZhY3QucGF0aC5lbmRzV2l0aChcIi5yYlwiKSwgXCJydWJ5XCIsIFwib25seSBzdGFnZWQgJy5yYicgYXJ0aWZhY3RzXCIpXG5cbiAgcmV0dXJuIGNoZWNrUGxhbihjb250ZXh0LCBcInJ1YnlcIiwgYXJ0aWZhY3RzLCBhcnRpZmFjdHMubWFwKGFydGlmYWN0ID0+IGNoZWNrU3RhZ2Uoe1xuICAgIGFyZ3Y6IFtcIi0tZGlzYWJsZT1nZW1zXCIsIFwiLWNcIiwgYXJ0aWZhY3RdLFxuICAgIGN3ZDogY29udGV4dC5zb3VyY2VQYXRoLFxuICAgIGlucHV0czogW2FydGlmYWN0XSxcbiAgICBvdXRwdXQ6IG51bGwsXG4gICAgcGF0aEFyZ3VtZW50czogW3BhdGhBcmd1bWVudCgyLCBcInNvdXJjZVwiKV0sXG4gICAgc3RhZ2U6IFwidmFsaWRhdGVcIixcbiAgICB0b29sXG4gIH0pKSlcbn1cbiJdfQ==
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Constructs Rust's locked offline Cargo build/check plan.
|
|
3
|
+
* @param {import("../language-registry.js").TargetCheckPlanContext} context - Validated candidate context.
|
|
4
|
+
* @returns {import("../semantic/types.js").TargetCheckPlan} Immutable Cargo plan.
|
|
5
|
+
*/
|
|
6
|
+
export declare function createRustCheckPlan(context: import("../language-registry.js").TargetCheckPlanContext): import("../semantic/types.js").TargetCheckPlan;
|
|
7
|
+
//# sourceMappingURL=rust-check.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rust-check.d.ts","sourceRoot":"","sources":["../../../src/backends/rust-check.js"],"names":[],"mappings":"AAeA;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAHhC,OAAO,yBAAyB,EAAE,sBAGF,GAF9B,OAAO,sBAAsB,EAAE,eAAe,CA2D1D"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { SemantifoldDiagnostic } from "../diagnostic.js";
|
|
4
|
+
import { checkArtifacts, checkPlan, checkStage, checkTool, environmentPath, environmentTool, pathArgument } from "./check-plan.js";
|
|
5
|
+
import { rustLockfile, rustManifest } from "./rust-runtime.js";
|
|
6
|
+
/**
|
|
7
|
+
* Constructs Rust's locked offline Cargo build/check plan.
|
|
8
|
+
* @param {import("../language-registry.js").TargetCheckPlanContext} context - Validated candidate context.
|
|
9
|
+
* @returns {import("../semantic/types.js").TargetCheckPlan} Immutable Cargo plan.
|
|
10
|
+
*/
|
|
11
|
+
export function createRustCheckPlan(context) {
|
|
12
|
+
const rustc = checkTool(context, "rustc", "rust");
|
|
13
|
+
const cargo = checkTool(context, "cargo", "rust");
|
|
14
|
+
const artifacts = checkArtifacts(context, artifact => artifact.path.endsWith(".rs") ||
|
|
15
|
+
artifact.path == "Cargo.toml" || artifact.path == "Cargo.lock", "rust", "only staged Rust source and canonical Cargo manifest/lock artifacts");
|
|
16
|
+
const manifest = context.artifacts.artifacts.filter(artifact => artifact.path == "Cargo.toml");
|
|
17
|
+
const lock = context.artifacts.artifacts.filter(artifact => artifact.path == "Cargo.lock");
|
|
18
|
+
const sources = artifacts.filter(artifact => artifact.endsWith(".rs"));
|
|
19
|
+
if (manifest.length != 1 || manifest[0].contentKind != "text" || manifest[0].role != "manifest" ||
|
|
20
|
+
manifest[0].content != rustManifest || lock.length != 1 || lock[0].contentKind != "text" ||
|
|
21
|
+
lock[0].content != rustLockfile || artifacts.length != 3 || sources.length != 1 ||
|
|
22
|
+
sources[0] != path.join(context.sourcePath, "src/main.rs")) {
|
|
23
|
+
throw new SemantifoldDiagnostic({
|
|
24
|
+
code: "INVALID_TARGET_CHECK_PLAN",
|
|
25
|
+
language: "rust",
|
|
26
|
+
message: "Rust developer checks require the exact dependency-free Cargo project/lock and staged '.rs' source."
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
const cargoHome = path.join(context.buildPath, "cargo-home");
|
|
30
|
+
const home = path.join(context.buildPath, "home");
|
|
31
|
+
const temporary = path.join(context.buildPath, "tmp");
|
|
32
|
+
const target = path.join(context.buildPath, "cargo-target");
|
|
33
|
+
const environment = {
|
|
34
|
+
CARGO_HOME: cargoHome,
|
|
35
|
+
CARGO_INCREMENTAL: "0",
|
|
36
|
+
CARGO_NET_OFFLINE: "true",
|
|
37
|
+
CARGO_TERM_COLOR: "never",
|
|
38
|
+
HOME: home,
|
|
39
|
+
PATH: [path.dirname(rustc.executable), path.dirname(cargo.executable), "/usr/local/bin", "/usr/bin", "/bin"].filter((value, index, values) => values.indexOf(value) == index).join(path.delimiter),
|
|
40
|
+
RUSTC: rustc.executable,
|
|
41
|
+
TMPDIR: temporary
|
|
42
|
+
};
|
|
43
|
+
const environmentPaths = [environmentPath("CARGO_HOME", "build"), environmentPath("HOME", "build"),
|
|
44
|
+
environmentTool("RUSTC", rustc), environmentPath("TMPDIR", "build")];
|
|
45
|
+
/**
|
|
46
|
+
* Constructs one Cargo stage over the complete generated project.
|
|
47
|
+
* @param {import("../semantic/types.js").AcceptanceStage} name - Registry stage identity.
|
|
48
|
+
* @param {string} command - Exact Cargo subcommand.
|
|
49
|
+
* @returns {import("../semantic/types.js").TargetCheckStageRequest} Immutable stage.
|
|
50
|
+
*/
|
|
51
|
+
const stage = (name, command) => checkStage({
|
|
52
|
+
argv: [command, "--offline", "--locked", "--target-dir", target],
|
|
53
|
+
cwd: context.sourcePath,
|
|
54
|
+
environment,
|
|
55
|
+
environmentPaths,
|
|
56
|
+
inputs: artifacts,
|
|
57
|
+
output: null,
|
|
58
|
+
pathArguments: [pathArgument(4, "build")],
|
|
59
|
+
stage: name,
|
|
60
|
+
tool: cargo,
|
|
61
|
+
transientPaths: [target]
|
|
62
|
+
});
|
|
63
|
+
return checkPlan(context, "rust", artifacts, [stage("compile", "build"), stage("validate", "check")]);
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVzdC1jaGVjay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYWNrZW5kcy9ydXN0LWNoZWNrLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixPQUFPLElBQUksTUFBTSxXQUFXLENBQUE7QUFDNUIsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sa0JBQWtCLENBQUE7QUFDdEQsT0FBTyxFQUNMLGNBQWMsRUFDZCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFNBQVMsRUFDVCxlQUFlLEVBQ2YsZUFBZSxFQUNmLFlBQVksRUFDYixNQUFNLGlCQUFpQixDQUFBO0FBQ3hCLE9BQU8sRUFBQyxZQUFZLEVBQUUsWUFBWSxFQUFDLE1BQU0sbUJBQW1CLENBQUE7QUFFNUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxPQUFPO0lBQ3pDLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFBO0lBQ2pELE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFBO0lBQ2pELE1BQU0sU0FBUyxHQUFHLGNBQWMsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7UUFDakYsUUFBUSxDQUFDLElBQUksSUFBSSxZQUFZLElBQUksUUFBUSxDQUFDLElBQUksSUFBSSxZQUFZLEVBQ2hFLE1BQU0sRUFBRSxxRUFBcUUsQ0FBQyxDQUFBO0lBQzlFLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksWUFBWSxDQUFDLENBQUE7SUFDOUYsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxTQUFT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RSxXQUFXLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLENBQUM7UUFDaEUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxVQUFVO1FBQ3ZCLFdBQVc7UUFDWCxnQkFBZ0I7UUFDaEIsTUFBTSxFQUFFLFNBQVM7UUFDakIsTUFBTSxFQUFFLElBQUk7UUFDWixhQUFhLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3pDLEtBQUssRUFBRSxJQUFJO1FBQ1gsSUFBSSxFQUFFLEtBQUs7UUFDWCxjQUFjLEVBQUUsQ0FBQyxNQUFNLENBQUM7S0FDekIsQ0FBQyxDQUFBO0lBRUYsT0FBTyxTQUFTLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxFQUFFLEtBQUssQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQ3ZHLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IHBhdGggZnJvbSBcIm5vZGU6cGF0aFwiXG5pbXBvcnQge1NlbWFudGlmb2xkRGlhZ25vc3RpY30gZnJvbSBcIi4uL2RpYWdub3N0aWMuanNcIlxuaW1wb3J0IHtcbiAgY2hlY2tBcnRpZmFjdHMsXG4gIGNoZWNrUGxhbixcbiAgY2hlY2tTdGFnZSxcbiAgY2hlY2tUb29sLFxuICBlbnZpcm9ubWVudFBhdGgsXG4gIGVudmlyb25tZW50VG9vbCxcbiAgcGF0aEFyZ3VtZW50XG59IGZyb20gXCIuL2NoZWNrLXBsYW4uanNcIlxuaW1wb3J0IHtydXN0TG9ja2ZpbGUsIHJ1c3RNYW5pZmVzdH0gZnJvbSBcIi4vcnVzdC1ydW50aW1lLmpzXCJcblxuLyoqXG4gKiBDb25zdHJ1Y3RzIFJ1c3QncyBsb2NrZWQgb2ZmbGluZSBDYXJnbyBidWlsZC9jaGVjayBwbGFuLlxuICogQHBhcmFtIHtpbXBvcnQoXCIuLi9sYW5ndWFnZS1yZWdpc3RyeS5qc1wiKS5UYXJnZXRDaGVja1BsYW5Db250ZXh0fSBjb250ZXh0IC0gVmFsaWRhdGVkIGNhbmRpZGF0ZSBjb250ZXh0LlxuICogQHJldHVybnMge2ltcG9ydChcIi4uL3NlbWFudGljL3R5cGVzLmpzXCIpLlRhcmdldENoZWNrUGxhbn0gSW1tdXRhYmxlIENhcmdvIHBsYW4uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVSdXN0Q2hlY2tQbGFuKGNvbnRleHQpIHtcbiAgY29uc3QgcnVzdGMgPSBjaGVja1Rvb2woY29udGV4dCwgXCJydXN0Y1wiLCBcInJ1c3RcIilcbiAgY29uc3QgY2FyZ28gPSBjaGVja1Rvb2woY29udGV4dCwgXCJjYXJnb1wiLCBcInJ1c3RcIilcbiAgY29uc3QgYXJ0aWZhY3RzID0gY2hlY2tBcnRpZmFjdHMoY29udGV4dCwgYXJ0aWZhY3QgPT4gYXJ0aWZhY3QucGF0aC5lbmRzV2l0aChcIi5yc1wiKSB8fFxuICAgIGFydGlmYWN0LnBhdGggPT0gXCJDYXJnby50b21sXCIgfHwgYXJ0aWZhY3QucGF0aCA9PSBcIkNhcmdvLmxvY2tcIixcbiAgXCJydXN0XCIsIFwib25seSBzdGFnZWQgUnVzdCBzb3VyY2UgYW5kIGNhbm9uaWNhbCBDYXJnbyBtYW5pZmVzdC9sb2NrIGFydGlmYWN0c1wiKVxuICBjb25zdCBtYW5pZmVzdCA9IGNvbnRleHQuYXJ0aWZhY3RzLmFydGlmYWN0cy5maWx0ZXIoYXJ0aWZhY3QgPT4gYXJ0aWZhY3QucGF0aCA9PSBcIkNhcmdvLnRvbWxcIilcbiAgY29uc3QgbG9jayA9IGNvbnRleHQuYXJ0aWZhY3RzLmFydGlmYWN0cy5maWx0ZXIoYXJ0aWZhY3QgPT4gYXJ0aWZhY3QucGF0aCA9PSBcIkNhcmdvLmxvY2tcIilcbiAgY29uc3Qgc291cmNlcyA9IGFydGlmYWN0cy5maWx0ZXIoYXJ0aWZhY3QgPT4gYXJ0aWZhY3QuZW5kc1dpdGgoXCIucnNcIikpXG5cbiAgaWYgKG1hbmlmZXN0Lmxlbmd0aCAhPSAxIHx8IG1hbmlmZXN0WzBdLmNvbnRlbnRLaW5kICE9IFwidGV4dFwiIHx8IG1hbmlmZXN0WzBdLnJvbGUgIT0gXCJtYW5pZmVzdFwiIHx8XG4gICAgbWFuaWZlc3RbMF0uY29udGVudCAhPSBydXN0TWFuaWZlc3QgfHwgbG9jay5sZW5ndGggIT0gMSB8fCBsb2NrWzBdLmNvbnRlbnRLaW5kICE9IFwidGV4dFwiIHx8XG4gICAgbG9ja1swXS5jb250ZW50ICE9IHJ1c3RMb2NrZmlsZSB8fCBhcnRpZmFjdHMubGVuZ3RoICE9IDMgfHwgc291cmNlcy5sZW5ndGggIT0gMSB8fFxuICAgIHNvdXJjZXNbMF0gIT0gcGF0aC5qb2luKGNvbnRleHQuc291cmNlUGF0aCwgXCJzcmMvbWFpbi5yc1wiKSkge1xuICAgIHRocm93IG5ldyBTZW1hbnRpZm9sZERpYWdub3N0aWMoe1xuICAgICAgY29kZTogXCJJTlZBTElEX1RBUkdFVF9DSEVDS19QTEFOXCIsXG4gICAgICBsYW5ndWFnZTogXCJydXN0XCIsXG4gICAgICBtZXNzYWdlOiBcIlJ1c3QgZGV2ZWxvcGVyIGNoZWNrcyByZXF1aXJlIHRoZSBleGFjdCBkZXBlbmRlbmN5LWZyZWUgQ2FyZ28gcHJvamVjdC9sb2NrIGFuZCBzdGFnZWQgJy5ycycgc291cmNlLlwiXG4gICAgfSlcbiAgfVxuICBjb25zdCBjYXJnb0hvbWUgPSBwYXRoLmpvaW4oY29udGV4dC5idWlsZFBhdGgsIFwiY2FyZ28taG9tZVwiKVxuICBjb25zdCBob21lID0gcGF0aC5qb2luKGNvbnRleHQuYnVpbGRQYXRoLCBcImhvbWVcIilcbiAgY29uc3QgdGVtcG9yYXJ5ID0gcGF0aC5qb2luKGNvbnRleHQuYnVpbGRQYXRoLCBcInRtcFwiKVxuICBjb25zdCB0YXJnZXQgPSBwYXRoLmpvaW4oY29udGV4dC5idWlsZFBhdGgsIFwiY2FyZ28tdGFyZ2V0XCIpXG4gIGNvbnN0IGVudmlyb25tZW50ID0ge1xuICAgIENBUkdPX0hPTUU6IGNhcmdvSG9tZSxcbiAgICBDQVJHT19JTkNSRU1FTlRBTDogXCIwXCIsXG4gICAgQ0FSR09fTkVUX09GRkxJTkU6IFwidHJ1ZVwiLFxuICAgIENBUkdPX1RFUk1fQ09MT1I6IFwibmV2ZXJcIixcbiAgICBIT01FOiBob21lLFxuICAgIFBBVEg6IFtwYXRoLmRpcm5hbWUocnVzdGMuZXhlY3V0YWJsZSksIHBhdGguZGlybmFtZShjYXJnby5leGVjdXRhYmxlKSwgXCIvdXNyL2xvY2FsL2JpblwiLCBcIi91c3IvYmluXCIsIFwiL2JpblwiXS5maWx0ZXIoKHZhbHVlLCBpbmRleCwgdmFsdWVzKSA9PlxuICAgICAgdmFsdWVzLmluZGV4T2YodmFsdWUpID09IGluZGV4KS5qb2luKHBhdGguZGVsaW1pdGVyKSxcbiAgICBSVVNUQzogcnVzdGMuZXhlY3V0YWJsZSxcbiAgICBUTVBESVI6IHRlbXBvcmFyeVxuICB9XG4gIGNvbnN0IGVudmlyb25tZW50UGF0aHMgPSBbZW52aXJvbm1lbnRQYXRoKFwiQ0FSR09fSE9NRVwiLCBcImJ1aWxkXCIpLCBlbnZpcm9ubWVudFBhdGgoXCJIT01FXCIsIFwiYnVpbGRcIiksXG4gICAgZW52aXJvbm1lbnRUb29sKFwiUlVTVENcIiwgcnVzdGMpLCBlbnZpcm9ubWVudFBhdGgoXCJUTVBESVJcIiwgXCJidWlsZFwiKV1cbiAgLyoqXG4gICAqIENvbnN0cnVjdHMgb25lIENhcmdvIHN0YWdlIG92ZXIgdGhlIGNvbXBsZXRlIGdlbmVyYXRlZCBwcm9qZWN0LlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uL3NlbWFudGljL3R5cGVzLmpzXCIpLkFjY2VwdGFuY2VTdGFnZX0gbmFtZSAtIFJlZ2lzdHJ5IHN0YWdlIGlkZW50aXR5LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gY29tbWFuZCAtIEV4YWN0IENhcmdvIHN1YmNvbW1hbmQuXG4gICAqIEByZXR1cm5zIHtpbXBvcnQoXCIuLi9zZW1hbnRpYy90eXBlcy5qc1wiKS5UYXJnZXRDaGVja1N0YWdlUmVxdWVzdH0gSW1tdXRhYmxlIHN0YWdlLlxuICAgKi9cbiAgY29uc3Qgc3RhZ2UgPSAobmFtZSwgY29tbWFuZCkgPT4gY2hlY2tTdGFnZSh7XG4gICAgYXJndjogW2NvbW1hbmQsIFwiLS1vZmZsaW5lXCIsIFwiLS1sb2NrZWRcIiwgXCItLXRhcmdldC1kaXJcIiwgdGFyZ2V0XSxcbiAgICBjd2Q6IGNvbnRleHQuc291cmNlUGF0aCxcbiAgICBlbnZpcm9ubWVudCxcbiAgICBlbnZpcm9ubWVudFBhdGhzLFxuICAgIGlucHV0czogYXJ0aWZhY3RzLFxuICAgIG91dHB1dDogbnVsbCxcbiAgICBwYXRoQXJndW1lbnRzOiBbcGF0aEFyZ3VtZW50KDQsIFwiYnVpbGRcIildLFxuICAgIHN0YWdlOiBuYW1lLFxuICAgIHRvb2w6IGNhcmdvLFxuICAgIHRyYW5zaWVudFBhdGhzOiBbdGFyZ2V0XVxuICB9KVxuXG4gIHJldHVybiBjaGVja1BsYW4oY29udGV4dCwgXCJydXN0XCIsIGFydGlmYWN0cywgW3N0YWdlKFwiY29tcGlsZVwiLCBcImJ1aWxkXCIpLCBzdGFnZShcInZhbGlkYXRlXCIsIFwiY2hlY2tcIildKVxufVxuIl19
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Constructs Swift's warnings-as-errors type-check/compile plan.
|
|
3
|
+
* @param {import("../language-registry.js").TargetCheckPlanContext} context - Validated candidate context.
|
|
4
|
+
* @returns {import("../semantic/types.js").TargetCheckPlan} Immutable Swift plan.
|
|
5
|
+
*/
|
|
6
|
+
export declare function createSwiftCheckPlan(context: import("../language-registry.js").TargetCheckPlanContext): import("../semantic/types.js").TargetCheckPlan;
|
|
7
|
+
//# sourceMappingURL=swift-check.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swift-check.d.ts","sourceRoot":"","sources":["../../../src/backends/swift-check.js"],"names":[],"mappings":"AAcA;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAHjC,OAAO,yBAAyB,EAAE,sBAGD,GAF/B,OAAO,sBAAsB,EAAE,eAAe,CAuE1D"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { SemantifoldDiagnostic } from "../diagnostic.js";
|
|
4
|
+
import { checkArtifacts, checkOutput, checkPlan, checkStage, checkTool, environmentPath, pathArgument } from "./check-plan.js";
|
|
5
|
+
/**
|
|
6
|
+
* Constructs Swift's warnings-as-errors type-check/compile plan.
|
|
7
|
+
* @param {import("../language-registry.js").TargetCheckPlanContext} context - Validated candidate context.
|
|
8
|
+
* @returns {import("../semantic/types.js").TargetCheckPlan} Immutable Swift plan.
|
|
9
|
+
*/
|
|
10
|
+
export function createSwiftCheckPlan(context) {
|
|
11
|
+
const tool = checkTool(context, "swiftc", "swift");
|
|
12
|
+
const artifacts = checkArtifacts(context, artifact => artifact.path.endsWith(".swift"), "swift", "only staged '.swift' sources");
|
|
13
|
+
if (artifacts.length != 1 || artifacts[0] != path.join(context.sourcePath, "program.swift")) {
|
|
14
|
+
throw new SemantifoldDiagnostic({ code: "INVALID_TARGET_CHECK_PLAN", language: "swift",
|
|
15
|
+
message: "Swift developer checks require the exact producer-owned 'program.swift' source." });
|
|
16
|
+
}
|
|
17
|
+
const home = path.join(context.buildPath, "home");
|
|
18
|
+
const cache = path.join(context.buildPath, "cache");
|
|
19
|
+
const temporary = path.join(context.buildPath, "tmp");
|
|
20
|
+
const environment = {
|
|
21
|
+
HOME: home,
|
|
22
|
+
PATH: [path.dirname(tool.executable), "/usr/bin", "/usr/local/bin", "/bin"].filter((value, index, values) => values.indexOf(value) == index).join(path.delimiter),
|
|
23
|
+
TMPDIR: temporary,
|
|
24
|
+
XDG_CACHE_HOME: cache
|
|
25
|
+
};
|
|
26
|
+
const environmentPaths = [environmentPath("HOME", "build"), environmentPath("TMPDIR", "build"),
|
|
27
|
+
environmentPath("XDG_CACHE_HOME", "build")];
|
|
28
|
+
const objects = path.join(context.buildPath, "objects");
|
|
29
|
+
const object = path.join(objects, "program.o");
|
|
30
|
+
const binary = path.join(context.buildPath, "semantifold-swift");
|
|
31
|
+
const typecheckArgv = [
|
|
32
|
+
"--driver-mode=swiftc", "-warnings-as-errors", "-typecheck", "-module-name", "SemantifoldGenerated", ...artifacts
|
|
33
|
+
];
|
|
34
|
+
const compileArgv = [
|
|
35
|
+
"--driver-mode=swiftc", "-warnings-as-errors", "-c", ...artifacts,
|
|
36
|
+
"-module-name", "SemantifoldGenerated", "-o", "program.o"
|
|
37
|
+
];
|
|
38
|
+
const linkArgv = ["--driver-mode=swiftc", object, "-Xlinker", "--build-id=none", "-o", binary];
|
|
39
|
+
return checkPlan(context, "swift", artifacts, [
|
|
40
|
+
checkStage({
|
|
41
|
+
argv: typecheckArgv,
|
|
42
|
+
cwd: context.sourcePath,
|
|
43
|
+
environment,
|
|
44
|
+
environmentPaths,
|
|
45
|
+
inputs: artifacts,
|
|
46
|
+
output: null,
|
|
47
|
+
pathArguments: artifacts.map((_, index) => pathArgument(index + 5, "source")),
|
|
48
|
+
stage: "compile",
|
|
49
|
+
tool
|
|
50
|
+
}),
|
|
51
|
+
checkStage({
|
|
52
|
+
argv: compileArgv,
|
|
53
|
+
cwd: objects,
|
|
54
|
+
environment,
|
|
55
|
+
environmentPaths,
|
|
56
|
+
inputs: artifacts,
|
|
57
|
+
output: null,
|
|
58
|
+
pathArguments: artifacts.map((_, index) => pathArgument(index + 3, "source")),
|
|
59
|
+
stage: "compile",
|
|
60
|
+
tool,
|
|
61
|
+
transientPaths: [objects]
|
|
62
|
+
}),
|
|
63
|
+
checkStage({
|
|
64
|
+
argv: linkArgv,
|
|
65
|
+
cwd: context.buildPath,
|
|
66
|
+
environment,
|
|
67
|
+
environmentPaths,
|
|
68
|
+
inputs: [object],
|
|
69
|
+
output: checkOutput(context.buildPath, "application/x-executable", "compiler-output"),
|
|
70
|
+
pathArguments: [pathArgument(1, "build"), pathArgument(linkArgv.length - 1, "build")],
|
|
71
|
+
stage: "compile",
|
|
72
|
+
tool,
|
|
73
|
+
transientPaths: [objects]
|
|
74
|
+
})
|
|
75
|
+
]);
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpZnQtY2hlY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFja2VuZHMvc3dpZnQtY2hlY2suanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sSUFBSSxNQUFNLFdBQVcsQ0FBQTtBQUM1QixPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQTtBQUN0RCxPQUFPLEVBQ0wsY0FBYyxFQUNkLFdBQVcsRUFDWCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFNBQVMsRUFDVCxlQUFlLEVBQ2YsWUFBWSxFQUNiLE1BQU0saUJBQWlCLENBQUE7QUFFeEI7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxPQUFPO0lBQzFDLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFBO0lBQ2xELE1BQU0sU0FBUyxHQUFHLGNBQWMsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRSxPQUFPLEVBQUUsOEJBQThCLENBQUMsQ0FBQTtJQUVoSSxJQUFJLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsZUFBZSxDQUFDLEVBQUUsQ0FBQztRQUM1RixNQUFNLElBQUkscUJBQXFCLENBQUMsRUFBQyxJQUFJLEVBQUUsMkJBQTJCLEVBQUUsUUFBUSxFQUFFLE9BQU87WUFDbkYsT0FBTyxFQUFFLGlGQUFpRixFQUFDLENBQUMsQ0FBQTtJQUNoRyxDQUFDO0lBQ0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFBO0lBQ2pELE1BQU0sS0FBSyxHQUFH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VUFBVSxDQUFDO1lBQ1QsSUFBSSxFQUFFLFFBQVE7WUFDZCxHQUFHLEVBQUUsT0FBTyxDQUFDLFNBQVM7WUFDdEIsV0FBVztZQUNYLGdCQUFnQjtZQUNoQixNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUM7WUFDaEIsTUFBTSxFQUFFLFdBQVcsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLDBCQUEwQixFQUFFLGlCQUFpQixDQUFDO1lBQ3JGLGFBQWEsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLEVBQUUsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ3JGLEtBQUssRUFBRSxTQUFTO1lBQ2hCLElBQUk7WUFDSixjQUFjLEVBQUUsQ0FBQyxPQUFPLENBQUM7U0FDMUIsQ0FBQztLQUNILENBQUMsQ0FBQTtBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IHBhdGggZnJvbSBcIm5vZGU6cGF0aFwiXG5pbXBvcnQge1NlbWFudGlmb2xkRGlhZ25vc3RpY30gZnJvbSBcIi4uL2RpYWdub3N0aWMuanNcIlxuaW1wb3J0IHtcbiAgY2hlY2tBcnRpZmFjdHMsXG4gIGNoZWNrT3V0cHV0LFxuICBjaGVja1BsYW4sXG4gIGNoZWNrU3RhZ2UsXG4gIGNoZWNrVG9vbCxcbiAgZW52aXJvbm1lbnRQYXRoLFxuICBwYXRoQXJndW1lbnRcbn0gZnJvbSBcIi4vY2hlY2stcGxhbi5qc1wiXG5cbi8qKlxuICogQ29uc3RydWN0cyBTd2lmdCdzIHdhcm5pbmdzLWFzLWVycm9ycyB0eXBlLWNoZWNrL2NvbXBpbGUgcGxhbi5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vbGFuZ3VhZ2UtcmVnaXN0cnkuanNcIikuVGFyZ2V0Q2hlY2tQbGFuQ29udGV4dH0gY29udGV4dCAtIFZhbGlkYXRlZCBjYW5kaWRhdGUgY29udGV4dC5cbiAqIEByZXR1cm5zIHtpbXBvcnQoXCIuLi9zZW1hbnRpYy90eXBlcy5qc1wiKS5UYXJnZXRDaGVja1BsYW59IEltbXV0YWJsZSBTd2lmdCBwbGFuLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU3dpZnRDaGVja1BsYW4oY29udGV4dCkge1xuICBjb25zdCB0b29sID0gY2hlY2tUb29sKGNvbnRleHQsIFwic3dpZnRjXCIsIFwic3dpZnRcIilcbiAgY29uc3QgYXJ0aWZhY3RzID0gY2hlY2tBcnRpZmFjdHMoY29udGV4dCwgYXJ0aWZhY3QgPT4gYXJ0aWZhY3QucGF0aC5lbmRzV2l0aChcIi5zd2lmdFwiKSwgXCJzd2lmdFwiLCBcIm9ubHkgc3RhZ2VkICcuc3dpZnQnIHNvdXJjZXNcIilcblxuICBpZiAoYXJ0aWZhY3RzLmxlbmd0aCAhPSAxIHx8IGFydGlmYWN0c1swXSAhPSBwYXRoLmpvaW4oY29udGV4dC5zb3VyY2VQYXRoLCBcInByb2dyYW0uc3dpZnRcIikpIHtcbiAgICB0aHJvdyBuZXcgU2VtYW50aWZvbGREaWFnbm9zdGljKHtjb2RlOiBcIklOVkFMSURfVEFSR0VUX0NIRUNLX1BMQU5cIiwgbGFuZ3VhZ2U6IFwic3dpZnRcIixcbiAgICAgIG1lc3NhZ2U6IFwiU3dpZnQgZGV2ZWxvcGVyIGNoZWNrcyByZXF1aXJlIHRoZSBleGFjdCBwcm9kdWNlci1vd25lZCAncHJvZ3JhbS5zd2lmdCcgc291cmNlLlwifSlcbiAgfVxuICBjb25zdCBob21lID0gcGF0aC5qb2luKGNvbnRleHQuYnVpbGRQYXRoLCBcImhvbWVcIilcbiAgY29uc3QgY2FjaGUgPSBwYXRoLmpvaW4oY29udGV4dC5idWlsZFBhdGgsIFwiY2FjaGVcIilcbiAgY29uc3QgdGVtcG9yYXJ5ID0gcGF0aC5qb2luKGNvbnRleHQuYnVpbGRQYXRoLCBcInRtcFwiKVxuICBjb25zdCBlbnZpcm9ubWVudCA9IHtcbiAgICBIT01FOiBob21lLFxuICAgIFBBVEg6IFtwYXRoLmRpcm5hbWUodG9vbC5leGVjdXRhYmxlKSwgXCIvdXNyL2JpblwiLCBcIi91c3IvbG9jYWwvYmluXCIsIFwiL2JpblwiXS5maWx0ZXIoKHZhbHVlLCBpbmRleCwgdmFsdWVzKSA9PlxuICAgICAgdmFsdWVzLmluZGV4T2YodmFsdWUpID09IGluZGV4KS5qb2luKHBhdGguZGVsaW1pdGVyKSxcbiAgICBUTVBESVI6IHRlbXBvcmFyeSxcbiAgICBYREdfQ0FDSEVfSE9NRTogY2FjaGVcbiAgfVxuICBjb25zdCBlbnZpcm9ubWVudFBhdGhzID0gW2Vudmlyb25tZW50UGF0aChcIkhPTUVcIiwgXCJidWlsZFwiKSwgZW52aXJvbm1lbnRQYXRoKFwiVE1QRElSXCIsIFwiYnVpbGRcIiksXG4gICAgZW52aXJvbm1lbnRQYXRoKFwiWERHX0NBQ0hFX0hPTUVcIiwgXCJidWlsZFwiKV1cbiAgY29uc3Qgb2JqZWN0cyA9IHBhdGguam9pbihjb250ZXh0LmJ1aWxkUGF0aCwgXCJvYmplY3RzXCIpXG4gIGNvbnN0IG9iamVjdCA9IHBhdGguam9pbihvYmplY3RzLCBcInByb2dyYW0ub1wiKVxuICBjb25zdCBiaW5hcnkgPSBwYXRoLmpvaW4oY29udGV4dC5idWlsZFBhdGgsIFwic2VtYW50aWZvbGQtc3dpZnRcIilcbiAgY29uc3QgdHlwZWNoZWNrQXJndiA9IFtcbiAgICBcIi0tZHJpdmVyLW1vZGU9c3dpZnRjXCIsIFwiLXdhcm5pbmdzLWFzLWVycm9yc1wiLCBcIi10eXBlY2hlY2tcIiwgXCItbW9kdWxlLW5hbWVcIiwgXCJTZW1hbnRpZm9sZEdlbmVyYXRlZFwiLCAuLi5hcnRpZmFjdHNcbiAgXVxuICBjb25zdCBjb21waWxlQXJndiA9IFtcbiAgICBcIi0tZHJpdmVyLW1vZGU9c3dpZnRjXCIsIFwiLXdhcm5pbmdzLWFzLWVycm9yc1wiLCBcIi1jXCIsIC4uLmFydGlmYWN0cyxcbiAgICBcIi1tb2R1bGUtbmFtZVwiLCBcIlNlbWFudGlmb2xkR2VuZXJhdGVkXCIsIFwiLW9cIiwgXCJwcm9ncmFtLm9cIlxuICBdXG4gIGNvbnN0IGxpbmtBcmd2ID0gW1wiLS1kcml2ZXItbW9kZT1zd2lmdGNcIiwgb2JqZWN0LCBcIi1YbGlua2VyXCIsIFwiLS1idWlsZC1pZD1ub25lXCIsIFwiLW9cIiwgYmluYXJ5XVxuXG4gIHJldHVybiBjaGVja1BsYW4oY29udGV4dCwgXCJzd2lmdFwiLCBhcnRpZmFjdHMsIFtcbiAgICBjaGVja1N0YWdlKHtcbiAgICAgIGFyZ3Y6IHR5cGVjaGVja0FyZ3YsXG4gICAgICBjd2Q6IGNvbnRleHQuc291cmNlUGF0aCxcbiAgICAgIGVudmlyb25tZW50LFxuICAgICAgZW52aXJvbm1lbnRQYXRocyxcbiAgICAgIGlucHV0czogYXJ0aWZhY3RzLFxuICAgICAgb3V0cHV0OiBudWxsLFxuICAgICAgcGF0aEFyZ3VtZW50czogYXJ0aWZhY3RzLm1hcCgoXywgaW5kZXgpID0+IHBhdGhBcmd1bWVudChpbmRleCArIDUsIFwic291cmNlXCIpKSxcbiAgICAgIHN0YWdlOiBcImNvbXBpbGVcIixcbiAgICAgIHRvb2xcbiAgICB9KSxcbiAgICBjaGVja1N0YWdlKHtcbiAgICAgIGFyZ3Y6IGNvbXBpbGVBcmd2LFxuICAgICAgY3dkOiBvYmplY3RzLFxuICAgICAgZW52aXJvbm1lbnQsXG4gICAgICBlbnZpcm9ubWVudFBhdGhzLFxuICAgICAgaW5wdXRzOiBhcnRpZmFjdHMsXG4gICAgICBvdXRwdXQ6IG51bGwsXG4gICAgICBwYXRoQXJndW1lbnRzOiBhcnRpZmFjdHMubWFwKChfLCBpbmRleCkgPT4gcGF0aEFyZ3VtZW50KGluZGV4ICsgMywgXCJzb3VyY2VcIikpLFxuICAgICAgc3RhZ2U6IFwiY29tcGlsZVwiLFxuICAgICAgdG9vbCxcbiAgICAgIHRyYW5zaWVudFBhdGhzOiBbb2JqZWN0c11cbiAgICB9KSxcbiAgICBjaGVja1N0YWdlKHtcbiAgICAgIGFyZ3Y6IGxpbmtBcmd2LFxuICAgICAgY3dkOiBjb250ZXh0LmJ1aWxkUGF0aCxcbiAgICAgIGVudmlyb25tZW50LFxuICAgICAgZW52aXJvbm1lbnRQYXRocyxcbiAgICAgIGlucHV0czogW29iamVjdF0sXG4gICAgICBvdXRwdXQ6IGNoZWNrT3V0cHV0KGNvbnRleHQuYnVpbGRQYXRoLCBcImFwcGxpY2F0aW9uL3gtZXhlY3V0YWJsZVwiLCBcImNvbXBpbGVyLW91dHB1dFwiKSxcbiAgICAgIHBhdGhBcmd1bWVudHM6IFtwYXRoQXJndW1lbnQoMSwgXCJidWlsZFwiKSwgcGF0aEFyZ3VtZW50KGxpbmtBcmd2Lmxlbmd0aCAtIDEsIFwiYnVpbGRcIildLFxuICAgICAgc3RhZ2U6IFwiY29tcGlsZVwiLFxuICAgICAgdG9vbCxcbiAgICAgIHRyYW5zaWVudFBhdGhzOiBbb2JqZWN0c11cbiAgICB9KVxuICBdKVxufVxuIl19
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Constructs TypeScript's non-emitting compiler plan.
|
|
3
|
+
* @param {import("../language-registry.js").TargetCheckPlanContext} context - Validated candidate context.
|
|
4
|
+
* @returns {import("../semantic/types.js").TargetCheckPlan} Immutable TypeScript plan.
|
|
5
|
+
*/
|
|
6
|
+
export declare function createTypeScriptCheckPlan(context: import("../language-registry.js").TargetCheckPlanContext): import("../semantic/types.js").TargetCheckPlan;
|
|
7
|
+
//# sourceMappingURL=typescript-check.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typescript-check.d.ts","sourceRoot":"","sources":["../../../src/backends/typescript-check.js"],"names":[],"mappings":"AAMA;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAHtC,OAAO,yBAAyB,EAAE,sBAGI,GAFpC,OAAO,sBAAsB,EAAE,eAAe,CA2B1D"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { SemantifoldDiagnostic } from "../diagnostic.js";
|
|
4
|
+
import { checkArtifacts, checkPlan, checkStage, checkTool, pathArgument } from "./check-plan.js";
|
|
5
|
+
/**
|
|
6
|
+
* Constructs TypeScript's non-emitting compiler plan.
|
|
7
|
+
* @param {import("../language-registry.js").TargetCheckPlanContext} context - Validated candidate context.
|
|
8
|
+
* @returns {import("../semantic/types.js").TargetCheckPlan} Immutable TypeScript plan.
|
|
9
|
+
*/
|
|
10
|
+
export function createTypeScriptCheckPlan(context) {
|
|
11
|
+
const tool = checkTool(context, "tsc", "typescript");
|
|
12
|
+
const artifacts = checkArtifacts(context, artifact => artifact.path.endsWith(".ts") || path.basename(artifact.path) == "package.json", "typescript", "only staged '.ts' artifacts and package manifests");
|
|
13
|
+
const sources = artifacts.filter(artifact => artifact.endsWith(".ts"));
|
|
14
|
+
if (sources.length == 0) {
|
|
15
|
+
throw new SemantifoldDiagnostic({ code: "INVALID_TARGET_CHECK_PLAN", language: "typescript",
|
|
16
|
+
message: "TypeScript developer checks require at least one staged '.ts' artifact." });
|
|
17
|
+
}
|
|
18
|
+
const typeRoots = path.join(context.buildPath, "types");
|
|
19
|
+
const argv = [
|
|
20
|
+
"--pretty", "false", "--noEmit", "--incremental", "false", "--target", "ES2024", "--module", "NodeNext",
|
|
21
|
+
"--moduleResolution", "NodeNext", "--typeRoots", typeRoots, ...sources
|
|
22
|
+
];
|
|
23
|
+
return checkPlan(context, "typescript", artifacts, [checkStage({
|
|
24
|
+
argv,
|
|
25
|
+
cwd: context.sourcePath,
|
|
26
|
+
inputs: artifacts,
|
|
27
|
+
output: null,
|
|
28
|
+
pathArguments: [pathArgument(12, "build"), ...sources.map((_, index) => pathArgument(13 + index, "source"))],
|
|
29
|
+
stage: "compile",
|
|
30
|
+
tool
|
|
31
|
+
})]);
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdC1jaGVjay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYWNrZW5kcy90eXBlc2NyaXB0LWNoZWNrLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixPQUFPLElBQUksTUFBTSxXQUFXLENBQUE7QUFDNUIsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sa0JBQWtCLENBQUE7QUFDdEQsT0FBTyxFQUFDLGNBQWMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQTtBQUU5Rjs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLHlCQUF5QixDQUFDLE9BQU87SUFDL0MsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsWUFBWSxDQUFDLENBQUE7SUFDcEQsTUFBTSxTQUFTLEdBQUcsY0FBYyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLGNBQWMsRUFDbkksWUFBWSxFQUFFLG1EQUFtRCxDQUFDLENBQUE7SUFDcEUsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtJQUV0RSxJQUFJLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDeEIsTUFBTSxJQUFJLHFCQUFxQixDQUFDLEVBQUMsSUFBSSxFQUFFLDJCQUEyQixFQUFFLFFBQVEsRUFBRSxZQUFZO1lBQ3hGLE9BQU8sRUFBRSx5RUFBeUUsRUFBQyxDQUFDLENBQUE7SUFDeEYsQ0FBQztJQUNELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUN2RCxNQUFNLElBQUksR0FBRztRQUNYLFVBQVUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsVUFBVTtRQUN2RyxvQkFBb0IsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxHQUFHLE9BQU87S0FDdkUsQ0FBQTtJQUVELE9BQU8sU0FBUyxDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLENBQUMsVUFBVSxDQUFDO1lBQzdELElBQUk7WUFDSixHQUFHLEVBQUUsT0FBTyxDQUFDLFVBQVU7WUFDdkIsTUFBTSxFQUFFLFNBQVM7WUFDakIsTUFBTSxFQUFFLElBQUk7WUFDWixhQUFhLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDNUcsS0FBSyxFQUFFLFNBQVM7WUFDaEIsSUFBSTtTQUNMLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCBwYXRoIGZyb20gXCJub2RlOnBhdGhcIlxuaW1wb3J0IHtTZW1hbnRpZm9sZERpYWdub3N0aWN9IGZyb20gXCIuLi9kaWFnbm9zdGljLmpzXCJcbmltcG9ydCB7Y2hlY2tBcnRpZmFjdHMsIGNoZWNrUGxhbiwgY2hlY2tTdGFnZSwgY2hlY2tUb29sLCBwYXRoQXJndW1lbnR9IGZyb20gXCIuL2NoZWNrLXBsYW4uanNcIlxuXG4vKipcbiAqIENvbnN0cnVjdHMgVHlwZVNjcmlwdCdzIG5vbi1lbWl0dGluZyBjb21waWxlciBwbGFuLlxuICogQHBhcmFtIHtpbXBvcnQoXCIuLi9sYW5ndWFnZS1yZWdpc3RyeS5qc1wiKS5UYXJnZXRDaGVja1BsYW5Db250ZXh0fSBjb250ZXh0IC0gVmFsaWRhdGVkIGNhbmRpZGF0ZSBjb250ZXh0LlxuICogQHJldHVybnMge2ltcG9ydChcIi4uL3NlbWFudGljL3R5cGVzLmpzXCIpLlRhcmdldENoZWNrUGxhbn0gSW1tdXRhYmxlIFR5cGVTY3JpcHQgcGxhbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVR5cGVTY3JpcHRDaGVja1BsYW4oY29udGV4dCkge1xuICBjb25zdCB0b29sID0gY2hlY2tUb29sKGNvbnRleHQsIFwidHNjXCIsIFwidHlwZXNjcmlwdFwiKVxuICBjb25zdCBhcnRpZmFjdHMgPSBjaGVja0FydGlmYWN0cyhjb250ZXh0LCBhcnRpZmFjdCA9PiBhcnRpZmFjdC5wYXRoLmVuZHNXaXRoKFwiLnRzXCIpIHx8IHBhdGguYmFzZW5hbWUoYXJ0aWZhY3QucGF0aCkgPT0gXCJwYWNrYWdlLmpzb25cIixcbiAgICBcInR5cGVzY3JpcHRcIiwgXCJvbmx5IHN0YWdlZCAnLnRzJyBhcnRpZmFjdHMgYW5kIHBhY2thZ2UgbWFuaWZlc3RzXCIpXG4gIGNvbnN0IHNvdXJjZXMgPSBhcnRpZmFjdHMuZmlsdGVyKGFydGlmYWN0ID0+IGFydGlmYWN0LmVuZHNXaXRoKFwiLnRzXCIpKVxuXG4gIGlmIChzb3VyY2VzLmxlbmd0aCA9PSAwKSB7XG4gICAgdGhyb3cgbmV3IFNlbWFudGlmb2xkRGlhZ25vc3RpYyh7Y29kZTogXCJJTlZBTElEX1RBUkdFVF9DSEVDS19QTEFOXCIsIGxhbmd1YWdlOiBcInR5cGVzY3JpcHRcIixcbiAgICAgIG1lc3NhZ2U6IFwiVHlwZVNjcmlwdCBkZXZlbG9wZXIgY2hlY2tzIHJlcXVpcmUgYXQgbGVhc3Qgb25lIHN0YWdlZCAnLnRzJyBhcnRpZmFjdC5cIn0pXG4gIH1cbiAgY29uc3QgdHlwZVJvb3RzID0gcGF0aC5qb2luKGNvbnRleHQuYnVpbGRQYXRoLCBcInR5cGVzXCIpXG4gIGNvbnN0IGFyZ3YgPSBbXG4gICAgXCItLXByZXR0eVwiLCBcImZhbHNlXCIsIFwiLS1ub0VtaXRcIiwgXCItLWluY3JlbWVudGFsXCIsIFwiZmFsc2VcIiwgXCItLXRhcmdldFwiLCBcIkVTMjAyNFwiLCBcIi0tbW9kdWxlXCIsIFwiTm9kZU5leHRcIixcbiAgICBcIi0tbW9kdWxlUmVzb2x1dGlvblwiLCBcIk5vZGVOZXh0XCIsIFwiLS10eXBlUm9vdHNcIiwgdHlwZVJvb3RzLCAuLi5zb3VyY2VzXG4gIF1cblxuICByZXR1cm4gY2hlY2tQbGFuKGNvbnRleHQsIFwidHlwZXNjcmlwdFwiLCBhcnRpZmFjdHMsIFtjaGVja1N0YWdlKHtcbiAgICBhcmd2LFxuICAgIGN3ZDogY29udGV4dC5zb3VyY2VQYXRoLFxuICAgIGlucHV0czogYXJ0aWZhY3RzLFxuICAgIG91dHB1dDogbnVsbCxcbiAgICBwYXRoQXJndW1lbnRzOiBbcGF0aEFyZ3VtZW50KDEyLCBcImJ1aWxkXCIpLCAuLi5zb3VyY2VzLm1hcCgoXywgaW5kZXgpID0+IHBhdGhBcmd1bWVudCgxMyArIGluZGV4LCBcInNvdXJjZVwiKSldLFxuICAgIHN0YWdlOiBcImNvbXBpbGVcIixcbiAgICB0b29sXG4gIH0pXSlcbn1cbiJdfQ==
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Constructs Zig's isolated Debug project build and canonical format-check plan.
|
|
3
|
+
* @param {import("../language-registry.js").TargetCheckPlanContext} context - Validated candidate context.
|
|
4
|
+
* @returns {import("../semantic/types.js").TargetCheckPlan} Immutable Zig plan.
|
|
5
|
+
*/
|
|
6
|
+
export declare function createZigCheckPlan(context: import("../language-registry.js").TargetCheckPlanContext): import("../semantic/types.js").TargetCheckPlan;
|
|
7
|
+
//# sourceMappingURL=zig-check.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zig-check.d.ts","sourceRoot":"","sources":["../../../src/backends/zig-check.js"],"names":[],"mappings":"AAcA;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAH/B,OAAO,yBAAyB,EAAE,sBAGH,GAF7B,OAAO,sBAAsB,EAAE,eAAe,CA+D1D"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { SemantifoldDiagnostic } from "../diagnostic.js";
|
|
4
|
+
import { checkArtifacts, checkPlan, checkStage, checkTool, environmentPath, pathArgument } from "./check-plan.js";
|
|
5
|
+
import { zigBuild } from "./zig-runtime.js";
|
|
6
|
+
/**
|
|
7
|
+
* Constructs Zig's isolated Debug project build and canonical format-check plan.
|
|
8
|
+
* @param {import("../language-registry.js").TargetCheckPlanContext} context - Validated candidate context.
|
|
9
|
+
* @returns {import("../semantic/types.js").TargetCheckPlan} Immutable Zig plan.
|
|
10
|
+
*/
|
|
11
|
+
export function createZigCheckPlan(context) {
|
|
12
|
+
const tool = checkTool(context, "zig", "zig");
|
|
13
|
+
const artifacts = checkArtifacts(context, artifact => artifact.path == "build.zig" || artifact.path.endsWith(".zig"), "zig", "only staged Zig source and the canonical build manifest");
|
|
14
|
+
const manifests = context.artifacts.artifacts.filter(artifact => artifact.path == "build.zig");
|
|
15
|
+
const sources = artifacts.filter(artifact => artifact != path.join(context.sourcePath, "build.zig"));
|
|
16
|
+
if (manifests.length != 1 || manifests[0].contentKind != "text" || manifests[0].role != "manifest" ||
|
|
17
|
+
manifests[0].content != zigBuild || artifacts.length != 2 || sources.length != 1 ||
|
|
18
|
+
sources[0] != path.join(context.sourcePath, "src/main.zig")) {
|
|
19
|
+
throw new SemantifoldDiagnostic({
|
|
20
|
+
code: "INVALID_TARGET_CHECK_PLAN",
|
|
21
|
+
language: "zig",
|
|
22
|
+
message: "Zig developer checks require the exact standard-library-only 'build.zig' and staged Zig source."
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
const home = path.join(context.buildPath, "home");
|
|
26
|
+
const temporary = path.join(context.buildPath, "tmp");
|
|
27
|
+
const globalCache = path.join(context.buildPath, "zig-global-cache");
|
|
28
|
+
const localCache = path.join(context.buildPath, "zig-local-cache");
|
|
29
|
+
const output = path.join(context.buildPath, "output");
|
|
30
|
+
const environment = {
|
|
31
|
+
HOME: home,
|
|
32
|
+
HTTP_PROXY: "http://127.0.0.1:9",
|
|
33
|
+
HTTPS_PROXY: "http://127.0.0.1:9",
|
|
34
|
+
NO_PROXY: "",
|
|
35
|
+
TMPDIR: temporary,
|
|
36
|
+
ZIG_GLOBAL_CACHE_DIR: globalCache,
|
|
37
|
+
ZIG_LOCAL_CACHE_DIR: localCache
|
|
38
|
+
};
|
|
39
|
+
const environmentPaths = [
|
|
40
|
+
environmentPath("HOME", "build"), environmentPath("TMPDIR", "build"),
|
|
41
|
+
environmentPath("ZIG_GLOBAL_CACHE_DIR", "build"), environmentPath("ZIG_LOCAL_CACHE_DIR", "build")
|
|
42
|
+
];
|
|
43
|
+
const formatArgv = ["fmt", "--check", ...artifacts];
|
|
44
|
+
return checkPlan(context, "zig", artifacts, [
|
|
45
|
+
checkStage({
|
|
46
|
+
argv: ["build", "-Doptimize=Debug", "--prefix", output],
|
|
47
|
+
cwd: context.sourcePath,
|
|
48
|
+
environment,
|
|
49
|
+
environmentPaths,
|
|
50
|
+
inputs: artifacts,
|
|
51
|
+
output: null,
|
|
52
|
+
pathArguments: [pathArgument(3, "build")],
|
|
53
|
+
stage: "compile",
|
|
54
|
+
tool,
|
|
55
|
+
transientPaths: [output]
|
|
56
|
+
}),
|
|
57
|
+
checkStage({
|
|
58
|
+
argv: formatArgv,
|
|
59
|
+
cwd: context.sourcePath,
|
|
60
|
+
environment,
|
|
61
|
+
environmentPaths,
|
|
62
|
+
inputs: artifacts,
|
|
63
|
+
output: null,
|
|
64
|
+
pathArguments: artifacts.map((_, index) => pathArgument(index + 2, "source")),
|
|
65
|
+
stage: "validate",
|
|
66
|
+
tool
|
|
67
|
+
})
|
|
68
|
+
]);
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemlnLWNoZWNrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JhY2tlbmRzL3ppZy1jaGVjay5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFBO0FBQzVCLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLGtCQUFrQixDQUFBO0FBQ3RELE9BQU8sRUFDTCxjQUFjLEVBQ2QsU0FBUyxFQUNULFVBQVUsRUFDVixTQUFTLEVBQ1QsZUFBZSxFQUNmLFlBQVksRUFDYixNQUFNLGlCQUFpQixDQUFBO0FBQ3hCLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQTtBQUV6Qzs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUFDLE9BQU87SUFDeEMsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUE7SUFDN0MsTUFBTSxTQUFTLEdBQUcsY0FBYyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksV0FBVyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUNsSCxLQUFLLEVBQUUseURBQXlELENBQUMsQ0FBQTtJQUNuRSxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLFdBQVcsQ0FBQyxDQUFBO0lBQzlGLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUE7SUFFcEcsSUFBSSxTQUFTLENBQUMsTUFBTSxJQUFJLENB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LEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDN0UsS0FBSyxFQUFFLFVBQVU7WUFDakIsSUFBSTtTQUNMLENBQUM7S0FDSCxDQUFDLENBQUE7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCBwYXRoIGZyb20gXCJub2RlOnBhdGhcIlxuaW1wb3J0IHtTZW1hbnRpZm9sZERpYWdub3N0aWN9IGZyb20gXCIuLi9kaWFnbm9zdGljLmpzXCJcbmltcG9ydCB7XG4gIGNoZWNrQXJ0aWZhY3RzLFxuICBjaGVja1BsYW4sXG4gIGNoZWNrU3RhZ2UsXG4gIGNoZWNrVG9vbCxcbiAgZW52aXJvbm1lbnRQYXRoLFxuICBwYXRoQXJndW1lbnRcbn0gZnJvbSBcIi4vY2hlY2stcGxhbi5qc1wiXG5pbXBvcnQge3ppZ0J1aWxkfSBmcm9tIFwiLi96aWctcnVudGltZS5qc1wiXG5cbi8qKlxuICogQ29uc3RydWN0cyBaaWcncyBpc29sYXRlZCBEZWJ1ZyBwcm9qZWN0IGJ1aWxkIGFuZCBjYW5vbmljYWwgZm9ybWF0LWNoZWNrIHBsYW4uXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4uL2xhbmd1YWdlLXJlZ2lzdHJ5LmpzXCIpLlRhcmdldENoZWNrUGxhbkNvbnRleHR9IGNvbnRleHQgLSBWYWxpZGF0ZWQgY2FuZGlkYXRlIGNvbnRleHQuXG4gKiBAcmV0dXJucyB7aW1wb3J0KFwiLi4vc2VtYW50aWMvdHlwZXMuanNcIikuVGFyZ2V0Q2hlY2tQbGFufSBJbW11dGFibGUgWmlnIHBsYW4uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVaaWdDaGVja1BsYW4oY29udGV4dCkge1xuICBjb25zdCB0b29sID0gY2hlY2tUb29sKGNvbnRleHQsIFwiemlnXCIsIFwiemlnXCIpXG4gIGNvbnN0IGFydGlmYWN0cyA9IGNoZWNrQXJ0aWZhY3RzKGNvbnRleHQsIGFydGlmYWN0ID0+IGFydGlmYWN0LnBhdGggPT0gXCJidWlsZC56aWdcIiB8fCBhcnRpZmFjdC5wYXRoLmVuZHNXaXRoKFwiLnppZ1wiKSxcbiAgICBcInppZ1wiLCBcIm9ubHkgc3RhZ2VkIFppZyBzb3VyY2UgYW5kIHRoZSBjYW5vbmljYWwgYnVpbGQgbWFuaWZlc3RcIilcbiAgY29uc3QgbWFuaWZlc3RzID0gY29udGV4dC5hcnRpZmFjdHMuYXJ0aWZhY3RzLmZpbHRlcihhcnRpZmFjdCA9PiBhcnRpZmFjdC5wYXRoID09IFwiYnVpbGQuemlnXCIpXG4gIGNvbnN0IHNvdXJjZXMgPSBhcnRpZmFjdHMuZmlsdGVyKGFydGlmYWN0ID0+IGFydGlmYWN0ICE9IHBhdGguam9pbihjb250ZXh0LnNvdXJjZVBhdGgsIFwiYnVpbGQuemlnXCIpKVxuXG4gIGlmIChtYW5pZmVzdHMubGVuZ3RoICE9IDEgfHwgbWFuaWZlc3RzWzBdLmNvbnRlbnRLaW5kICE9IFwidGV4dFwiIHx8IG1hbmlmZXN0c1swXS5yb2xlICE9IFwibWFuaWZlc3RcIiB8fFxuICAgIG1hbmlmZXN0c1swXS5jb250ZW50ICE9IHppZ0J1aWxkIHx8IGFydGlmYWN0cy5sZW5ndGggIT0gMiB8fCBzb3VyY2VzLmxlbmd0aCAhPSAxIHx8XG4gICAgc291cmNlc1swXSAhPSBwYXRoLmpvaW4oY29udGV4dC5zb3VyY2VQYXRoLCBcInNyYy9tYWluLnppZ1wiKSkge1xuICAgIHRocm93IG5ldyBTZW1hbnRpZm9sZERpYWdub3N0aWMoe1xuICAgICAgY29kZTogXCJJTlZBTElEX1RBUkdFVF9DSEVDS19QTEFOXCIsXG4gICAgICBsYW5ndWFnZTogXCJ6aWdcIixcbiAgICAgIG1lc3NhZ2U6IFwiWmlnIGRldmVsb3BlciBjaGVja3MgcmVxdWlyZSB0aGUgZXhhY3Qgc3RhbmRhcmQtbGlicmFyeS1vbmx5ICdidWlsZC56aWcnIGFuZCBzdGFnZWQgWmlnIHNvdXJjZS5cIlxuICAgIH0pXG4gIH1cbiAgY29uc3QgaG9tZSA9IHBhdGguam9pbihjb250ZXh0LmJ1aWxkUGF0aCwgXCJob21lXCIpXG4gIGNvbnN0IHRlbXBvcmFyeSA9IHBhdGguam9pbihjb250ZXh0LmJ1aWxkUGF0aCwgXCJ0bXBcIilcbiAgY29uc3QgZ2xvYmFsQ2FjaGUgPSBwYXRoLmpvaW4oY29udGV4dC5idWlsZFBhdGgsIFwiemlnLWdsb2JhbC1jYWNoZVwiKVxuICBjb25zdCBsb2NhbENhY2hlID0gcGF0aC5qb2luKGNvbnRleHQuYnVpbGRQYXRoLCBcInppZy1sb2NhbC1jYWNoZVwiKVxuICBjb25zdCBvdXRwdXQgPSBwYXRoLmpvaW4oY29udGV4dC5idWlsZFBhdGgsIFwib3V0cHV0XCIpXG4gIGNvbnN0IGVudmlyb25tZW50ID0ge1xuICAgIEhPTUU6IGhvbWUsXG4gICAgSFRUUF9QUk9YWTogXCJodHRwOi8vMTI3LjAuMC4xOjlcIixcbiAgICBIVFRQU19QUk9YWTogXCJodHRwOi8vMTI3LjAuMC4xOjlcIixcbiAgICBOT19QUk9YWTogXCJcIixcbiAgICBUTVBESVI6IHRlbXBvcmFyeSxcbiAgICBaSUdfR0xPQkFMX0NBQ0hFX0RJUjogZ2xvYmFsQ2FjaGUsXG4gICAgWklHX0xPQ0FMX0NBQ0hFX0RJUjogbG9jYWxDYWNoZVxuICB9XG4gIGNvbnN0IGVudmlyb25tZW50UGF0aHMgPSBbXG4gICAgZW52aXJvbm1lbnRQYXRoKFwiSE9NRVwiLCBcImJ1aWxkXCIpLCBlbnZpcm9ubWVudFBhdGgoXCJUTVBESVJcIiwgXCJidWlsZFwiKSxcbiAgICBlbnZpcm9ubWVudFBhdGgoXCJaSUdfR0xPQkFMX0NBQ0hFX0RJUlwiLCBcImJ1aWxkXCIpLCBlbnZpcm9ubWVudFBhdGgoXCJaSUdfTE9DQUxfQ0FDSEVfRElSXCIsIFwiYnVpbGRcIilcbiAgXVxuICBjb25zdCBmb3JtYXRBcmd2ID0gW1wiZm10XCIsIFwiLS1jaGVja1wiLCAuLi5hcnRpZmFjdHNdXG5cbiAgcmV0dXJuIGNoZWNrUGxhbihjb250ZXh0LCBcInppZ1wiLCBhcnRpZmFjdHMsIFtcbiAgICBjaGVja1N0YWdlKHtcbiAgICAgIGFyZ3Y6IFtcImJ1aWxkXCIsIFwiLURvcHRpbWl6ZT1EZWJ1Z1wiLCBcIi0tcHJlZml4XCIsIG91dHB1dF0sXG4gICAgICBjd2Q6IGNvbnRleHQuc291cmNlUGF0aCxcbiAgICAgIGVudmlyb25tZW50LFxuICAgICAgZW52aXJvbm1lbnRQYXRocyxcbiAgICAgIGlucHV0czogYXJ0aWZhY3RzLFxuICAgICAgb3V0cHV0OiBudWxsLFxuICAgICAgcGF0aEFyZ3VtZW50czogW3BhdGhBcmd1bWVudCgzLCBcImJ1aWxkXCIpXSxcbiAgICAgIHN0YWdlOiBcImNvbXBpbGVcIixcbiAgICAgIHRvb2wsXG4gICAgICB0cmFuc2llbnRQYXRoczogW291dHB1dF1cbiAgICB9KSxcbiAgICBjaGVja1N0YWdlKHtcbiAgICAgIGFyZ3Y6IGZvcm1hdEFyZ3YsXG4gICAgICBjd2Q6IGNvbnRleHQuc291cmNlUGF0aCxcbiAgICAgIGVudmlyb25tZW50LFxuICAgICAgZW52aXJvbm1lbnRQYXRocyxcbiAgICAgIGlucHV0czogYXJ0aWZhY3RzLFxuICAgICAgb3V0cHV0OiBudWxsLFxuICAgICAgcGF0aEFyZ3VtZW50czogYXJ0aWZhY3RzLm1hcCgoXywgaW5kZXgpID0+IHBhdGhBcmd1bWVudChpbmRleCArIDIsIFwic291cmNlXCIpKSxcbiAgICAgIHN0YWdlOiBcInZhbGlkYXRlXCIsXG4gICAgICB0b29sXG4gICAgfSlcbiAgXSlcbn1cbiJdfQ==
|
|
@@ -6,12 +6,16 @@ export declare class SemantifoldDiagnostic extends Error {
|
|
|
6
6
|
language: string;
|
|
7
7
|
location: import("./semantic/types.js").SourceLocation | undefined;
|
|
8
8
|
command: string | undefined;
|
|
9
|
+
durationMs: number | undefined;
|
|
9
10
|
executable: string | undefined;
|
|
10
11
|
exitCode: number | undefined;
|
|
11
12
|
signal: string | undefined;
|
|
12
13
|
stage: string | undefined;
|
|
13
14
|
stderr: string | undefined;
|
|
14
15
|
stdout: string | undefined;
|
|
16
|
+
projectId: string | undefined;
|
|
17
|
+
targetId: string | undefined;
|
|
18
|
+
toolId: string | undefined;
|
|
15
19
|
version: string | undefined;
|
|
16
20
|
/**
|
|
17
21
|
* Creates a diagnostic.
|
|
@@ -30,8 +34,12 @@ export declare class SemantifoldDiagnostic extends Error {
|
|
|
30
34
|
* @param {string | undefined} [options.stderr] - Captured standard error when available.
|
|
31
35
|
* @param {string | undefined} [options.stdout] - Captured standard output when available.
|
|
32
36
|
* @param {string | undefined} [options.version] - Captured executable version when known.
|
|
37
|
+
* @param {number | undefined} [options.durationMs] - Observed process duration when known.
|
|
38
|
+
* @param {string | undefined} [options.projectId] - Exact project identity when known.
|
|
39
|
+
* @param {string | undefined} [options.targetId] - Exact project target identity when known.
|
|
40
|
+
* @param {string | undefined} [options.toolId] - Exact toolchain identity when known.
|
|
33
41
|
*/
|
|
34
|
-
constructor({ cause, code, command, executable, exitCode, generatedLocation, language, location, message, signal, stage, stderr, stdout, version }: {
|
|
42
|
+
constructor({ cause, code, command, durationMs, executable, exitCode, generatedLocation, language, location, message, projectId, signal, stage, stderr, stdout, targetId, toolId, version }: {
|
|
35
43
|
code: string;
|
|
36
44
|
message: string;
|
|
37
45
|
language: string;
|
|
@@ -46,6 +54,10 @@ export declare class SemantifoldDiagnostic extends Error {
|
|
|
46
54
|
stderr?: string | undefined;
|
|
47
55
|
stdout?: string | undefined;
|
|
48
56
|
version?: string | undefined;
|
|
57
|
+
durationMs?: number | undefined;
|
|
58
|
+
projectId?: string | undefined;
|
|
59
|
+
targetId?: string | undefined;
|
|
60
|
+
toolId?: string | undefined;
|
|
49
61
|
});
|
|
50
62
|
}
|
|
51
63
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostic.d.ts","sourceRoot":"","sources":["../../src/diagnostic.js"],"names":[],"mappings":"AAEA,kEAAkE;AAClE,qBAAa,qBAAsB,SAAQ,KAAK;
|
|
1
|
+
{"version":3,"file":"diagnostic.d.ts","sourceRoot":"","sources":["../../src/diagnostic.js"],"names":[],"mappings":"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"}
|
package/build/src/diagnostic.js
CHANGED
|
@@ -18,8 +18,12 @@ export class SemantifoldDiagnostic extends Error {
|
|
|
18
18
|
* @param {string | undefined} [options.stderr] - Captured standard error when available.
|
|
19
19
|
* @param {string | undefined} [options.stdout] - Captured standard output when available.
|
|
20
20
|
* @param {string | undefined} [options.version] - Captured executable version when known.
|
|
21
|
+
* @param {number | undefined} [options.durationMs] - Observed process duration when known.
|
|
22
|
+
* @param {string | undefined} [options.projectId] - Exact project identity when known.
|
|
23
|
+
* @param {string | undefined} [options.targetId] - Exact project target identity when known.
|
|
24
|
+
* @param {string | undefined} [options.toolId] - Exact toolchain identity when known.
|
|
21
25
|
*/
|
|
22
|
-
constructor({ cause, code, command, executable, exitCode, generatedLocation, language, location, message, signal, stage, stderr, stdout, version }) {
|
|
26
|
+
constructor({ cause, code, command, durationMs, executable, exitCode, generatedLocation, language, location, message, projectId, signal, stage, stderr, stdout, targetId, toolId, version }) {
|
|
23
27
|
const locationText = location ? ` at ${location.filename}:${location.start.line}:${location.start.column}` : "";
|
|
24
28
|
super(`[${code}] ${language}${locationText}: ${message}`, cause ? { cause } : undefined);
|
|
25
29
|
this.name = "SemantifoldDiagnostic";
|
|
@@ -30,6 +34,8 @@ export class SemantifoldDiagnostic extends Error {
|
|
|
30
34
|
this.location = location;
|
|
31
35
|
if (command != undefined)
|
|
32
36
|
this.command = command;
|
|
37
|
+
if (durationMs != undefined)
|
|
38
|
+
this.durationMs = durationMs;
|
|
33
39
|
if (executable != undefined)
|
|
34
40
|
this.executable = executable;
|
|
35
41
|
if (exitCode != undefined)
|
|
@@ -42,6 +48,12 @@ export class SemantifoldDiagnostic extends Error {
|
|
|
42
48
|
this.stderr = stderr;
|
|
43
49
|
if (stdout != undefined)
|
|
44
50
|
this.stdout = stdout;
|
|
51
|
+
if (projectId != undefined)
|
|
52
|
+
this.projectId = projectId;
|
|
53
|
+
if (targetId != undefined)
|
|
54
|
+
this.targetId = targetId;
|
|
55
|
+
if (toolId != undefined)
|
|
56
|
+
this.toolId = toolId;
|
|
45
57
|
if (version != undefined)
|
|
46
58
|
this.version = version;
|
|
47
59
|
}
|
|
@@ -134,4 +146,4 @@ export function unsupportedRole(language, role, location) {
|
|
|
134
146
|
message: `Registered language or target does not provide role '${role}'.`
|
|
135
147
|
});
|
|
136
148
|
}
|
|
137
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhZ25vc3RpYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWFnbm9zdGljLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixrRUFBa0U7QUFDbEUsTUFBTSxPQUFPLHFCQUFzQixTQUFRLEtBQUs7SUFDOUM7Ozs7Ozs7Ozs7Ozs7Ozs7O09BaUJHO0lBQ0gsWUFBWSxFQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBQztRQUM5SSxNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sUUFBUSxDQUFDLFFBQVEsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7UUFFL0csS0FBSyxDQUFDLElBQUksSUFBSSxLQUFLLFFBQVEsR0FBRyxZQUFZLEtBQUssT0FBTyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFDLEtBQUssRUFBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUN0RixJQUFJLENBQUMsSUFBSSxHQUFHLHVCQUF1QixDQUFBO1FBQ25DLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFBO1FBQ2hCLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFBO1FBQ3JCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQTtRQUMxQyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQTtRQUN4QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQTtRQUN4QixJQUFJLE9BQU8sSUFBSSxTQUFTO1lBQUUsSUFBSSxDQUFDLE9B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bnRpYywgb3IgYmFja2VuZCBjYXBhYmlsaXR5IGRpYWdub3N0aWMuICovXG5leHBvcnQgY2xhc3MgU2VtYW50aWZvbGREaWFnbm9zdGljIGV4dGVuZHMgRXJyb3Ige1xuICAvKipcbiAgICogQ3JlYXRlcyBhIGRpYWdub3N0aWMuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBvcHRpb25zIC0gRGlhZ25vc3RpYyBmaWVsZHMuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLmNvZGUgLSBTdGFibGUgZGlhZ25vc3RpYyBjb2RlLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5tZXNzYWdlIC0gSHVtYW4tcmVhZGFibGUgbWVzc2FnZS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMubGFuZ3VhZ2UgLSBSZWxhdGVkIGxhbmd1YWdlLCB0YXJnZXQsIHRvb2wsIG9yIHJlZ2lzdHJ5IGlkZW50aXR5LlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4vc2VtYW50aWMvdHlwZXMuanNcIikuU291cmNlTG9jYXRpb24gfCB1bmRlZmluZWR9IFtvcHRpb25zLmxvY2F0aW9uXSAtIFJlbGF0ZWQgbG9jYXRpb24uXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi9zZW1hbnRpYy90eXBlcy5qc1wiKS5Tb3VyY2VMb2NhdGlvbiB8IHVuZGVmaW5lZH0gW29wdGlvbnMuZ2VuZXJhdGVkTG9jYXRpb25dIC0gUHJlLXJlbWFwcGluZyBnZW5lcmF0ZWQgbG9jYXRpb24uXG4gICAqIEBwYXJhbSB7RXJyb3IgfCB1bmRlZmluZWR9IFtvcHRpb25zLmNhdXNlXSAtIFByZXNlcnZlZCBwYXJzZXIgZXJyb3IuXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgdW5kZWZpbmVkfSBbb3B0aW9ucy5jb21tYW5kXSAtIENhbm9uaWNhbCBjb21tYW5kIHdoZW4gdG9vbCBkaXNjb3ZlcnkgaXMgaW52b2x2ZWQuXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgdW5kZWZpbmVkfSBbb3B0aW9ucy5leGVjdXRhYmxlXSAtIEV4YWN0IHJlc29sdmVkIGV4ZWN1dGFibGUgd2hlbiBrbm93bi5cbiAgICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IFtvcHRpb25zLmV4aXRDb2RlXSAtIFByb2Nlc3MgZXhpdCBjb2RlIHdoZW4gYXZhaWxhYmxlLlxuICAgKiBAcGFyYW0ge3N0cmluZyB8IHVuZGVmaW5lZH0gW29wdGlvbnMuc2lnbmFsXSAtIFByb2Nlc3MgdGVybWluYXRpb24gc2lnbmFsIHdoZW4gYXZhaWxhYmxlLlxuICAgKiBAcGFyYW0ge3N0cmluZyB8IHVuZGVmaW5lZH0gW29wdGlvbnMuc3RhZ2VdIC0gQWNjZXB0YW5jZSBzdGFnZSB3aGVuIGV4ZWN1dGlvbiBpcyBpbnZvbHZlZC5cbiAgICogQHBhcmFtIHtzdHJpbmcgfCB1bmRlZmluZWR9IFtvcHRpb25zLnN0ZGVycl0gLSBDYXB0dXJlZCBzdGFuZGFyZCBlcnJvciB3aGVuIGF2YWlsYWJsZS5cbiAgICogQHBhcmFtIHtzdHJpbmcgfCB1bmRlZmluZWR9IFtvcHRpb25zLnN0ZG91dF0gLSBDYXB0dXJlZCBzdGFuZGFyZCBvdXRwdXQgd2hlbiBhdmFpbGFibGUuXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgdW5kZWZpbmVkfSBbb3B0aW9ucy52ZXJzaW9uXSAtIENhcHR1cmVkIGV4ZWN1dGFibGUgdmVyc2lvbiB3aGVuIGtub3duLlxuICAgKi9cbiAgY29uc3RydWN0b3Ioe2NhdXNlLCBjb2RlLCBjb21tYW5kLCBleGVjdXRhYmxlLCBleGl0Q29kZSwgZ2VuZXJhdGVkTG9jYXRpb24sIGxhbmd1YWdlLCBsb2NhdGlvbiwgbWVzc2FnZSwgc2lnbmFsLCBzdGFnZSwgc3RkZXJyLCBzdGRvdXQsIHZlcnNpb259KSB7XG4gICAgY29uc3QgbG9jYXRpb25UZXh0ID0gbG9jYXRpb24gPyBgIGF0ICR7bG9jYXRpb24uZmlsZW5hbWV9OiR7bG9jYXRpb24uc3RhcnQubGluZX06JHtsb2NhdGlvbi5zdGFydC5jb2x1bW59YCA6IFwiXCJcblxuICAgIHN1cGVyKGBbJHtjb2RlfV0gJHtsYW5ndWFnZX0ke2xvY2F0aW9uVGV4dH06ICR7bWVzc2FnZX1gLCBjYXVzZSA/IHtjYXVzZX0gOiB1bmRlZmluZWQpXG4gICAgdGhpcy5uYW1lID0gXCJTZW1hbnRpZm9sZERpYWdub3N0aWNcIlxuICAgIHRoaXMuY29kZSA9IGNvZGVcbiAgICB0aGlzLmRldGFpbCA9IG1lc3NhZ2VcbiAgICB0aGlzLmdlbmVyYXRlZExvY2F0aW9uID0gZ2VuZXJhdGVkTG9jYXRpb25cbiAgICB0aGlzLmxhbmd1YWdlID0gbGFuZ3VhZ2VcbiAgICB0aGlzLmxvY2F0aW9uID0gbG9jYXRpb25cbiAgICBpZiAoY29tbWFuZCAhPSB1bmRlZmluZWQpIHRoaXMuY29tbWFuZCA9IGNvbW1hbmRcbiAgICBpZiAoZXhlY3V0YWJsZSAhPSB1bmRlZmluZWQpIHRoaXMuZXhlY3V0YWJsZSA9IGV4ZWN1dGFibGVcbiAgICBpZiAoZXhpdENvZGUgIT0gdW5kZWZpbmVkKSB0aGlzLmV4aXRDb2RlID0gZXhpdENvZGVcbiAgICBpZiAoc2lnbmFsICE9IHVuZGVmaW5lZCkgdGhpcy5zaWduYWwgPSBzaWduYWxcbiAgICBpZiAoc3RhZ2UgIT0gdW5kZWZpbmVkKSB0aGlzLnN0YWdlID0gc3RhZ2VcbiAgICBpZiAoc3RkZXJyICE9IHVuZGVmaW5lZCkgdGhpcy5zdGRlcnIgPSBzdGRlcnJcbiAgICBpZiAoc3Rkb3V0ICE9IHVuZGVmaW5lZCkgdGhpcy5zdGRvdXQgPSBzdGRvdXRcbiAgICBpZiAodmVyc2lvbiAhPSB1bmRlZmluZWQpIHRoaXMudmVyc2lvbiA9IHZlcnNpb25cbiAgfVxufVxuXG4vKipcbiAqIFRocm93cyBhIG5vcm1hbGl6ZWQgcGFyc2VyIGRpYWdub3N0aWMgd2hpbGUgcHJlc2VydmluZyB0aGUgcGFyc2VyIGVycm9yLlxuICogQHBhcmFtIHtpbXBvcnQoXCIuL3NlbWFudGljL3R5cGVzLmpzXCIpLlNlbWFudGljTGFuZ3VhZ2V9IGxhbmd1YWdlIC0gRnJvbnRlbmQgbGFuZ3VhZ2UuXG4gKiBAcGFyYW0ge3Vua25vd259IGVycm9yIC0gT3BhcXVlIHBhcnNlciBlcnJvciwgbmFycm93ZWQgaW1tZWRpYXRlbHkuXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4vc2VtYW50aWMvdHlwZXMuanNcIikuU291cmNlTG9jYXRpb24gfCB1bmRlZmluZWR9IFtsb2NhdGlvbl0gLSBOb3JtYWxpemVkIHBhcnNlciBmYWlsdXJlIHJhbmdlLlxuICogQHJldHVybnMge25ldmVyfSBBbHdheXMgdGhyb3dzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VGYWlsdXJlKGxhbmd1YWdlLCBlcnJvciwgbG9jYXRpb24pIHtcbiAgY29uc3QgY2F1c2UgPSBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IgOiBuZXcgRXJyb3IoU3RyaW5nKGVycm9yKSlcblxuICB0aHJvdyBuZXcgU2VtYW50aWZvbGREaWFnbm9zdGljKHtcbiAgICBjYXVzZSxcbiAgICBjb2RlOiBcIlBBUlNFX0VSUk9SXCIsXG4gICAgbGFuZ3VhZ2UsXG4gICAgbG9jYXRpb24sXG4gICAgbWVzc2FnZTogY2F1c2UubWVzc2FnZVxuICB9KVxufVxuXG4vKipcbiAqIFRocm93cyBhbiB1bnN1cHBvcnRlZC1zeW50YXggZGlhZ25vc3RpYy5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi9zZW1hbnRpYy90eXBlcy5qc1wiKS5TZW1hbnRpY0xhbmd1YWdlfSBsYW5ndWFnZSAtIEZyb250ZW5kIGxhbmd1YWdlLlxuICogQHBhcmFtIHtzdHJpbmd9IHN5bnRheCAtIFBhcnNlciBzeW50YXgga2luZC5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi9zZW1hbnRpYy90eXBlcy5qc1wiKS5Tb3VyY2VMb2NhdGlvbiB8IHVuZGVmaW5lZH0gbG9jYXRpb24gLSBTb3VyY2UgbG9jYXRpb24uXG4gKiBAcmV0dXJucyB7bmV2ZXJ9IEFsd2F5cyB0aHJvd3MuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1bnN1cHBvcnRlZFN5bnRheChsYW5ndWFnZSwgc3ludGF4LCBsb2NhdGlvbikge1xuICB0aHJvdyBuZXcgU2VtYW50aWZvbGREaWFnbm9zdGljKHtcbiAgICBjb2RlOiBcIlVOU1VQUE9SVEVEX1NZTlRBWFwiLFxuICAgIGxhbmd1YWdlLFxuICAgIGxvY2F0aW9uLFxuICAgIG1lc3NhZ2U6IGBTeW50YXggJyR7c3ludGF4fScgaXMgb3V0c2lkZSB0aGUgaW1wbGVtZW50ZWQgc2VtYW50aWMgc3Vic2V0LmBcbiAgfSlcbn1cblxuLyoqXG4gKiBUaHJvd3MgYSBtaXNzaW5nLXR5cGUgZGlhZ25vc3RpYy5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi9zZW1hbnRpYy90eXBlcy5qc1wiKS5TZW1hbnRpY0xhbmd1YWdlfSBsYW5ndWFnZSAtIEZyb250ZW5kIGxhbmd1YWdlLlxuICogQHBhcmFtIHtzdHJpbmd9IHN1YmplY3QgLSBVbnR5cGVkIHN1YmplY3QuXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4vc2VtYW50aWMvdHlwZXMuanNcIikuU291cmNlTG9jYXRpb24gfCB1bmRlZmluZWR9IGxvY2F0aW9uIC0gU291cmNlIGxvY2F0aW9uLlxuICogQHJldHVybnMge25ldmVyfSBBbHdheXMgdGhyb3dzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWlzc2luZ1R5cGUobGFuZ3VhZ2UsIHN1YmplY3QsIGxvY2F0aW9uKSB7XG4gIHRocm93IG5ldyBTZW1hbnRpZm9sZERpYWdub3N0aWMoe1xuICAgIGNvZGU6IFwiTUlTU0lOR19UWVBFXCIsXG4gICAgbGFuZ3VhZ2UsXG4gICAgbG9jYXRpb24sXG4gICAgbWVzc2FnZTogYCR7c3ViamVjdH0gcmVxdWlyZXMgYW4gZXhwbGljaXQgc3VwcG9ydGVkIHNjYWxhciB0eXBlOiBpbnRlZ2VyLCBib29sZWFuLCBvciBzdHJpbmcuYFxuICB9KVxufVxuXG4vKipcbiAqIFRocm93cyBhIGxhbmd1YWdlLW5ldXRyYWwgc2VtYW50aWMgZGlhZ25vc3RpYyBkaXNjb3ZlcmVkIGFmdGVyIGFkYXB0YXRpb24uXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4vc2VtYW50aWMvdHlwZXMuanNcIikuU2VtYW50aWNMYW5ndWFnZX0gbGFuZ3VhZ2UgLSBTb3VyY2UgbGFuZ3VhZ2UuXG4gKiBAcGFyYW0ge3N0cmluZ30gY29kZSAtIFN0YWJsZSBzZW1hbnRpYyBkaWFnbm9zdGljIGNvZGUuXG4gKiBAcGFyYW0ge3N0cmluZ30gZGV0YWlsIC0gSHVtYW4tcmVhZGFibGUgc2VtYW50aWMgZmFpbHVyZS5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi9zZW1hbnRpYy90eXBlcy5qc1wiKS5Tb3VyY2VMb2NhdGlvbiB8IHVuZGVmaW5lZH0gbG9jYXRpb24gLSBTb3VyY2UgbG9jYXRpb24uXG4gKiBAcmV0dXJucyB7bmV2ZXJ9IEFsd2F5cyB0aHJvd3MuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZW1hbnRpY0ZhaWx1cmUobGFuZ3VhZ2UsIGNvZGUsIGRldGFpbCwgbG9jYXRpb24pIHtcbiAgdGhyb3cgbmV3IFNlbWFudGlmb2xkRGlhZ25vc3RpYyh7Y29kZSwgbGFuZ3VhZ2UsIGxvY2F0aW9uLCBtZXNzYWdlOiBkZXRhaWx9KVxufVxuXG4vKipcbiAqIFRocm93cyBhbiB1bnN1cHBvcnRlZCBiYWNrZW5kLWNhcGFiaWxpdHkgZGlhZ25vc3RpYy5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi9zZW1hbnRpYy90eXBlcy5qc1wiKS5CYWNrZW5kTGFuZ3VhZ2V9IGxhbmd1YWdlIC0gQmFja2VuZCBsYW5ndWFnZSBvciBiaW5hcnkgdGFyZ2V0LlxuICogQHBhcmFtIHtzdHJpbmd9IGNhcGFiaWxpdHkgLSBVbnN1cHBvcnRlZCBzZW1hbnRpYyBjYXBhYmlsaXR5LlxuICogQHBhcmFtIHtpbXBvcnQoXCIuL3NlbWFudGljL3R5cGVzLmpzXCIpLlNvdXJjZUxvY2F0aW9uIHwgdW5kZWZpbmVkfSBsb2NhdGlvbiAtIFNlbWFudGljIHNvdXJjZSBsb2NhdGlvbi5cbiAqIEByZXR1cm5zIHtuZXZlcn0gQWx3YXlzIHRocm93cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVuc3VwcG9ydGVkQ2FwYWJpbGl0eShsYW5ndWFnZSwgY2FwYWJpbGl0eSwgbG9jYXRpb24pIHtcbiAgdGhyb3cgbmV3IFNlbWFudGlmb2xkRGlhZ25vc3RpYyh7XG4gICAgY29kZTogXCJVTlNVUFBPUlRFRF9DQVBBQklMSVRZXCIsXG4gICAgbGFuZ3VhZ2UsXG4gICAgbG9jYXRpb24sXG4gICAgbWVzc2FnZTogYEJhY2tlbmQgY2Fubm90IGVtaXQgc2VtYW50aWMgY2FwYWJpbGl0eSAnJHtjYXBhYmlsaXR5fScuYFxuICB9KVxufVxuXG4vKipcbiAqIFRocm93cyB3aGVuIGEgcmVnaXN0ZXJlZCBpZGVudGl0eSBsYWNrcyBvbmUgcmVxdWVzdGVkIHJvbGUuXG4gKiBAcGFyYW0ge3N0cmluZ30gbGFuZ3VhZ2UgLSBSZWdpc3RlcmVkIGxhbmd1YWdlIG9yIHRhcmdldCBpZGVudGl0eS5cbiAqIEBwYXJhbSB7c3RyaW5nfSByb2xlIC0gUmVxdWVzdGVkIHJlZ2lzdHJ5IHJvbGUuXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4vc2VtYW50aWMvdHlwZXMuanNcIikuU291cmNlTG9jYXRpb24gfCB1bmRlZmluZWR9IFtsb2NhdGlvbl0gLSBSZWxhdGVkIHNlbWFudGljIGxvY2F0aW9uLlxuICogQHJldHVybnMge25ldmVyfSBBbHdheXMgdGhyb3dzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdW5zdXBwb3J0ZWRSb2xlKGxhbmd1YWdlLCByb2xlLCBsb2NhdGlvbikge1xuICB0aHJvdyBuZXcgU2VtYW50aWZvbGREaWFnbm9zdGljKHtcbiAgICBjb2RlOiBcIlVOU1VQUE9SVEVEX1JPTEVcIixcbiAgICBsYW5ndWFnZSxcbiAgICBsb2NhdGlvbixcbiAgICBtZXNzYWdlOiBgUmVnaXN0ZXJlZCBsYW5ndWFnZSBvciB0YXJnZXQgZG9lcyBub3QgcHJvdmlkZSByb2xlICcke3JvbGV9Jy5gXG4gIH0pXG59XG4iXX0=
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhZ25vc3RpYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWFnbm9zdGljLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixrRUFBa0U7QUFDbEUsTUFBTSxPQUFPLHFCQUFzQixTQUFRLEtBQUs7SUFDOUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQXFCRztJQUNILFlBQVksRUFBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFDO1FBQ3ZMLE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxRQUFRLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtRQUUvRyxLQUFLLENBQUMsSUFBSSxJQUFJLEtBQUssUUFBUSxHQUFHLFlBQVksS0FBSyxPQUFPLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQ3RGLElBQUksQ0FBQyxJQUFJLEdBQUcsdUJBQXVCLENBQUE7UUFDbkMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7UUFDaEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUE7UUFDckIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFBO1FBQzFDLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFBO1FBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFB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VSxJQUFJO0tBQ3BFLENBQUMsQ0FBQTtBQUNKLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsZUFBZSxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUTtJQUN0RCxNQUFNLElBQUkscUJBQXFCLENBQUM7UUFDOUIsSUFBSSxFQUFFLGtCQUFrQjtRQUN4QixRQUFRO1FBQ1IsUUFBUTtRQUNSLE9BQU8sRUFBRSx3REFBd0QsSUFBSSxJQUFJO0tBQzFFLENBQUMsQ0FBQTtBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuLyoqIEEgY2xlYXIgcGFyc2VyLCBzZW1hbnRpYywgb3IgYmFja2VuZCBjYXBhYmlsaXR5IGRpYWdub3N0aWMuICovXG5leHBvcnQgY2xhc3MgU2VtYW50aWZvbGREaWFnbm9zdGljIGV4dGVuZHMgRXJyb3Ige1xuICAvKipcbiAgICogQ3JlYXRlcyBhIGRpYWdub3N0aWMuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBvcHRpb25zIC0gRGlhZ25vc3RpYyBmaWVsZHMuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLmNvZGUgLSBTdGFibGUgZGlhZ25vc3RpYyBjb2RlLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5tZXNzYWdlIC0gSHVtYW4tcmVhZGFibGUgbWVzc2FnZS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMubGFuZ3VhZ2UgLSBSZWxhdGVkIGxhbmd1YWdlLCB0YXJnZXQsIHRvb2wsIG9yIHJlZ2lzdHJ5IGlkZW50aXR5LlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4vc2VtYW50aWMvdHlwZXMuanNcIikuU291cmNlTG9jYXRpb24gfCB1bmRlZmluZWR9IFtvcHRpb25zLmxvY2F0aW9uXSAtIFJlbGF0ZWQgbG9jYXRpb24uXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi9zZW1hbnRpYy90eXBlcy5qc1wiKS5Tb3VyY2VMb2NhdGlvbiB8IHVuZGVmaW5lZH0gW29wdGlvbnMuZ2VuZXJhdGVkTG9jYXRpb25dIC0gUHJlLXJlbWFwcGluZyBnZW5lcmF0ZWQgbG9jYXRpb24uXG4gICAqIEBwYXJhbSB7RXJyb3IgfCB1bmRlZmluZWR9IFtvcHRpb25zLmNhdXNlXSAtIFByZXNlcnZlZCBwYXJzZXIgZXJyb3IuXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgdW5kZWZpbmVkfSBbb3B0aW9ucy5jb21tYW5kXSAtIENhbm9uaWNhbCBjb21tYW5kIHdoZW4gdG9vbCBkaXNjb3ZlcnkgaXMgaW52b2x2ZWQuXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgdW5kZWZpbmVkfSBbb3B0aW9ucy5leGVjdXRhYmxlXSAtIEV4YWN0IHJlc29sdmVkIGV4ZWN1dGFibGUgd2hlbiBrbm93bi5cbiAgICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IFtvcHRpb25zLmV4aXRDb2RlXSAtIFByb2Nlc3MgZXhpdCBjb2RlIHdoZW4gYXZhaWxhYmxlLlxuICAgKiBAcGFyYW0ge3N0cmluZyB8IHVuZGVmaW5lZH0gW29wdGlvbnMuc2lnbmFsXSAtIFByb2Nlc3MgdGVybWluYXRpb24gc2lnbmFsIHdoZW4gYXZhaWxhYmxlLlxuICAgKiBAcGFyYW0ge3N0cmluZyB8IHVuZGVmaW5lZH0gW29wdGlvbnMuc3RhZ2VdIC0gQWNjZXB0YW5jZSBzdGFnZSB3aGVuIGV4ZWN1dGlvbiBpcyBpbnZvbHZlZC5cbiAgICogQHBhcmFtIHtzdHJpbmcgfCB1bmRlZmluZWR9IFtvcHRpb25zLnN0ZGVycl0gLSBDYXB0dXJlZCBzdGFuZGFyZCBlcnJvciB3aGVuIGF2YWlsYWJsZS5cbiAgICogQHBhcmFtIHtzdHJpbmcgfCB1bmRlZmluZWR9IFtvcHRpb25zLnN0ZG91dF0gLSBDYXB0dXJlZCBzdGFuZGFyZCBvdXRwdXQgd2hlbiBhdmFpbGFibGUuXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgdW5kZWZpbmVkfSBbb3B0aW9ucy52ZXJzaW9uXSAtIENhcHR1cmVkIGV4ZWN1dGFibGUgdmVyc2lvbiB3aGVuIGtub3duLlxuICAgKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gW29wdGlvbnMuZHVyYXRpb25Nc10gLSBPYnNlcnZlZCBwcm9jZXNzIGR1cmF0aW9uIHdoZW4ga25vd24uXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgdW5kZWZpbmVkfSBbb3B0aW9ucy5wcm9qZWN0SWRdIC0gRXhhY3QgcHJvamVjdCBpZGVudGl0eSB3aGVuIGtub3duLlxuICAgKiBAcGFyYW0ge3N0cmluZyB8IHVuZGVmaW5lZH0gW29wdGlvbnMudGFyZ2V0SWRdIC0gRXhhY3QgcHJvamVjdCB0YXJnZXQgaWRlbnRpdHkgd2hlbiBrbm93bi5cbiAgICogQHBhcmFtIHtzdHJpbmcgfCB1bmRlZmluZWR9IFtvcHRpb25zLnRvb2xJZF0gLSBFeGFjdCB0b29sY2hhaW4gaWRlbnRpdHkgd2hlbiBrbm93bi5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHtjYXVzZSwgY29kZSwgY29tbWFuZCwgZHVyYXRpb25NcywgZXhlY3V0YWJsZSwgZXhpdENvZGUsIGdlbmVyYXRlZExvY2F0aW9uLCBsYW5ndWFnZSwgbG9jYXRpb24sIG1lc3NhZ2UsIHByb2plY3RJZCwgc2lnbmFsLCBzdGFnZSwgc3RkZXJyLCBzdGRvdXQsIHRhcmdldElkLCB0b29sSWQsIHZlcnNpb259KSB7XG4gICAgY29uc3QgbG9jYXRpb25UZXh0ID0gbG9jYXRpb24gPyBgIGF0ICR7bG9jYXRpb24uZmlsZW5hbWV9OiR7bG9jYXRpb24uc3RhcnQubGluZX06JHtsb2NhdGlvbi5zdGFydC5jb2x1bW59YCA6IFwiXCJcblxuICAgIHN1cGVyKGBbJHtjb2RlfV0gJHtsYW5ndWFnZX0ke2xvY2F0aW9uVGV4dH06ICR7bWVzc2FnZX1gLCBjYXVzZSA/IHtjYXVzZX0gOiB1bmRlZmluZWQpXG4gICAgdGhpcy5uYW1lID0gXCJTZW1hbnRpZm9sZERpYWdub3N0aWNcIlxuICAgIHRoaXMuY29kZSA9IGNvZGVcbiAgICB0aGlzLmRldGFpbCA9IG1lc3NhZ2VcbiAgICB0aGlzLmdlbmVyYXRlZExvY2F0aW9uID0gZ2VuZXJhdGVkTG9jYXRpb25cbiAgICB0aGlzLmxhbmd1YWdlID0gbGFuZ3VhZ2VcbiAgICB0aGlzLmxvY2F0aW9uID0gbG9jYXRpb25cbiAgICBpZiAoY29tbWFuZCAhPSB1bmRlZmluZWQpIHRoaXMuY29tbWFuZCA9IGNvbW1hbmRcbiAgICBpZiAoZHVyYXRpb25NcyAhPSB1bmRlZmluZWQpIHRoaXMuZHVyYXRpb25NcyA9IGR1cmF0aW9uTXNcbiAgICBpZiAoZXhlY3V0YWJsZSAhPSB1bmRlZmluZWQpIHRoaXMuZXhlY3V0YWJsZSA9IGV4ZWN1dGFibGVcbiAgICBpZiAoZXhpdENvZGUgIT0gdW5kZWZpbmVkKSB0aGlzLmV4aXRDb2RlID0gZXhpdENvZGVcbiAgICBpZiAoc2lnbmFsICE9IHVuZGVmaW5lZCkgdGhpcy5zaWduYWwgPSBzaWduYWxcbiAgICBpZiAoc3RhZ2UgIT0gdW5kZWZpbmVkKSB0aGlzLnN0YWdlID0gc3RhZ2VcbiAgICBpZiAoc3RkZXJyICE9IHVuZGVmaW5lZCkgdGhpcy5zdGRlcnIgPSBzdGRlcnJcbiAgICBpZiAoc3Rkb3V0ICE9IHVuZGVmaW5lZCkgdGhpcy5zdGRvdXQgPSBzdGRvdXRcbiAgICBpZiAocHJvamVjdElkICE9IHVuZGVmaW5lZCkgdGhpcy5wcm9qZWN0SWQgPSBwcm9qZWN0SWRcbiAgICBpZiAodGFyZ2V0SWQgIT0gdW5kZWZpbmVkKSB0aGlzLnRhcmdldElkID0gdGFyZ2V0SWRcbiAgICBpZiAodG9vbElkICE9IHVuZGVmaW5lZCkgdGhpcy50b29sSWQgPSB0b29sSWRcbiAgICBpZiAodmVyc2lvbiAhPSB1bmRlZmluZWQpIHRoaXMudmVyc2lvbiA9IHZlcnNpb25cbiAgfVxufVxuXG4vKipcbiAqIFRocm93cyBhIG5vcm1hbGl6ZWQgcGFyc2VyIGRpYWdub3N0aWMgd2hpbGUgcHJlc2VydmluZyB0aGUgcGFyc2VyIGVycm9yLlxuICogQHBhcmFtIHtpbXBvcnQoXCIuL3NlbWFudGljL3R5cGVzLmpzXCIpLlNlbWFudGljTGFuZ3VhZ2V9IGxhbmd1YWdlIC0gRnJvbnRlbmQgbGFuZ3VhZ2UuXG4gKiBAcGFyYW0ge3Vua25vd259IGVycm9yIC0gT3BhcXVlIHBhcnNlciBlcnJvciwgbmFycm93ZWQgaW1tZWRpYXRlbHkuXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4vc2VtYW50aWMvdHlwZXMuanNcIikuU291cmNlTG9jYXRpb24gfCB1bmRlZmluZWR9IFtsb2NhdGlvbl0gLSBOb3JtYWxpemVkIHBhcnNlciBmYWlsdXJlIHJhbmdlLlxuICogQHJldHVybnMge25ldmVyfSBBbHdheXMgdGhyb3dzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VGYWlsdXJlKGxhbmd1YWdlLCBlcnJvciwgbG9jYXRpb24pIHtcbiAgY29uc3QgY2F1c2UgPSBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IgOiBuZXcgRXJyb3IoU3RyaW5nKGVycm9yKSlcblxuICB0aHJvdyBuZXcgU2VtYW50aWZvbGREaWFnbm9zdGljKHtcbiAgICBjYXVzZSxcbiAgICBjb2RlOiBcIlBBUlNFX0VSUk9SXCIsXG4gICAgbGFuZ3VhZ2UsXG4gICAgbG9jYXRpb24sXG4gICAgbWVzc2FnZTogY2F1c2UubWVzc2FnZVxuICB9KVxufVxuXG4vKipcbiAqIFRocm93cyBhbiB1bnN1cHBvcnRlZC1zeW50YXggZGlhZ25vc3RpYy5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi9zZW1hbnRpYy90eXBlcy5qc1wiKS5TZW1hbnRpY0xhbmd1YWdlfSBsYW5ndWFnZSAtIEZyb250ZW5kIGxhbmd1YWdlLlxuICogQHBhcmFtIHtzdHJpbmd9IHN5bnRheCAtIFBhcnNlciBzeW50YXgga2luZC5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi9zZW1hbnRpYy90eXBlcy5qc1wiKS5Tb3VyY2VMb2NhdGlvbiB8IHVuZGVmaW5lZH0gbG9jYXRpb24gLSBTb3VyY2UgbG9jYXRpb24uXG4gKiBAcmV0dXJucyB7bmV2ZXJ9IEFsd2F5cyB0aHJvd3MuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1bnN1cHBvcnRlZFN5bnRheChsYW5ndWFnZSwgc3ludGF4LCBsb2NhdGlvbikge1xuICB0aHJvdyBuZXcgU2VtYW50aWZvbGREaWFnbm9zdGljKHtcbiAgICBjb2RlOiBcIlVOU1VQUE9SVEVEX1NZTlRBWFwiLFxuICAgIGxhbmd1YWdlLFxuICAgIGxvY2F0aW9uLFxuICAgIG1lc3NhZ2U6IGBTeW50YXggJyR7c3ludGF4fScgaXMgb3V0c2lkZSB0aGUgaW1wbGVtZW50ZWQgc2VtYW50aWMgc3Vic2V0LmBcbiAgfSlcbn1cblxuLyoqXG4gKiBUaHJvd3MgYSBtaXNzaW5nLXR5cGUgZGlhZ25vc3RpYy5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi9zZW1hbnRpYy90eXBlcy5qc1wiKS5TZW1hbnRpY0xhbmd1YWdlfSBsYW5ndWFnZSAtIEZyb250ZW5kIGxhbmd1YWdlLlxuICogQHBhcmFtIHtzdHJpbmd9IHN1YmplY3QgLSBVbnR5cGVkIHN1YmplY3QuXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4vc2VtYW50aWMvdHlwZXMuanNcIikuU291cmNlTG9jYXRpb24gfCB1bmRlZmluZWR9IGxvY2F0aW9uIC0gU291cmNlIGxvY2F0aW9uLlxuICogQHJldHVybnMge25ldmVyfSBBbHdheXMgdGhyb3dzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWlzc2luZ1R5cGUobGFuZ3VhZ2UsIHN1YmplY3QsIGxvY2F0aW9uKSB7XG4gIHRocm93IG5ldyBTZW1hbnRpZm9sZERpYWdub3N0aWMoe1xuICAgIGNvZGU6IFwiTUlTU0lOR19UWVBFXCIsXG4gICAgbGFuZ3VhZ2UsXG4gICAgbG9jYXRpb24sXG4gICAgbWVzc2FnZTogYCR7c3ViamVjdH0gcmVxdWlyZXMgYW4gZXhwbGljaXQgc3VwcG9ydGVkIHNjYWxhciB0eXBlOiBpbnRlZ2VyLCBib29sZWFuLCBvciBzdHJpbmcuYFxuICB9KVxufVxuXG4vKipcbiAqIFRocm93cyBhIGxhbmd1YWdlLW5ldXRyYWwgc2VtYW50aWMgZGlhZ25vc3RpYyBkaXNjb3ZlcmVkIGFmdGVyIGFkYXB0YXRpb24uXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4vc2VtYW50aWMvdHlwZXMuanNcIikuU2VtYW50aWNMYW5ndWFnZX0gbGFuZ3VhZ2UgLSBTb3VyY2UgbGFuZ3VhZ2UuXG4gKiBAcGFyYW0ge3N0cmluZ30gY29kZSAtIFN0YWJsZSBzZW1hbnRpYyBkaWFnbm9zdGljIGNvZGUuXG4gKiBAcGFyYW0ge3N0cmluZ30gZGV0YWlsIC0gSHVtYW4tcmVhZGFibGUgc2VtYW50aWMgZmFpbHVyZS5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi9zZW1hbnRpYy90eXBlcy5qc1wiKS5Tb3VyY2VMb2NhdGlvbiB8IHVuZGVmaW5lZH0gbG9jYXRpb24gLSBTb3VyY2UgbG9jYXRpb24uXG4gKiBAcmV0dXJucyB7bmV2ZXJ9IEFsd2F5cyB0aHJvd3MuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZW1hbnRpY0ZhaWx1cmUobGFuZ3VhZ2UsIGNvZGUsIGRldGFpbCwgbG9jYXRpb24pIHtcbiAgdGhyb3cgbmV3IFNlbWFudGlmb2xkRGlhZ25vc3RpYyh7Y29kZSwgbGFuZ3VhZ2UsIGxvY2F0aW9uLCBtZXNzYWdlOiBkZXRhaWx9KVxufVxuXG4vKipcbiAqIFRocm93cyBhbiB1bnN1cHBvcnRlZCBiYWNrZW5kLWNhcGFiaWxpdHkgZGlhZ25vc3RpYy5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi9zZW1hbnRpYy90eXBlcy5qc1wiKS5CYWNrZW5kTGFuZ3VhZ2V9IGxhbmd1YWdlIC0gQmFja2VuZCBsYW5ndWFnZSBvciBiaW5hcnkgdGFyZ2V0LlxuICogQHBhcmFtIHtzdHJpbmd9IGNhcGFiaWxpdHkgLSBVbnN1cHBvcnRlZCBzZW1hbnRpYyBjYXBhYmlsaXR5LlxuICogQHBhcmFtIHtpbXBvcnQoXCIuL3NlbWFudGljL3R5cGVzLmpzXCIpLlNvdXJjZUxvY2F0aW9uIHwgdW5kZWZpbmVkfSBsb2NhdGlvbiAtIFNlbWFudGljIHNvdXJjZSBsb2NhdGlvbi5cbiAqIEByZXR1cm5zIHtuZXZlcn0gQWx3YXlzIHRocm93cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVuc3VwcG9ydGVkQ2FwYWJpbGl0eShsYW5ndWFnZSwgY2FwYWJpbGl0eSwgbG9jYXRpb24pIHtcbiAgdGhyb3cgbmV3IFNlbWFudGlmb2xkRGlhZ25vc3RpYyh7XG4gICAgY29kZTogXCJVTlNVUFBPUlRFRF9DQVBBQklMSVRZXCIsXG4gICAgbGFuZ3VhZ2UsXG4gICAgbG9jYXRpb24sXG4gICAgbWVzc2FnZTogYEJhY2tlbmQgY2Fubm90IGVtaXQgc2VtYW50aWMgY2FwYWJpbGl0eSAnJHtjYXBhYmlsaXR5fScuYFxuICB9KVxufVxuXG4vKipcbiAqIFRocm93cyB3aGVuIGEgcmVnaXN0ZXJlZCBpZGVudGl0eSBsYWNrcyBvbmUgcmVxdWVzdGVkIHJvbGUuXG4gKiBAcGFyYW0ge3N0cmluZ30gbGFuZ3VhZ2UgLSBSZWdpc3RlcmVkIGxhbmd1YWdlIG9yIHRhcmdldCBpZGVudGl0eS5cbiAqIEBwYXJhbSB7c3RyaW5nfSByb2xlIC0gUmVxdWVzdGVkIHJlZ2lzdHJ5IHJvbGUuXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4vc2VtYW50aWMvdHlwZXMuanNcIikuU291cmNlTG9jYXRpb24gfCB1bmRlZmluZWR9IFtsb2NhdGlvbl0gLSBSZWxhdGVkIHNlbWFudGljIGxvY2F0aW9uLlxuICogQHJldHVybnMge25ldmVyfSBBbHdheXMgdGhyb3dzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdW5zdXBwb3J0ZWRSb2xlKGxhbmd1YWdlLCByb2xlLCBsb2NhdGlvbikge1xuICB0aHJvdyBuZXcgU2VtYW50aWZvbGREaWFnbm9zdGljKHtcbiAgICBjb2RlOiBcIlVOU1VQUE9SVEVEX1JPTEVcIixcbiAgICBsYW5ndWFnZSxcbiAgICBsb2NhdGlvbixcbiAgICBtZXNzYWdlOiBgUmVnaXN0ZXJlZCBsYW5ndWFnZSBvciB0YXJnZXQgZG9lcyBub3QgcHJvdmlkZSByb2xlICcke3JvbGV9Jy5gXG4gIH0pXG59XG4iXX0=
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reports whether a registered frontend participates in the explicit Task-010 program profile.
|
|
3
|
+
* @param {string} language - Registered source identity.
|
|
4
|
+
* @returns {boolean} Whether the profile accepts the language.
|
|
5
|
+
*/
|
|
6
|
+
export declare function supportsProgramSourceLanguage(language: string): boolean;
|
|
1
7
|
export type ProgramSource = {
|
|
2
8
|
facade?: import("../stdlib-facades.js").StdlibFacadeRecord;
|
|
3
9
|
filename: string;
|