@velarscript/cli 0.12.1 → 0.14.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 (144) hide show
  1. package/README.md +5 -13
  2. package/dist/browser-process-owner.d.ts +23 -0
  3. package/dist/browser-process-owner.d.ts.map +1 -1
  4. package/dist/browser-process-owner.js +46 -2
  5. package/dist/browser-process-owner.js.map +1 -1
  6. package/dist/browser-test-runner.d.ts.map +1 -1
  7. package/dist/browser-test-runner.js +110 -14
  8. package/dist/browser-test-runner.js.map +1 -1
  9. package/dist/cli.js +186 -106
  10. package/dist/cli.js.map +1 -1
  11. package/dist/config.d.ts.map +1 -1
  12. package/dist/config.js +28 -4
  13. package/dist/config.js.map +1 -1
  14. package/dist/dev-server.d.ts +18 -0
  15. package/dist/dev-server.d.ts.map +1 -1
  16. package/dist/dev-server.js +168 -8
  17. package/dist/dev-server.js.map +1 -1
  18. package/dist/extension-metadata.d.ts +6 -0
  19. package/dist/extension-metadata.d.ts.map +1 -1
  20. package/dist/extension-metadata.js +71 -4
  21. package/dist/extension-metadata.js.map +1 -1
  22. package/dist/format-guard.d.ts +20 -0
  23. package/dist/format-guard.d.ts.map +1 -0
  24. package/dist/format-guard.js +13 -0
  25. package/dist/format-guard.js.map +1 -0
  26. package/dist/framework-host.d.ts.map +1 -1
  27. package/dist/framework-host.js +15 -2
  28. package/dist/framework-host.js.map +1 -1
  29. package/dist/language-server-bundle-entry.js +0 -2
  30. package/dist/language-server-bundle-entry.js.map +1 -1
  31. package/dist/language-server-tool.d.ts.map +1 -1
  32. package/dist/language-server-tool.js +0 -2
  33. package/dist/language-server-tool.js.map +1 -1
  34. package/dist/language-server.d.ts +1 -1
  35. package/dist/language-server.d.ts.map +1 -1
  36. package/dist/language-server.js +87 -293
  37. package/dist/language-server.js.map +1 -1
  38. package/dist/local-request-guard.d.ts +18 -0
  39. package/dist/local-request-guard.d.ts.map +1 -0
  40. package/dist/local-request-guard.js +75 -0
  41. package/dist/local-request-guard.js.map +1 -0
  42. package/dist/mechanical-fixer.d.ts.map +1 -1
  43. package/dist/mechanical-fixer.js +116 -2
  44. package/dist/mechanical-fixer.js.map +1 -1
  45. package/dist/module-assets.d.ts +23 -0
  46. package/dist/module-assets.d.ts.map +1 -1
  47. package/dist/module-assets.js +216 -14
  48. package/dist/module-assets.js.map +1 -1
  49. package/dist/node-application.d.ts +8 -7
  50. package/dist/node-application.d.ts.map +1 -1
  51. package/dist/node-application.js +63 -32
  52. package/dist/node-application.js.map +1 -1
  53. package/dist/node-runtime-dependencies.d.ts +3 -0
  54. package/dist/node-runtime-dependencies.d.ts.map +1 -0
  55. package/dist/node-runtime-dependencies.js +32 -0
  56. package/dist/node-runtime-dependencies.js.map +1 -0
  57. package/dist/npm.d.ts +29 -0
  58. package/dist/npm.d.ts.map +1 -1
  59. package/dist/npm.js +39 -2
  60. package/dist/npm.js.map +1 -1
  61. package/dist/official-language-server-extensions.d.ts.map +1 -1
  62. package/dist/official-language-server-extensions.js +13 -0
  63. package/dist/official-language-server-extensions.js.map +1 -1
  64. package/dist/ownership-graph.d.ts.map +1 -1
  65. package/dist/ownership-graph.js +155 -38
  66. package/dist/ownership-graph.js.map +1 -1
  67. package/dist/package-manager.d.ts.map +1 -1
  68. package/dist/package-manager.js +4 -1
  69. package/dist/package-manager.js.map +1 -1
  70. package/dist/preview-server.d.ts.map +1 -1
  71. package/dist/preview-server.js +12 -4
  72. package/dist/preview-server.js.map +1 -1
  73. package/dist/production-build.d.ts.map +1 -1
  74. package/dist/production-build.js +24 -6
  75. package/dist/production-build.js.map +1 -1
  76. package/dist/production-verifier.js +3 -0
  77. package/dist/production-verifier.js.map +1 -1
  78. package/dist/project-check.d.ts +14 -1
  79. package/dist/project-check.d.ts.map +1 -1
  80. package/dist/project-check.js +17 -4
  81. package/dist/project-check.js.map +1 -1
  82. package/dist/project-format.d.ts +9 -0
  83. package/dist/project-format.d.ts.map +1 -1
  84. package/dist/project-format.js +13 -0
  85. package/dist/project-format.js.map +1 -1
  86. package/dist/project-semantic.d.ts.map +1 -1
  87. package/dist/project-semantic.js +15 -4
  88. package/dist/project-semantic.js.map +1 -1
  89. package/dist/project.d.ts +25 -0
  90. package/dist/project.d.ts.map +1 -1
  91. package/dist/project.js +341 -42
  92. package/dist/project.js.map +1 -1
  93. package/dist/reproduction.d.ts +18 -0
  94. package/dist/reproduction.d.ts.map +1 -1
  95. package/dist/reproduction.js +47 -6
  96. package/dist/reproduction.js.map +1 -1
  97. package/dist/stable-order.d.ts +17 -0
  98. package/dist/stable-order.d.ts.map +1 -0
  99. package/dist/stable-order.js +19 -0
  100. package/dist/stable-order.js.map +1 -0
  101. package/dist/standard-modules.d.ts +2 -2
  102. package/dist/standard-modules.d.ts.map +1 -1
  103. package/dist/standard-modules.js +2 -2
  104. package/dist/standard-modules.js.map +1 -1
  105. package/dist/static-deployment.d.ts.map +1 -1
  106. package/dist/static-deployment.js +27 -0
  107. package/dist/static-deployment.js.map +1 -1
  108. package/dist/test-runner.d.ts.map +1 -1
  109. package/dist/test-runner.js +196 -100
  110. package/dist/test-runner.js.map +1 -1
  111. package/dist/test-worker.d.ts +64 -0
  112. package/dist/test-worker.d.ts.map +1 -0
  113. package/dist/test-worker.js +161 -0
  114. package/dist/test-worker.js.map +1 -0
  115. package/dist/typescript-declarations.d.ts +1 -1
  116. package/dist/typescript-declarations.d.ts.map +1 -1
  117. package/dist/typescript-declarations.js +233 -21
  118. package/dist/typescript-declarations.js.map +1 -1
  119. package/dist/unowned-errors.d.ts +15 -2
  120. package/dist/unowned-errors.d.ts.map +1 -1
  121. package/dist/unowned-errors.js +13 -2
  122. package/dist/unowned-errors.js.map +1 -1
  123. package/dist/version.d.ts +1 -1
  124. package/dist/version.js +1 -1
  125. package/dist/workspace-index.d.ts.map +1 -1
  126. package/dist/workspace-index.js +42 -17
  127. package/dist/workspace-index.js.map +1 -1
  128. package/package.json +8 -8
  129. package/skill/ai-skill-node.md +91 -22
  130. package/skill/ai-skill-server.md +173 -0
  131. package/skill/ai-skill-web.md +51 -1
  132. package/skill/ai-skill.md +36 -13
  133. package/dist/official-script-language-service.d.ts +0 -2
  134. package/dist/official-script-language-service.d.ts.map +0 -1
  135. package/dist/official-script-language-service.js +0 -10
  136. package/dist/official-script-language-service.js.map +0 -1
  137. package/dist/official-tool-assets.d.ts +0 -3
  138. package/dist/official-tool-assets.d.ts.map +0 -1
  139. package/dist/official-tool-assets.js +0 -60
  140. package/dist/official-tool-assets.js.map +0 -1
  141. package/dist/script-language-service.d.ts +0 -82
  142. package/dist/script-language-service.d.ts.map +0 -1
  143. package/dist/script-language-service.js +0 -18
  144. package/dist/script-language-service.js.map +0 -1
@@ -0,0 +1,32 @@
1
+ import { cp, readFile } from "node:fs/promises";
2
+ import { createRequire } from "node:module";
3
+ import { dirname, join } from "node:path";
4
+ import { isHostErrorCode } from "./host-error.js";
5
+ const WEBSOCKET_PACKAGE = "ws";
6
+ const WEBSOCKET_VERSION = "8.21.1";
7
+ const YAML_PACKAGE = "yaml";
8
+ const YAML_VERSION = "2.9.0";
9
+ export async function writeWebSocketDependency(nodeModulesRoot) {
10
+ await writeRuntimeDependency(nodeModulesRoot, WEBSOCKET_PACKAGE, WEBSOCKET_VERSION);
11
+ }
12
+ export async function writeServerConfigurationDependency(nodeModulesRoot) {
13
+ await writeRuntimeDependency(nodeModulesRoot, YAML_PACKAGE, YAML_VERSION);
14
+ }
15
+ async function writeRuntimeDependency(nodeModulesRoot, packageName, version) {
16
+ const target = join(nodeModulesRoot, packageName);
17
+ try {
18
+ const manifest = JSON.parse(await readFile(join(target, "package.json"), "utf8"));
19
+ if (manifest.name !== packageName || manifest.version !== version) {
20
+ throw new Error(`Refusing to use incompatible Node runtime package '${target}'`);
21
+ }
22
+ return;
23
+ }
24
+ catch (error) {
25
+ if (!isHostErrorCode(error, "ENOENT"))
26
+ throw error;
27
+ }
28
+ const require = createRequire(import.meta.url);
29
+ const source = dirname(require.resolve(`${packageName}/package.json`));
30
+ await cp(source, target, { recursive: true, errorOnExist: true });
31
+ }
32
+ //# sourceMappingURL=node-runtime-dependencies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-runtime-dependencies.js","sourceRoot":"","sources":["../src/node-runtime-dependencies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAC/B,MAAM,iBAAiB,GAAG,QAAQ,CAAC;AACnC,MAAM,YAAY,GAAG,MAAM,CAAC;AAC5B,MAAM,YAAY,GAAG,OAAO,CAAC;AAE7B,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,eAAuB;IACpE,MAAM,sBAAsB,CAAC,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;AACtF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kCAAkC,CAAC,eAAuB;IAC9E,MAAM,sBAAsB,CAAC,eAAe,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;AAC5E,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,eAAuB,EAAE,WAAmB,EAAE,OAAe;IACjG,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IAClD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAA4B,CAAC;QAC7G,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,IAAI,QAAQ,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;YAClE,MAAM,IAAI,KAAK,CAAC,sDAAsD,MAAM,GAAG,CAAC,CAAC;QACnF,CAAC;QACD,OAAO;IACT,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,MAAM,KAAK,CAAC;IACrD,CAAC;IACD,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,WAAW,eAAe,CAAC,CAAC,CAAC;IACvE,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;AACpE,CAAC"}
package/dist/npm.d.ts CHANGED
@@ -12,6 +12,15 @@ export interface BrowserNpmResolution {
12
12
  readonly imports: Readonly<Record<string, string>>;
13
13
  readonly failures: readonly string[];
14
14
  }
15
+ interface PackageManifest {
16
+ readonly name?: string;
17
+ readonly version?: string;
18
+ readonly type?: string;
19
+ readonly exports?: unknown;
20
+ readonly browser?: unknown;
21
+ readonly module?: unknown;
22
+ readonly main?: unknown;
23
+ }
15
24
  /** Resolve one bare package import exactly as a browser ESM import. */
16
25
  export declare function resolveBrowserNpmEntry(specifier: string, baseDirectory: string): Promise<string>;
17
26
  export declare function resolveBrowserNpm(project: ProjectResult, invalidateRoots?: ReadonlySet<string>): Promise<BrowserNpmResolution>;
@@ -20,4 +29,24 @@ export declare function npmAsset(packages: readonly BrowserNpmPackage[], pathnam
20
29
  readonly sizeBytes: number;
21
30
  readonly contentType: string;
22
31
  } | null>;
32
+ /**
33
+ * The identity a resolved package is cached, routed, and imported under. The
34
+ * manifest's own `name` is whatever the dependency wrote about itself — a
35
+ * backslash in it is a path separator `join` honours on Windows — so it is
36
+ * taken only when it parses as an npm package name and names the package that
37
+ * was actually resolved. Every other reader of an installed manifest in this
38
+ * CLI makes the same comparison (extension-metadata.ts:173, project.ts:1679,
39
+ * typescript-declarations.ts:89); this one was missed.
40
+ */
41
+ export declare function browserPackageIdentity(manifest: PackageManifest, requestedName: string): string;
42
+ /**
43
+ * Where one package version is prebundled. `ensurePackageBundle` removes this
44
+ * path recursively before writing, and the version half of the name is as
45
+ * unvalidated as the name half was — a dependency declaring
46
+ * `"version": "../../build"` walks out of the cache just as a hostile name
47
+ * would. The same containment the resolved entry gets is applied here, so the
48
+ * directory a build deletes is always inside the cache this project owns.
49
+ */
50
+ export declare function prebundleCacheDirectory(cacheRoot: string, name: string, version: string): string;
51
+ export {};
23
52
  //# sourceMappingURL=npm.d.ts.map
package/dist/npm.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"npm.d.ts","sourceRoot":"","sources":["../src/npm.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAkBlD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,uEAAuE;IACvE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,4EAA4E;IAC5E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAChD,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACnD,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AA+CD,uEAAuE;AACvE,wBAAsB,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGtG;AAUD,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,aAAa,EACtB,eAAe,GAAE,WAAW,CAAC,MAAM,CAAa,GAC/C,OAAO,CAAC,oBAAoB,CAAC,CA4G/B;AAED,wBAAsB,QAAQ,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAkB5L"}
1
+ {"version":3,"file":"npm.d.ts","sourceRoot":"","sources":["../src/npm.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAuBlD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,uEAAuE;IACvE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,4EAA4E;IAC5E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAChD,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACnD,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED,UAAU,eAAe;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACzB;AAqCD,uEAAuE;AACvE,wBAAsB,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGtG;AAUD,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,aAAa,EACtB,eAAe,GAAE,WAAW,CAAC,MAAM,CAAa,GAC/C,OAAO,CAAC,oBAAoB,CAAC,CA6G/B;AAED,wBAAsB,QAAQ,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAkB5L;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAI/F;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAOhG"}
package/dist/npm.js CHANGED
@@ -9,6 +9,11 @@ import { hostErrorMessage } from "./host-error.js";
9
9
  import { resolveInstalledPackageRoot } from "./installed-package.js";
10
10
  import { VELAR_VERSION } from "./version.js";
11
11
  const MAX_BROWSER_NPM_PACKAGES = 4096;
12
+ // npm's own package-name grammar, the same one the extension loader applies to
13
+ // an extension's identity. A dependency's self-declared `name` reaches a cache
14
+ // directory that is later removed recursively, a dev-server route, and an
15
+ // import-map key, so it is untrusted input until it parses as a package name.
16
+ const PACKAGE_NAME = /^(?:@[a-z0-9][a-z0-9._-]*\/[a-z0-9][a-z0-9._-]*|[a-z0-9][a-z0-9._-]*)$/u;
12
17
  const MAX_PACKAGE_MANIFEST_BYTES = 1024 * 1024;
13
18
  const MAX_DEV_DEPENDENCY_META_BYTES = 1024 * 1024;
14
19
  // The dev server serves package code to the browser as native ES modules, so
@@ -63,17 +68,18 @@ export async function resolveBrowserNpm(project, invalidateRoots = new Set()) {
63
68
  try {
64
69
  const resolvedImport = await resolveInstalledBrowserImport(specifier, require);
65
70
  const { requestedName, subpath, root, manifest, entry } = resolvedImport;
66
- const name = manifest.name ?? requestedName;
71
+ const name = browserPackageIdentity(manifest, requestedName);
67
72
  let state = states.get(name);
68
73
  if (!state) {
69
74
  const version = typeof manifest.version === "string" && manifest.version !== "" ? manifest.version : "0.0.0";
75
+ const cacheDir = prebundleCacheDirectory(cacheRoot, name, version);
70
76
  state = {
71
77
  name,
72
78
  version,
73
79
  root,
74
80
  manifest,
75
81
  route: `/@npm/${name}/`,
76
- cacheDir: join(cacheRoot, `${name.replaceAll("/", "+")}@${version}`),
82
+ cacheDir,
77
83
  entries: new Map(),
78
84
  meta: null,
79
85
  bundled: false,
@@ -164,6 +170,37 @@ export async function npmAsset(packages, pathname) {
164
170
  return null;
165
171
  }
166
172
  }
173
+ /**
174
+ * The identity a resolved package is cached, routed, and imported under. The
175
+ * manifest's own `name` is whatever the dependency wrote about itself — a
176
+ * backslash in it is a path separator `join` honours on Windows — so it is
177
+ * taken only when it parses as an npm package name and names the package that
178
+ * was actually resolved. Every other reader of an installed manifest in this
179
+ * CLI makes the same comparison (extension-metadata.ts:173, project.ts:1679,
180
+ * typescript-declarations.ts:89); this one was missed.
181
+ */
182
+ export function browserPackageIdentity(manifest, requestedName) {
183
+ const declared = manifest.name;
184
+ if (typeof declared === "string" && declared === requestedName && PACKAGE_NAME.test(declared))
185
+ return declared;
186
+ return requestedName;
187
+ }
188
+ /**
189
+ * Where one package version is prebundled. `ensurePackageBundle` removes this
190
+ * path recursively before writing, and the version half of the name is as
191
+ * unvalidated as the name half was — a dependency declaring
192
+ * `"version": "../../build"` walks out of the cache just as a hostile name
193
+ * would. The same containment the resolved entry gets is applied here, so the
194
+ * directory a build deletes is always inside the cache this project owns.
195
+ */
196
+ export function prebundleCacheDirectory(cacheRoot, name, version) {
197
+ const cacheDir = join(cacheRoot, `${name.replaceAll("/", "+")}@${version}`);
198
+ const fromRoot = relative(cacheRoot, cacheDir);
199
+ if (!fromRoot || fromRoot.startsWith("..") || isAbsolute(fromRoot)) {
200
+ throw new Error(`the prebundle directory for '${name}@${version}' escapes ${cacheRoot}`);
201
+ }
202
+ return cacheDir;
203
+ }
167
204
  async function resolveInstalledBrowserImport(specifier, require) {
168
205
  const requestedName = packageNameOf(specifier);
169
206
  const subpath = specifier === requestedName ? "." : `.${specifier.slice(requestedName.length)}`;
package/dist/npm.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"npm.js","sourceRoot":"","sources":["../src/npm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"npm.js","sourceRoot":"","sources":["../src/npm.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"official-language-server-extensions.d.ts","sourceRoot":"","sources":["../src/official-language-server-extensions.ts"],"names":[],"mappings":"AAaA,wBAAgB,uCAAuC,IAAI,IAAI,CAwC9D"}
1
+ {"version":3,"file":"official-language-server-extensions.d.ts","sourceRoot":"","sources":["../src/official-language-server-extensions.ts"],"names":[],"mappings":"AAkBA,wBAAgB,uCAAuC,IAAI,IAAI,CAoD9D"}
@@ -4,6 +4,7 @@ import { velarCompilerExtension as desktopCompiler, velarProjectExtension as des
4
4
  import { velarFrameworkHost as desktopHost } from "@velarscript/desktop/host";
5
5
  import { VELAR_DESKTOP_API_VERSION } from "@velarscript/desktop";
6
6
  import { VELAR_NODE_API_VERSION, velarCompilerExtension as nodeCompiler, velarProjectExtension as nodeProject, } from "@velarscript/node/compiler";
7
+ import { VELAR_SERVER_API_VERSION, velarCompilerExtension as serverCompiler, velarProjectExtension as serverProject, } from "@velarscript/server/compiler";
7
8
  import { registerBundledExtension } from "./bundled-extension-registry.js";
8
9
  import { VELAR_VERSION } from "./version.js";
9
10
  export function installOfficialLanguageServerExtensions() {
@@ -19,6 +20,18 @@ export function installOfficialLanguageServerExtensions() {
19
20
  project: nodeProject,
20
21
  host: null,
21
22
  });
23
+ registerBundledExtension({
24
+ name: "@velarscript/server",
25
+ version: VELAR_VERSION,
26
+ kind: "application",
27
+ apiVersion: VELAR_SERVER_API_VERSION,
28
+ manifestKey: "server",
29
+ extends: Object.freeze({}),
30
+ composes: Object.freeze({ "@velarscript/node": VELAR_NODE_API_VERSION }),
31
+ compiler: serverCompiler,
32
+ project: serverProject,
33
+ host: null,
34
+ });
22
35
  registerBundledExtension({
23
36
  name: "@velarscript/web",
24
37
  version: VELAR_VERSION,
@@ -1 +1 @@
1
- {"version":3,"file":"official-language-server-extensions.js","sourceRoot":"","sources":["../src/official-language-server-extensions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,IAAI,WAAW,EAAE,qBAAqB,IAAI,UAAU,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAC9I,OAAO,EAAE,kBAAkB,IAAI,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,sBAAsB,IAAI,eAAe,EAAE,qBAAqB,IAAI,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACnI,OAAO,EAAE,kBAAkB,IAAI,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EACL,sBAAsB,EACtB,sBAAsB,IAAI,YAAY,EACtC,qBAAqB,IAAI,WAAW,GACrC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,UAAU,uCAAuC;IACrD,wBAAwB,CAAC;QACvB,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,aAAa;QACtB,IAAI,EAAE,YAAY;QAClB,UAAU,EAAE,sBAAsB;QAClC,WAAW,EAAE,MAAM;QACnB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,QAAQ,EAAE,YAAY;QACtB,OAAO,EAAE,WAAW;QACpB,IAAI,EAAE,IAAI;KACX,CAAC,CAAC;IACH,wBAAwB,CAAC;QACvB,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,aAAa;QACtB,IAAI,EAAE,aAAa;QACnB,UAAU,EAAE,qBAAqB;QACjC,WAAW,EAAE,KAAK;QAClB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,QAAQ,EAAE,WAAW;QACrB,OAAO,EAAE,UAAU;QACnB,IAAI,EAAE,OAAO;KACd,CAAC,CAAC;IACH,wBAAwB,CAAC;QACvB,IAAI,EAAE,sBAAsB;QAC5B,OAAO,EAAE,aAAa;QACtB,IAAI,EAAE,aAAa;QACnB,UAAU,EAAE,yBAAyB;QACrC,WAAW,EAAE,SAAS;QACtB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC;YACtB,kBAAkB,EAAE,qBAAqB;YACzC,mBAAmB,EAAE,sBAAsB;SAC5C,CAAC;QACF,QAAQ,EAAE,eAAe;QACzB,OAAO,EAAE,cAAc;QACvB,IAAI,EAAE,WAAW;KAClB,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"official-language-server-extensions.js","sourceRoot":"","sources":["../src/official-language-server-extensions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,IAAI,WAAW,EAAE,qBAAqB,IAAI,UAAU,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAC9I,OAAO,EAAE,kBAAkB,IAAI,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,sBAAsB,IAAI,eAAe,EAAE,qBAAqB,IAAI,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACnI,OAAO,EAAE,kBAAkB,IAAI,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EACL,sBAAsB,EACtB,sBAAsB,IAAI,YAAY,EACtC,qBAAqB,IAAI,WAAW,GACrC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,wBAAwB,EACxB,sBAAsB,IAAI,cAAc,EACxC,qBAAqB,IAAI,aAAa,GACvC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,UAAU,uCAAuC;IACrD,wBAAwB,CAAC;QACvB,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,aAAa;QACtB,IAAI,EAAE,YAAY;QAClB,UAAU,EAAE,sBAAsB;QAClC,WAAW,EAAE,MAAM;QACnB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,QAAQ,EAAE,YAAY;QACtB,OAAO,EAAE,WAAW;QACpB,IAAI,EAAE,IAAI;KACX,CAAC,CAAC;IACH,wBAAwB,CAAC;QACvB,IAAI,EAAE,qBAAqB;QAC3B,OAAO,EAAE,aAAa;QACtB,IAAI,EAAE,aAAa;QACnB,UAAU,EAAE,wBAAwB;QACpC,WAAW,EAAE,QAAQ;QACrB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAC,mBAAmB,EAAE,sBAAsB,EAAC,CAAC;QACtE,QAAQ,EAAE,cAAc;QACxB,OAAO,EAAE,aAAa;QACtB,IAAI,EAAE,IAAI;KACX,CAAC,CAAC;IACH,wBAAwB,CAAC;QACvB,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,aAAa;QACtB,IAAI,EAAE,aAAa;QACnB,UAAU,EAAE,qBAAqB;QACjC,WAAW,EAAE,KAAK;QAClB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,QAAQ,EAAE,WAAW;QACrB,OAAO,EAAE,UAAU;QACnB,IAAI,EAAE,OAAO;KACd,CAAC,CAAC;IACH,wBAAwB,CAAC;QACvB,IAAI,EAAE,sBAAsB;QAC5B,OAAO,EAAE,aAAa;QACtB,IAAI,EAAE,aAAa;QACnB,UAAU,EAAE,yBAAyB;QACrC,WAAW,EAAE,SAAS;QACtB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC;YACtB,kBAAkB,EAAE,qBAAqB;YACzC,mBAAmB,EAAE,sBAAsB;SAC5C,CAAC;QACF,QAAQ,EAAE,eAAe;QACzB,OAAO,EAAE,cAAc;QACvB,IAAI,EAAE,WAAW;KAClB,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ownership-graph.d.ts","sourceRoot":"","sources":["../src/ownership-graph.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAqC,IAAI,EAAE,MAAM,uBAAuB,CAAC;AACrF,OAAO,EAAwC,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAExF,MAAM,MAAM,iBAAiB,GACzB,QAAQ,GACR,WAAW,GACX,OAAO,GACP,UAAU,GACV,QAAQ,GACR,UAAU,GACV,OAAO,GACP,MAAM,GACN,MAAM,GACN,UAAU,GACV,WAAW,GACX,QAAQ,GACR,QAAQ,GACR,YAAY,GACZ,oBAAoB,CAAC;AAEzB,MAAM,MAAM,iBAAiB,GACzB,SAAS,GACT,MAAM,GACN,OAAO,GACP,QAAQ,GACR,SAAS,GACT,OAAO,GACP,mBAAmB,GACnB,kBAAkB,CAAC;AAEvB,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;IACrB,QAAQ,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC;IAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,sBAAsB,CAAC;IAC/C,QAAQ,CAAC,mBAAmB,EAAE,KAAK,CAAC;CACrC;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC9C,QAAQ,CAAC,KAAK,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC9C,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC;IAC1C,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC;CACpC;AASD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAUrE;AAqGD,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAkJpI"}
1
+ {"version":3,"file":"ownership-graph.d.ts","sourceRoot":"","sources":["../src/ownership-graph.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAqC,IAAI,EAAE,MAAM,uBAAuB,CAAC;AACrF,OAAO,EAAwC,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAGxF,MAAM,MAAM,iBAAiB,GACzB,QAAQ,GACR,WAAW,GACX,OAAO,GACP,UAAU,GACV,QAAQ,GACR,UAAU,GACV,OAAO,GACP,MAAM,GACN,MAAM,GACN,UAAU,GACV,WAAW,GACX,QAAQ,GACR,QAAQ,GACR,YAAY,GACZ,oBAAoB,CAAC;AAEzB,MAAM,MAAM,iBAAiB,GACzB,SAAS,GACT,MAAM,GACN,OAAO,GACP,QAAQ,GACR,SAAS,GACT,OAAO,GACP,mBAAmB,GACnB,kBAAkB,CAAC;AAEvB,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;IACrB,QAAQ,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC;IAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,sBAAsB,CAAC;IAC/C,QAAQ,CAAC,mBAAmB,EAAE,KAAK,CAAC;CACrC;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC9C,QAAQ,CAAC,KAAK,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC9C,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC;IAC1C,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC;CACpC;AASD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAUrE;AAqKD,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA0MpI"}
@@ -1,6 +1,7 @@
1
1
  import { createHash } from "node:crypto";
2
2
  import { dirname, extname, relative, resolve } from "node:path";
3
3
  import { projectImportKey } from "./project.js";
4
+ import { byCodeUnit } from "./stable-order.js";
4
5
  const DEFAULT_MAXIMUM_NODES = 10_000;
5
6
  const DEFAULT_MAXIMUM_EDGES = 20_000;
6
7
  function shortHash(value) {
@@ -8,7 +9,7 @@ function shortHash(value) {
8
9
  }
9
10
  export function ownershipGraphRevision(project) {
10
11
  const hash = createHash("sha256");
11
- for (const module of [...project.modules].sort((left, right) => left.inputPath.localeCompare(right.inputPath))) {
12
+ for (const module of [...project.modules].sort((left, right) => byCodeUnit(left.inputPath, right.inputPath))) {
12
13
  hash.update(relative(project.projectRoot, module.inputPath));
13
14
  hash.update("\0");
14
15
  hash.update(module.result.source.text);
@@ -69,20 +70,71 @@ function ownerCandidate(symbol) {
69
70
  const kind = symbolKind(symbol);
70
71
  return kind === "component" || kind === "action" || kind === "function" || kind === "class";
71
72
  }
72
- function sourceOwner(module, span, stableByCompilerId, moduleId) {
73
- const candidates = module.result.semanticIndex.symbols
74
- .filter((symbol) => ownerCandidate(symbol) && contains(symbol.span, span))
75
- .sort((left, right) => (left.span.end - left.span.start) - (right.span.end - right.span.start));
76
- return stableByCompilerId.get(candidates[0]?.id ?? "") ?? moduleId;
77
- }
78
- function referenceOwner(module, span, stableByCompilerId, moduleId) {
79
- const candidates = module.result.semanticIndex.symbols
80
- .filter((symbol) => {
81
- const kind = symbolKind(symbol);
82
- return contains(symbol.span, span) && (ownerCandidate(symbol) || kind === "computed" || kind === "state");
83
- })
84
- .sort((left, right) => (left.span.end - left.span.start) - (right.span.end - right.span.start));
85
- return stableByCompilerId.get(candidates[0]?.id ?? "") ?? moduleId;
73
+ function ownerIndexFor(symbols, accepts) {
74
+ const chosen = symbols
75
+ .filter(accepts)
76
+ .sort((left, right) => left.span.start - right.span.start || right.span.end - left.span.end);
77
+ const parents = [];
78
+ const stack = [];
79
+ let nested = true;
80
+ for (let index = 0; index < chosen.length; index += 1) {
81
+ const span = chosen[index].span;
82
+ while (stack.length > 0) {
83
+ const top = chosen[stack.at(-1)].span;
84
+ if (top.end >= span.end)
85
+ break;
86
+ // `top.start <= span.start` holds by the sort, so an end inside this
87
+ // span rather than before its start is an improper overlap.
88
+ if (top.end > span.start)
89
+ nested = false;
90
+ stack.pop();
91
+ }
92
+ parents.push(stack.at(-1) ?? -1);
93
+ stack.push(index);
94
+ }
95
+ return { symbols: chosen, parents, nested, all: symbols, accepts };
96
+ }
97
+ /** The smallest indexed symbol whose span strictly contains `span`. */
98
+ function ownerAt(index, span) {
99
+ if (!index.nested) {
100
+ return index.all
101
+ .filter((symbol) => index.accepts(symbol) && contains(symbol.span, span))
102
+ .sort((left, right) => (left.span.end - left.span.start) - (right.span.end - right.span.start))[0] ?? null;
103
+ }
104
+ let low = 0;
105
+ let high = index.symbols.length;
106
+ while (low < high) {
107
+ const middle = Math.floor((low + high) / 2);
108
+ if (index.symbols[middle].span.start <= span.start)
109
+ low = middle + 1;
110
+ else
111
+ high = middle;
112
+ }
113
+ for (let cursor = low - 1; cursor >= 0; cursor = index.parents[cursor]) {
114
+ const candidate = index.symbols[cursor];
115
+ if (!contains(candidate.span, span))
116
+ continue;
117
+ // Two candidates can carry the same span. The scan this replaces sorted by
118
+ // width and took the first survivor, and `Array.prototype.sort` is stable,
119
+ // so it answered with the one that came first in the module's symbol
120
+ // array — which is the first of the equal-span run here.
121
+ let first = cursor;
122
+ while (first > 0) {
123
+ const previous = index.symbols[first - 1];
124
+ if (previous.span.start !== candidate.span.start || previous.span.end !== candidate.span.end)
125
+ break;
126
+ first -= 1;
127
+ }
128
+ return index.symbols[first];
129
+ }
130
+ return null;
131
+ }
132
+ function ownerOf(index, span, stableByCompilerId, moduleId) {
133
+ return stableByCompilerId.get(ownerAt(index, span)?.id ?? "") ?? moduleId;
134
+ }
135
+ function referenceOwnerCandidate(symbol) {
136
+ const kind = symbolKind(symbol);
137
+ return ownerCandidate(symbol) || kind === "computed" || kind === "state";
86
138
  }
87
139
  function resolvedModule(project, importer, source) {
88
140
  const path = source.startsWith(".") && extname(source) === ".vel"
@@ -109,8 +161,15 @@ export async function buildOwnershipGraph(project, options = {}) {
109
161
  const startedAt = performance.now();
110
162
  const maximumNodes = Math.max(1, Math.min(20_000, Math.floor(options.maximumNodes ?? DEFAULT_MAXIMUM_NODES)));
111
163
  const maximumEdges = Math.max(1, Math.min(40_000, Math.floor(options.maximumEdges ?? DEFAULT_MAXIMUM_EDGES)));
112
- const candidateNodes = [];
113
- const candidateEdges = [];
164
+ // The caps have to bound the work, not just the answer. Nodes and edges are
165
+ // deduplicated as they are produced, so `maximumNodes` is an exact count and
166
+ // generation can stop at it; once no further node can join, an edge whose
167
+ // ends are not retained can never reach the answer either, so it is refused
168
+ // at the source rather than built and filtered out at the end.
169
+ const uniqueNodes = new Map();
170
+ const uniqueEdges = new Map();
171
+ let skippedNodes = false;
172
+ let skippedEdges = false;
114
173
  const moduleIds = new Map(project.modules.map((module) => [module.inputPath, moduleIdentity(project, module.inputPath)]));
115
174
  const symbolIds = new Map();
116
175
  const symbolByStableId = new Map();
@@ -123,18 +182,40 @@ export async function buildOwnershipGraph(project, options = {}) {
123
182
  if (work % 128 === 0)
124
183
  await new Promise((resolveYield) => setImmediate(resolveYield));
125
184
  };
185
+ const nodesFinal = () => uniqueNodes.size >= maximumNodes;
186
+ const addNode = (node) => {
187
+ if (!uniqueNodes.has(node.id) && nodesFinal()) {
188
+ skippedNodes = true;
189
+ return;
190
+ }
191
+ uniqueNodes.set(node.id, node);
192
+ };
193
+ /** Nothing produced from here on can change the answer. */
194
+ const exhausted = () => nodesFinal() && uniqueEdges.size >= maximumEdges;
126
195
  const addCapability = (source) => {
127
196
  let id = capabilityIds.get(source);
128
197
  if (id)
129
198
  return id;
130
199
  id = capabilityIdentity(source);
131
200
  capabilityIds.set(source, id);
132
- candidateNodes.push({ id, kind: "capability", name: source });
201
+ addNode({ id, kind: "capability", name: source });
133
202
  return id;
134
203
  };
135
204
  const addEdge = (kind, from, to, path, span) => {
136
- candidateEdges.push({
137
- id: edgeIdentity(kind, from, to, path, span),
205
+ // Asked before the identity is hashed: `uniqueNodes` only grows, so an
206
+ // edge whose ends are not retained now was never retained, cannot already
207
+ // be recorded, and would be filtered out of the answer regardless.
208
+ if (nodesFinal() && (!uniqueNodes.has(from) || !uniqueNodes.has(to))) {
209
+ skippedEdges = true;
210
+ return;
211
+ }
212
+ const id = edgeIdentity(kind, from, to, path, span);
213
+ if (!uniqueEdges.has(id) && nodesFinal() && uniqueEdges.size >= maximumEdges) {
214
+ skippedEdges = true;
215
+ return;
216
+ }
217
+ uniqueEdges.set(id, {
218
+ id,
138
219
  kind,
139
220
  from,
140
221
  to,
@@ -144,7 +225,7 @@ export async function buildOwnershipGraph(project, options = {}) {
144
225
  };
145
226
  for (const module of project.modules) {
146
227
  await checkpoint();
147
- candidateNodes.push({
228
+ addNode({
148
229
  id: moduleIds.get(module.inputPath),
149
230
  kind: "module",
150
231
  name: module.relativePath,
@@ -153,14 +234,21 @@ export async function buildOwnershipGraph(project, options = {}) {
153
234
  selectionSpan: { start: 0, end: 0 },
154
235
  });
155
236
  const occurrences = new Map();
156
- for (const symbol of module.result.semanticIndex.symbols) {
237
+ const symbols = module.result.semanticIndex.symbols;
238
+ for (let index = 0; index < symbols.length; index += 1) {
239
+ // The only cancellation poll and the only yield used to sit at the top
240
+ // of the per-module loop, so one large module ran to completion
241
+ // uninterruptibly however small a graph the client asked for.
242
+ if ((index & 31) === 0)
243
+ await checkpoint();
244
+ const symbol = symbols[index];
157
245
  const key = `${symbol.kind}\0${symbol.container ?? ""}\0${symbol.name}`;
158
246
  const occurrence = occurrences.get(key) ?? 0;
159
247
  occurrences.set(key, occurrence + 1);
160
248
  const id = symbolIdentity(project, module, symbol, occurrence);
161
249
  symbolIds.set(symbol.id, id);
162
250
  symbolByStableId.set(id, symbol);
163
- candidateNodes.push({
251
+ addNode({
164
252
  id,
165
253
  kind: symbolKind(symbol),
166
254
  name: symbol.name,
@@ -175,21 +263,43 @@ export async function buildOwnershipGraph(project, options = {}) {
175
263
  }
176
264
  for (const module of project.modules) {
177
265
  await checkpoint();
266
+ if (exhausted())
267
+ break;
178
268
  const moduleId = moduleIds.get(module.inputPath);
179
- const stableByCompilerId = new Map(module.result.semanticIndex.symbols.map((symbol) => [symbol.id, symbolIds.get(symbol.id)]));
269
+ const symbols = module.result.semanticIndex.symbols;
270
+ const stableByCompilerId = new Map(symbols.map((symbol) => [symbol.id, symbolIds.get(symbol.id)]));
180
271
  const importedCapabilities = importedCapabilityBySymbol(module);
181
- for (const symbol of module.result.semanticIndex.symbols) {
272
+ const sourceOwners = ownerIndexFor(symbols, ownerCandidate);
273
+ const referenceOwners = ownerIndexFor(symbols, referenceOwnerCandidate);
274
+ // `explicitContainer` re-scanned the whole symbol array per symbol looking
275
+ // for one name; the first owner candidate under each name is what `find`
276
+ // returned, so index that once.
277
+ const containersByName = new Map();
278
+ for (const symbol of symbols) {
279
+ if (ownerCandidate(symbol) && !containersByName.has(symbol.name))
280
+ containersByName.set(symbol.name, symbol);
281
+ }
282
+ for (let index = 0; index < symbols.length; index += 1) {
283
+ if ((index & 31) === 0)
284
+ await checkpoint();
285
+ if (exhausted())
286
+ break;
287
+ const symbol = symbols[index];
182
288
  const id = symbolIds.get(symbol.id);
183
- const explicitContainer = symbol.container
184
- ? module.result.semanticIndex.symbols.find((candidate) => candidate.name === symbol.container && ownerCandidate(candidate))
185
- : null;
289
+ // Everything this symbol can produce hangs off its own node — the `owns`
290
+ // edge into it, and a readonly projection that would itself be refused.
291
+ // With the node roster already closed against it, none of that can reach
292
+ // the answer, so the owner lookup is not worth doing.
293
+ if (nodesFinal() && !uniqueNodes.has(id))
294
+ continue;
295
+ const explicitContainer = symbol.container ? containersByName.get(symbol.container) ?? null : null;
186
296
  const owner = explicitContainer
187
297
  ? stableByCompilerId.get(explicitContainer.id)
188
- : sourceOwner(module, symbol.selectionSpan, stableByCompilerId, moduleId);
298
+ : ownerOf(sourceOwners, symbol.selectionSpan, stableByCompilerId, moduleId);
189
299
  addEdge("owns", owner === id ? moduleId : owner, id);
190
300
  if (readonlyProjection(symbol.type)) {
191
301
  const projectionId = `readonly:${shortHash(id)}`;
192
- candidateNodes.push({
302
+ addNode({
193
303
  id: projectionId,
194
304
  kind: "readonlyProjection",
195
305
  name: `${symbol.name} readonly view`,
@@ -214,11 +324,21 @@ export async function buildOwnershipGraph(project, options = {}) {
214
324
  if (importedId)
215
325
  addEdge("crossesCapability", importedId, addCapability(source));
216
326
  }
217
- for (const reference of module.result.semanticIndex.references) {
327
+ const references = module.result.semanticIndex.references;
328
+ for (let index = 0; index < references.length; index += 1) {
329
+ if ((index & 31) === 0)
330
+ await checkpoint();
331
+ if (exhausted())
332
+ break;
333
+ const reference = references[index];
218
334
  const target = reference.symbolId ? stableByCompilerId.get(reference.symbolId) : null;
219
335
  if (!target)
220
336
  continue;
221
- const owner = referenceOwner(module, reference.span, stableByCompilerId, moduleId);
337
+ // Same shape: every edge this reference can raise ends at `target` or at
338
+ // a capability node that can no longer be created.
339
+ if (nodesFinal() && !uniqueNodes.has(target))
340
+ continue;
341
+ const owner = ownerOf(referenceOwners, reference.span, stableByCompilerId, moduleId);
222
342
  const kind = reference.call ? "calls" : reference.write ? "writes" : "reads";
223
343
  addEdge(kind, owner, target, reference.path, reference.span);
224
344
  if (symbolByStableId.get(owner) && symbolKind(symbolByStableId.get(owner)) === "computed" && !reference.write) {
@@ -229,13 +349,10 @@ export async function buildOwnershipGraph(project, options = {}) {
229
349
  addEdge("crossesCapability", owner, addCapability(capability), reference.path, reference.span);
230
350
  }
231
351
  }
232
- const uniqueNodes = [...new Map(candidateNodes.map((node) => [node.id, node])).values()];
233
- const uniqueEdges = [...new Map(candidateEdges.map((edge) => [edge.id, edge])).values()];
234
- const nodes = uniqueNodes.slice(0, maximumNodes);
235
- const retained = new Set(nodes.map((node) => node.id));
236
- const eligibleEdges = uniqueEdges.filter((edge) => retained.has(edge.from) && retained.has(edge.to));
352
+ const nodes = [...uniqueNodes.values()];
353
+ const eligibleEdges = [...uniqueEdges.values()].filter((edge) => uniqueNodes.has(edge.from) && uniqueNodes.has(edge.to));
237
354
  const edges = eligibleEdges.slice(0, maximumEdges);
238
- const limitReached = nodes.length < uniqueNodes.length || edges.length < uniqueEdges.length;
355
+ const limitReached = skippedNodes || skippedEdges || edges.length < uniqueEdges.size;
239
356
  const modulesIncluded = nodes.filter((node) => node.kind === "module").length;
240
357
  return {
241
358
  revision: ownershipGraphRevision(project),