@azerothjs/language-service 0.4.0-beta.2 → 0.5.0-beta.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.
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACR,UAAU,EACV,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,KAAK,EACL,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,cAAc,EACd,cAAc,EACd,aAAa,EACb,QAAQ,EACR,aAAa,EACb,eAAe,EAClB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAqC,KAAK,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAqBtG,OAAO,EAAiB,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAElF;;;;;;;;;GASG;AACH,qBAAa,sBAAsB;IAE/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;gBAE7B,kBAAkB,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;IAK3D,kDAAkD;IAC3C,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAKjD,oCAAoC;IAC7B,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAKnD,wBAAwB;IACjB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAKlC,8CAA8C;IACvC,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,cAAc,EAAE;IAMrG,gEAAgE;IACzD,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,cAAc;IAM3E,uCAAuC;IAChC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,KAAK,GAAG,IAAI;IAM9D,2DAA2D;IACpD,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,QAAQ,EAAE;IAMjE,gEAAgE;IACzD,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,QAAQ,EAAE;IAMrE,kDAAkD;IAC3C,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,QAAQ,EAAE;IAMjE,wEAAwE;IACjE,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,iBAAiB,EAAE;IAMlF,yDAAyD;IAClD,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;IAM7F,4BAA4B;IACrB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,EAAE;IAMxD,kCAAkC;IAC3B,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,EAAE;IAK5D,wDAAwD;IACjD,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,aAAa,GAAG,IAAI;IAM9E,oCAAoC;IAC7B,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,EAAE;IAMhD,6DAA6D;IACtD,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc;IAMrD,uCAAuC;IAChC,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,EAAE;IAMpD,8CAA8C;IACvC,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,GAAE,MAAM,EAAO,GAAG,UAAU,EAAE;IAMzF,wEAAwE;IACjE,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,EAAE;IAMlD,+DAA+D;IACxD,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,SAAS,EAAE;IAMxF,6EAA6E;IACtE,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,cAAc,EAAE;IAM/E,+DAA+D;IACxD,wBAAwB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,GAAG,QAAQ,EAAE;IAMxF;;;OAGG;IACI,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI;IAMtE,yEAAyE;IAClE,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,KAAK,EAAE,GAAG,IAAI;IAM9E,0EAA0E;IACnE,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAK1C,wEAAwE;IACxE,OAAO,CAAC,OAAO;CAkBlB"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
package/dist/service.js CHANGED
@@ -5,8 +5,10 @@
5
5
  // module + mapping) and hands it to the focused providers, which do the real
6
6
  // work. The `@azerothjs/language-server` adapter is a thin translation layer on
7
7
  // top of this.
8
+ import ts from 'typescript';
8
9
  import { AzerothProject, toVirtualFile } from "./ts-project.js";
9
10
  import { uriToPath } from "./uri.js";
11
+ import { DiagnosticSeverity } from "./protocol.js";
10
12
  import { LineIndex } from "./text.js";
11
13
  import { getCompletions, resolveCompletion } from "./providers/completion.js";
12
14
  import { getHover } from "./providers/hover.js";
@@ -30,8 +32,47 @@ import { getInlayHints } from "./providers/inlay-hints.js";
30
32
  */
31
33
  export class AzerothLanguageService {
32
34
  project;
33
- constructor(workspaceDirectory, configPath) {
34
- this.project = new AzerothProject(workspaceDirectory, configPath);
35
+ constructor(workspaceDirectory, configPath, options = {}) {
36
+ this.project = new AzerothProject(workspaceDirectory, configPath, options);
37
+ }
38
+ /**
39
+ * The consuming project's real `.ts` files (from its tsconfig). Used by the
40
+ * combined checker to iterate the `.ts` side; only populated meaningfully
41
+ * when the service was constructed with `{ rootProjectFiles: true }`.
42
+ */
43
+ getProjectTsFiles() {
44
+ return this.project.getProjectFiles();
45
+ }
46
+ /**
47
+ * Diagnostics for a real `.ts` file in the program (no offset
48
+ * mapping - positions are the file's own). Lets the combined checker report
49
+ * `.ts` errors - including those at the `.ts` -> `.azeroth` import boundary -
50
+ * from the same program that checks the `.azeroth` files.
51
+ */
52
+ getTsDiagnostics(filePath) {
53
+ const service = this.project.service;
54
+ const raw = [
55
+ ...service.getSyntacticDiagnostics(filePath),
56
+ ...service.getSemanticDiagnostics(filePath)
57
+ ];
58
+ const out = [];
59
+ for (const diag of raw) {
60
+ if (diag.start === undefined || diag.length === undefined || !diag.file) {
61
+ continue;
62
+ }
63
+ const start = diag.file.getLineAndCharacterOfPosition(diag.start);
64
+ const end = diag.file.getLineAndCharacterOfPosition(diag.start + diag.length);
65
+ out.push({
66
+ range: { start, end },
67
+ severity: diag.category === ts.DiagnosticCategory.Error
68
+ ? DiagnosticSeverity.Error
69
+ : DiagnosticSeverity.Warning,
70
+ message: ts.flattenDiagnosticMessageText(diag.messageText, '\n'),
71
+ code: diag.code,
72
+ source: 'azeroth-ts'
73
+ });
74
+ }
75
+ return out;
35
76
  }
36
77
  /** Registers or replaces a document's content. */
37
78
  didOpen(uri, source) {
@@ -45,6 +86,14 @@ export class AzerothLanguageService {
45
86
  didClose(uri) {
46
87
  this.project.closeDocument(uriToPath(uri));
47
88
  }
89
+ /**
90
+ * Re-scans the workspace for `.azeroth` files. Call on a watched-file
91
+ * create/delete so newly-added components join the program (cross-file
92
+ * completion, go-to-definition, auto-import) without a restart.
93
+ */
94
+ refreshWorkspace() {
95
+ this.project.refreshWorkspace();
96
+ }
48
97
  /** Context-aware completion at a position. */
49
98
  getCompletions(uri, position, options) {
50
99
  const ctx = this.context(uri);
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
@@ -26,7 +26,22 @@ export declare class AzerothProject {
26
26
  private readonly virtualCache;
27
27
  private readonly options;
28
28
  /** Virtual names of every `.azeroth` file found in the workspace. */
29
- private readonly discovered;
29
+ private discovered;
30
+ /**
31
+ * Memoized `getScriptFileNames` result. TS queries the root file list very
32
+ * frequently; the set only changes when `projectVersion` does (open/close or
33
+ * a workspace refresh), so we rebuild lazily and cache against that version.
34
+ */
35
+ private scriptNamesCache;
36
+ /**
37
+ * Per-file disk mtime cache for `getScriptVersion`. Without it every version
38
+ * query stats the disk; TS asks once per file per program build, so the same
39
+ * `.azeroth`/real file gets stat-ed repeatedly. The cache is valid for one
40
+ * `projectVersion` epoch - any edit (which bumps the version) clears it, so a
41
+ * genuine change is never masked.
42
+ */
43
+ private readonly mtimeCache;
44
+ private mtimeCacheVersion;
30
45
  /**
31
46
  * The consuming project's own ambient/global declaration files (`.d.ts`
32
47
  * roots from the tsconfig's `include`/`files`). They are kept in the program
@@ -34,8 +49,26 @@ export declare class AzerothProject {
34
49
  * {@link resolveProject}.
35
50
  */
36
51
  private readonly ambientFiles;
52
+ /**
53
+ * The consuming project's real `.ts` source files (from the tsconfig).
54
+ * AzerothJS projects are `.ts` + `.azeroth` (the `.azeroth` language replaces
55
+ * `.tsx`). The editor doesn't root these - they enter the program on demand
56
+ * via imports - but the combined command-line checker does
57
+ * ({@link rootProjectFiles}), so a `.ts` file importing a `.azeroth`
58
+ * component is type-checked in the SAME program as the `.azeroth` files.
59
+ */
60
+ private readonly projectFiles;
61
+ /** When true, {@link projectFiles} are program roots (the CLI checker). */
62
+ private readonly rootProjectFiles;
37
63
  private projectVersion;
38
- constructor(currentDirectory: string, configPath?: string);
64
+ constructor(currentDirectory: string, configPath?: string, options?: {
65
+ rootProjectFiles?: boolean;
66
+ });
67
+ /**
68
+ * The consuming project's real `.ts` files (absolute, forward-slash). Used
69
+ * by the combined checker to iterate diagnostics over the `.ts` side.
70
+ */
71
+ getProjectFiles(): readonly string[];
39
72
  /** Path of the injected ambient declarations file. */
40
73
  private readonly intrinsicsFile;
41
74
  /**
@@ -50,6 +83,14 @@ export declare class AzerothProject {
50
83
  closeDocument(azerothPath: string): void;
51
84
  /** All currently-open `.azeroth` paths. */
52
85
  openPaths(): string[];
86
+ /**
87
+ * Re-scans the workspace for `.azeroth` files and bumps the project version
88
+ * so the program picks up files created or deleted since startup. The
89
+ * editor/LSP should call this on a watched-file create/delete; without it a
90
+ * newly-added component would be invisible to cross-file completion and
91
+ * go-to-definition until the service restarts.
92
+ */
93
+ refreshWorkspace(): void;
53
94
  /** The current source of a `.azeroth` document (open buffer or disk). */
54
95
  getSource(azerothPath: string): string | undefined;
55
96
  /**
@@ -60,6 +101,13 @@ export declare class AzerothProject {
60
101
  getVirtual(azerothPath: string): VirtualCode;
61
102
  /** Reads a `.azeroth` source from the open set or disk. */
62
103
  private readAzeroth;
104
+ /**
105
+ * Disk mtime as a version string, memoized for the current `projectVersion`
106
+ * epoch so repeated `getScriptVersion` queries don't re-stat the same file.
107
+ * Cleared on any edit (the version bump), so a real on-disk change is still
108
+ * seen on the next epoch.
109
+ */
110
+ private diskVersion;
63
111
  /** Builds the language service host backing the virtual project. */
64
112
  private createHost;
65
113
  /** fileExists that also reports the synthetic virtual twins as present. */
@@ -1 +1 @@
1
- {"version":3,"file":"ts-project.d.ts","sourceRoot":"","sources":["../src/ts-project.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAwB1E,8CAA8C;AAC9C,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAGvD;AAED,0DAA0D;AAC1D,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAGzD;AAED,+DAA+D;AAC/D,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAGzD;AAeD;;;;;;;;;;;GAWG;AACH,qBAAa,cAAc;IAwBX,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAtB7C,kDAAkD;IAClD,SAAgB,OAAO,EAAE,EAAE,CAAC,eAAe,CAAC;IAE5C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA8B;IAEnD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoC;IAEjE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAE7C,qEAAqE;IACrE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAW;IAEtC;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAW;IAExC,OAAO,CAAC,cAAc,CAAK;gBAEE,gBAAgB,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;IAU1E,sDAAsD;IACtD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IAExC;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAkBzB,qDAAqD;IAC9C,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAQ9D,0DAA0D;IACnD,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAO/C,2CAA2C;IACpC,SAAS,IAAI,MAAM,EAAE;IAK5B,yEAAyE;IAClE,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAKzD;;;;OAIG;IACI,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW;IAcnD,2DAA2D;IAC3D,OAAO,CAAC,WAAW;IAUnB,oEAAoE;IACpE,OAAO,CAAC,UAAU;IAuElB,2EAA2E;IAC3E,OAAO,CAAC,cAAc;IAgBtB,uEAAuE;IACvE,OAAO,CAAC,YAAY;IAkBpB;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IA8BtB;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;CAsChC"}
1
+ {"version":3,"file":"ts-project.d.ts","sourceRoot":"","sources":["../src/ts-project.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAwB1E,8CAA8C;AAC9C,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAGvD;AAED,0DAA0D;AAC1D,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAGzD;AAED,+DAA+D;AAC/D,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAGzD;AA2BD;;;;;;;;;;;GAWG;AACH,qBAAa,cAAc;IAwDnB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAtDrC,kDAAkD;IAClD,SAAgB,OAAO,EAAE,EAAE,CAAC,eAAe,CAAC;IAE5C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA8B;IAEnD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoC;IAEjE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAE7C,qEAAqE;IACrE,OAAO,CAAC,UAAU,CAAW;IAE7B;;;;OAIG;IACH,OAAO,CAAC,gBAAgB,CAAqD;IAE7E;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA6B;IAExD,OAAO,CAAC,iBAAiB,CAAM;IAE/B;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAW;IAExC;;;;;;;OAOG;IACH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAW;IAExC,2EAA2E;IAC3E,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAU;IAE3C,OAAO,CAAC,cAAc,CAAK;gBAGN,gBAAgB,EAAE,MAAM,EACzC,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,GAAE;QAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAO;IAahD;;;OAGG;IACI,eAAe,IAAI,SAAS,MAAM,EAAE;IAK3C,sDAAsD;IACtD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IAExC;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAkBzB,qDAAqD;IAC9C,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAS9D,0DAA0D;IACnD,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAQ/C,2CAA2C;IACpC,SAAS,IAAI,MAAM,EAAE;IAK5B;;;;;;OAMG;IACI,gBAAgB,IAAI,IAAI;IAM/B,yEAAyE;IAClE,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAKzD;;;;OAIG;IACI,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW;IAiBnD,2DAA2D;IAC3D,OAAO,CAAC,WAAW;IAYnB;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAiBnB,oEAAoE;IACpE,OAAO,CAAC,UAAU;IAqFlB,2EAA2E;IAC3E,OAAO,CAAC,cAAc;IAgBtB,uEAAuE;IACvE,OAAO,CAAC,YAAY;IAkBpB;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IA8BtB;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;CAgFhC"}
@@ -47,6 +47,16 @@ export function toVirtualFile(azerothPath) {
47
47
  export function toAzerothPath(virtualFile) {
48
48
  return virtualFile.slice(0, -3);
49
49
  }
50
+ /**
51
+ * Normalizes a path to forward slashes - the separator TypeScript uses
52
+ * internally and the one `uriToPath` produces. Open-document keys and resolved
53
+ * module paths must agree on it: on Windows, `ts.sys.resolvePath` returns
54
+ * backslashes, so a raw compare against a forward-slash open-doc key would miss
55
+ * and a cross-file `.azeroth` import would wrongly resolve to `any`.
56
+ */
57
+ function toSlashes(filePath) {
58
+ return filePath.replace(/\\/g, '/');
59
+ }
50
60
  /**
51
61
  * Hosts a TypeScript language service over the workspace's `.azeroth` (and
52
62
  * real) files. One instance per workspace folder.
@@ -68,6 +78,21 @@ export class AzerothProject {
68
78
  options;
69
79
  /** Virtual names of every `.azeroth` file found in the workspace. */
70
80
  discovered;
81
+ /**
82
+ * Memoized `getScriptFileNames` result. TS queries the root file list very
83
+ * frequently; the set only changes when `projectVersion` does (open/close or
84
+ * a workspace refresh), so we rebuild lazily and cache against that version.
85
+ */
86
+ scriptNamesCache = null;
87
+ /**
88
+ * Per-file disk mtime cache for `getScriptVersion`. Without it every version
89
+ * query stats the disk; TS asks once per file per program build, so the same
90
+ * `.azeroth`/real file gets stat-ed repeatedly. The cache is valid for one
91
+ * `projectVersion` epoch - any edit (which bumps the version) clears it, so a
92
+ * genuine change is never masked.
93
+ */
94
+ mtimeCache = new Map();
95
+ mtimeCacheVersion = -1;
71
96
  /**
72
97
  * The consuming project's own ambient/global declaration files (`.d.ts`
73
98
  * roots from the tsconfig's `include`/`files`). They are kept in the program
@@ -75,16 +100,36 @@ export class AzerothProject {
75
100
  * {@link resolveProject}.
76
101
  */
77
102
  ambientFiles;
103
+ /**
104
+ * The consuming project's real `.ts` source files (from the tsconfig).
105
+ * AzerothJS projects are `.ts` + `.azeroth` (the `.azeroth` language replaces
106
+ * `.tsx`). The editor doesn't root these - they enter the program on demand
107
+ * via imports - but the combined command-line checker does
108
+ * ({@link rootProjectFiles}), so a `.ts` file importing a `.azeroth`
109
+ * component is type-checked in the SAME program as the `.azeroth` files.
110
+ */
111
+ projectFiles;
112
+ /** When true, {@link projectFiles} are program roots (the CLI checker). */
113
+ rootProjectFiles;
78
114
  projectVersion = 0;
79
- constructor(currentDirectory, configPath) {
115
+ constructor(currentDirectory, configPath, options = {}) {
80
116
  this.currentDirectory = currentDirectory;
81
117
  const resolved = AzerothProject.resolveProject(currentDirectory, configPath);
82
118
  this.options = resolved.options;
83
119
  this.ambientFiles = resolved.ambientFiles;
120
+ this.projectFiles = resolved.projectFiles;
121
+ this.rootProjectFiles = options.rootProjectFiles ?? false;
84
122
  this.intrinsicsFile = `${currentDirectory.replace(/\\/g, '/').replace(/\/$/, '')}/${INTRINSICS_BASENAME}`;
85
123
  this.discovered = this.discoverWorkspace();
86
124
  this.service = ts.createLanguageService(this.createHost(), ts.createDocumentRegistry());
87
125
  }
126
+ /**
127
+ * The consuming project's real `.ts` files (absolute, forward-slash). Used
128
+ * by the combined checker to iterate diagnostics over the `.ts` side.
129
+ */
130
+ getProjectFiles() {
131
+ return this.projectFiles;
132
+ }
88
133
  /** Path of the injected ambient declarations file. */
89
134
  intrinsicsFile;
90
135
  /**
@@ -103,21 +148,34 @@ export class AzerothProject {
103
148
  }
104
149
  /** Registers/updates an open `.azeroth` document. */
105
150
  openDocument(azerothPath, source) {
106
- const prev = this.open.get(azerothPath);
107
- this.open.set(azerothPath, { source, version: (prev?.version ?? 0) + 1 });
108
- this.virtualCache.delete(azerothPath);
151
+ const key = toSlashes(azerothPath);
152
+ const prev = this.open.get(key);
153
+ this.open.set(key, { source, version: (prev?.version ?? 0) + 1 });
154
+ this.virtualCache.delete(key);
109
155
  this.projectVersion++;
110
156
  }
111
157
  /** Drops an open document (e.g. the editor closed it). */
112
158
  closeDocument(azerothPath) {
113
- this.open.delete(azerothPath);
114
- this.virtualCache.delete(azerothPath);
159
+ const key = toSlashes(azerothPath);
160
+ this.open.delete(key);
161
+ this.virtualCache.delete(key);
115
162
  this.projectVersion++;
116
163
  }
117
164
  /** All currently-open `.azeroth` paths. */
118
165
  openPaths() {
119
166
  return [...this.open.keys()];
120
167
  }
168
+ /**
169
+ * Re-scans the workspace for `.azeroth` files and bumps the project version
170
+ * so the program picks up files created or deleted since startup. The
171
+ * editor/LSP should call this on a watched-file create/delete; without it a
172
+ * newly-added component would be invisible to cross-file completion and
173
+ * go-to-definition until the service restarts.
174
+ */
175
+ refreshWorkspace() {
176
+ this.discovered = this.discoverWorkspace();
177
+ this.projectVersion++;
178
+ }
121
179
  /** The current source of a `.azeroth` document (open buffer or disk). */
122
180
  getSource(azerothPath) {
123
181
  return this.readAzeroth(azerothPath);
@@ -128,47 +186,83 @@ export class AzerothProject {
128
186
  * mapping always matches the snapshot TypeScript analyzed.
129
187
  */
130
188
  getVirtual(azerothPath) {
131
- const source = this.readAzeroth(azerothPath) ?? '';
132
- const cached = this.virtualCache.get(azerothPath);
189
+ // Normalize so the cache key matches the forward-slash key openDocument
190
+ // stores - the read and write sides must agree (see toSlashes).
191
+ const key = toSlashes(azerothPath);
192
+ const source = this.readAzeroth(key) ?? '';
193
+ const cached = this.virtualCache.get(key);
133
194
  if (cached && cached.source === source) {
134
195
  return cached;
135
196
  }
136
197
  const built = generateVirtualCode(source);
137
198
  const entry = { ...built, source };
138
- this.virtualCache.set(azerothPath, entry);
199
+ this.virtualCache.set(key, entry);
139
200
  return entry;
140
201
  }
141
202
  /** Reads a `.azeroth` source from the open set or disk. */
142
203
  readAzeroth(azerothPath) {
143
- const doc = this.open.get(azerothPath);
204
+ // Look the open buffer up under the same forward-slash key openDocument
205
+ // writes; a backslash path would otherwise miss it and serve stale disk.
206
+ const doc = this.open.get(toSlashes(azerothPath));
144
207
  if (doc) {
145
208
  return doc.source;
146
209
  }
147
210
  return ts.sys.readFile(azerothPath);
148
211
  }
212
+ /**
213
+ * Disk mtime as a version string, memoized for the current `projectVersion`
214
+ * epoch so repeated `getScriptVersion` queries don't re-stat the same file.
215
+ * Cleared on any edit (the version bump), so a real on-disk change is still
216
+ * seen on the next epoch.
217
+ */
218
+ diskVersion(fileName) {
219
+ if (this.mtimeCacheVersion !== this.projectVersion) {
220
+ this.mtimeCache.clear();
221
+ this.mtimeCacheVersion = this.projectVersion;
222
+ }
223
+ const cached = this.mtimeCache.get(fileName);
224
+ if (cached !== undefined) {
225
+ return cached;
226
+ }
227
+ const version = String(ts.sys.getModifiedTime?.(fileName)?.getTime() ?? 0);
228
+ this.mtimeCache.set(fileName, version);
229
+ return version;
230
+ }
149
231
  /** Builds the language service host backing the virtual project. */
150
232
  createHost() {
151
233
  // Every member below is an arrow function, so `this` is lexically the
152
234
  // project instance; no alias is needed.
153
235
  const host = {
154
- getScriptFileNames: () => [
155
- this.intrinsicsFile,
156
- ...new Set([...this.ambientFiles, ...this.openPaths().map(toVirtualFile), ...this.discovered])
157
- ],
236
+ getScriptFileNames: () => {
237
+ if (this.scriptNamesCache?.version === this.projectVersion) {
238
+ return this.scriptNamesCache.names;
239
+ }
240
+ const names = [
241
+ this.intrinsicsFile,
242
+ ...new Set([
243
+ ...this.ambientFiles,
244
+ ...(this.rootProjectFiles ? this.projectFiles : []),
245
+ ...this.openPaths().map(toVirtualFile),
246
+ ...this.discovered
247
+ ])
248
+ ];
249
+ this.scriptNamesCache = { version: this.projectVersion, names };
250
+ return names;
251
+ },
158
252
  getProjectVersion: () => String(this.projectVersion),
159
253
  getScriptVersion: (fileName) => {
160
254
  if (fileName === this.intrinsicsFile) {
161
255
  return '1';
162
256
  }
163
257
  if (isVirtualFile(fileName)) {
164
- const azerothPath = toAzerothPath(fileName);
258
+ const azerothPath = toSlashes(toAzerothPath(fileName));
165
259
  const doc = this.open.get(azerothPath);
166
260
  if (doc) {
167
261
  return `o${doc.version}`;
168
262
  }
169
- return `d${ts.sys.getModifiedTime?.(azerothPath)?.getTime() ?? 0}`;
263
+ return `d${this.diskVersion(azerothPath)}`;
170
264
  }
171
- return `${ts.sys.getModifiedTime?.(fileName)?.getTime() ?? 0}`;
265
+ return this.diskVersion(fileName);
172
266
  },
173
267
  getScriptSnapshot: (fileName) => {
174
268
  if (fileName === this.intrinsicsFile) {
@@ -204,7 +298,7 @@ export class AzerothProject {
204
298
  return true;
205
299
  }
206
300
  if (isVirtualFile(fileName)) {
207
- const azerothPath = toAzerothPath(fileName);
301
+ const azerothPath = toSlashes(toAzerothPath(fileName));
208
302
  return this.open.has(azerothPath) || ts.sys.fileExists(azerothPath);
209
303
  }
210
304
  return ts.sys.fileExists(fileName);
@@ -232,8 +326,8 @@ export class AzerothProject {
232
326
  return literals.map((literal) => {
233
327
  const text = literal.text;
234
328
  if (text.endsWith('.azeroth') && (text.startsWith('.') || text.startsWith('/'))) {
235
- const dir = ts.sys.resolvePath(containingFile).replace(/[\\/][^\\/]*$/, '');
236
- const candidate = ts.sys.resolvePath(`${dir}/${text}`);
329
+ const dir = toSlashes(ts.sys.resolvePath(containingFile)).replace(/\/[^/]*$/, '');
330
+ const candidate = toSlashes(ts.sys.resolvePath(`${dir}/${text}`));
237
331
  if (this.hostFileExists(toVirtualFile(candidate))) {
238
332
  return {
239
333
  resolvedModule: {
@@ -266,16 +360,51 @@ export class AzerothProject {
266
360
  static resolveProject(currentDirectory, configPath) {
267
361
  let options = {};
268
362
  let ambientFiles = [];
363
+ let projectFiles = [];
269
364
  const found = configPath ?? ts.findConfigFile(currentDirectory, ts.sys.fileExists, 'tsconfig.json');
270
365
  if (found) {
271
366
  const read = ts.readConfigFile(found, ts.sys.readFile);
272
367
  const parsed = ts.parseJsonConfigFileContent(read.config ?? {}, ts.sys, found.replace(/[\\/][^\\/]*$/, ''));
273
368
  options = parsed.options;
369
+ // The project's real source files (not `.d.ts`), so the combined
370
+ // checker can type-check the `.ts` side in the same program as the
371
+ // `.azeroth` files. AzerothJS projects are `.ts` + `.azeroth`.
372
+ projectFiles = parsed.fileNames.filter(name => !name.endsWith('.d.ts')).map(toSlashes);
274
373
  // Keep the project's ambient/global declaration roots so their
275
374
  // augmentations (and ambient module declarations) apply inside
276
375
  // `.azeroth`. Only `.d.ts` files - pulling in every project `.ts`
277
376
  // would bloat the program and isn't needed for global typing.
278
- ambientFiles = parsed.fileNames.filter(name => name.endsWith('.d.ts'));
377
+ const roots = parsed.fileNames.filter(name => name.endsWith('.d.ts'));
378
+ // Resolve `compilerOptions.types` the way tsc does (type reference
379
+ // directives -> typeRoots / node_modules) and include each resolved
380
+ // `.d.ts`. tsc loads these packages for their globals (e.g.
381
+ // "vite/client" -> node_modules/vite/client.d.ts, which augments
382
+ // `ImportMeta.env` and declares `*.png` / `?url`); including them
383
+ // explicitly makes those augmentations apply inside `.azeroth` even
384
+ // when the project has NO triple-slash `vite-env.d.ts`. The TS
385
+ // program already includes `types` automatically, but a language
386
+ // service host can miss them, so this guarantees parity with tsc.
387
+ for (const typeName of options.types ?? []) {
388
+ const resolved = ts.resolveTypeReferenceDirective(typeName, found, options, ts.sys)
389
+ .resolvedTypeReferenceDirective;
390
+ if (resolved?.resolvedFileName) {
391
+ roots.push(resolved.resolvedFileName);
392
+ }
393
+ }
394
+ // Zero-config Vite: if `vite/client` resolves (Vite is installed),
395
+ // include its globals - `interface ImportMeta` (so `import.meta.env`
396
+ // works) and the asset module declarations (`*.png`, `*.svg`, `?url`,
397
+ // `?raw`, ...). This lets a consumer delete BOTH `src/vite-env.d.ts`
398
+ // and the `"types": ["vite/client"]` tsconfig entry and still have
399
+ // those resolve inside `.azeroth`. Harmless otherwise: resolution
400
+ // fails when Vite isn't installed (nothing added), and a duplicate
401
+ // (already pulled in via `types`/a `vite-env.d.ts`) is deduped below.
402
+ const viteClient = ts.resolveTypeReferenceDirective('vite/client', found, options, ts.sys)
403
+ .resolvedTypeReferenceDirective?.resolvedFileName;
404
+ if (viteClient) {
405
+ roots.push(viteClient);
406
+ }
407
+ ambientFiles = [...new Set(roots)];
279
408
  }
280
409
  return {
281
410
  options: {
@@ -291,7 +420,8 @@ export class AzerothProject {
291
420
  skipLibCheck: true,
292
421
  lib: options.lib ?? ['lib.esnext.d.ts', 'lib.dom.d.ts', 'lib.dom.iterable.d.ts']
293
422
  },
294
- ambientFiles
423
+ ambientFiles,
424
+ projectFiles
295
425
  };
296
426
  }
297
427
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ts-project.js","sourceRoot":"","sources":["../src/ts-project.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ts-project.js","sourceRoot":"","sources":["../src/ts-project.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"virtual-code.d.ts","sourceRoot":"","sources":["../src/virtual-code.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAE,WAAW,EAAyC,MAAM,cAAc,CAAC;AAKlF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,MAAM,EAI/C,CAAC;AAIF,4EAA4E;AAC5E,MAAM,WAAW,WAAW;IAExB,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;IAEb,6DAA6D;IAC7D,OAAO,EAAE,WAAW,CAAC;CACxB;AAkDD;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAwQ/D"}
1
+ {"version":3,"file":"virtual-code.d.ts","sourceRoot":"","sources":["../src/virtual-code.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAE,WAAW,EAAyC,MAAM,cAAc,CAAC;AAKlF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,MAAM,EAI/C,CAAC;AAIF,4EAA4E;AAC5E,MAAM,WAAW,WAAW;IAExB,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;IAEb,6DAA6D;IAC7D,OAAO,EAAE,WAAW,CAAC;CACxB;AAkDD;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAyR/D"}
@@ -133,7 +133,22 @@ export function generateVirtualCode(source) {
133
133
  return;
134
134
  }
135
135
  const name = attr.name;
136
- builder.emit(`${objectKey(name)}: `);
136
+ const key = objectKey(name);
137
+ if (key === name) {
138
+ // Copy the attribute name (mapped) rather than emitting it as
139
+ // scaffolding, so a prop-level diagnostic - e.g. an unknown prop on a
140
+ // typed component tag (`<Modal bogus={1}/>` -> excess property on
141
+ // `Modal({ bogus: ... })`) - maps back to the original attribute
142
+ // instead of landing in unmapped scaffolding and being dropped.
143
+ builder.copy(attr.start, attr.start + name.length, 'attribute');
144
+ builder.emit(': ');
145
+ }
146
+ else {
147
+ // Hyphenated/colon names (host attrs like `data-x`) can't be a bare
148
+ // key; emit a quoted key. These are host-only, where the permissive
149
+ // h() props type does no excess-property checking anyway.
150
+ builder.emit(`${key}: `);
151
+ }
137
152
  if (attr.value.kind === 'none') {
138
153
  builder.emit('true');
139
154
  return;