semantifold 0.9.0 → 0.11.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.
Files changed (198) hide show
  1. package/README.md +6 -3
  2. package/bin/semantifold.js +6 -0
  3. package/build/bin/semantifold.d.ts +3 -0
  4. package/build/bin/semantifold.d.ts.map +1 -0
  5. package/build/bin/semantifold.js +5 -0
  6. package/build/index.d.ts +8 -0
  7. package/build/index.d.ts.map +1 -1
  8. package/build/index.js +9 -1
  9. package/build/src/artifact-path.d.ts +16 -0
  10. package/build/src/artifact-path.d.ts.map +1 -1
  11. package/build/src/artifact-path.js +29 -3
  12. package/build/src/backends/c-check.d.ts +7 -0
  13. package/build/src/backends/c-check.d.ts.map +1 -0
  14. package/build/src/backends/c-check.js +65 -0
  15. package/build/src/backends/check-plan.d.ts +96 -0
  16. package/build/src/backends/check-plan.d.ts.map +1 -0
  17. package/build/src/backends/check-plan.js +135 -0
  18. package/build/src/backends/cpp-check.d.ts +7 -0
  19. package/build/src/backends/cpp-check.d.ts.map +1 -0
  20. package/build/src/backends/cpp-check.js +59 -0
  21. package/build/src/backends/csharp-check.d.ts +7 -0
  22. package/build/src/backends/csharp-check.d.ts.map +1 -0
  23. package/build/src/backends/csharp-check.js +125 -0
  24. package/build/src/backends/csharp.d.ts +1 -0
  25. package/build/src/backends/csharp.d.ts.map +1 -1
  26. package/build/src/backends/csharp.js +5 -4
  27. package/build/src/backends/dart-check.d.ts +7 -0
  28. package/build/src/backends/dart-check.d.ts.map +1 -0
  29. package/build/src/backends/dart-check.js +103 -0
  30. package/build/src/backends/dart.d.ts +2 -0
  31. package/build/src/backends/dart.d.ts.map +1 -1
  32. package/build/src/backends/dart.js +5 -5
  33. package/build/src/backends/go-check.d.ts +7 -0
  34. package/build/src/backends/go-check.d.ts.map +1 -0
  35. package/build/src/backends/go-check.js +77 -0
  36. package/build/src/backends/go.d.ts +1 -0
  37. package/build/src/backends/go.d.ts.map +1 -1
  38. package/build/src/backends/go.js +3 -3
  39. package/build/src/backends/java-check.d.ts +21 -0
  40. package/build/src/backends/java-check.d.ts.map +1 -0
  41. package/build/src/backends/java-check.js +73 -0
  42. package/build/src/backends/javascript-check.d.ts +7 -0
  43. package/build/src/backends/javascript-check.d.ts.map +1 -0
  44. package/build/src/backends/javascript-check.js +29 -0
  45. package/build/src/backends/kotlin-check.d.ts +7 -0
  46. package/build/src/backends/kotlin-check.d.ts.map +1 -0
  47. package/build/src/backends/kotlin-check.js +31 -0
  48. package/build/src/backends/kotlin.d.ts +1 -1
  49. package/build/src/backends/kotlin.js +2 -2
  50. package/build/src/backends/php-check.d.ts +7 -0
  51. package/build/src/backends/php-check.d.ts.map +1 -0
  52. package/build/src/backends/php-check.js +21 -0
  53. package/build/src/backends/program.d.ts +7 -0
  54. package/build/src/backends/program.d.ts.map +1 -1
  55. package/build/src/backends/program.js +16 -1
  56. package/build/src/backends/python-check.d.ts +7 -0
  57. package/build/src/backends/python-check.d.ts.map +1 -0
  58. package/build/src/backends/python-check.js +28 -0
  59. package/build/src/backends/ruby-check.d.ts +7 -0
  60. package/build/src/backends/ruby-check.d.ts.map +1 -0
  61. package/build/src/backends/ruby-check.js +21 -0
  62. package/build/src/backends/rust-check.d.ts +7 -0
  63. package/build/src/backends/rust-check.d.ts.map +1 -0
  64. package/build/src/backends/rust-check.js +65 -0
  65. package/build/src/backends/shared.d.ts.map +1 -1
  66. package/build/src/backends/shared.js +29 -1
  67. package/build/src/backends/swift-check.d.ts +7 -0
  68. package/build/src/backends/swift-check.d.ts.map +1 -0
  69. package/build/src/backends/swift-check.js +77 -0
  70. package/build/src/backends/typescript-check.d.ts +7 -0
  71. package/build/src/backends/typescript-check.d.ts.map +1 -0
  72. package/build/src/backends/typescript-check.js +33 -0
  73. package/build/src/backends/zig-check.d.ts +7 -0
  74. package/build/src/backends/zig-check.d.ts.map +1 -0
  75. package/build/src/backends/zig-check.js +70 -0
  76. package/build/src/diagnostic.d.ts +13 -1
  77. package/build/src/diagnostic.d.ts.map +1 -1
  78. package/build/src/diagnostic.js +14 -2
  79. package/build/src/frontends/java.d.ts.map +1 -1
  80. package/build/src/frontends/java.js +23 -1
  81. package/build/src/frontends/javascript-typescript.d.ts.map +1 -1
  82. package/build/src/frontends/javascript-typescript.js +45 -4
  83. package/build/src/frontends/php.d.ts.map +1 -1
  84. package/build/src/frontends/php.js +54 -3
  85. package/build/src/frontends/program.d.ts +6 -0
  86. package/build/src/frontends/program.d.ts.map +1 -1
  87. package/build/src/frontends/program.js +9 -1
  88. package/build/src/frontends/ruby.d.ts.map +1 -1
  89. package/build/src/frontends/ruby.js +55 -5
  90. package/build/src/language-registry.d.ts +54 -0
  91. package/build/src/language-registry.d.ts.map +1 -1
  92. package/build/src/language-registry.js +124 -10
  93. package/build/src/project-build.d.ts +172 -0
  94. package/build/src/project-build.d.ts.map +1 -0
  95. package/build/src/project-build.js +320 -0
  96. package/build/src/project-cli.d.ts +40 -0
  97. package/build/src/project-cli.d.ts.map +1 -0
  98. package/build/src/project-cli.js +145 -0
  99. package/build/src/project-manifest.d.ts +148 -0
  100. package/build/src/project-manifest.d.ts.map +1 -0
  101. package/build/src/project-manifest.js +432 -0
  102. package/build/src/project-reporter.d.ts +81 -0
  103. package/build/src/project-reporter.d.ts.map +1 -0
  104. package/build/src/project-reporter.js +293 -0
  105. package/build/src/project-snapshot.d.ts +129 -0
  106. package/build/src/project-snapshot.d.ts.map +1 -0
  107. package/build/src/project-snapshot.js +362 -0
  108. package/build/src/project-watch-reporter.d.ts +125 -0
  109. package/build/src/project-watch-reporter.d.ts.map +1 -0
  110. package/build/src/project-watch-reporter.js +280 -0
  111. package/build/src/project-watch.d.ts +133 -0
  112. package/build/src/project-watch.d.ts.map +1 -0
  113. package/build/src/project-watch.js +839 -0
  114. package/build/src/publication.d.ts +69 -5
  115. package/build/src/publication.d.ts.map +1 -1
  116. package/build/src/publication.js +246 -57
  117. package/build/src/semantic/effects.js +3 -1
  118. package/build/src/semantic/provenance.d.ts.map +1 -1
  119. package/build/src/semantic/provenance.js +11 -1
  120. package/build/src/semantic/types.d.ts +355 -4
  121. package/build/src/semantic/types.d.ts.map +1 -1
  122. package/build/src/semantic/types.js +92 -3
  123. package/build/src/semantic/validate.js +18 -1
  124. package/build/src/subprocess.d.ts +8 -0
  125. package/build/src/subprocess.d.ts.map +1 -1
  126. package/build/src/subprocess.js +50 -9
  127. package/build/src/target-check.d.ts +52 -0
  128. package/build/src/target-check.d.ts.map +1 -0
  129. package/build/src/target-check.js +796 -0
  130. package/build/src/toolchains.d.ts.map +1 -1
  131. package/build/src/toolchains.js +3 -3
  132. package/docs/adr-expression-breadth.md +186 -0
  133. package/docs/architecture.md +3 -1
  134. package/docs/c.md +4 -0
  135. package/docs/cpp.md +4 -0
  136. package/docs/dart.md +4 -0
  137. package/docs/generated-artifact-publication.md +11 -8
  138. package/docs/kotlin.md +2 -2
  139. package/docs/language-support.md +40 -6
  140. package/docs/parser-qualification.md +1 -1
  141. package/docs/project-build-cli.md +147 -0
  142. package/docs/project-watch.md +60 -0
  143. package/docs/rust.md +4 -0
  144. package/docs/swift.md +2 -0
  145. package/docs/testing.md +70 -3
  146. package/docs/watch-build-pipeline.md +39 -23
  147. package/docs/zig.md +2 -0
  148. package/examples/jsdoc-java-watch/expected-output.txt +3 -0
  149. package/examples/jsdoc-java-watch/semantifold.json +23 -0
  150. package/examples/jsdoc-java-watch/src/main.js +21 -0
  151. package/index.js +8 -0
  152. package/package.json +6 -1
  153. package/src/artifact-path.js +31 -2
  154. package/src/backends/c-check.js +80 -0
  155. package/src/backends/check-plan.js +147 -0
  156. package/src/backends/cpp-check.js +73 -0
  157. package/src/backends/csharp-check.js +139 -0
  158. package/src/backends/csharp.js +4 -3
  159. package/src/backends/dart-check.js +117 -0
  160. package/src/backends/dart.js +4 -4
  161. package/src/backends/go-check.js +89 -0
  162. package/src/backends/go.js +2 -2
  163. package/src/backends/java-check.js +77 -0
  164. package/src/backends/javascript-check.js +33 -0
  165. package/src/backends/kotlin-check.js +41 -0
  166. package/src/backends/kotlin.js +1 -1
  167. package/src/backends/php-check.js +23 -0
  168. package/src/backends/program.js +17 -0
  169. package/src/backends/python-check.js +30 -0
  170. package/src/backends/ruby-check.js +23 -0
  171. package/src/backends/rust-check.js +78 -0
  172. package/src/backends/shared.js +30 -0
  173. package/src/backends/swift-check.js +89 -0
  174. package/src/backends/typescript-check.js +37 -0
  175. package/src/backends/zig-check.js +81 -0
  176. package/src/diagnostic.js +9 -1
  177. package/src/frontends/java.js +24 -0
  178. package/src/frontends/javascript-typescript.js +49 -2
  179. package/src/frontends/php.js +61 -2
  180. package/src/frontends/program.js +9 -0
  181. package/src/frontends/ruby.js +62 -2
  182. package/src/language-registry.js +130 -9
  183. package/src/project-build.js +353 -0
  184. package/src/project-cli.js +155 -0
  185. package/src/project-manifest.js +479 -0
  186. package/src/project-reporter.js +320 -0
  187. package/src/project-snapshot.js +403 -0
  188. package/src/project-watch-reporter.js +303 -0
  189. package/src/project-watch.js +870 -0
  190. package/src/publication.js +275 -58
  191. package/src/semantic/effects.js +1 -0
  192. package/src/semantic/provenance.js +8 -0
  193. package/src/semantic/types.js +101 -2
  194. package/src/semantic/validate.js +26 -0
  195. package/src/subprocess.js +49 -8
  196. package/src/target-check.js +844 -0
  197. package/src/toolchains.js +3 -2
  198. 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
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/backends/shared.js"],"names":[],"mappings":"AAqDA;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EALjC,OAAO,sBAAsB,EAAE,cAKE,EAAE,QAAQ,EAJ3C,OAAO,sBAAsB,EAAE,eAIY,EAAE,OAAO,AAH5D,CACA,EADQ;IAAC,sBAAsB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,sBAAsB,EAAE,mBAAmB,CAAC,CAAC;IAAC,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,sBAAsB,EAAE,iBAAiB,CAAC,CAAC;IAAC,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,sBAAsB,EAAE,gBAAgB,CAAC,CAAC;IAAC,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,sBAAsB,EAAE,gBAAgB,CAAC,CAAC;IAAC,kBAAkB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;CAG/W,GAFvD,IAAI,CA4GhB;AAiyDD;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAPpB,OAAO,aAAa,EAAE,YAOF,EAAE,IAAI,EAN1B,OAAO,sBAAsB,EAAE,0BAML,EAAE,IAAI,EALhC,MAKgC,EAAE,QAAQ,EAJ1C,OAAO,sBAAsB,EAAE,mBAIW,EAAE,SAAS,AAH7D,CACA,EADQ,OAG6D,GAF3D,IAAI,CA4EhB;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAP1B,OAAO,aAAa,EAAE,YAOI,EAAE,UAAU,EANtC,OAAO,sBAAsB,EAAE,UAMO,EAAE,IAAI,EAL5C,MAK4C,EAAE,QAAQ,EAJtD,OAAO,sBAAsB,EAAE,mBAIuB,EAAE,cAAc,EAHtE,CAAC,IAAI,EAAE,MAAM,KAAK,MAGoD,GAFpE,IAAI,CAqZhB;AAkED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAJ9B,OAAO,aAAa,EAAE,YAIQ,EAAE,UAAU,EAH1C,OAAO,sBAAsB,EAAE,UAGW,GAFxC,MAAM,CAiClB;AAWD;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAAC,MAAM,EAH1C,OAAO,sBAAsB,EAAE,cAGW,GAFxC,OAAO,CAKnB"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/backends/shared.js"],"names":[],"mappings":"AAsDA;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EALjC,OAAO,sBAAsB,EAAE,cAKE,EAAE,QAAQ,EAJ3C,OAAO,sBAAsB,EAAE,eAIY,EAAE,OAAO,AAH5D,CACA,EADQ;IAAC,sBAAsB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,sBAAsB,EAAE,mBAAmB,CAAC,CAAC;IAAC,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,sBAAsB,EAAE,iBAAiB,CAAC,CAAC;IAAC,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,sBAAsB,EAAE,gBAAgB,CAAC,CAAC;IAAC,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,sBAAsB,EAAE,gBAAgB,CAAC,CAAC;IAAC,kBAAkB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;CAG/W,GAFvD,IAAI,CA4GhB;AAmzDD;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAPpB,OAAO,aAAa,EAAE,YAOF,EAAE,IAAI,EAN1B,OAAO,sBAAsB,EAAE,0BAML,EAAE,IAAI,EALhC,MAKgC,EAAE,QAAQ,EAJ1C,OAAO,sBAAsB,EAAE,mBAIW,EAAE,SAAS,AAH7D,CACA,EADQ,OAG6D,GAF3D,IAAI,CA4EhB;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAP1B,OAAO,aAAa,EAAE,YAOI,EAAE,UAAU,EANtC,OAAO,sBAAsB,EAAE,UAMO,EAAE,IAAI,EAL5C,MAK4C,EAAE,QAAQ,EAJtD,OAAO,sBAAsB,EAAE,mBAIuB,EAAE,cAAc,EAHtE,CAAC,IAAI,EAAE,MAAM,KAAK,MAGoD,GAFpE,IAAI,CAgahB;AAkED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAJ9B,OAAO,aAAa,EAAE,YAIQ,EAAE,UAAU,EAH1C,OAAO,sBAAsB,EAAE,UAGW,GAFxC,MAAM,CAiClB;AAWD;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAAC,MAAM,EAH1C,OAAO,sBAAsB,EAAE,cAGW,GAFxC,OAAO,CAKnB"}