@domainlang/language 0.10.0 → 0.12.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.
- package/README.md +44 -102
- package/out/diagram/context-map-diagram-generator.d.ts +65 -0
- package/out/diagram/context-map-diagram-generator.js +356 -0
- package/out/diagram/context-map-diagram-generator.js.map +1 -0
- package/out/diagram/context-map-layout-configurator.d.ts +15 -0
- package/out/diagram/context-map-layout-configurator.js +39 -0
- package/out/diagram/context-map-layout-configurator.js.map +1 -0
- package/out/diagram/elk-layout-factory.d.ts +43 -0
- package/out/diagram/elk-layout-factory.js +64 -0
- package/out/diagram/elk-layout-factory.js.map +1 -0
- package/out/domain-lang-module.d.ts +9 -2
- package/out/domain-lang-module.js +13 -4
- package/out/domain-lang-module.js.map +1 -1
- package/out/index.d.ts +6 -0
- package/out/index.js +7 -0
- package/out/index.js.map +1 -1
- package/out/lsp/domain-lang-code-lens-provider.d.ts +8 -0
- package/out/lsp/domain-lang-code-lens-provider.js +48 -0
- package/out/lsp/domain-lang-code-lens-provider.js.map +1 -0
- package/out/lsp/domain-lang-completion.js +1 -1
- package/out/lsp/domain-lang-completion.js.map +1 -1
- package/out/lsp/domain-lang-document-symbol-provider.js +5 -5
- package/out/lsp/domain-lang-document-symbol-provider.js.map +1 -1
- package/out/lsp/domain-lang-index-manager.d.ts +149 -5
- package/out/lsp/domain-lang-index-manager.js +388 -52
- package/out/lsp/domain-lang-index-manager.js.map +1 -1
- package/out/lsp/domain-lang-refresh.d.ts +35 -0
- package/out/lsp/domain-lang-refresh.js +129 -0
- package/out/lsp/domain-lang-refresh.js.map +1 -0
- package/out/lsp/domain-lang-workspace-manager.d.ts +10 -0
- package/out/lsp/domain-lang-workspace-manager.js +35 -0
- package/out/lsp/domain-lang-workspace-manager.js.map +1 -1
- package/out/lsp/tool-handlers.js +63 -57
- package/out/lsp/tool-handlers.js.map +1 -1
- package/out/main.js +30 -190
- package/out/main.js.map +1 -1
- package/out/sdk/loader-node.js +1 -1
- package/out/sdk/loader-node.js.map +1 -1
- package/out/sdk/validator.js +17 -14
- package/out/sdk/validator.js.map +1 -1
- package/out/services/import-resolver.d.ts +67 -17
- package/out/services/import-resolver.js +146 -65
- package/out/services/import-resolver.js.map +1 -1
- package/out/services/lsp-logger.d.ts +42 -0
- package/out/services/lsp-logger.js +50 -0
- package/out/services/lsp-logger.js.map +1 -0
- package/out/services/lsp-runtime-settings.d.ts +20 -0
- package/out/services/lsp-runtime-settings.js +20 -0
- package/out/services/lsp-runtime-settings.js.map +1 -0
- package/out/services/performance-optimizer.d.ts +9 -9
- package/out/services/performance-optimizer.js +17 -41
- package/out/services/performance-optimizer.js.map +1 -1
- package/out/services/workspace-manager.d.ts +22 -1
- package/out/services/workspace-manager.js +57 -9
- package/out/services/workspace-manager.js.map +1 -1
- package/out/utils/import-utils.js +6 -6
- package/out/utils/import-utils.js.map +1 -1
- package/out/validation/constants.d.ts +6 -0
- package/out/validation/constants.js +7 -0
- package/out/validation/constants.js.map +1 -1
- package/out/validation/import.d.ts +13 -3
- package/out/validation/import.js +54 -10
- package/out/validation/import.js.map +1 -1
- package/package.json +5 -2
- package/src/diagram/context-map-diagram-generator.ts +451 -0
- package/src/diagram/context-map-layout-configurator.ts +43 -0
- package/src/diagram/elk-layout-factory.ts +83 -0
- package/src/domain-lang-module.ts +22 -5
- package/src/index.ts +8 -0
- package/src/lsp/domain-lang-code-lens-provider.ts +54 -0
- package/src/lsp/domain-lang-completion.ts +3 -3
- package/src/lsp/domain-lang-document-symbol-provider.ts +5 -5
- package/src/lsp/domain-lang-index-manager.ts +438 -56
- package/src/lsp/domain-lang-refresh.ts +205 -0
- package/src/lsp/domain-lang-workspace-manager.ts +45 -0
- package/src/lsp/tool-handlers.ts +61 -47
- package/src/main.ts +36 -244
- package/src/sdk/loader-node.ts +1 -1
- package/src/sdk/validator.ts +17 -13
- package/src/services/import-resolver.ts +196 -89
- package/src/services/lsp-logger.ts +89 -0
- package/src/services/lsp-runtime-settings.ts +34 -0
- package/src/services/performance-optimizer.ts +18 -57
- package/src/services/workspace-manager.ts +62 -10
- package/src/utils/import-utils.ts +6 -6
- package/src/validation/constants.ts +9 -0
- package/src/validation/import.ts +67 -12
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import { URI } from 'langium';
|
|
3
|
+
import { FileChangeType } from 'vscode-languageserver-protocol';
|
|
4
|
+
class RecentChangeDeduper {
|
|
5
|
+
constructor(dedupeWindowMs = 300) {
|
|
6
|
+
this.seen = new Map();
|
|
7
|
+
this.dedupeWindowMs = dedupeWindowMs;
|
|
8
|
+
}
|
|
9
|
+
dedupe(changes) {
|
|
10
|
+
const now = Date.now();
|
|
11
|
+
const filtered = [];
|
|
12
|
+
for (const [key, timestamp] of this.seen.entries()) {
|
|
13
|
+
if (now - timestamp > this.dedupeWindowMs * 4) {
|
|
14
|
+
this.seen.delete(key);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
for (const change of changes) {
|
|
18
|
+
const key = `${change.uri}|${change.type}`;
|
|
19
|
+
const previous = this.seen.get(key);
|
|
20
|
+
if (previous !== undefined && now - previous < this.dedupeWindowMs) {
|
|
21
|
+
continue;
|
|
22
|
+
}
|
|
23
|
+
this.seen.set(key, now);
|
|
24
|
+
filtered.push(change);
|
|
25
|
+
}
|
|
26
|
+
return filtered;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
export function registerDomainLangRefresh(shared, domainLang, hooks = {}, options = {}) {
|
|
30
|
+
const deduper = new RecentChangeDeduper(options.dedupeWindowMs);
|
|
31
|
+
return shared.lsp.DocumentUpdateHandler.onWatchedFilesChange(async (params) => {
|
|
32
|
+
try {
|
|
33
|
+
const dedupedChanges = deduper.dedupe(params.changes);
|
|
34
|
+
if (dedupedChanges.length === 0) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
await processWatchedFileChanges({ changes: dedupedChanges }, shared, domainLang, hooks);
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
41
|
+
console.error(`Error handling watched file changes: ${message}`);
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Processes watched file change events.
|
|
47
|
+
*
|
|
48
|
+
* **Architecture:**
|
|
49
|
+
* - `.dlang` changes are handled entirely by Langium's own `DocumentBuilder.update()`
|
|
50
|
+
* pipeline. `DomainLangIndexManager.isAffected()` provides transitive import
|
|
51
|
+
* dependency tracking and specifier-sensitive matching, so Langium's single
|
|
52
|
+
* `update()` call propagates changes correctly through the import graph.
|
|
53
|
+
*
|
|
54
|
+
* - Config changes (model.yaml, model.lock) need explicit handling because Langium
|
|
55
|
+
* ignores non-language files (they have no LangiumDocument). Config changes
|
|
56
|
+
* invalidate caches and trigger a full rebuild of all loaded documents, routed
|
|
57
|
+
* through the workspace lock to serialize with Langium's own updates.
|
|
58
|
+
*/
|
|
59
|
+
export async function processWatchedFileChanges(params, shared, domainLang, hooks = {}) {
|
|
60
|
+
const categorized = categorizeChanges(params);
|
|
61
|
+
const hasConfigChanges = categorized.manifestChanges.length > 0
|
|
62
|
+
|| categorized.lockFileChanges.length > 0;
|
|
63
|
+
if (!hasConfigChanges) {
|
|
64
|
+
// .dlang changes handled by Langium's update() → isAffected() pipeline.
|
|
65
|
+
// DomainLangIndexManager.isAffected() checks transitive import deps
|
|
66
|
+
// and specifier-sensitive matching — no second update() needed.
|
|
67
|
+
return { configChanged: false, fullRebuildTriggered: false };
|
|
68
|
+
}
|
|
69
|
+
// Config changes need explicit handling: invalidate caches, then rebuild.
|
|
70
|
+
// Route through the workspace lock to serialize with Langium's own updates.
|
|
71
|
+
const indexManager = shared.workspace.IndexManager;
|
|
72
|
+
await shared.workspace.WorkspaceLock.write(async (token) => {
|
|
73
|
+
// 1. Invalidate caches
|
|
74
|
+
await processManifestChanges(categorized.manifestChanges, domainLang, hooks);
|
|
75
|
+
await processLockFileChanges(categorized.lockFileChanges, domainLang);
|
|
76
|
+
domainLang.imports.ImportResolver.clearCache();
|
|
77
|
+
indexManager.clearImportDependencies();
|
|
78
|
+
// 2. Rebuild ALL loaded documents — config changes affect all imports
|
|
79
|
+
const allDocUris = shared.workspace.LangiumDocuments.all
|
|
80
|
+
.map(doc => doc.uri)
|
|
81
|
+
.toArray();
|
|
82
|
+
if (allDocUris.length > 0) {
|
|
83
|
+
await shared.workspace.DocumentBuilder.update(allDocUris, [], token);
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
return { configChanged: true, fullRebuildTriggered: true };
|
|
87
|
+
}
|
|
88
|
+
function categorizeChanges(params) {
|
|
89
|
+
const manifestChanges = [];
|
|
90
|
+
const lockFileChanges = [];
|
|
91
|
+
for (const change of params.changes) {
|
|
92
|
+
const uri = URI.parse(change.uri);
|
|
93
|
+
const fileName = path.basename(uri.path).toLowerCase();
|
|
94
|
+
if (fileName === 'model.yaml') {
|
|
95
|
+
manifestChanges.push({ uri: change.uri, type: change.type });
|
|
96
|
+
}
|
|
97
|
+
else if (fileName === 'model.lock') {
|
|
98
|
+
lockFileChanges.push({ uri: change.uri, type: change.type });
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
return { manifestChanges, lockFileChanges };
|
|
102
|
+
}
|
|
103
|
+
async function processManifestChanges(manifestChanges, domainLang, hooks) {
|
|
104
|
+
for (const change of manifestChanges) {
|
|
105
|
+
domainLang.imports.ManifestManager.invalidateManifestCache();
|
|
106
|
+
// R11: Update workspace layout cache for the manifest's directory
|
|
107
|
+
const manifestDir = path.dirname(URI.parse(change.uri).fsPath);
|
|
108
|
+
domainLang.imports.ManifestManager.onManifestEvent(manifestDir, change.type !== FileChangeType.Deleted);
|
|
109
|
+
if (change.type === FileChangeType.Deleted) {
|
|
110
|
+
if (hooks.onManifestDeleted) {
|
|
111
|
+
await hooks.onManifestDeleted(change.uri);
|
|
112
|
+
}
|
|
113
|
+
continue;
|
|
114
|
+
}
|
|
115
|
+
if (hooks.onManifestChanged) {
|
|
116
|
+
await hooks.onManifestChanged(change);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
async function processLockFileChanges(lockFileChanges, domainLang) {
|
|
121
|
+
for (const change of lockFileChanges) {
|
|
122
|
+
if (change.type === FileChangeType.Deleted) {
|
|
123
|
+
domainLang.imports.ManifestManager.invalidateLockCache();
|
|
124
|
+
continue;
|
|
125
|
+
}
|
|
126
|
+
await domainLang.imports.ManifestManager.refreshLockFile();
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=domain-lang-refresh.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domain-lang-refresh.js","sourceRoot":"","sources":["../../src/lsp/domain-lang-refresh.ts"],"names":[],"mappings":"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"}
|
|
@@ -49,6 +49,11 @@ import type { DomainLangServices } from '../domain-lang-module.js';
|
|
|
49
49
|
*/
|
|
50
50
|
export declare class DomainLangWorkspaceManager extends DefaultWorkspaceManager {
|
|
51
51
|
private readonly sharedServices;
|
|
52
|
+
/**
|
|
53
|
+
* LSP connection for progress reporting (PRS-017 R7).
|
|
54
|
+
* Optional because the workspace manager can run in non-LSP contexts.
|
|
55
|
+
*/
|
|
56
|
+
private readonly connection;
|
|
52
57
|
/**
|
|
53
58
|
* DI-injected import resolver. Set via late-binding because
|
|
54
59
|
* WorkspaceManager (shared module) is created before ImportResolver (language module).
|
|
@@ -106,4 +111,9 @@ export declare class DomainLangWorkspaceManager extends DefaultWorkspaceManager
|
|
|
106
111
|
* @returns Set of URIs (as strings) for all documents in the import graph
|
|
107
112
|
*/
|
|
108
113
|
private loadImportGraph;
|
|
114
|
+
/**
|
|
115
|
+
* Creates an LSP work-done progress reporter.
|
|
116
|
+
* Returns undefined in non-LSP contexts (no connection).
|
|
117
|
+
*/
|
|
118
|
+
private createProgress;
|
|
109
119
|
}
|
|
@@ -53,6 +53,9 @@ export class DomainLangWorkspaceManager extends DefaultWorkspaceManager {
|
|
|
53
53
|
constructor(services) {
|
|
54
54
|
super(services);
|
|
55
55
|
this.sharedServices = services;
|
|
56
|
+
// Attempt to access connection from LSP services (cast to full shared services)
|
|
57
|
+
const lspServices = services;
|
|
58
|
+
this.connection = lspServices.lsp?.Connection;
|
|
56
59
|
}
|
|
57
60
|
/**
|
|
58
61
|
* Late-binds the language-specific services after DI initialization.
|
|
@@ -73,13 +76,18 @@ export class DomainLangWorkspaceManager extends DefaultWorkspaceManager {
|
|
|
73
76
|
await super.initializeWorkspace(folders, cancelToken);
|
|
74
77
|
}
|
|
75
78
|
async loadAdditionalDocuments(folders, collector) {
|
|
79
|
+
const progress = await this.createProgress('DomainLang: Indexing workspace');
|
|
76
80
|
// Find ALL model.yaml files in workspace (supports mixed mode)
|
|
77
81
|
const manifestInfos = await this.findAllManifestsInFolders(folders);
|
|
78
82
|
// Track directories covered by manifests to avoid loading their files as standalone
|
|
79
83
|
const moduleDirectories = new Set(manifestInfos.map(m => path.dirname(m.manifestPath)));
|
|
84
|
+
progress?.report(`Found ${manifestInfos.length} module(s)`);
|
|
80
85
|
// Mode A or Mode C: Load each module's entry + import graph
|
|
86
|
+
let moduleIdx = 0;
|
|
81
87
|
for (const manifestInfo of manifestInfos) {
|
|
88
|
+
moduleIdx++;
|
|
82
89
|
try {
|
|
90
|
+
progress?.report(`Loading module ${moduleIdx}/${manifestInfos.length}`);
|
|
83
91
|
const entryUri = URI.file(manifestInfo.entryPath);
|
|
84
92
|
const entryDoc = await this.langiumDocuments.getOrCreateDocument(entryUri);
|
|
85
93
|
collector(entryDoc);
|
|
@@ -110,7 +118,9 @@ export class DomainLangWorkspaceManager extends DefaultWorkspaceManager {
|
|
|
110
118
|
}
|
|
111
119
|
// Load standalone .dlang files in workspace root folders
|
|
112
120
|
// These are files NOT covered by any module's import graph
|
|
121
|
+
progress?.report('Loading standalone files');
|
|
113
122
|
await this.loadStandaloneFiles(folders, moduleDirectories, collector);
|
|
123
|
+
progress?.done();
|
|
114
124
|
}
|
|
115
125
|
/**
|
|
116
126
|
* Loads standalone .dlang files from workspace folders recursively.
|
|
@@ -256,5 +266,30 @@ export class DomainLangWorkspaceManager extends DefaultWorkspaceManager {
|
|
|
256
266
|
await visit(document);
|
|
257
267
|
return visited;
|
|
258
268
|
}
|
|
269
|
+
// --- PRS-017 R7: Progress reporting ---
|
|
270
|
+
/**
|
|
271
|
+
* Creates an LSP work-done progress reporter.
|
|
272
|
+
* Returns undefined in non-LSP contexts (no connection).
|
|
273
|
+
*/
|
|
274
|
+
async createProgress(title) {
|
|
275
|
+
if (!this.connection)
|
|
276
|
+
return undefined;
|
|
277
|
+
try {
|
|
278
|
+
const reporter = await this.connection.window.createWorkDoneProgress();
|
|
279
|
+
reporter.begin(title);
|
|
280
|
+
return {
|
|
281
|
+
report: (message) => {
|
|
282
|
+
reporter.report(message);
|
|
283
|
+
},
|
|
284
|
+
done: () => {
|
|
285
|
+
reporter.done();
|
|
286
|
+
}
|
|
287
|
+
};
|
|
288
|
+
}
|
|
289
|
+
catch {
|
|
290
|
+
// Client may not support progress — degrade gracefully
|
|
291
|
+
return undefined;
|
|
292
|
+
}
|
|
293
|
+
}
|
|
259
294
|
}
|
|
260
295
|
//# sourceMappingURL=domain-lang-workspace-manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain-lang-workspace-manager.js","sourceRoot":"","sources":["../../src/lsp/domain-lang-workspace-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,uBAAuB,EAAE,GAAG,EAAE,QAAQ,EAAmG,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"domain-lang-workspace-manager.js","sourceRoot":"","sources":["../../src/lsp/domain-lang-workspace-manager.ts"],"names":[],"mappings":"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"}
|
package/out/lsp/tool-handlers.js
CHANGED
|
@@ -187,64 +187,70 @@ async function handleExplain(params, sharedServices) {
|
|
|
187
187
|
* Executes a list query for a specific entity type.
|
|
188
188
|
*/
|
|
189
189
|
function executeListQuery(query, entityType, filters) {
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
case 'teams': {
|
|
218
|
-
let builder = query.teams();
|
|
219
|
-
if (filters.name)
|
|
220
|
-
builder = builder.withName(filters.name);
|
|
221
|
-
return builder.toArray().map((t) => serializeNode(t, query));
|
|
222
|
-
}
|
|
223
|
-
case 'classifications': {
|
|
224
|
-
let builder = query.classifications();
|
|
225
|
-
if (filters.name)
|
|
226
|
-
builder = builder.withName(filters.name);
|
|
227
|
-
return builder.toArray().map((c) => serializeNode(c, query));
|
|
228
|
-
}
|
|
229
|
-
case 'relationships': {
|
|
230
|
-
const rels = query.relationships().toArray();
|
|
231
|
-
return rels.map((r) => serializeRelationship(r));
|
|
232
|
-
}
|
|
233
|
-
case 'context-maps': {
|
|
234
|
-
let builder = query.contextMaps();
|
|
235
|
-
if (filters.name)
|
|
236
|
-
builder = builder.withName(filters.name);
|
|
237
|
-
return builder.toArray().map((cm) => serializeNode(cm, query));
|
|
238
|
-
}
|
|
239
|
-
case 'domain-maps': {
|
|
240
|
-
let builder = query.domainMaps();
|
|
241
|
-
if (filters.name)
|
|
242
|
-
builder = builder.withName(filters.name);
|
|
243
|
-
return builder.toArray().map((dm) => serializeNode(dm, query));
|
|
244
|
-
}
|
|
245
|
-
default:
|
|
246
|
-
return [];
|
|
190
|
+
const handlers = {
|
|
191
|
+
domains: listDomains,
|
|
192
|
+
bcs: listBoundedContexts,
|
|
193
|
+
teams: listTeams,
|
|
194
|
+
classifications: listClassifications,
|
|
195
|
+
relationships: listRelationships,
|
|
196
|
+
'context-maps': listContextMaps,
|
|
197
|
+
'domain-maps': listDomainMaps,
|
|
198
|
+
};
|
|
199
|
+
return handlers[entityType](query, filters);
|
|
200
|
+
}
|
|
201
|
+
function listDomains(query, filters) {
|
|
202
|
+
let builder = query.domains();
|
|
203
|
+
if (filters.name)
|
|
204
|
+
builder = builder.withName(filters.name);
|
|
205
|
+
if (filters.fqn)
|
|
206
|
+
builder = builder.withFqn(filters.fqn);
|
|
207
|
+
return builder.toArray().map((domain) => serializeNode(domain, query));
|
|
208
|
+
}
|
|
209
|
+
function listBoundedContexts(query, filters) {
|
|
210
|
+
let builder = query.boundedContexts();
|
|
211
|
+
if (filters.domain)
|
|
212
|
+
builder = builder.inDomain(filters.domain);
|
|
213
|
+
if (filters.team)
|
|
214
|
+
builder = builder.withTeam(filters.team);
|
|
215
|
+
if (filters.classification) {
|
|
216
|
+
builder = builder.withClassification(filters.classification);
|
|
247
217
|
}
|
|
218
|
+
if (filters.metadata) {
|
|
219
|
+
const [key, value] = filters.metadata.split('=');
|
|
220
|
+
builder = builder.withMetadata(key, value);
|
|
221
|
+
}
|
|
222
|
+
if (filters.name)
|
|
223
|
+
builder = builder.withName(filters.name);
|
|
224
|
+
if (filters.fqn)
|
|
225
|
+
builder = builder.withFqn(filters.fqn);
|
|
226
|
+
return builder.toArray().map((boundedContext) => serializeNode(boundedContext, query));
|
|
227
|
+
}
|
|
228
|
+
function listTeams(query, filters) {
|
|
229
|
+
let builder = query.teams();
|
|
230
|
+
if (filters.name)
|
|
231
|
+
builder = builder.withName(filters.name);
|
|
232
|
+
return builder.toArray().map((team) => serializeNode(team, query));
|
|
233
|
+
}
|
|
234
|
+
function listClassifications(query, filters) {
|
|
235
|
+
let builder = query.classifications();
|
|
236
|
+
if (filters.name)
|
|
237
|
+
builder = builder.withName(filters.name);
|
|
238
|
+
return builder.toArray().map((classification) => serializeNode(classification, query));
|
|
239
|
+
}
|
|
240
|
+
function listRelationships(query, _filters) {
|
|
241
|
+
return query.relationships().toArray().map((relationship) => serializeRelationship(relationship));
|
|
242
|
+
}
|
|
243
|
+
function listContextMaps(query, filters) {
|
|
244
|
+
let builder = query.contextMaps();
|
|
245
|
+
if (filters.name)
|
|
246
|
+
builder = builder.withName(filters.name);
|
|
247
|
+
return builder.toArray().map((contextMap) => serializeNode(contextMap, query));
|
|
248
|
+
}
|
|
249
|
+
function listDomainMaps(query, filters) {
|
|
250
|
+
let builder = query.domainMaps();
|
|
251
|
+
if (filters.name)
|
|
252
|
+
builder = builder.withName(filters.name);
|
|
253
|
+
return builder.toArray().map((domainMap) => serializeNode(domainMap, query));
|
|
248
254
|
}
|
|
249
255
|
/**
|
|
250
256
|
* Generates a model summary with counts of major entities.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-handlers.js","sourceRoot":"","sources":["../../src/lsp/tool-handlers.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"tool-handlers.js","sourceRoot":"","sources":["../../src/lsp/tool-handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAKH,OAAO,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EACH,aAAa,EACb,qBAAqB,EACrB,mBAAmB,GACtB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAuGnD,gFAAgF;AAChF,uBAAuB;AACvB,gFAAgF;AAEhF;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAChC,UAAsB,EACtB,cAAqC;IAErC,UAAU,CAAC,SAAS,CAAC,qBAAqB,EAAE,KAAK,EAAE,MAAsB,EAAE,EAAE;QACzE,OAAO,cAAc,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,SAAS,CAAC,iBAAiB,EAAE,KAAK,EAAE,MAAkB,EAAE,EAAE;QACjE,OAAO,UAAU,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,SAAS,CAAC,gBAAgB,EAAE,KAAK,EAAE,MAAiB,EAAE,EAAE;QAC/D,OAAO,SAAS,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,SAAS,CAAC,oBAAoB,EAAE,KAAK,EAAE,MAAqB,EAAE,EAAE;QACvE,OAAO,aAAa,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACP,CAAC;AAED,gFAAgF;AAChF,0BAA0B;AAC1B,gFAAgF;AAEhF;;;GAGG;AACH,KAAK,UAAU,cAAc,CACzB,MAAsB,EACtB,cAAqC;IAErC,IAAI,CAAC;QACD,MAAM,WAAW,GAAG,cAAc,CAAC,SAAS,CAAC,gBAAgB,CAAC;QAC9D,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI;YACzB,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YACnD,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAEtC,MAAM,MAAM,GAAqB,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAqB,EAAE,CAAC;QACtC,MAAM,IAAI,GAAqB,EAAE,CAAC;QAElC,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,GAAG;gBAAE,SAAS;YAEnB,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC;YAC1C,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;gBAC7B,MAAM,QAAQ,GAAmB;oBAC7B,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE;oBACxB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,YAAY;oBAC7C,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,EAAE,YAAY;oBACpD,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,QAAQ,EAAE,gBAAgB,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;oBAC9C,IAAI,EAAE,IAAI,CAAC,IAAI;iBAClB,CAAC;gBAEF,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;oBACtB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC1B,CAAC;qBAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;oBAC7B,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC5B,CAAC;qBAAM,CAAC;oBACJ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACxB,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO;YACH,KAAK,EAAE,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;YACpD,WAAW,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;SAC1C,CAAC;IACF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAAC;QAC3D,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC;IAC7E,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,UAAU,CACrB,MAAkB,EAClB,cAAqC;IAErC,IAAI,CAAC;QACD,MAAM,UAAU,GAAG,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACxD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;QAErC,sCAAsC;QACtC,MAAM,WAAW,GAAG,cAAc,CAAC,SAAS,CAAC,gBAAgB,CAAC;QAC9D,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAE9C,MAAM,UAAU,GAA8B,EAAE,CAAC;QACjD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC,CAAC,qBAAqB;QAErD,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAG,YAAY,CAAC,GAA6B,CAAC,CAAC;YAC1D,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;YAE7D,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,GAAyB,CAAC;gBAC7C,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;oBAAE,SAAS;gBACnC,IAAI,GAAG;oBAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACvB,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC5B,CAAC;QACL,CAAC;QAED,OAAO;YACH,UAAU;YACV,KAAK,EAAE,UAAU,CAAC,MAAM;YACxB,OAAO,EAAE,UAAU;SACtB,CAAC;IACF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;QACvD,OAAO,EAAE,UAAU,EAAE,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACnF,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,SAAS,CACpB,MAAiB,EACjB,cAAqC;IAErC,IAAI,CAAC;QACD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACrB,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC,cAAc,CAAC,EAAE,CAAC;QAC7D,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAC5B,CAAC;QAED,uCAAuC;QACvC,MAAM,WAAW,GAAG,cAAc,CAAC,SAAS,CAAC,gBAAgB,CAAC;QAC9D,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAE9C,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAG,YAAY,CAAC,GAA6B,CAAC,CAAC;YAC1D,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACxC,IAAI,OAAO,EAAE,CAAC;gBACV,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;YACrD,CAAC;QACL,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACxB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;QACtD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC5B,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,aAAa,CACxB,MAAqB,EACrB,cAAqC;IAErC,IAAI,CAAC;QACD,MAAM,WAAW,GAAG,cAAc,CAAC,SAAS,CAAC,gBAAgB,CAAC;QAC9D,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAE9C,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAG,YAAY,CAAC,GAA6B,CAAC,CAAC;YAC1D,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACxC,IAAI,OAAO,EAAE,CAAC;gBACV,MAAM,WAAW,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;gBACjD,OAAO,EAAE,WAAW,EAAE,CAAC;YAC3B,CAAC;QACL,CAAC;QAED,OAAO;YACH,WAAW,EAAE,sBAAsB,MAAM,CAAC,GAAG,EAAE;SAClD,CAAC;IACN,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;QAC1D,OAAO,EAAE,WAAW,EAAE,6BAA6B,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC;IACtE,CAAC;AACL,CAAC;AAED,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAEhF;;GAEG;AACH,SAAS,gBAAgB,CACrB,KAAY,EACZ,UAA2B,EAC3B,OAAqB;IAErB,MAAM,QAAQ,GAA4G;QACtH,OAAO,EAAE,WAAW;QACpB,GAAG,EAAE,mBAAmB;QACxB,KAAK,EAAE,SAAS;QAChB,eAAe,EAAE,mBAAmB;QACpC,aAAa,EAAE,iBAAiB;QAChC,cAAc,EAAE,eAAe;QAC/B,aAAa,EAAE,cAAc;KAChC,CAAC;IAEF,OAAO,QAAQ,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,WAAW,CAAC,KAAY,EAAE,OAAqB;IACpD,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;IAC9B,IAAI,OAAO,CAAC,IAAI;QAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,IAAI,OAAO,CAAC,GAAG;QAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACxD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAY,EAAE,OAAqB;IAC5D,IAAI,OAAO,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC;IACtC,IAAI,OAAO,CAAC,MAAM;QAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/D,IAAI,OAAO,CAAC,IAAI;QAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;QACzB,OAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACnB,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjD,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC;IACD,IAAI,OAAO,CAAC,IAAI;QAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAyC,CAAC;IACnG,IAAI,OAAO,CAAC,GAAG;QAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAyC,CAAC;IAChG,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,aAAa,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC;AAC3F,CAAC;AAED,SAAS,SAAS,CAAC,KAAY,EAAE,OAAqB;IAClD,IAAI,OAAO,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAC5B,IAAI,OAAO,CAAC,IAAI;QAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAY,EAAE,OAAqB;IAC5D,IAAI,OAAO,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC;IACtC,IAAI,OAAO,CAAC,IAAI;QAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,aAAa,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC;AAC3F,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAY,EAAE,QAAsB;IAC3D,OAAO,KAAK,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,qBAAqB,CAAC,YAAY,CAAC,CAAC,CAAC;AACtG,CAAC;AAED,SAAS,eAAe,CAAC,KAAY,EAAE,OAAqB;IACxD,IAAI,OAAO,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAClC,IAAI,OAAO,CAAC,IAAI;QAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;AACnF,CAAC;AAED,SAAS,cAAc,CAAC,KAAY,EAAE,OAAqB;IACvD,IAAI,OAAO,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;IACjC,IAAI,OAAO,CAAC,IAAI;QAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;AACjF,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,eAAe,CAC1B,cAAqC;IAErC,MAAM,WAAW,GAAG,cAAc,CAAC,SAAS,CAAC,gBAAgB,CAAC;IAC9D,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAE9C,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,YAAY,CAAC,GAA6B,CAAC,CAAC;QAC1D,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC;QACnC,GAAG,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,CAAC;QACvC,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC;QAC/B,eAAe,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,CAAC;QACnD,aAAa,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,CAAC;QAC/C,WAAW,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,CAAC;QAC3C,UAAU,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC;IAC7C,CAAC;IAED,OAAO;QACH,KAAK,EAAE,cAAc;QACrB,aAAa,EAAE,SAAS,CAAC,MAAM;QAC/B,OAAO;QACP,eAAe,EAAE,GAAG;QACpB,KAAK;QACL,eAAe;QACf,aAAa;QACb,WAAW;QACX,UAAU;KACb,CAAC;AACN,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,QAAgB;IACtC,QAAQ,QAAQ,EAAE,CAAC;QACf,KAAK,CAAC;YACF,OAAO,OAAO,CAAC;QACnB,KAAK,CAAC;YACF,OAAO,SAAS,CAAC;QACrB;YACI,OAAO,MAAM,CAAC;IACtB,CAAC;AACL,CAAC"}
|