@domainlang/language 0.1.81 → 0.4.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 (111) hide show
  1. package/README.md +147 -16
  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 +23 -10
  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/syntaxes/domain-lang.monarch.ts +1 -1
  105. package/src/utils/import-utils.ts +38 -160
  106. package/src/validation/constants.ts +182 -2
  107. package/src/validation/domain.ts +54 -1
  108. package/src/validation/import.ts +228 -104
  109. package/src/validation/manifest.ts +439 -0
  110. package/src/validation/maps.ts +10 -6
  111. package/src/validation/metadata.ts +5 -1
@@ -0,0 +1,230 @@
1
+ /**
2
+ * Manifest Diagnostics Service for DomainLang.
3
+ *
4
+ * Provides LSP diagnostics for model.yaml files by integrating the ManifestValidator
5
+ * with the VS Code language server protocol.
6
+ *
7
+ * This service:
8
+ * - Validates model.yaml files using ManifestValidator
9
+ * - Converts ManifestDiagnostic to LSP Diagnostic format
10
+ * - Sends diagnostics to the LSP connection
11
+ *
12
+ * @module
13
+ */
14
+ import { DiagnosticSeverity, Position, Range } from 'vscode-languageserver-types';
15
+ import YAML, { isMap, isPair, isScalar } from 'yaml';
16
+ import { ManifestValidator } from '../validation/manifest.js';
17
+ /**
18
+ * Service for validating model.yaml and sending diagnostics via LSP.
19
+ */
20
+ export class ManifestDiagnosticsService {
21
+ constructor() {
22
+ this.validator = new ManifestValidator();
23
+ }
24
+ /**
25
+ * Sets the LSP connection for sending diagnostics.
26
+ * Must be called before validateAndSendDiagnostics.
27
+ */
28
+ setConnection(connection) {
29
+ this.connection = connection;
30
+ }
31
+ /**
32
+ * Validates a model.yaml file and sends diagnostics to the LSP connection.
33
+ *
34
+ * @param manifestUri - URI of the model.yaml file
35
+ * @param content - Raw YAML content of the file
36
+ * @param options - Validation options
37
+ */
38
+ async validateAndSendDiagnostics(manifestUri, content, options) {
39
+ if (!this.connection) {
40
+ return; // No connection, skip diagnostics
41
+ }
42
+ const diagnostics = this.validate(content, options);
43
+ await this.connection.sendDiagnostics({
44
+ uri: manifestUri,
45
+ diagnostics
46
+ });
47
+ }
48
+ /**
49
+ * Validates manifest content and returns LSP diagnostics.
50
+ *
51
+ * @param content - Raw YAML content
52
+ * @param options - Validation options
53
+ * @returns Array of LSP diagnostics
54
+ */
55
+ validate(content, options) {
56
+ // Parse YAML to get both the manifest object and source map
57
+ let yamlDoc;
58
+ let manifest;
59
+ try {
60
+ yamlDoc = YAML.parseDocument(content);
61
+ // Check for YAML parse errors (they're in the errors array, not thrown)
62
+ if (yamlDoc.errors && yamlDoc.errors.length > 0) {
63
+ return yamlDoc.errors.map(err => ({
64
+ severity: DiagnosticSeverity.Error,
65
+ range: this.yamlErrorToRange(err, content),
66
+ message: `YAML parse error: ${err.message}`,
67
+ source: 'domainlang'
68
+ }));
69
+ }
70
+ manifest = (yamlDoc.toJSON() ?? {});
71
+ }
72
+ catch (error) {
73
+ // Fallback for unexpected errors
74
+ const message = error instanceof Error ? error.message : 'Invalid YAML syntax';
75
+ return [{
76
+ severity: DiagnosticSeverity.Error,
77
+ range: Range.create(Position.create(0, 0), Position.create(0, 1)),
78
+ message: `YAML parse error: ${message}`,
79
+ source: 'domainlang'
80
+ }];
81
+ }
82
+ // Run manifest validation
83
+ const result = this.validator.validate(manifest, options);
84
+ // Convert to LSP diagnostics with source locations
85
+ return result.diagnostics.map(diag => this.toVSCodeDiagnostic(diag, yamlDoc));
86
+ }
87
+ /**
88
+ * Converts a YAML error to an LSP Range.
89
+ */
90
+ yamlErrorToRange(err, _content) {
91
+ if (err.linePos && err.linePos.length >= 1) {
92
+ const startPos = err.linePos[0];
93
+ const startLine = startPos.line - 1; // YAML uses 1-based lines
94
+ const startCol = startPos.col - 1; // YAML uses 1-based columns
95
+ const endPos = err.linePos.length >= 2 ? err.linePos[1] : undefined;
96
+ const endLine = endPos ? endPos.line - 1 : startLine;
97
+ const endCol = endPos ? endPos.col - 1 : startCol + 1;
98
+ return Range.create(Position.create(startLine, startCol), Position.create(endLine, endCol));
99
+ }
100
+ return Range.create(Position.create(0, 0), Position.create(0, 1));
101
+ }
102
+ /**
103
+ * Clears diagnostics for a manifest file.
104
+ * Call this when the file is closed or deleted.
105
+ */
106
+ async clearDiagnostics(manifestUri) {
107
+ if (!this.connection) {
108
+ return;
109
+ }
110
+ await this.connection.sendDiagnostics({
111
+ uri: manifestUri,
112
+ diagnostics: []
113
+ });
114
+ }
115
+ /**
116
+ * Converts a ManifestDiagnostic to an LSP Diagnostic.
117
+ */
118
+ toVSCodeDiagnostic(diag, yamlDoc) {
119
+ const range = this.findRangeForPath(diag.path, yamlDoc);
120
+ let message = diag.message;
121
+ if (diag.hint) {
122
+ message += `\nHint: ${diag.hint}`;
123
+ }
124
+ return {
125
+ severity: this.toVSCodeSeverity(diag.severity),
126
+ range,
127
+ message,
128
+ source: 'domainlang',
129
+ code: diag.code
130
+ };
131
+ }
132
+ /**
133
+ * Converts ManifestSeverity to LSP DiagnosticSeverity.
134
+ */
135
+ toVSCodeSeverity(severity) {
136
+ switch (severity) {
137
+ case 'error':
138
+ return DiagnosticSeverity.Error;
139
+ case 'warning':
140
+ return DiagnosticSeverity.Warning;
141
+ case 'info':
142
+ return DiagnosticSeverity.Information;
143
+ default:
144
+ return DiagnosticSeverity.Warning;
145
+ }
146
+ }
147
+ /**
148
+ * Finds the source range for a YAML path like "dependencies.core.version".
149
+ * Returns a fallback range at start of file if path not found.
150
+ */
151
+ findRangeForPath(path, yamlDoc) {
152
+ const fallback = Range.create(Position.create(0, 0), Position.create(0, 1));
153
+ if (!yamlDoc.contents || !isMap(yamlDoc.contents)) {
154
+ return fallback;
155
+ }
156
+ const parts = path.split('.');
157
+ let currentNode = yamlDoc.contents;
158
+ for (const part of parts) {
159
+ if (!isMap(currentNode)) {
160
+ return fallback;
161
+ }
162
+ const mapNode = currentNode;
163
+ const item = mapNode.items.find((pair) => isPair(pair) && isScalar(pair.key) && String(pair.key.value) === part);
164
+ if (!item) {
165
+ return fallback;
166
+ }
167
+ // If this is the last part, return the range of the key
168
+ if (part === parts[parts.length - 1]) {
169
+ const keyNode = item.key;
170
+ if (isScalar(keyNode) && keyNode.range) {
171
+ const [start, end] = keyNode.range;
172
+ return this.offsetsToRange(start, end, yamlDoc.toString());
173
+ }
174
+ }
175
+ currentNode = item.value;
176
+ }
177
+ return fallback;
178
+ }
179
+ /**
180
+ * Converts byte offsets to a VS Code Range using line/column calculation.
181
+ */
182
+ offsetsToRange(startOffset, endOffset, content) {
183
+ const lines = content.split('\n');
184
+ let currentOffset = 0;
185
+ let startLine = 0;
186
+ let startCol = 0;
187
+ let endLine = 0;
188
+ let endCol = 0;
189
+ let foundStart = false;
190
+ let foundEnd = false;
191
+ for (let lineNum = 0; lineNum < lines.length && !foundEnd; lineNum++) {
192
+ const lineLength = lines[lineNum].length + 1; // +1 for newline
193
+ if (!foundStart && currentOffset + lineLength > startOffset) {
194
+ startLine = lineNum;
195
+ startCol = startOffset - currentOffset;
196
+ foundStart = true;
197
+ }
198
+ if (!foundEnd && currentOffset + lineLength >= endOffset) {
199
+ endLine = lineNum;
200
+ endCol = endOffset - currentOffset;
201
+ foundEnd = true;
202
+ }
203
+ currentOffset += lineLength;
204
+ }
205
+ return Range.create(Position.create(startLine, startCol), Position.create(endLine, endCol));
206
+ }
207
+ }
208
+ /**
209
+ * Singleton instance for use across the language server.
210
+ */
211
+ let manifestDiagnosticsService;
212
+ /**
213
+ * Gets or creates the manifest diagnostics service singleton.
214
+ */
215
+ export function getManifestDiagnosticsService() {
216
+ if (!manifestDiagnosticsService) {
217
+ manifestDiagnosticsService = new ManifestDiagnosticsService();
218
+ }
219
+ return manifestDiagnosticsService;
220
+ }
221
+ /**
222
+ * Helper to validate a manifest URI with the given content.
223
+ * Convenience function for use in file watchers.
224
+ */
225
+ export async function validateManifestFile(connection, manifestUri, content) {
226
+ const service = getManifestDiagnosticsService();
227
+ service.setConnection(connection);
228
+ await service.validateAndSendDiagnostics(manifestUri, content);
229
+ }
230
+ //# sourceMappingURL=manifest-diagnostics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest-diagnostics.js","sourceRoot":"","sources":["../../src/lsp/manifest-diagnostics.ts"],"names":[],"mappings":"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"}
@@ -91,4 +91,4 @@ export { loadModelFromText } from './loader.js';
91
91
  export { fromModel, fromDocument, fromServices, augmentModel } from './query.js';
92
92
  export { Pattern, PatternFullName, PatternAliases, matchesPattern, isUpstreamPattern, isDownstreamPattern, isMutualPattern, UpstreamPatterns, DownstreamPatterns, MutualPatterns, } from './patterns.js';
93
93
  export type { IntegrationPattern } from './patterns.js';
94
- export type { Query, QueryBuilder, QueryContext, LoadOptions, BcQueryBuilder, RelationshipView, AugmentedBoundedContext, AugmentedDomain, } from './types.js';
94
+ export type { Query, QueryBuilder, QueryContext, LoadOptions, BcQueryBuilder, RelationshipView, } from './types.js';
@@ -23,8 +23,9 @@ import type { LoadOptions, QueryContext } from './types.js';
23
23
  *
24
24
  * **Node.js only** - uses file system APIs.
25
25
  *
26
- * Note: This loads a single file. For multi-file models with imports,
27
- * consider using the WorkspaceManager or hosting an LSP server.
26
+ * Supports multi-file models with imports: all imported files are
27
+ * automatically loaded and linked. Use `documents` in the result
28
+ * to see all loaded files.
28
29
  *
29
30
  * @param entryFile - Path to the entry .dlang file
30
31
  * @param options - Optional load configuration
@@ -35,13 +36,16 @@ import type { LoadOptions, QueryContext } from './types.js';
35
36
  * ```typescript
36
37
  * import { loadModel } from '@domainlang/language/sdk/loader-node';
37
38
  *
38
- * const { query, model } = await loadModel('./domains.dlang', {
39
+ * const { query, model, documents } = await loadModel('./domains.dlang', {
39
40
  * workspaceDir: process.cwd()
40
41
  * });
41
42
  *
43
+ * // Query spans all imported files
42
44
  * for (const bc of query.boundedContexts()) {
43
45
  * console.log(bc.name);
44
46
  * }
47
+ *
48
+ * console.log(`Loaded ${documents.length} files`);
45
49
  * ```
46
50
  */
47
51
  export declare function loadModel(entryFile: string, options?: LoadOptions): Promise<QueryContext>;
@@ -22,13 +22,15 @@ import { NodeFileSystem } from 'langium/node';
22
22
  import { isModel } from '../generated/ast.js';
23
23
  import { createDomainLangServices } from '../domain-lang-module.js';
24
24
  import { fromModel, augmentModel } from './query.js';
25
+ import { ensureImportGraphFromDocument } from '../utils/import-utils.js';
25
26
  /**
26
27
  * Loads a DomainLang model from a file on disk.
27
28
  *
28
29
  * **Node.js only** - uses file system APIs.
29
30
  *
30
- * Note: This loads a single file. For multi-file models with imports,
31
- * consider using the WorkspaceManager or hosting an LSP server.
31
+ * Supports multi-file models with imports: all imported files are
32
+ * automatically loaded and linked. Use `documents` in the result
33
+ * to see all loaded files.
32
34
  *
33
35
  * @param entryFile - Path to the entry .dlang file
34
36
  * @param options - Optional load configuration
@@ -39,13 +41,16 @@ import { fromModel, augmentModel } from './query.js';
39
41
  * ```typescript
40
42
  * import { loadModel } from '@domainlang/language/sdk/loader-node';
41
43
  *
42
- * const { query, model } = await loadModel('./domains.dlang', {
44
+ * const { query, model, documents } = await loadModel('./domains.dlang', {
43
45
  * workspaceDir: process.cwd()
44
46
  * });
45
47
  *
48
+ * // Query spans all imported files
46
49
  * for (const bc of query.boundedContexts()) {
47
50
  * console.log(bc.name);
48
51
  * }
52
+ *
53
+ * console.log(`Loaded ${documents.length} files`);
49
54
  * ```
50
55
  */
51
56
  export async function loadModel(entryFile, options) {
@@ -73,8 +78,13 @@ export async function loadModel(entryFile, options) {
73
78
  const document = shared.workspace.LangiumDocumentFactory.fromString(fileContent, uri);
74
79
  // Register document and build it
75
80
  shared.workspace.LangiumDocuments.addDocument(document);
76
- await shared.workspace.DocumentBuilder.build([document], { validation: true });
77
- // Wait for document to be fully processed
81
+ await shared.workspace.DocumentBuilder.build([document], { validation: false });
82
+ // Traverse import graph to load all imported files
83
+ const importedUris = await ensureImportGraphFromDocument(document, shared.workspace.LangiumDocuments);
84
+ // Build all imported documents with validation
85
+ const allDocuments = Array.from(shared.workspace.LangiumDocuments.all);
86
+ await shared.workspace.DocumentBuilder.build(allDocuments, { validation: true });
87
+ // Wait for entry document to be fully processed
78
88
  if (document.state < DocumentState.Validated) {
79
89
  throw new Error(`Document not fully processed: ${absolutePath}`);
80
90
  }
@@ -91,10 +101,15 @@ export async function loadModel(entryFile, options) {
91
101
  if (!isModel(model)) {
92
102
  throw new Error(`Document root is not a Model: ${entryFile}`);
93
103
  }
94
- // Augment AST nodes with SDK properties
95
- augmentModel(model);
96
- // Collect all document URIs
97
- const documentUris = Array.from(shared.workspace.LangiumDocuments.all).map(doc => doc.uri);
104
+ // Augment AST nodes with SDK properties for all loaded models
105
+ for (const doc of allDocuments) {
106
+ const docModel = doc.parseResult.value;
107
+ if (isModel(docModel)) {
108
+ augmentModel(docModel);
109
+ }
110
+ }
111
+ // Collect all document URIs from the import graph
112
+ const documentUris = Array.from(importedUris).map(uriStr => URI.parse(uriStr));
98
113
  return {
99
114
  model,
100
115
  documents: documentUris,
@@ -1 +1 @@
1
- {"version":3,"file":"loader-node.js","sourceRoot":"","sources":["../../src/sdk/loader-node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loader-node.js","sourceRoot":"","sources":["../../src/sdk/loader-node.ts"],"names":[],"mappings":"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"}
@@ -262,27 +262,6 @@ export interface RelationshipView {
262
262
  /** Original AST relationship node */
263
263
  readonly astNode: Relationship;
264
264
  }
265
- /**
266
- * Augmented BoundedContext with SDK-resolved properties.
267
- * These properties are computed during model loading using precedence rules.
268
- *
269
- * Property names follow the PRS design: natural names that "just work" with
270
- * IDE autocomplete. Use `resolved*` prefix to avoid conflicts with existing
271
- * AST properties while maintaining discoverability.
272
- *
273
- * @deprecated Since SDK now uses module augmentation in ast-augmentation.ts,
274
- * this type alias is only kept for backwards compatibility. Use BoundedContext
275
- * directly after importing the SDK.
276
- */
277
- export type AugmentedBoundedContext = BoundedContext;
278
- /**
279
- * Augmented Domain with SDK-resolved properties.
280
- *
281
- * @deprecated Since SDK now uses module augmentation in ast-augmentation.ts,
282
- * this type alias is only kept for backwards compatibility. Use Domain
283
- * directly after importing the SDK.
284
- */
285
- export type AugmentedDomain = Domain;
286
265
  /**
287
266
  * Internal index structure for O(1) lookups.
288
267
  * Not exported from public API.
@@ -7,35 +7,7 @@
7
7
  * - Circular dependency detection
8
8
  * - Version policy enforcement
9
9
  */
10
- import type { LockFile } from './git-url-resolver.js';
11
- export interface DependencyTreeNode {
12
- /** Package identifier */
13
- packageKey: string;
14
- /** Locked version */
15
- version: string;
16
- /** Commit hash */
17
- commit: string;
18
- /** Direct dependencies */
19
- dependencies: DependencyTreeNode[];
20
- /** Depth in tree (0 = root) */
21
- depth: number;
22
- }
23
- export interface ReverseDependency {
24
- /** Package that depends on the target */
25
- dependentPackage: string;
26
- /** Version of the dependent package */
27
- version: string;
28
- /** Type: direct or transitive */
29
- type: 'direct' | 'transitive';
30
- }
31
- export interface VersionPolicy {
32
- /** Policy name: latest, stable, or specific version */
33
- policy: 'latest' | 'stable' | 'pinned';
34
- /** Resolved version */
35
- version: string;
36
- /** Available versions for policy */
37
- availableVersions?: string[];
38
- }
10
+ import type { LockFile, DependencyTreeNode, ReverseDependency, VersionPolicy } from './types.js';
39
11
  /**
40
12
  * Analyzes dependency relationships and provides visualization/analysis tools.
41
13
  */
@@ -72,9 +44,9 @@ export declare class DependencyAnalyzer {
72
44
  */
73
45
  detectCircularDependencies(lockFile: LockFile): Promise<string[][]>;
74
46
  /**
75
- * Resolves version policies (latest, stable) to concrete versions.
47
+ * Resolves ref policies (latest, stable) to concrete refs.
76
48
  */
77
- resolveVersionPolicy(packageKey: string, policy: string, availableVersions: string[]): Promise<VersionPolicy>;
49
+ resolveVersionPolicy(_packageKey: string, policy: string, availableRefs: string[]): Promise<VersionPolicy>;
78
50
  /**
79
51
  * Gets the cache directory for a package.
80
52
  */
@@ -83,12 +55,4 @@ export declare class DependencyAnalyzer {
83
55
  * Loads dependencies from a cached package.
84
56
  */
85
57
  private loadPackageDependencies;
86
- /**
87
- * Sorts versions in descending order (newest first).
88
- */
89
- private sortVersions;
90
- /**
91
- * Checks if a version is a pre-release.
92
- */
93
- private isPreRelease;
94
58
  }
@@ -11,6 +11,7 @@ import path from 'node:path';
11
11
  import fs from 'node:fs/promises';
12
12
  import os from 'node:os';
13
13
  import YAML from 'yaml';
14
+ import { sortVersionsDescending, isPreRelease } from './semver.js';
14
15
  /**
15
16
  * Analyzes dependency relationships and provides visualization/analysis tools.
16
17
  */
@@ -61,7 +62,7 @@ export class DependencyAnalyzer {
61
62
  if (visited.has(packageKey)) {
62
63
  return {
63
64
  packageKey,
64
- version: locked.version,
65
+ ref: locked.ref,
65
66
  commit: locked.commit,
66
67
  dependencies: [], // Don't recurse into already visited
67
68
  depth,
@@ -81,7 +82,7 @@ export class DependencyAnalyzer {
81
82
  }
82
83
  return {
83
84
  packageKey,
84
- version: locked.version,
85
+ ref: locked.ref,
85
86
  commit: locked.commit,
86
87
  dependencies: children,
87
88
  depth,
@@ -107,7 +108,7 @@ export class DependencyAnalyzer {
107
108
  if (dep.source === targetPackage) {
108
109
  reverseDeps.push({
109
110
  dependentPackage: 'root',
110
- version: 'workspace',
111
+ ref: 'workspace',
111
112
  type: 'direct',
112
113
  });
113
114
  }
@@ -127,7 +128,7 @@ export class DependencyAnalyzer {
127
128
  if (packageDeps[targetPackage]) {
128
129
  reverseDeps.push({
129
130
  dependentPackage: packageKey,
130
- version: locked.version,
131
+ ref: locked.ref,
131
132
  type: 'direct',
132
133
  });
133
134
  }
@@ -141,10 +142,10 @@ export class DependencyAnalyzer {
141
142
  const lines = [];
142
143
  const formatNode = (node, prefix, isLast) => {
143
144
  const branch = isLast ? '└── ' : '├── ';
144
- const versionStr = options.showCommits
145
- ? `${node.version} (${node.commit.substring(0, 7)})`
146
- : node.version;
147
- lines.push(`${prefix}${branch}${node.packageKey}@${versionStr}`);
145
+ const refStr = options.showCommits
146
+ ? `${node.ref} (${node.commit.substring(0, 7)})`
147
+ : node.ref;
148
+ lines.push(`${prefix}${branch}${node.packageKey}@${refStr}`);
148
149
  const childPrefix = prefix + (isLast ? ' ' : '│ ');
149
150
  node.dependencies.forEach((child, index) => {
150
151
  const isLastChild = index === node.dependencies.length - 1;
@@ -193,32 +194,32 @@ export class DependencyAnalyzer {
193
194
  return cycles;
194
195
  }
195
196
  /**
196
- * Resolves version policies (latest, stable) to concrete versions.
197
+ * Resolves ref policies (latest, stable) to concrete refs.
197
198
  */
198
- async resolveVersionPolicy(packageKey, policy, availableVersions) {
199
+ async resolveVersionPolicy(_packageKey, policy, availableRefs) {
199
200
  if (policy === 'latest') {
200
- // Return the most recent version
201
- const sorted = this.sortVersions(availableVersions);
201
+ // Return the most recent ref
202
+ const sorted = sortVersionsDescending(availableRefs);
202
203
  return {
203
204
  policy: 'latest',
204
- version: sorted[0] || 'main',
205
- availableVersions: sorted,
205
+ ref: sorted[0] || 'main',
206
+ availableRefs: sorted,
206
207
  };
207
208
  }
208
209
  if (policy === 'stable') {
209
- // Return the most recent stable version (exclude pre-release)
210
- const stable = availableVersions.filter(v => !this.isPreRelease(v));
211
- const sorted = this.sortVersions(stable);
210
+ // Return the most recent stable ref (exclude pre-release)
211
+ const stable = availableRefs.filter(v => !isPreRelease(v));
212
+ const sorted = sortVersionsDescending(stable);
212
213
  return {
213
214
  policy: 'stable',
214
- version: sorted[0] || 'main',
215
- availableVersions: sorted,
215
+ ref: sorted[0] || 'main',
216
+ availableRefs: sorted,
216
217
  };
217
218
  }
218
- // Pinned version
219
+ // Pinned ref
219
220
  return {
220
221
  policy: 'pinned',
221
- version: policy,
222
+ ref: policy,
222
223
  };
223
224
  }
224
225
  /**
@@ -249,31 +250,5 @@ export class DependencyAnalyzer {
249
250
  return {};
250
251
  }
251
252
  }
252
- /**
253
- * Sorts versions in descending order (newest first).
254
- */
255
- sortVersions(versions) {
256
- return versions.sort((a, b) => {
257
- // Simple lexicographic sort (good enough for basic semver)
258
- // Production: use semver library
259
- const aParts = a.replace(/^v/, '').split('.').map(Number);
260
- const bParts = b.replace(/^v/, '').split('.').map(Number);
261
- for (let i = 0; i < Math.max(aParts.length, bParts.length); i++) {
262
- const aNum = aParts[i] || 0;
263
- const bNum = bParts[i] || 0;
264
- if (aNum !== bNum) {
265
- return bNum - aNum; // Descending
266
- }
267
- }
268
- return 0;
269
- });
270
- }
271
- /**
272
- * Checks if a version is a pre-release.
273
- */
274
- isPreRelease(version) {
275
- const clean = version.replace(/^v/, '');
276
- return /-(alpha|beta|rc|pre|dev)/.test(clean);
277
- }
278
253
  }
279
254
  //# sourceMappingURL=dependency-analyzer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dependency-analyzer.js","sourceRoot":"","sources":["../../src/services/dependency-analyzer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dependency-analyzer.js","sourceRoot":"","sources":["../../src/services/dependency-analyzer.ts"],"names":[],"mappings":"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"}