@domainlang/language 0.1.82 → 0.4.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 (111) hide show
  1. package/README.md +18 -18
  2. package/out/domain-lang-module.d.ts +2 -0
  3. package/out/domain-lang-module.js +11 -3
  4. package/out/domain-lang-module.js.map +1 -1
  5. package/out/generated/ast.d.ts +8 -19
  6. package/out/generated/ast.js +1 -10
  7. package/out/generated/ast.js.map +1 -1
  8. package/out/generated/grammar.d.ts +1 -1
  9. package/out/generated/grammar.js +28 -123
  10. package/out/generated/grammar.js.map +1 -1
  11. package/out/generated/module.d.ts +1 -1
  12. package/out/generated/module.js +1 -1
  13. package/out/index.d.ts +3 -0
  14. package/out/index.js +5 -0
  15. package/out/index.js.map +1 -1
  16. package/out/lsp/domain-lang-code-actions.d.ts +55 -0
  17. package/out/lsp/domain-lang-code-actions.js +143 -0
  18. package/out/lsp/domain-lang-code-actions.js.map +1 -0
  19. package/out/lsp/domain-lang-workspace-manager.d.ts +21 -0
  20. package/out/lsp/domain-lang-workspace-manager.js +93 -0
  21. package/out/lsp/domain-lang-workspace-manager.js.map +1 -0
  22. package/out/lsp/hover/domain-lang-hover.js +0 -4
  23. package/out/lsp/hover/domain-lang-hover.js.map +1 -1
  24. package/out/lsp/manifest-diagnostics.d.ts +82 -0
  25. package/out/lsp/manifest-diagnostics.js +230 -0
  26. package/out/lsp/manifest-diagnostics.js.map +1 -0
  27. package/out/sdk/index.d.ts +1 -1
  28. package/out/sdk/loader-node.d.ts +7 -3
  29. package/out/sdk/loader-node.js +24 -9
  30. package/out/sdk/loader-node.js.map +1 -1
  31. package/out/sdk/types.d.ts +0 -21
  32. package/out/services/dependency-analyzer.d.ts +3 -39
  33. package/out/services/dependency-analyzer.js +22 -47
  34. package/out/services/dependency-analyzer.js.map +1 -1
  35. package/out/services/dependency-resolver.d.ts +68 -45
  36. package/out/services/dependency-resolver.js +243 -43
  37. package/out/services/dependency-resolver.js.map +1 -1
  38. package/out/services/git-url-resolver.browser.d.ts +4 -12
  39. package/out/services/git-url-resolver.browser.js +5 -1
  40. package/out/services/git-url-resolver.browser.js.map +1 -1
  41. package/out/services/git-url-resolver.d.ts +22 -56
  42. package/out/services/git-url-resolver.js +70 -36
  43. package/out/services/git-url-resolver.js.map +1 -1
  44. package/out/services/governance-validator.d.ts +1 -37
  45. package/out/services/governance-validator.js +4 -10
  46. package/out/services/governance-validator.js.map +1 -1
  47. package/out/services/import-resolver.d.ts +65 -6
  48. package/out/services/import-resolver.js +223 -5
  49. package/out/services/import-resolver.js.map +1 -1
  50. package/out/services/performance-optimizer.d.ts +1 -1
  51. package/out/services/semver.d.ts +98 -0
  52. package/out/services/semver.js +195 -0
  53. package/out/services/semver.js.map +1 -0
  54. package/out/services/types.d.ts +340 -0
  55. package/out/services/types.js +46 -0
  56. package/out/services/types.js.map +1 -0
  57. package/out/services/workspace-manager.d.ts +57 -10
  58. package/out/services/workspace-manager.js +187 -21
  59. package/out/services/workspace-manager.js.map +1 -1
  60. package/out/syntaxes/domain-lang.monarch.js +1 -1
  61. package/out/syntaxes/domain-lang.monarch.js.map +1 -1
  62. package/out/utils/import-utils.d.ts +4 -12
  63. package/out/utils/import-utils.js +35 -135
  64. package/out/utils/import-utils.js.map +1 -1
  65. package/out/validation/constants.d.ts +103 -0
  66. package/out/validation/constants.js +141 -2
  67. package/out/validation/constants.js.map +1 -1
  68. package/out/validation/domain.js +46 -1
  69. package/out/validation/domain.js.map +1 -1
  70. package/out/validation/import.d.ts +46 -22
  71. package/out/validation/import.js +187 -85
  72. package/out/validation/import.js.map +1 -1
  73. package/out/validation/manifest.d.ts +144 -0
  74. package/out/validation/manifest.js +327 -0
  75. package/out/validation/manifest.js.map +1 -0
  76. package/out/validation/maps.js +10 -6
  77. package/out/validation/maps.js.map +1 -1
  78. package/out/validation/metadata.js +5 -1
  79. package/out/validation/metadata.js.map +1 -1
  80. package/package.json +8 -6
  81. package/src/domain-lang-module.ts +18 -6
  82. package/src/domain-lang.langium +7 -12
  83. package/src/generated/ast.ts +7 -20
  84. package/src/generated/grammar.ts +28 -123
  85. package/src/generated/module.ts +1 -1
  86. package/src/index.ts +7 -0
  87. package/src/lsp/domain-lang-code-actions.ts +189 -0
  88. package/src/lsp/domain-lang-workspace-manager.ts +104 -0
  89. package/src/lsp/hover/domain-lang-hover.ts +0 -2
  90. package/src/lsp/manifest-diagnostics.ts +290 -0
  91. package/src/sdk/index.ts +0 -2
  92. package/src/sdk/loader-node.ts +29 -9
  93. package/src/sdk/types.ts +0 -23
  94. package/src/services/dependency-analyzer.ts +24 -84
  95. package/src/services/dependency-resolver.ts +301 -84
  96. package/src/services/git-url-resolver.browser.ts +9 -14
  97. package/src/services/git-url-resolver.ts +86 -93
  98. package/src/services/governance-validator.ts +5 -47
  99. package/src/services/import-resolver.ts +270 -8
  100. package/src/services/performance-optimizer.ts +1 -1
  101. package/src/services/semver.ts +213 -0
  102. package/src/services/types.ts +415 -0
  103. package/src/services/workspace-manager.ts +237 -46
  104. package/src/utils/import-utils.ts +38 -160
  105. package/src/validation/constants.ts +182 -2
  106. package/src/validation/domain.ts +54 -1
  107. package/src/validation/import.ts +228 -104
  108. package/src/validation/manifest.ts +439 -0
  109. package/src/validation/maps.ts +10 -6
  110. package/src/validation/metadata.ts +5 -1
  111. package/src/syntaxes/domain-lang.monarch.ts +0 -29
@@ -10,55 +10,7 @@
10
10
  * - Version pinning at repository level
11
11
  */
12
12
  import { URI } from 'langium';
13
- /**
14
- * Parsed git import with repository-level information.
15
- */
16
- export interface GitImportInfo {
17
- /** Original import string */
18
- original: string;
19
- /** Git platform (github, gitlab, bitbucket, or generic) */
20
- platform: 'github' | 'gitlab' | 'bitbucket' | 'generic';
21
- /** Repository owner/organization */
22
- owner: string;
23
- /** Repository name */
24
- repo: string;
25
- /** Version (tag, branch, or commit hash) */
26
- version: string;
27
- /** Full git repository URL */
28
- repoUrl: string;
29
- /** Package main entry point (from dlang.toml or default index.dlang) */
30
- entryPoint: string;
31
- }
32
- /**
33
- * Package metadata from model.yaml
34
- */
35
- export interface PackageMetadata {
36
- name?: string;
37
- version?: string;
38
- main?: string;
39
- entry?: string;
40
- exports?: Record<string, string>;
41
- dependencies?: Record<string, string>;
42
- }
43
- /**
44
- * Lock file format (dlang.lock)
45
- *
46
- * Pins exact versions and commit hashes for all dependencies
47
- * in the dependency tree. Ensures reproducible builds.
48
- */
49
- export interface LockFile {
50
- version: string;
51
- dependencies: Record<string, LockedDependency>;
52
- }
53
- /**
54
- * A single locked dependency with pinned version and commit.
55
- */
56
- export interface LockedDependency {
57
- version: string;
58
- resolved: string;
59
- commit: string;
60
- integrity?: string;
61
- }
13
+ import type { GitImportInfo, LockFile } from './types.js';
62
14
  /**
63
15
  * Parses import URLs into structured git import information.
64
16
  *
@@ -104,16 +56,23 @@ export declare class GitUrlParser {
104
56
  * Resolves git repository imports to local entry point files.
105
57
  *
106
58
  * Implements a content-addressable cache:
107
- * - Cache location: ~/.dlang/cache/
108
- * - Cache key: platform/owner/repo/commit-hash
59
+ * - Cache location: .dlang/packages/ (project-local, per PRS-010)
60
+ * - Cache key: {owner}/{repo}/{commit-hash}
109
61
  * - Downloads entire repository on first use
110
- * - Reads dlang.toml to find entry point
62
+ * - Reads model.yaml to find entry point
111
63
  * - Returns URI to entry point file
112
64
  */
113
65
  export declare class GitUrlResolver {
114
66
  private cacheDir;
115
67
  private lockFile?;
116
- constructor(cacheDir?: string);
68
+ /**
69
+ * Creates a GitUrlResolver with a project-local cache directory.
70
+ *
71
+ * @param cacheDir - The cache directory path. Per PRS-010, this should be
72
+ * the project's `.dlang/packages/` directory for isolation
73
+ * and reproducibility (like node_modules).
74
+ */
75
+ constructor(cacheDir: string);
117
76
  /**
118
77
  * Sets the lock file for dependency resolution.
119
78
  *
@@ -133,13 +92,15 @@ export declare class GitUrlResolver {
133
92
  * 3. Resolve version to commit hash (if not locked)
134
93
  * 4. Check cache
135
94
  * 5. Download repository if not cached
136
- * 6. Read dlang.toml to find entry point
95
+ * 6. Read model.yaml to find entry point
137
96
  * 7. Return URI to entry point file
138
97
  *
139
98
  * @param importUrl - The git import URL
140
99
  * @returns URI to the package's entry point file
141
100
  */
142
- resolve(importUrl: string): Promise<URI>;
101
+ resolve(importUrl: string, options?: {
102
+ allowNetwork?: boolean;
103
+ }): Promise<URI>;
143
104
  /**
144
105
  * Reads model.yaml to get the package entry point.
145
106
  * Falls back to index.dlang if no model.yaml found.
@@ -160,7 +121,10 @@ export declare class GitUrlResolver {
160
121
  /**
161
122
  * Gets the local cache path for a git repository.
162
123
  *
163
- * Format: ~/.dlang/cache/{platform}/{owner}/{repo}/{commit-hash}/
124
+ * Format: .dlang/packages/{owner}/{repo}/{version}/
125
+ *
126
+ * Per PRS-010: Project-local cache structure mirrors the Design Considerations
127
+ * section showing `.dlang/packages/{owner}/{repo}/{version}/` layout.
164
128
  */
165
129
  private getCachePath;
166
130
  /**
@@ -179,6 +143,8 @@ export declare class GitUrlResolver {
179
143
  clearCache(): Promise<void>;
180
144
  /**
181
145
  * Gets cache statistics (size, number of cached repos, etc.).
146
+ *
147
+ * Cache structure: .dlang/packages/{owner}/{repo}/{version}/
182
148
  */
183
149
  getCacheStats(): Promise<{
184
150
  totalSize: number;
@@ -12,7 +12,6 @@
12
12
  import { URI } from 'langium';
13
13
  import path from 'node:path';
14
14
  import fs from 'node:fs/promises';
15
- import os from 'node:os';
16
15
  import { exec } from 'node:child_process';
17
16
  import { promisify } from 'node:util';
18
17
  import YAML from 'yaml';
@@ -59,7 +58,8 @@ export class GitUrlParser {
59
58
  if (importStr.startsWith('https://') || importStr.startsWith('git://')) {
60
59
  return this.parseFullUrl(importStr);
61
60
  }
62
- throw new Error(`Invalid git import URL: ${importStr}`);
61
+ throw new Error(`Invalid git import URL: '${importStr}'.\n` +
62
+ `Hint: Use 'owner/repo' or 'owner/repo@version' format (e.g., 'domainlang/core@v1.0.0').`);
63
63
  }
64
64
  /**
65
65
  * Checks if string is GitHub shorthand format.
@@ -73,7 +73,8 @@ export class GitUrlParser {
73
73
  static parseGitHubShorthand(importStr) {
74
74
  const match = importStr.match(/^([a-zA-Z0-9-]+)\/([a-zA-Z0-9-_.]+)(?:@([^/]+))?$/);
75
75
  if (!match) {
76
- throw new Error(`Invalid GitHub shorthand format: ${importStr}`);
76
+ throw new Error(`Invalid GitHub shorthand format: '${importStr}'.\n` +
77
+ `Hint: Use 'owner/repo' or 'owner/repo@version' format.`);
77
78
  }
78
79
  const [, owner, repo, version] = match;
79
80
  const resolvedVersion = version || 'main';
@@ -84,7 +85,7 @@ export class GitUrlParser {
84
85
  repo,
85
86
  version: resolvedVersion,
86
87
  repoUrl: `https://github.com/${owner}/${repo}`,
87
- entryPoint: 'index.dlang', // Default, will be resolved from dlang.toml
88
+ entryPoint: 'index.dlang', // Default, will be resolved from model.yaml
88
89
  };
89
90
  }
90
91
  /**
@@ -152,22 +153,34 @@ export class GitUrlParser {
152
153
  entryPoint: 'index.dlang',
153
154
  };
154
155
  }
155
- throw new Error(`Unsupported git URL format: ${importStr}`);
156
+ throw new Error(`Unsupported git URL format: '${importStr}'.\n` +
157
+ `Supported formats:\n` +
158
+ ` • owner/repo (GitHub shorthand)\n` +
159
+ ` • owner/repo@version\n` +
160
+ ` • https://github.com/owner/repo\n` +
161
+ ` • https://gitlab.com/owner/repo`);
156
162
  }
157
163
  }
158
164
  /**
159
165
  * Resolves git repository imports to local entry point files.
160
166
  *
161
167
  * Implements a content-addressable cache:
162
- * - Cache location: ~/.dlang/cache/
163
- * - Cache key: platform/owner/repo/commit-hash
168
+ * - Cache location: .dlang/packages/ (project-local, per PRS-010)
169
+ * - Cache key: {owner}/{repo}/{commit-hash}
164
170
  * - Downloads entire repository on first use
165
- * - Reads dlang.toml to find entry point
171
+ * - Reads model.yaml to find entry point
166
172
  * - Returns URI to entry point file
167
173
  */
168
174
  export class GitUrlResolver {
175
+ /**
176
+ * Creates a GitUrlResolver with a project-local cache directory.
177
+ *
178
+ * @param cacheDir - The cache directory path. Per PRS-010, this should be
179
+ * the project's `.dlang/packages/` directory for isolation
180
+ * and reproducibility (like node_modules).
181
+ */
169
182
  constructor(cacheDir) {
170
- this.cacheDir = cacheDir || path.join(os.homedir(), '.dlang', 'cache');
183
+ this.cacheDir = cacheDir;
171
184
  }
172
185
  /**
173
186
  * Sets the lock file for dependency resolution.
@@ -190,13 +203,13 @@ export class GitUrlResolver {
190
203
  * 3. Resolve version to commit hash (if not locked)
191
204
  * 4. Check cache
192
205
  * 5. Download repository if not cached
193
- * 6. Read dlang.toml to find entry point
206
+ * 6. Read model.yaml to find entry point
194
207
  * 7. Return URI to entry point file
195
208
  *
196
209
  * @param importUrl - The git import URL
197
210
  * @returns URI to the package's entry point file
198
211
  */
199
- async resolve(importUrl) {
212
+ async resolve(importUrl, options = {}) {
200
213
  const gitInfo = GitUrlParser.parse(importUrl);
201
214
  // Check lock file for pinned version (handles transitive dependencies)
202
215
  let commitHash;
@@ -206,12 +219,22 @@ export class GitUrlResolver {
206
219
  commitHash = this.lockFile.dependencies[packageKey].commit;
207
220
  }
208
221
  else {
209
- // Resolve version dynamically (development mode or missing lock)
222
+ // No lock file entry - need to resolve dynamically
223
+ if (options.allowNetwork === false) {
224
+ // LSP mode: cannot perform network operations
225
+ throw new Error(`Dependency '${packageKey}' not installed.\n` +
226
+ `Hint: Run 'dlang install' to fetch dependencies and generate model.lock.`);
227
+ }
228
+ // CLI/dev mode: resolve version via network
210
229
  commitHash = await this.resolveCommit(gitInfo);
211
230
  }
212
231
  // Check cache
213
232
  const cachedPath = this.getCachePath(gitInfo, commitHash);
214
233
  if (!(await this.existsInCache(cachedPath))) {
234
+ if (options.allowNetwork === false) {
235
+ throw new Error(`Dependency '${packageKey}' not installed.\n` +
236
+ `Hint: Run 'dlang install' to fetch dependencies.`);
237
+ }
215
238
  // Download repository
216
239
  await this.downloadRepo(gitInfo, commitHash, cachedPath);
217
240
  }
@@ -220,7 +243,8 @@ export class GitUrlResolver {
220
243
  const entryFile = path.join(cachedPath, entryPoint);
221
244
  // Verify entry point exists
222
245
  if (!(await this.existsInCache(entryFile))) {
223
- throw new Error(`Entry point not found: ${entryPoint} in ${gitInfo.repoUrl}@${gitInfo.version}`);
246
+ throw new Error(`Entry point '${entryPoint}' not found in package '${gitInfo.owner}/${gitInfo.repo}@${gitInfo.version}'.\n` +
247
+ `Hint: Ensure the package has an entry point file (default: index.dlang).`);
224
248
  }
225
249
  return URI.file(entryFile);
226
250
  }
@@ -233,8 +257,7 @@ export class GitUrlResolver {
233
257
  try {
234
258
  const yamlContent = await fs.readFile(yamlPath, 'utf-8');
235
259
  const metadata = this.parseYaml(yamlContent);
236
- // Prefer 'entry' field, fallback to 'main' for backward compatibility
237
- return metadata.entry || metadata.main || 'index.dlang';
260
+ return metadata.entry ?? 'index.dlang';
238
261
  }
239
262
  catch {
240
263
  // No model.yaml or parse error, use default
@@ -252,7 +275,6 @@ export class GitUrlResolver {
252
275
  const parsed = YAML.parse(content);
253
276
  return {
254
277
  entry: parsed.model?.entry,
255
- main: parsed.model?.main,
256
278
  name: parsed.model?.name,
257
279
  version: parsed.model?.version,
258
280
  };
@@ -272,19 +294,25 @@ export class GitUrlResolver {
272
294
  if (/^[0-9a-f]{7,40}$/i.test(gitInfo.version)) {
273
295
  return gitInfo.version;
274
296
  }
275
- throw new Error(`Could not resolve version: ${gitInfo.version}`);
297
+ throw new Error(`Could not resolve version '${gitInfo.version}' for ${gitInfo.repoUrl}.\n` +
298
+ `Hint: Check that the version (tag, branch, or commit) exists in the repository.`);
276
299
  }
277
300
  catch (error) {
278
- throw new Error(`Failed to resolve git version ${gitInfo.version} for ${gitInfo.repoUrl}: ${error}`);
301
+ throw new Error(`Failed to resolve git version '${gitInfo.version}' for ${gitInfo.repoUrl}.\n` +
302
+ `Error: ${error}\n` +
303
+ `Hint: Verify the repository URL is correct and accessible.`);
279
304
  }
280
305
  }
281
306
  /**
282
307
  * Gets the local cache path for a git repository.
283
308
  *
284
- * Format: ~/.dlang/cache/{platform}/{owner}/{repo}/{commit-hash}/
309
+ * Format: .dlang/packages/{owner}/{repo}/{version}/
310
+ *
311
+ * Per PRS-010: Project-local cache structure mirrors the Design Considerations
312
+ * section showing `.dlang/packages/{owner}/{repo}/{version}/` layout.
285
313
  */
286
314
  getCachePath(gitInfo, commitHash) {
287
- return path.join(this.cacheDir, gitInfo.platform, gitInfo.owner, gitInfo.repo, commitHash);
315
+ return path.join(this.cacheDir, gitInfo.owner, gitInfo.repo, commitHash);
288
316
  }
289
317
  /**
290
318
  * Checks if a file or directory exists in the cache.
@@ -316,7 +344,9 @@ export class GitUrlResolver {
316
344
  catch (error) {
317
345
  await fs.rm(targetDir, { recursive: true, force: true });
318
346
  const message = error instanceof Error ? error.message : String(error);
319
- throw new Error(`Failed to download git repository ${gitInfo.repoUrl}@${gitInfo.version}: ${message}`);
347
+ throw new Error(`Failed to download package '${gitInfo.owner}/${gitInfo.repo}@${gitInfo.version}'.\n` +
348
+ `Error: ${message}\n` +
349
+ `Hint: Check your network connection and verify the repository URL is correct.`);
320
350
  }
321
351
  }
322
352
  /**
@@ -327,26 +357,30 @@ export class GitUrlResolver {
327
357
  }
328
358
  /**
329
359
  * Gets cache statistics (size, number of cached repos, etc.).
360
+ *
361
+ * Cache structure: .dlang/packages/{owner}/{repo}/{version}/
330
362
  */
331
363
  async getCacheStats() {
332
364
  let totalSize = 0;
333
365
  let repoCount = 0;
334
366
  try {
335
- const platforms = await fs.readdir(this.cacheDir);
336
- for (const platform of platforms) {
337
- const platformPath = path.join(this.cacheDir, platform);
338
- const owners = await fs.readdir(platformPath);
339
- for (const owner of owners) {
340
- const ownerPath = path.join(platformPath, owner);
341
- const repos = await fs.readdir(ownerPath);
342
- for (const repo of repos) {
343
- const repoPath = path.join(ownerPath, repo);
344
- const commits = await fs.readdir(repoPath);
345
- repoCount += commits.length;
346
- for (const commit of commits) {
347
- const commitPath = path.join(repoPath, commit);
348
- totalSize += await this.getDirectorySize(commitPath);
349
- }
367
+ const owners = await fs.readdir(this.cacheDir);
368
+ for (const owner of owners) {
369
+ const ownerPath = path.join(this.cacheDir, owner);
370
+ const ownerStat = await fs.stat(ownerPath);
371
+ if (!ownerStat.isDirectory())
372
+ continue;
373
+ const repos = await fs.readdir(ownerPath);
374
+ for (const repo of repos) {
375
+ const repoPath = path.join(ownerPath, repo);
376
+ const repoStat = await fs.stat(repoPath);
377
+ if (!repoStat.isDirectory())
378
+ continue;
379
+ const versions = await fs.readdir(repoPath);
380
+ repoCount += versions.length;
381
+ for (const version of versions) {
382
+ const versionPath = path.join(repoPath, version);
383
+ totalSize += await this.getDirectorySize(versionPath);
350
384
  }
351
385
  }
352
386
  }
@@ -1 +1 @@
1
- {"version":3,"file":"git-url-resolver.js","sourceRoot":"","sources":["../../src/services/git-url-resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git-url-resolver.js","sourceRoot":"","sources":["../../src/services/git-url-resolver.ts"],"names":[],"mappings":"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"}
@@ -18,39 +18,7 @@
18
18
  * requireTeamOwnership: true
19
19
  * ```
20
20
  */
21
- import type { LockFile } from './git-url-resolver.js';
22
- export interface GovernancePolicy {
23
- /** Allowed git domains (e.g., ['github.com/acme']) */
24
- allowedSources?: string[];
25
- /** Blocked packages or patterns */
26
- blockedPackages?: string[];
27
- /** Require stable versions only (no pre-release) */
28
- requireStableVersions?: boolean;
29
- /** Require team ownership metadata */
30
- requireTeamOwnership?: boolean;
31
- /** Allowed licenses */
32
- allowedLicenses?: string[];
33
- }
34
- export interface GovernanceMetadata {
35
- /** Team responsible for the model */
36
- team?: string;
37
- /** Contact email */
38
- contact?: string;
39
- /** Business domain */
40
- domain?: string;
41
- /** Compliance tags */
42
- compliance?: string[];
43
- }
44
- export interface GovernanceViolation {
45
- /** Type of violation */
46
- type: 'blocked-source' | 'unstable-version' | 'missing-metadata' | 'license-violation';
47
- /** Package that violates the policy */
48
- packageKey: string;
49
- /** Violation message */
50
- message: string;
51
- /** Severity: error or warning */
52
- severity: 'error' | 'warning';
53
- }
21
+ import type { LockFile, GovernancePolicy, GovernanceMetadata, GovernanceViolation } from './types.js';
54
22
  /**
55
23
  * Validates dependencies against organizational governance policies.
56
24
  */
@@ -69,10 +37,6 @@ export declare class GovernanceValidator {
69
37
  * Generates an audit report for compliance tracking.
70
38
  */
71
39
  generateAuditReport(lockFile: LockFile, workspaceRoot: string): Promise<string>;
72
- /**
73
- * Checks if a version is a pre-release.
74
- */
75
- private isPreReleaseVersion;
76
40
  }
77
41
  /**
78
42
  * Loads governance policy from model.yaml governance section.
@@ -21,6 +21,7 @@
21
21
  import path from 'node:path';
22
22
  import fs from 'node:fs/promises';
23
23
  import YAML from 'yaml';
24
+ import { isPreRelease } from './semver.js';
24
25
  /**
25
26
  * Validates dependencies against organizational governance policies.
26
27
  */
@@ -61,11 +62,11 @@ export class GovernanceValidator {
61
62
  }
62
63
  // Check version stability
63
64
  if (this.policy.requireStableVersions) {
64
- if (this.isPreReleaseVersion(locked.version)) {
65
+ if (isPreRelease(locked.ref)) {
65
66
  violations.push({
66
67
  type: 'unstable-version',
67
68
  packageKey,
68
- message: `Pre-release version not allowed: ${locked.version}`,
69
+ message: `Pre-release ref not allowed: ${locked.ref}`,
69
70
  severity: 'error',
70
71
  });
71
72
  }
@@ -115,7 +116,7 @@ export class GovernanceValidator {
115
116
  lines.push('');
116
117
  lines.push('Dependencies:');
117
118
  for (const [packageKey, locked] of Object.entries(lockFile.dependencies)) {
118
- lines.push(` - ${packageKey}@${locked.version}`);
119
+ lines.push(` - ${packageKey}@${locked.ref}`);
119
120
  lines.push(` Source: ${locked.resolved}`);
120
121
  lines.push(` Commit: ${locked.commit}`);
121
122
  }
@@ -132,13 +133,6 @@ export class GovernanceValidator {
132
133
  }
133
134
  return lines.join('\n');
134
135
  }
135
- /**
136
- * Checks if a version is a pre-release.
137
- */
138
- isPreReleaseVersion(version) {
139
- const clean = version.replace(/^v/, '');
140
- return /-(alpha|beta|rc|pre|dev|snapshot)/.test(clean);
141
- }
142
136
  }
143
137
  /**
144
138
  * Loads governance policy from model.yaml governance section.
@@ -1 +1 @@
1
- {"version":3,"file":"governance-validator.js","sourceRoot":"","sources":["../../src/services/governance-validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"governance-validator.js","sourceRoot":"","sources":["../../src/services/governance-validator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C;;GAEG;AACH,MAAM,OAAO,mBAAmB;IAC5B,YAA6B,MAAwB;QAAxB,WAAM,GAAN,MAAM,CAAkB;IAAG,CAAC;IAEzD;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,QAAkB,EAAE,aAAqB;QACpD,MAAM,UAAU,GAA0B,EAAE,CAAC;QAE7C,2BAA2B;QAC3B,KAAK,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YACvE,wBAAwB;YACxB,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtE,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CACxD,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CACtE,CAAC;gBAEF,IAAI,CAAC,SAAS,EAAE,CAAC;oBACb,UAAU,CAAC,IAAI,CAAC;wBACZ,IAAI,EAAE,gBAAgB;wBACtB,UAAU;wBACV,OAAO,EAAE,qCAAqC,MAAM,CAAC,QAAQ,EAAE;wBAC/D,QAAQ,EAAE,OAAO;qBACpB,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;YAED,yBAAyB;YACzB,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;gBAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CACzD,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAC/B,CAAC;gBAEF,IAAI,SAAS,EAAE,CAAC;oBACZ,UAAU,CAAC,IAAI,CAAC;wBACZ,IAAI,EAAE,gBAAgB;wBACtB,UAAU;wBACV,OAAO,EAAE,yCAAyC;wBAClD,QAAQ,EAAE,OAAO;qBACpB,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;YAED,0BAA0B;YAC1B,IAAI,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;gBACpC,IAAI,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC3B,UAAU,CAAC,IAAI,CAAC;wBACZ,IAAI,EAAE,kBAAkB;wBACxB,UAAU;wBACV,OAAO,EAAE,gCAAgC,MAAM,CAAC,GAAG,EAAE;wBACrD,QAAQ,EAAE,OAAO;qBACpB,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;QACL,CAAC;QAED,8BAA8B;QAC9B,IAAI,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC;YACnC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC;YAClE,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACtC,UAAU,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,kBAAkB;oBACxB,UAAU,EAAE,WAAW;oBACvB,OAAO,EAAE,wDAAwD;oBACjE,QAAQ,EAAE,SAAS;iBACtB,CAAC,CAAC;YACP,CAAC;QACL,CAAC;QAED,OAAO,UAAU,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,sBAAsB,CAAC,aAAqB;QAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;QAE5D,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAElC,CAAC;YAEF,OAAO,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC;QACnC,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,EAAE,CAAC;QACd,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,mBAAmB,CAAC,QAAkB,EAAE,aAAqB;QAC/D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC;QAClE,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QAEhE,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAC9C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,cAAc,aAAa,EAAE,CAAC,CAAC;QAC1C,KAAK,CAAC,IAAI,CAAC,SAAS,QAAQ,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC;QAC9C,KAAK,CAAC,IAAI,CAAC,YAAY,QAAQ,CAAC,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC;QACpD,KAAK,CAAC,IAAI,CAAC,WAAW,QAAQ,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC,CAAC;QAClD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAE5B,KAAK,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YACvE,KAAK,CAAC,IAAI,CAAC,OAAO,UAAU,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;YAC9C,KAAK,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC7C,KAAK,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC1B,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;gBACjC,KAAK,CAAC,IAAI,CAAC,MAAM,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,UAAU,KAAK,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;YACxG,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QACvD,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,aAAqB;IAC5D,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IAE5D,IAAI,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAElC,CAAC;QAEF,2DAA2D;QAC3D,OAAO,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACL,mDAAmD;QACnD,OAAO,EAAE,CAAC;IACd,CAAC;AACL,CAAC"}
@@ -1,16 +1,75 @@
1
- import { URI } from 'langium';
1
+ import { URI, type LangiumDocument } from 'langium';
2
2
  import type { DomainLangServices } from '../domain-lang-module.js';
3
- import type { LockFile } from './git-url-resolver.js';
3
+ import type { LockFile } from './types.js';
4
4
  /**
5
- * ImportResolver resolves import statements using WorkspaceManager and GitUrlResolver.
5
+ * ImportResolver resolves import statements using manifest-centric rules (PRS-010).
6
+ *
7
+ * Import Types (PRS-010):
8
+ * - Local relative: ./path, ../path → Directory-first resolution
9
+ * - Path aliases: @/path, @alias/path → Configurable in model.yaml paths section
10
+ * - External: owner/package → Manifest dependencies
11
+ *
12
+ * Directory-First Resolution:
13
+ * - ./types → ./types/index.dlang → ./types.dlang
14
+ * - Module entry defaults to index.dlang (no model.yaml required)
6
15
  */
7
16
  export declare class ImportResolver {
8
- private workspaceManager;
17
+ private readonly workspaceManager;
9
18
  constructor(services: DomainLangServices);
10
19
  /**
11
- * Resolve an import URL to a file URI using the workspace's GitUrlResolver.
20
+ * Resolve an import specifier relative to a Langium document.
12
21
  */
13
- resolveImport(importUrl: string): Promise<URI>;
22
+ resolveForDocument(document: LangiumDocument, specifier: string): Promise<URI>;
23
+ /**
24
+ * Resolve an import specifier from a base directory (non-LSP contexts).
25
+ */
26
+ resolveFrom(baseDir: string, specifier: string): Promise<URI>;
27
+ /**
28
+ * Resolves a path alias import.
29
+ *
30
+ * @param specifier - Import specifier starting with @ (e.g., "@/lib", "@shared/types")
31
+ */
32
+ private resolvePathAlias;
33
+ /**
34
+ * Finds the longest matching alias for a specifier.
35
+ */
36
+ private findMatchingAlias;
37
+ /**
38
+ * Resolves an external dependency via manifest.
39
+ *
40
+ * NEW FORMAT (PRS-010): Import specifier is owner/package format.
41
+ */
42
+ private resolveExternalDependency;
43
+ /**
44
+ * Resolves a local path using directory-first resolution.
45
+ *
46
+ * Per PRS-010 (updated design):
47
+ * - If path ends with .dlang → direct file import
48
+ * - If no extension → directory-first:
49
+ * 1. Try ./path/index.dlang (module default, no model.yaml required)
50
+ * 2. Try ./path.dlang (file fallback)
51
+ */
52
+ private resolveLocalPath;
53
+ /**
54
+ * Directory-first resolution: ./types → ./types/index.dlang → ./types.dlang
55
+ *
56
+ * Module entry defaults to index.dlang without requiring model.yaml.
57
+ * If the directory has model.yaml with custom entry, use that.
58
+ */
59
+ private resolveDirectoryFirst;
60
+ /**
61
+ * Reads the entry point from a module's model.yaml.
62
+ * Defaults to index.dlang if no manifest or no entry specified.
63
+ */
64
+ private readModuleEntry;
65
+ /**
66
+ * Checks if a path is a directory.
67
+ */
68
+ private isDirectory;
69
+ /**
70
+ * Checks if a file exists.
71
+ */
72
+ private fileExists;
14
73
  /**
15
74
  * Get the current lock file (if loaded).
16
75
  */