@velarscript/cli 0.10.1

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 (228) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +117 -0
  3. package/dist/application-package-host.d.ts +5 -0
  4. package/dist/application-package-host.d.ts.map +1 -0
  5. package/dist/application-package-host.js +67 -0
  6. package/dist/application-package-host.js.map +1 -0
  7. package/dist/bounded-text.d.ts +2 -0
  8. package/dist/bounded-text.d.ts.map +1 -0
  9. package/dist/bounded-text.js +13 -0
  10. package/dist/bounded-text.js.map +1 -0
  11. package/dist/browser-process-owner.d.ts +15 -0
  12. package/dist/browser-process-owner.d.ts.map +1 -0
  13. package/dist/browser-process-owner.js +151 -0
  14. package/dist/browser-process-owner.js.map +1 -0
  15. package/dist/browser-test-runner.d.ts +11 -0
  16. package/dist/browser-test-runner.d.ts.map +1 -0
  17. package/dist/browser-test-runner.js +1022 -0
  18. package/dist/browser-test-runner.js.map +1 -0
  19. package/dist/build-engine-tool.d.ts +3 -0
  20. package/dist/build-engine-tool.d.ts.map +1 -0
  21. package/dist/build-engine-tool.js +34 -0
  22. package/dist/build-engine-tool.js.map +1 -0
  23. package/dist/build-staging.d.ts +3 -0
  24. package/dist/build-staging.d.ts.map +1 -0
  25. package/dist/build-staging.js +3 -0
  26. package/dist/build-staging.js.map +1 -0
  27. package/dist/bundled-application-package-host-registry.d.ts +10 -0
  28. package/dist/bundled-application-package-host-registry.d.ts.map +1 -0
  29. package/dist/bundled-application-package-host-registry.js +16 -0
  30. package/dist/bundled-application-package-host-registry.js.map +1 -0
  31. package/dist/bundled-extension-registry.d.ts +22 -0
  32. package/dist/bundled-extension-registry.d.ts.map +1 -0
  33. package/dist/bundled-extension-registry.js +10 -0
  34. package/dist/bundled-extension-registry.js.map +1 -0
  35. package/dist/canonical-path.d.ts +3 -0
  36. package/dist/canonical-path.d.ts.map +1 -0
  37. package/dist/canonical-path.js +30 -0
  38. package/dist/canonical-path.js.map +1 -0
  39. package/dist/cli.d.ts +3 -0
  40. package/dist/cli.d.ts.map +1 -0
  41. package/dist/cli.js +1274 -0
  42. package/dist/cli.js.map +1 -0
  43. package/dist/config.d.ts +26 -0
  44. package/dist/config.d.ts.map +1 -0
  45. package/dist/config.js +403 -0
  46. package/dist/config.js.map +1 -0
  47. package/dist/deployment-verifier.d.ts +34 -0
  48. package/dist/deployment-verifier.d.ts.map +1 -0
  49. package/dist/deployment-verifier.js +260 -0
  50. package/dist/deployment-verifier.js.map +1 -0
  51. package/dist/dev-server.d.ts +3 -0
  52. package/dist/dev-server.d.ts.map +1 -0
  53. package/dist/dev-server.js +464 -0
  54. package/dist/dev-server.js.map +1 -0
  55. package/dist/embedded-modules.d.ts +17 -0
  56. package/dist/embedded-modules.d.ts.map +1 -0
  57. package/dist/embedded-modules.js +33 -0
  58. package/dist/embedded-modules.js.map +1 -0
  59. package/dist/extension-metadata.d.ts +23 -0
  60. package/dist/extension-metadata.d.ts.map +1 -0
  61. package/dist/extension-metadata.js +254 -0
  62. package/dist/extension-metadata.js.map +1 -0
  63. package/dist/file-integrity.d.ts +7 -0
  64. package/dist/file-integrity.d.ts.map +1 -0
  65. package/dist/file-integrity.js +14 -0
  66. package/dist/file-integrity.js.map +1 -0
  67. package/dist/framework-host.d.ts +12 -0
  68. package/dist/framework-host.d.ts.map +1 -0
  69. package/dist/framework-host.js +46 -0
  70. package/dist/framework-host.js.map +1 -0
  71. package/dist/host-error.d.ts +6 -0
  72. package/dist/host-error.d.ts.map +1 -0
  73. package/dist/host-error.js +54 -0
  74. package/dist/host-error.js.map +1 -0
  75. package/dist/installed-package.d.ts +9 -0
  76. package/dist/installed-package.d.ts.map +1 -0
  77. package/dist/installed-package.js +23 -0
  78. package/dist/installed-package.js.map +1 -0
  79. package/dist/language-server-bundle-entry.d.ts +2 -0
  80. package/dist/language-server-bundle-entry.d.ts.map +1 -0
  81. package/dist/language-server-bundle-entry.js +7 -0
  82. package/dist/language-server-bundle-entry.js.map +1 -0
  83. package/dist/language-server-tool.d.ts +3 -0
  84. package/dist/language-server-tool.d.ts.map +1 -0
  85. package/dist/language-server-tool.js +30 -0
  86. package/dist/language-server-tool.js.map +1 -0
  87. package/dist/language-server.d.ts +9 -0
  88. package/dist/language-server.d.ts.map +1 -0
  89. package/dist/language-server.js +1733 -0
  90. package/dist/language-server.js.map +1 -0
  91. package/dist/mechanical-fixer.d.ts +30 -0
  92. package/dist/mechanical-fixer.d.ts.map +1 -0
  93. package/dist/mechanical-fixer.js +103 -0
  94. package/dist/mechanical-fixer.js.map +1 -0
  95. package/dist/module-assets.d.ts +11 -0
  96. package/dist/module-assets.d.ts.map +1 -0
  97. package/dist/module-assets.js +90 -0
  98. package/dist/module-assets.js.map +1 -0
  99. package/dist/npm.d.ts +23 -0
  100. package/dist/npm.d.ts.map +1 -0
  101. package/dist/npm.js +456 -0
  102. package/dist/npm.js.map +1 -0
  103. package/dist/official-language-server-extensions.d.ts +2 -0
  104. package/dist/official-language-server-extensions.d.ts.map +1 -0
  105. package/dist/official-language-server-extensions.js +38 -0
  106. package/dist/official-language-server-extensions.js.map +1 -0
  107. package/dist/official-script-language-service.d.ts +2 -0
  108. package/dist/official-script-language-service.d.ts.map +1 -0
  109. package/dist/official-script-language-service.js +10 -0
  110. package/dist/official-script-language-service.js.map +1 -0
  111. package/dist/official-tool-assets.d.ts +3 -0
  112. package/dist/official-tool-assets.d.ts.map +1 -0
  113. package/dist/official-tool-assets.js +41 -0
  114. package/dist/official-tool-assets.js.map +1 -0
  115. package/dist/ownership-graph.d.ts +46 -0
  116. package/dist/ownership-graph.d.ts.map +1 -0
  117. package/dist/ownership-graph.js +255 -0
  118. package/dist/ownership-graph.js.map +1 -0
  119. package/dist/package-manager.d.ts +20 -0
  120. package/dist/package-manager.d.ts.map +1 -0
  121. package/dist/package-manager.js +345 -0
  122. package/dist/package-manager.js.map +1 -0
  123. package/dist/packaged-official-tool.d.ts +8 -0
  124. package/dist/packaged-official-tool.d.ts.map +1 -0
  125. package/dist/packaged-official-tool.js +32 -0
  126. package/dist/packaged-official-tool.js.map +1 -0
  127. package/dist/preview-server.d.ts +11 -0
  128. package/dist/preview-server.d.ts.map +1 -0
  129. package/dist/preview-server.js +163 -0
  130. package/dist/preview-server.js.map +1 -0
  131. package/dist/production-build.d.ts +57 -0
  132. package/dist/production-build.d.ts.map +1 -0
  133. package/dist/production-build.js +332 -0
  134. package/dist/production-build.js.map +1 -0
  135. package/dist/production-verifier.d.ts +9 -0
  136. package/dist/production-verifier.d.ts.map +1 -0
  137. package/dist/production-verifier.js +268 -0
  138. package/dist/production-verifier.js.map +1 -0
  139. package/dist/program-runner.d.ts +7 -0
  140. package/dist/program-runner.d.ts.map +1 -0
  141. package/dist/program-runner.js +98 -0
  142. package/dist/program-runner.js.map +1 -0
  143. package/dist/project-check.d.ts +31 -0
  144. package/dist/project-check.d.ts.map +1 -0
  145. package/dist/project-check.js +95 -0
  146. package/dist/project-check.js.map +1 -0
  147. package/dist/project-format.d.ts +6 -0
  148. package/dist/project-format.d.ts.map +1 -0
  149. package/dist/project-format.js +21 -0
  150. package/dist/project-format.js.map +1 -0
  151. package/dist/project-semantic.d.ts +62 -0
  152. package/dist/project-semantic.d.ts.map +1 -0
  153. package/dist/project-semantic.js +1079 -0
  154. package/dist/project-semantic.js.map +1 -0
  155. package/dist/project-session.d.ts +36 -0
  156. package/dist/project-session.d.ts.map +1 -0
  157. package/dist/project-session.js +339 -0
  158. package/dist/project-session.js.map +1 -0
  159. package/dist/project-task-bundle-entry.d.ts +2 -0
  160. package/dist/project-task-bundle-entry.d.ts.map +1 -0
  161. package/dist/project-task-bundle-entry.js +18 -0
  162. package/dist/project-task-bundle-entry.js.map +1 -0
  163. package/dist/project-task-invocation.d.ts +16 -0
  164. package/dist/project-task-invocation.d.ts.map +1 -0
  165. package/dist/project-task-invocation.js +72 -0
  166. package/dist/project-task-invocation.js.map +1 -0
  167. package/dist/project-task-tool.d.ts +3 -0
  168. package/dist/project-task-tool.d.ts.map +1 -0
  169. package/dist/project-task-tool.js +61 -0
  170. package/dist/project-task-tool.js.map +1 -0
  171. package/dist/project.d.ts +71 -0
  172. package/dist/project.d.ts.map +1 -0
  173. package/dist/project.js +1750 -0
  174. package/dist/project.js.map +1 -0
  175. package/dist/reproduction.d.ts +50 -0
  176. package/dist/reproduction.d.ts.map +1 -0
  177. package/dist/reproduction.js +321 -0
  178. package/dist/reproduction.js.map +1 -0
  179. package/dist/script-language-service.d.ts +82 -0
  180. package/dist/script-language-service.d.ts.map +1 -0
  181. package/dist/script-language-service.js +18 -0
  182. package/dist/script-language-service.js.map +1 -0
  183. package/dist/source-limits.d.ts +5 -0
  184. package/dist/source-limits.d.ts.map +1 -0
  185. package/dist/source-limits.js +19 -0
  186. package/dist/source-limits.js.map +1 -0
  187. package/dist/standalone-build.d.ts +15 -0
  188. package/dist/standalone-build.d.ts.map +1 -0
  189. package/dist/standalone-build.js +76 -0
  190. package/dist/standalone-build.js.map +1 -0
  191. package/dist/standard-modules.d.ts +22 -0
  192. package/dist/standard-modules.d.ts.map +1 -0
  193. package/dist/standard-modules.js +3066 -0
  194. package/dist/standard-modules.js.map +1 -0
  195. package/dist/static-deployment.d.ts +48 -0
  196. package/dist/static-deployment.d.ts.map +1 -0
  197. package/dist/static-deployment.js +142 -0
  198. package/dist/static-deployment.js.map +1 -0
  199. package/dist/test-output.d.ts +20 -0
  200. package/dist/test-output.d.ts.map +1 -0
  201. package/dist/test-output.js +119 -0
  202. package/dist/test-output.js.map +1 -0
  203. package/dist/test-runner.d.ts +13 -0
  204. package/dist/test-runner.d.ts.map +1 -0
  205. package/dist/test-runner.js +226 -0
  206. package/dist/test-runner.js.map +1 -0
  207. package/dist/typescript-declarations.d.ts +20 -0
  208. package/dist/typescript-declarations.d.ts.map +1 -0
  209. package/dist/typescript-declarations.js +1609 -0
  210. package/dist/typescript-declarations.js.map +1 -0
  211. package/dist/uncaught-program-error.d.ts +24 -0
  212. package/dist/uncaught-program-error.d.ts.map +1 -0
  213. package/dist/uncaught-program-error.js +105 -0
  214. package/dist/uncaught-program-error.js.map +1 -0
  215. package/dist/unowned-errors.d.ts +56 -0
  216. package/dist/unowned-errors.d.ts.map +1 -0
  217. package/dist/unowned-errors.js +82 -0
  218. package/dist/unowned-errors.js.map +1 -0
  219. package/dist/version.d.ts +3 -0
  220. package/dist/version.d.ts.map +1 -0
  221. package/dist/version.js +3 -0
  222. package/dist/version.js.map +1 -0
  223. package/dist/workspace-index.d.ts +78 -0
  224. package/dist/workspace-index.d.ts.map +1 -0
  225. package/dist/workspace-index.js +493 -0
  226. package/dist/workspace-index.js.map +1 -0
  227. package/package.json +45 -0
  228. package/skill/ai-skill.md +749 -0
@@ -0,0 +1,72 @@
1
+ import { tmpdir } from "node:os";
2
+ import { basename, dirname, isAbsolute, relative } from "node:path";
3
+ export const projectTaskCommands = [
4
+ "check",
5
+ "test",
6
+ "browserTest",
7
+ "build",
8
+ "fix",
9
+ "package",
10
+ "run",
11
+ ];
12
+ export const projectTaskBrowserWorkerEnvironment = "VELAR_BROWSER_TEST_WORKER_V1";
13
+ const supportedProjectTaskCommands = new Set(projectTaskCommands);
14
+ const isProjectTaskCommand = (value) => typeof value === "string" && supportedProjectTaskCommands.has(value);
15
+ /**
16
+ * Translates Desktop's closed task vocabulary into the exact public CLI
17
+ * invocation. The host never accepts arbitrary CLI options; adding a task is
18
+ * an explicit capability change here and in velar/desktop.
19
+ */
20
+ export function projectTaskCliArguments(arguments_) {
21
+ const [command, projectRoot, separator, ...programArguments] = arguments_;
22
+ if (!isProjectTaskCommand(command) || typeof projectRoot !== "string"
23
+ || !isAbsolute(projectRoot) || projectRoot.length > 4096 || projectRoot.includes("\0")) {
24
+ return "invalid package-owned task invocation";
25
+ }
26
+ if (command === "run") {
27
+ if (separator !== undefined && separator !== "--")
28
+ return "invalid package-owned task invocation";
29
+ return separator === undefined ? ["run", projectRoot] : ["run", projectRoot, "--", ...programArguments];
30
+ }
31
+ if (separator !== undefined || programArguments.length > 0)
32
+ return "invalid package-owned task invocation";
33
+ if (command === "browserTest")
34
+ return ["test", projectRoot, "--browser=all"];
35
+ return [command, projectRoot];
36
+ }
37
+ /**
38
+ * The browser owner supervises its test body in a second invocation of the
39
+ * same immutable tool. Desktop strips this private marker from the initial
40
+ * task environment, so only the official supervisor can enter this path.
41
+ */
42
+ export function projectTaskBrowserWorkerCliArguments(arguments_, serializedLimits) {
43
+ if (typeof serializedLimits !== "string" || serializedLimits.length < 2 || serializedLimits.length > 4096) {
44
+ return "invalid supervised browser-test limits";
45
+ }
46
+ try {
47
+ const limits = JSON.parse(serializedLimits);
48
+ if (limits === null || typeof limits !== "object" || Array.isArray(limits)) {
49
+ return "invalid supervised browser-test limits";
50
+ }
51
+ }
52
+ catch {
53
+ return "invalid supervised browser-test limits";
54
+ }
55
+ const [command, input, browser, ...rest] = arguments_;
56
+ if (command === "test" && typeof input === "string" && isAbsolute(input)
57
+ && /^--browser=(?:chromium|firefox|webkit|all)$/u.test(browser ?? "") && rest.length === 0) {
58
+ return arguments_;
59
+ }
60
+ const [buildCommand, projectRoot, outFlag, outputDirectory, ...buildRest] = arguments_;
61
+ const temporaryRoot = typeof outputDirectory === "string" ? dirname(outputDirectory) : "";
62
+ const fromSystemTemporary = temporaryRoot === "" ? ".." : relative(tmpdir(), temporaryRoot);
63
+ if (buildCommand === "build" && typeof projectRoot === "string" && isAbsolute(projectRoot)
64
+ && outFlag === "--out-dir" && typeof outputDirectory === "string" && isAbsolute(outputDirectory)
65
+ && basename(outputDirectory) === "site" && basename(temporaryRoot).startsWith("velar-browser-tests-")
66
+ && fromSystemTemporary !== "" && fromSystemTemporary !== ".." && !fromSystemTemporary.startsWith("../")
67
+ && !isAbsolute(fromSystemTemporary) && buildRest.length === 0) {
68
+ return arguments_;
69
+ }
70
+ return "invalid supervised browser-test arguments";
71
+ }
72
+ //# sourceMappingURL=project-task-invocation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-task-invocation.js","sourceRoot":"","sources":["../src/project-task-invocation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare const VELAR_PROJECT_TASK_TOOL_ID = "velar-project-task";
2
+ export declare function buildProjectTaskTool(outputFile: string): Promise<void>;
3
+ //# sourceMappingURL=project-task-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-task-tool.d.ts","sourceRoot":"","sources":["../src/project-task-tool.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,0BAA0B,uBAAuB,CAAC;AAa/D,wBAAsB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAyC5E"}
@@ -0,0 +1,61 @@
1
+ import { chmod, copyFile, mkdir } from "node:fs/promises";
2
+ import { createRequire } from "node:module";
3
+ import { dirname, join, resolve } from "node:path";
4
+ import { fileURLToPath } from "node:url";
5
+ import { build } from "esbuild";
6
+ import { officialToolModulesPlugin } from "./official-tool-assets.js";
7
+ import { copyPackagedOfficialTool } from "./packaged-official-tool.js";
8
+ export const VELAR_PROJECT_TASK_TOOL_ID = "velar-project-task";
9
+ async function copyPlaywrightMetadata(outputFile) {
10
+ const require = createRequire(import.meta.url);
11
+ const playwrightCoreRoot = dirname(require.resolve("playwright-core/package.json"));
12
+ const destination = join(dirname(outputFile), "playwright-core");
13
+ await mkdir(destination, { recursive: true });
14
+ await Promise.all([
15
+ copyFile(join(playwrightCoreRoot, "package.json"), join(destination, "package.json")),
16
+ copyFile(join(playwrightCoreRoot, "browsers.json"), join(destination, "browsers.json")),
17
+ ]);
18
+ }
19
+ export async function buildProjectTaskTool(outputFile) {
20
+ outputFile = resolve(outputFile);
21
+ if (await copyPackagedOfficialTool(outputFile, "host/project-task.js", 0o644)) {
22
+ await Promise.all([
23
+ copyPackagedOfficialTool(join(dirname(outputFile), "playwright-core", "package.json"), "host/playwright-core/package.json", 0o644),
24
+ copyPackagedOfficialTool(join(dirname(outputFile), "playwright-core", "browsers.json"), "host/playwright-core/browsers.json", 0o644),
25
+ ]);
26
+ return;
27
+ }
28
+ const sourceExtension = import.meta.url.endsWith(".ts") ? "ts" : "js";
29
+ await mkdir(dirname(outputFile), { recursive: true });
30
+ await build({
31
+ entryPoints: [fileURLToPath(new URL(`./project-task-bundle-entry.${sourceExtension}`, import.meta.url))],
32
+ outfile: outputFile,
33
+ bundle: true,
34
+ format: "esm",
35
+ platform: "node",
36
+ target: "node24",
37
+ minify: true,
38
+ treeShaking: true,
39
+ sourcemap: false,
40
+ legalComments: "none",
41
+ logLevel: "silent",
42
+ banner: { js: "import {createRequire as __velarCreateRequire} from 'node:module';import {fileURLToPath as __velarFileURLToPath} from 'node:url';import {dirname as __velarDirname,join as __velarJoin} from 'node:path';const require=__velarCreateRequire(import.meta.url);const __filename=__velarFileURLToPath(import.meta.url);const __dirname=__velarJoin(__velarDirname(__filename),'playwright-core','lib');" },
43
+ plugins: [
44
+ {
45
+ name: "velar-project-task-browser-boundary",
46
+ setup(buildContext) {
47
+ // Browser-test tasks use Playwright's public launchServer/connect
48
+ // surface. Its package also carries optional filesystem watching and
49
+ // Chromium BiDi branches that this finite task never invokes. Keep
50
+ // those native/dynamic edges outside the self-contained task bundle;
51
+ // an accidental call still fails closed at module resolution.
52
+ buildContext.onResolve({ filter: /^(?:fsevents|chromium-bidi\/)/ }, (args) => ({ path: args.path, external: true }));
53
+ },
54
+ },
55
+ await officialToolModulesPlugin(),
56
+ ],
57
+ });
58
+ await copyPlaywrightMetadata(outputFile);
59
+ await chmod(outputFile, 0o644);
60
+ }
61
+ //# sourceMappingURL=project-task-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-task-tool.js","sourceRoot":"","sources":["../src/project-task-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAEvE,MAAM,CAAC,MAAM,0BAA0B,GAAG,oBAAoB,CAAC;AAE/D,KAAK,UAAU,sBAAsB,CAAC,UAAkB;IACtD,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC,CAAC;IACpF,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,iBAAiB,CAAC,CAAC;IACjE,MAAM,KAAK,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,QAAQ,CAAC,IAAI,CAAC,kBAAkB,EAAE,cAAc,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QACrF,QAAQ,CAAC,IAAI,CAAC,kBAAkB,EAAE,eAAe,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;KACxF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,UAAkB;IAC3D,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACjC,IAAI,MAAM,wBAAwB,CAAC,UAAU,EAAE,sBAAsB,EAAE,KAAK,CAAC,EAAE,CAAC;QAC9E,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,iBAAiB,EAAE,cAAc,CAAC,EAAE,mCAAmC,EAAE,KAAK,CAAC;YAClI,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,iBAAiB,EAAE,eAAe,CAAC,EAAE,oCAAoC,EAAE,KAAK,CAAC;SACrI,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IACD,MAAM,eAAe,GAAG,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACtE,MAAM,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,MAAM,KAAK,CAAC;QACV,WAAW,EAAE,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,+BAA+B,eAAe,EAAE,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACxG,OAAO,EAAE,UAAU;QACnB,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,MAAM;QAChB,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE,IAAI;QACZ,WAAW,EAAE,IAAI;QACjB,SAAS,EAAE,KAAK;QAChB,aAAa,EAAE,MAAM;QACrB,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,EAAE,EAAE,EAAE,sYAAsY,EAAE;QACtZ,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,qCAAqC;gBAC3C,KAAK,CAAC,YAAY;oBAChB,kEAAkE;oBAClE,qEAAqE;oBACrE,mEAAmE;oBACnE,qEAAqE;oBACrE,8DAA8D;oBAC9D,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,+BAA+B,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gBACvH,CAAC;aACF;YACD,MAAM,yBAAyB,EAAE;SAClC;KACF,CAAC,CAAC;IACH,MAAM,sBAAsB,CAAC,UAAU,CAAC,CAAC;IACzC,MAAM,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AACjC,CAAC"}
@@ -0,0 +1,71 @@
1
+ import { type CompilerExtension, type CompileResult, type ModuleInspection } from "@velarscript/compiler";
2
+ import type { ResolvedFrameworkHost } from "./config.ts";
3
+ export interface ProjectModule {
4
+ readonly inputPath: string;
5
+ readonly relativePath: string;
6
+ readonly result: CompileResult;
7
+ /**
8
+ * The module's own compile output, before the project-level cycle check
9
+ * overlaid its diagnostics. `result` is derived from this on every compile,
10
+ * so a module whose cycle diagnostic disappears recovers its emitted code
11
+ * even when incremental reuse hands the previous entry straight back.
12
+ */
13
+ readonly compiledResult?: CompileResult;
14
+ }
15
+ export interface ProjectFailure {
16
+ readonly path: string;
17
+ readonly message: string;
18
+ }
19
+ export interface ProjectNotice {
20
+ readonly path: string;
21
+ readonly message: string;
22
+ }
23
+ export interface VelarSourcePackage {
24
+ readonly name: string;
25
+ readonly root: string;
26
+ readonly entryPath: string;
27
+ }
28
+ export interface ProjectResult {
29
+ readonly entryPath: string;
30
+ readonly sourceRoot: string;
31
+ readonly projectRoot: string;
32
+ readonly publicRoot: string;
33
+ readonly compilerExtensions: readonly CompilerExtension[];
34
+ readonly extensionConfig: ReadonlyMap<string, unknown>;
35
+ readonly framework: ResolvedFrameworkHost | null;
36
+ readonly capabilities: ReadonlySet<string>;
37
+ readonly modules: readonly ProjectModule[];
38
+ readonly failures: readonly ProjectFailure[];
39
+ readonly notices: readonly ProjectNotice[];
40
+ readonly velarPackages: readonly VelarSourcePackage[];
41
+ readonly velarImports: ReadonlyMap<string, string>;
42
+ readonly externalTypeDependencies: ReadonlyMap<string, ReadonlySet<string>>;
43
+ readonly stats: ProjectCompilationStats;
44
+ }
45
+ export interface ProjectCompilationStats {
46
+ readonly moduleCount: number;
47
+ readonly compiledModules: number;
48
+ readonly reusedModules: number;
49
+ readonly affectedModules: number;
50
+ readonly durationMs: number;
51
+ }
52
+ export interface CompileProjectOptions {
53
+ readonly sourceRoot?: string;
54
+ readonly projectRoot?: string;
55
+ readonly publicRoot?: string;
56
+ readonly extensions?: readonly CompilerExtension[];
57
+ readonly extensionConfig?: ReadonlyMap<string, unknown>;
58
+ readonly framework?: ResolvedFrameworkHost | null;
59
+ readonly exportTestFunctions?: boolean;
60
+ /**
61
+ * BRG-U2: bare `import js` specifiers resolve at check time by default. A
62
+ * caller whose sources are illustrations rather than a runnable project
63
+ * (the documentation-example checker) opts out explicitly.
64
+ */
65
+ readonly resolveJavaScriptSpecifiers?: boolean;
66
+ }
67
+ export declare function projectImportKey(importerPath: string, source: string): string;
68
+ export declare function compileProject(entry: string, overrides?: ReadonlyMap<string, string>, options?: CompileProjectOptions, previous?: ProjectResult | null, changedPaths?: ReadonlySet<string>): Promise<ProjectResult>;
69
+ export declare function compileProjectEntries(entries: readonly string[], primaryEntry: string, overrides?: ReadonlyMap<string, string>, options?: CompileProjectOptions, previous?: ProjectResult | null, changedPaths?: ReadonlySet<string>): Promise<ProjectResult>;
70
+ export declare function moduleInterfaceIdentity(interface_: ModuleInspection["moduleInterface"], extensions?: readonly CompilerExtension[]): string;
71
+ //# sourceMappingURL=project.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../src/project.ts"],"names":[],"mappings":"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"}