@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.
- package/README.md +147 -16
- package/out/domain-lang-module.d.ts +2 -0
- package/out/domain-lang-module.js +11 -3
- package/out/domain-lang-module.js.map +1 -1
- package/out/generated/ast.d.ts +8 -19
- package/out/generated/ast.js +1 -10
- package/out/generated/ast.js.map +1 -1
- package/out/generated/grammar.d.ts +1 -1
- package/out/generated/grammar.js +28 -123
- package/out/generated/grammar.js.map +1 -1
- package/out/generated/module.d.ts +1 -1
- package/out/generated/module.js +1 -1
- package/out/index.d.ts +3 -0
- package/out/index.js +5 -0
- package/out/index.js.map +1 -1
- package/out/lsp/domain-lang-code-actions.d.ts +55 -0
- package/out/lsp/domain-lang-code-actions.js +143 -0
- package/out/lsp/domain-lang-code-actions.js.map +1 -0
- package/out/lsp/domain-lang-workspace-manager.d.ts +21 -0
- package/out/lsp/domain-lang-workspace-manager.js +93 -0
- package/out/lsp/domain-lang-workspace-manager.js.map +1 -0
- package/out/lsp/hover/domain-lang-hover.js +0 -4
- package/out/lsp/hover/domain-lang-hover.js.map +1 -1
- package/out/lsp/manifest-diagnostics.d.ts +82 -0
- package/out/lsp/manifest-diagnostics.js +230 -0
- package/out/lsp/manifest-diagnostics.js.map +1 -0
- package/out/sdk/index.d.ts +1 -1
- package/out/sdk/loader-node.d.ts +7 -3
- package/out/sdk/loader-node.js +24 -9
- package/out/sdk/loader-node.js.map +1 -1
- package/out/sdk/types.d.ts +0 -21
- package/out/services/dependency-analyzer.d.ts +3 -39
- package/out/services/dependency-analyzer.js +22 -47
- package/out/services/dependency-analyzer.js.map +1 -1
- package/out/services/dependency-resolver.d.ts +68 -45
- package/out/services/dependency-resolver.js +243 -43
- package/out/services/dependency-resolver.js.map +1 -1
- package/out/services/git-url-resolver.browser.d.ts +4 -12
- package/out/services/git-url-resolver.browser.js +5 -1
- package/out/services/git-url-resolver.browser.js.map +1 -1
- package/out/services/git-url-resolver.d.ts +22 -56
- package/out/services/git-url-resolver.js +70 -36
- package/out/services/git-url-resolver.js.map +1 -1
- package/out/services/governance-validator.d.ts +1 -37
- package/out/services/governance-validator.js +4 -10
- package/out/services/governance-validator.js.map +1 -1
- package/out/services/import-resolver.d.ts +65 -6
- package/out/services/import-resolver.js +223 -5
- package/out/services/import-resolver.js.map +1 -1
- package/out/services/performance-optimizer.d.ts +1 -1
- package/out/services/semver.d.ts +98 -0
- package/out/services/semver.js +195 -0
- package/out/services/semver.js.map +1 -0
- package/out/services/types.d.ts +340 -0
- package/out/services/types.js +46 -0
- package/out/services/types.js.map +1 -0
- package/out/services/workspace-manager.d.ts +57 -10
- package/out/services/workspace-manager.js +187 -21
- package/out/services/workspace-manager.js.map +1 -1
- package/out/syntaxes/domain-lang.monarch.js +1 -1
- package/out/syntaxes/domain-lang.monarch.js.map +1 -1
- package/out/utils/import-utils.d.ts +4 -12
- package/out/utils/import-utils.js +35 -135
- package/out/utils/import-utils.js.map +1 -1
- package/out/validation/constants.d.ts +103 -0
- package/out/validation/constants.js +141 -2
- package/out/validation/constants.js.map +1 -1
- package/out/validation/domain.js +46 -1
- package/out/validation/domain.js.map +1 -1
- package/out/validation/import.d.ts +46 -22
- package/out/validation/import.js +187 -85
- package/out/validation/import.js.map +1 -1
- package/out/validation/manifest.d.ts +144 -0
- package/out/validation/manifest.js +327 -0
- package/out/validation/manifest.js.map +1 -0
- package/out/validation/maps.js +10 -6
- package/out/validation/maps.js.map +1 -1
- package/out/validation/metadata.js +5 -1
- package/out/validation/metadata.js.map +1 -1
- package/package.json +23 -10
- package/src/domain-lang-module.ts +18 -6
- package/src/domain-lang.langium +7 -12
- package/src/generated/ast.ts +7 -20
- package/src/generated/grammar.ts +28 -123
- package/src/generated/module.ts +1 -1
- package/src/index.ts +7 -0
- package/src/lsp/domain-lang-code-actions.ts +189 -0
- package/src/lsp/domain-lang-workspace-manager.ts +104 -0
- package/src/lsp/hover/domain-lang-hover.ts +0 -2
- package/src/lsp/manifest-diagnostics.ts +290 -0
- package/src/sdk/index.ts +0 -2
- package/src/sdk/loader-node.ts +29 -9
- package/src/sdk/types.ts +0 -23
- package/src/services/dependency-analyzer.ts +24 -84
- package/src/services/dependency-resolver.ts +301 -84
- package/src/services/git-url-resolver.browser.ts +9 -14
- package/src/services/git-url-resolver.ts +86 -93
- package/src/services/governance-validator.ts +5 -47
- package/src/services/import-resolver.ts +270 -8
- package/src/services/performance-optimizer.ts +1 -1
- package/src/services/semver.ts +213 -0
- package/src/services/types.ts +415 -0
- package/src/services/workspace-manager.ts +237 -46
- package/src/syntaxes/domain-lang.monarch.ts +1 -1
- package/src/utils/import-utils.ts +38 -160
- package/src/validation/constants.ts +182 -2
- package/src/validation/domain.ts +54 -1
- package/src/validation/import.ts +228 -104
- package/src/validation/manifest.ts +439 -0
- package/src/validation/maps.ts +10 -6
- package/src/validation/metadata.ts +5 -1
|
@@ -57,6 +57,14 @@ export class WorkspaceManager {
|
|
|
57
57
|
}
|
|
58
58
|
return undefined;
|
|
59
59
|
}
|
|
60
|
+
/**
|
|
61
|
+
* Returns the parsed manifest when present, otherwise undefined.
|
|
62
|
+
* Uses cached contents when unchanged on disk.
|
|
63
|
+
*/
|
|
64
|
+
async getManifest() {
|
|
65
|
+
await this.ensureInitialized();
|
|
66
|
+
return this.loadManifest();
|
|
67
|
+
}
|
|
60
68
|
/**
|
|
61
69
|
* Returns the cached lock file or triggers resolution when missing.
|
|
62
70
|
*/
|
|
@@ -70,11 +78,16 @@ export class WorkspaceManager {
|
|
|
70
78
|
this.lockFile = cached;
|
|
71
79
|
}
|
|
72
80
|
else {
|
|
81
|
+
if (this.options.allowNetwork === false) {
|
|
82
|
+
throw new Error('Lock file (model.lock) not found and network access is disabled.\n' +
|
|
83
|
+
'Hint: Run \'dlang install\' to generate the lock file.');
|
|
84
|
+
}
|
|
73
85
|
await this.generateLockFile();
|
|
74
86
|
}
|
|
75
87
|
}
|
|
76
88
|
if (!this.lockFile) {
|
|
77
|
-
throw new Error('Unable to resolve workspace lock file
|
|
89
|
+
throw new Error('Unable to resolve workspace lock file.\n' +
|
|
90
|
+
'Hint: Ensure model.yaml exists and run \'dlang install\' to generate model.lock.');
|
|
78
91
|
}
|
|
79
92
|
return this.lockFile;
|
|
80
93
|
}
|
|
@@ -94,6 +107,38 @@ export class WorkspaceManager {
|
|
|
94
107
|
this.applyLockFile(loaded);
|
|
95
108
|
return this.lockFile;
|
|
96
109
|
}
|
|
110
|
+
/**
|
|
111
|
+
* Invalidates all cached data (manifest and lock file).
|
|
112
|
+
* Call this when config files change externally (e.g., from CLI commands).
|
|
113
|
+
*
|
|
114
|
+
* After invalidation, the next call to getManifest() or getLockFile()
|
|
115
|
+
* will re-read from disk.
|
|
116
|
+
*/
|
|
117
|
+
invalidateCache() {
|
|
118
|
+
this.manifestCache = undefined;
|
|
119
|
+
this.lockFile = undefined;
|
|
120
|
+
// Re-apply undefined to git resolver to clear its lock file
|
|
121
|
+
if (this.gitResolver) {
|
|
122
|
+
this.gitResolver.setLockFile(undefined);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Invalidates only the manifest cache.
|
|
127
|
+
* Call this when model.yaml changes.
|
|
128
|
+
*/
|
|
129
|
+
invalidateManifestCache() {
|
|
130
|
+
this.manifestCache = undefined;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Invalidates only the lock file cache.
|
|
134
|
+
* Call this when model.lock changes.
|
|
135
|
+
*/
|
|
136
|
+
invalidateLockCache() {
|
|
137
|
+
this.lockFile = undefined;
|
|
138
|
+
if (this.gitResolver) {
|
|
139
|
+
this.gitResolver.setLockFile(undefined);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
97
142
|
/**
|
|
98
143
|
* Provides the shared git URL resolver configured with the current lock file.
|
|
99
144
|
*/
|
|
@@ -116,42 +161,79 @@ export class WorkspaceManager {
|
|
|
116
161
|
return this.lockFile;
|
|
117
162
|
}
|
|
118
163
|
/**
|
|
119
|
-
*
|
|
164
|
+
* Returns the path aliases from the manifest, if present.
|
|
165
|
+
*/
|
|
166
|
+
async getPathAliases() {
|
|
167
|
+
const manifest = await this.getManifest();
|
|
168
|
+
return manifest?.paths;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Normalizes a dependency entry to its extended form.
|
|
172
|
+
* Handles both short form (string version) and extended form (object).
|
|
120
173
|
*
|
|
121
|
-
*
|
|
122
|
-
*
|
|
174
|
+
* In the new format, the key IS the owner/package, so source is derived from key
|
|
175
|
+
* ONLY for git dependencies (not for path-based local dependencies).
|
|
123
176
|
*/
|
|
124
|
-
|
|
177
|
+
normalizeDependency(key, dep) {
|
|
178
|
+
if (typeof dep === 'string') {
|
|
179
|
+
// Short form: "owner/package": "v1.0.0" or "main"
|
|
180
|
+
// Key is the source (owner/package format)
|
|
181
|
+
return { source: key, ref: dep };
|
|
182
|
+
}
|
|
183
|
+
// Extended form:
|
|
184
|
+
// - If has source: use as-is
|
|
185
|
+
// - If has path: it's a local dep, don't set source
|
|
186
|
+
// - If neither: derive source from key (owner/package becomes source)
|
|
187
|
+
if (dep.source || dep.path) {
|
|
188
|
+
return dep;
|
|
189
|
+
}
|
|
190
|
+
return { ...dep, source: key };
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Resolves a manifest dependency to its git import string.
|
|
194
|
+
*
|
|
195
|
+
* NEW FORMAT (PRS-010): Dependencies are keyed by owner/package directly
|
|
196
|
+
* @param specifier - Import specifier (owner/package format, may include subpaths)
|
|
197
|
+
* @returns Resolved git import string or undefined when not found
|
|
198
|
+
*/
|
|
199
|
+
async resolveDependencyImport(specifier) {
|
|
125
200
|
await this.ensureInitialized();
|
|
126
201
|
const manifest = await this.loadManifest();
|
|
127
202
|
const dependencies = manifest?.dependencies;
|
|
128
203
|
if (!dependencies) {
|
|
129
204
|
return undefined;
|
|
130
205
|
}
|
|
131
|
-
|
|
132
|
-
|
|
206
|
+
// NEW: Dependencies are keyed by owner/package (e.g., "domainlang/core")
|
|
207
|
+
// Import specifier is also owner/package, potentially with subpath
|
|
208
|
+
for (const [key, dep] of Object.entries(dependencies)) {
|
|
209
|
+
const normalized = this.normalizeDependency(key, dep);
|
|
210
|
+
// Skip path-based dependencies (handled by path aliases)
|
|
211
|
+
if (normalized.path) {
|
|
212
|
+
continue;
|
|
213
|
+
}
|
|
214
|
+
if (!normalized.source) {
|
|
133
215
|
continue;
|
|
134
216
|
}
|
|
135
|
-
if
|
|
136
|
-
|
|
137
|
-
const
|
|
138
|
-
const
|
|
139
|
-
|
|
217
|
+
// Match if specifier equals key or starts with key/
|
|
218
|
+
if (specifier === key || specifier.startsWith(`${key}/`)) {
|
|
219
|
+
const suffix = specifier.slice(key.length);
|
|
220
|
+
const ref = normalized.ref ?? '';
|
|
221
|
+
const refSegment = ref
|
|
222
|
+
? (ref.startsWith('@') ? ref : `@${ref}`)
|
|
140
223
|
: '';
|
|
141
|
-
return `${
|
|
224
|
+
return `${normalized.source}${refSegment}${suffix}`;
|
|
142
225
|
}
|
|
143
226
|
}
|
|
144
227
|
return undefined;
|
|
145
228
|
}
|
|
146
229
|
async performInitialization(startPath) {
|
|
147
|
-
this.workspaceRoot = await this.findWorkspaceRoot(startPath);
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
this.gitResolver = new GitUrlResolver();
|
|
230
|
+
this.workspaceRoot = await this.findWorkspaceRoot(startPath) ?? path.resolve(startPath);
|
|
231
|
+
// Per PRS-010: Project-local cache at .dlang/packages/ (like node_modules)
|
|
232
|
+
const cacheDir = path.join(this.workspaceRoot, '.dlang', 'packages');
|
|
233
|
+
this.gitResolver = new GitUrlResolver(cacheDir);
|
|
152
234
|
const loaded = await this.loadLockFileFromDisk();
|
|
153
235
|
this.applyLockFile(loaded);
|
|
154
|
-
if (!this.lockFile && this.options.autoResolve !== false) {
|
|
236
|
+
if (!this.lockFile && this.options.autoResolve !== false && this.options.allowNetwork !== false) {
|
|
155
237
|
await this.generateLockFile();
|
|
156
238
|
}
|
|
157
239
|
}
|
|
@@ -250,6 +332,8 @@ export class WorkspaceManager {
|
|
|
250
332
|
}
|
|
251
333
|
const content = await fs.readFile(manifestPath, 'utf-8');
|
|
252
334
|
const manifest = (YAML.parse(content) ?? {});
|
|
335
|
+
// Validate manifest structure
|
|
336
|
+
this.validateManifest(manifest, manifestPath);
|
|
253
337
|
this.manifestCache = {
|
|
254
338
|
manifest,
|
|
255
339
|
path: manifestPath,
|
|
@@ -265,16 +349,98 @@ export class WorkspaceManager {
|
|
|
265
349
|
throw error;
|
|
266
350
|
}
|
|
267
351
|
}
|
|
352
|
+
/**
|
|
353
|
+
* Validates manifest structure and dependency configurations.
|
|
354
|
+
* Throws detailed errors for invalid manifests.
|
|
355
|
+
*
|
|
356
|
+
* Supports both new format (owner/package: version) and extended format.
|
|
357
|
+
*/
|
|
358
|
+
validateManifest(manifest, manifestPath) {
|
|
359
|
+
// Validate path aliases
|
|
360
|
+
if (manifest.paths) {
|
|
361
|
+
this.validatePathAliases(manifest.paths, manifestPath);
|
|
362
|
+
}
|
|
363
|
+
if (!manifest.dependencies) {
|
|
364
|
+
return; // No dependencies to validate
|
|
365
|
+
}
|
|
366
|
+
for (const [key, dep] of Object.entries(manifest.dependencies)) {
|
|
367
|
+
const normalized = this.normalizeDependency(key, dep);
|
|
368
|
+
// Validate mutually exclusive source and path
|
|
369
|
+
if (normalized.source && normalized.path) {
|
|
370
|
+
throw new Error(`Invalid dependency '${key}' in ${manifestPath}:\n` +
|
|
371
|
+
`Cannot specify both 'source' and 'path'.\n` +
|
|
372
|
+
`Hint: Use 'source' for git dependencies or 'path' for local workspace dependencies.`);
|
|
373
|
+
}
|
|
374
|
+
// For string format, source is always derived from key (valid)
|
|
375
|
+
// For extended format without source or path, error
|
|
376
|
+
if (typeof dep !== 'string' && !normalized.source && !normalized.path) {
|
|
377
|
+
throw new Error(`Invalid dependency '${key}' in ${manifestPath}:\n` +
|
|
378
|
+
`Must specify either 'source' or 'path'.\n` +
|
|
379
|
+
`Hint: Add 'source: owner/repo' for git dependencies, or 'path: ./local/path' for local packages.`);
|
|
380
|
+
}
|
|
381
|
+
// Validate path is relative and within workspace
|
|
382
|
+
if (normalized.path) {
|
|
383
|
+
this.validateLocalPath(normalized.path, key, manifestPath);
|
|
384
|
+
}
|
|
385
|
+
// Validate source has ref when specified
|
|
386
|
+
if (normalized.source && !normalized.ref) {
|
|
387
|
+
throw new Error(`Invalid dependency '${key}' in ${manifestPath}:\n` +
|
|
388
|
+
`Git dependencies must specify a 'ref' (git reference).\n` +
|
|
389
|
+
`Hint: Add 'ref: v1.0.0' (tag), 'ref: main' (branch), or a commit SHA.`);
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
/**
|
|
394
|
+
* Validates path aliases for security and correctness.
|
|
395
|
+
*/
|
|
396
|
+
validatePathAliases(paths, manifestPath) {
|
|
397
|
+
for (const [alias, targetPath] of Object.entries(paths)) {
|
|
398
|
+
// Validate alias starts with @
|
|
399
|
+
if (!alias.startsWith('@')) {
|
|
400
|
+
throw new Error(`Invalid path alias '${alias}' in ${manifestPath}:\n` +
|
|
401
|
+
`Path aliases must start with '@'.\n` +
|
|
402
|
+
`Hint: Rename to '@${alias}' in your model.yaml paths section.`);
|
|
403
|
+
}
|
|
404
|
+
// Validate target path doesn't escape workspace
|
|
405
|
+
this.validateLocalPath(targetPath, alias, manifestPath);
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
/**
|
|
409
|
+
* Validates local path dependencies for security.
|
|
410
|
+
* Ensures paths don't escape workspace boundary.
|
|
411
|
+
*/
|
|
412
|
+
validateLocalPath(localPath, alias, manifestPath) {
|
|
413
|
+
// Reject absolute paths
|
|
414
|
+
if (path.isAbsolute(localPath)) {
|
|
415
|
+
throw new Error(`Invalid local path '${alias}' in ${manifestPath}:\n` +
|
|
416
|
+
`Cannot use absolute path '${localPath}'.\n` +
|
|
417
|
+
`Hint: Use relative paths (e.g., './lib', '../shared') for local dependencies.`);
|
|
418
|
+
}
|
|
419
|
+
// Resolve path relative to manifest directory
|
|
420
|
+
const manifestDir = path.dirname(manifestPath);
|
|
421
|
+
const resolvedPath = path.resolve(manifestDir, localPath);
|
|
422
|
+
const workspaceRoot = this.workspaceRoot || manifestDir;
|
|
423
|
+
// Check if resolved path is within workspace
|
|
424
|
+
const relativePath = path.relative(workspaceRoot, resolvedPath);
|
|
425
|
+
if (relativePath.startsWith('..') || path.isAbsolute(relativePath)) {
|
|
426
|
+
throw new Error(`Invalid local path '${alias}' in ${manifestPath}:\n` +
|
|
427
|
+
`Path '${localPath}' resolves outside workspace boundary.\n` +
|
|
428
|
+
`Resolved: ${resolvedPath}\n` +
|
|
429
|
+
`Workspace: ${workspaceRoot}\n` +
|
|
430
|
+
`Hint: Local dependencies must be within the workspace. Consider moving the dependency or using a git-based source.`);
|
|
431
|
+
}
|
|
432
|
+
}
|
|
268
433
|
parseJsonLockFile(content) {
|
|
269
434
|
const parsed = JSON.parse(content);
|
|
270
435
|
const version = typeof parsed.version === 'string' ? parsed.version : '1';
|
|
271
436
|
const dependencies = {};
|
|
272
437
|
for (const [key, value] of Object.entries(parsed.dependencies ?? {})) {
|
|
273
|
-
if (!value || typeof value.
|
|
438
|
+
if (!value || typeof value.ref !== 'string' || typeof value.resolved !== 'string' || typeof value.commit !== 'string') {
|
|
274
439
|
continue;
|
|
275
440
|
}
|
|
276
441
|
dependencies[key] = {
|
|
277
|
-
|
|
442
|
+
ref: value.ref,
|
|
443
|
+
refType: value.refType ?? 'commit', // Default to commit for backwards compatibility
|
|
278
444
|
resolved: value.resolved,
|
|
279
445
|
commit: value.commit,
|
|
280
446
|
integrity: value.integrity,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-manager.js","sourceRoot":"","sources":["../../src/services/workspace-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"workspace-manager.js","sourceRoot":"","sources":["../../src/services/workspace-manager.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAWhE,MAAM,sBAAsB,GAAG;IAC3B,YAAY;CACN,CAAC;AAEX,MAAM,kBAAkB,GAAG;IACvB,YAAY;CACN,CAAC;AAEX,MAAM,UAAU,GAAG,CAAC,CAAC;AAarB;;GAEG;AACH,MAAM,OAAO,gBAAgB;IAUzB,YAA6B,UAAmC,EAAE;QAArC,YAAO,GAAP,OAAO,CAA8B;QAC9D,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,CAAC,GAAG,sBAAsB,CAAC,CAAC;QAC1E,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,CAAC,GAAG,kBAAkB,CAAC,CAAC;IAClE,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,UAAU,CAAC,SAAiB;QAC9B,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC1B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;QACnE,CAAC;QACD,MAAM,IAAI,CAAC,iBAAiB,CAAC;IACjC,CAAC;IAED;;;OAGG;IACH,gBAAgB;QACZ,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAClF,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe;QACjB,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC;QAChC,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACxC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC5C,IAAI,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBACnC,OAAO,SAAS,CAAC;YACrB,CAAC;QACL,CAAC;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW;QACb,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc;QAChB,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAE/B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjB,+BAA+B;YAC/B,MAAM,SAAS,GAAG,kBAAkB,EAAE,CAAC;YACvC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;YAE3E,IAAI,MAAM,EAAE,CAAC;gBACT,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACJ,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,KAAK,KAAK,EAAE,CAAC;oBACtC,MAAM,IAAI,KAAK,CACX,oEAAoE;wBACpE,wDAAwD,CAC3D,CAAC;gBACN,CAAC;gBACD,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAClC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CACX,0CAA0C;gBAC1C,kFAAkF,CACrF,CAAC;QACN,CAAC;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW;QACb,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe;QACjB,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;QACjD,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED;;;;;;OAMG;IACH,eAAe;QACX,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC1B,4DAA4D;QAC5D,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC5C,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,uBAAuB;QACnB,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;IACnC,CAAC;IAED;;;OAGG;IACH,mBAAmB;QACf,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC1B,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC5C,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc;QAChB,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;QACtF,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB;QACpB,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/B,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc;QAChB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1C,OAAO,QAAQ,EAAE,KAAK,CAAC;IAC3B,CAAC;IAED;;;;;;OAMG;IACK,mBAAmB,CAAC,GAAW,EAAE,GAAmB;QACxD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC1B,kDAAkD;YAClD,2CAA2C;YAC3C,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;QACrC,CAAC;QACD,iBAAiB;QACjB,6BAA6B;QAC7B,oDAAoD;QACpD,sEAAsE;QACtE,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;YACzB,OAAO,GAAG,CAAC;QACf,CAAC;QACD,OAAO,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;IACnC,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,uBAAuB,CAAC,SAAiB;QAC3C,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC3C,MAAM,YAAY,GAAG,QAAQ,EAAE,YAAY,CAAC;QAE5C,IAAI,CAAC,YAAY,EAAE,CAAC;YAChB,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,yEAAyE;QACzE,mEAAmE;QACnE,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;YACpD,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAEtD,yDAAyD;YACzD,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;gBAClB,SAAS;YACb,CAAC;YAED,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;gBACrB,SAAS;YACb,CAAC;YAED,oDAAoD;YACpD,IAAI,SAAS,KAAK,GAAG,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC;gBACvD,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC3C,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,IAAI,EAAE,CAAC;gBACjC,MAAM,UAAU,GAAG,GAAG;oBAClB,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;oBACzC,CAAC,CAAC,EAAE,CAAC;gBACT,OAAO,GAAG,UAAU,CAAC,MAAM,GAAG,UAAU,GAAG,MAAM,EAAE,CAAC;YACxD,CAAC;QACL,CAAC;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAC,SAAiB;QACjD,IAAI,CAAC,aAAa,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAExF,2EAA2E;QAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;QACrE,IAAI,CAAC,WAAW,GAAG,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;QACjD,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAE3B,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,KAAK,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,KAAK,KAAK,EAAE,CAAC;YAC9F,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAClC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,iBAAiB;QAC3B,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,iBAAiB,CAAC;QACjC,CAAC;aAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAClF,CAAC;IACL,CAAC;IAEO,aAAa,CAAC,MAAkC;QACpD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACpB,OAAO;QACX,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACT,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;YAChC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;YAC1B,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC5C,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,KAAK,GAAG,KAAK;QACxC,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACzD,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;QACjD,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC1B,OAAO;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,mBAAmB,EAAE,CAAC;QACtD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAEvC,uBAAuB;QACvB,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAEO,wBAAwB;QAC5B,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACzD,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC3B,IAAI,CAAC,kBAAkB,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3F,CAAC;QAED,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACnC,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,QAAkB;QAC9C,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACtB,OAAO;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG;YACZ,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,YAAY,EAAE,QAAQ,CAAC,YAAY;SACnB,CAAC;QAErB,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC;IAC1F,CAAC;IAEO,KAAK,CAAC,oBAAoB;QAC9B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACtB,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;YACzD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAChE,IAAI,QAAQ,EAAE,CAAC;gBACX,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;YAClC,CAAC;QACL,CAAC;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,QAAgB,EAAE,SAAiB;QAC7D,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACrD,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAK,KAA+B,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtD,OAAO,SAAS,CAAC;YACrB,CAAC;YACD,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,YAAY;QACtB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAClD,IAAI,CAAC,YAAY,EAAE,CAAC;YAChB,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;YAC/B,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,IAAI,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACzC,IAAI,IAAI,CAAC,aAAa;gBAClB,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,YAAY;gBACxC,IAAI,CAAC,aAAa,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC9C,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;YACvC,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YACzD,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAkB,CAAC;YAE9D,8BAA8B;YAC9B,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;YAE9C,IAAI,CAAC,aAAa,GAAG;gBACjB,QAAQ;gBACR,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,IAAI,CAAC,OAAO;aACxB,CAAC;YACF,OAAO,QAAQ,CAAC;QACpB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAK,KAA+B,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtD,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;gBAC/B,OAAO,SAAS,CAAC;YACrB,CAAC;YACD,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACK,gBAAgB,CAAC,QAAuB,EAAE,YAAoB;QAClE,wBAAwB;QACxB,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YACjB,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;YACzB,OAAO,CAAC,8BAA8B;QAC1C,CAAC;QAED,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAEtD,8CAA8C;YAC9C,IAAI,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;gBACvC,MAAM,IAAI,KAAK,CACX,uBAAuB,GAAG,QAAQ,YAAY,KAAK;oBACnD,4CAA4C;oBAC5C,qFAAqF,CACxF,CAAC;YACN,CAAC;YAED,+DAA+D;YAC/D,oDAAoD;YACpD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;gBACpE,MAAM,IAAI,KAAK,CACX,uBAAuB,GAAG,QAAQ,YAAY,KAAK;oBACnD,2CAA2C;oBAC3C,kGAAkG,CACrG,CAAC;YACN,CAAC;YAED,iDAAiD;YACjD,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;gBAClB,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;YAC/D,CAAC;YAED,yCAAyC;YACzC,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;gBACvC,MAAM,IAAI,KAAK,CACX,uBAAuB,GAAG,QAAQ,YAAY,KAAK;oBACnD,0DAA0D;oBAC1D,uEAAuE,CAC1E,CAAC;YACN,CAAC;QACL,CAAC;IACL,CAAC;IAED;;OAEG;IACK,mBAAmB,CAAC,KAAkB,EAAE,YAAoB;QAChE,KAAK,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACtD,+BAA+B;YAC/B,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CACX,uBAAuB,KAAK,QAAQ,YAAY,KAAK;oBACrD,qCAAqC;oBACrC,qBAAqB,KAAK,qCAAqC,CAClE,CAAC;YACN,CAAC;YAED,gDAAgD;YAChD,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;QAC5D,CAAC;IACL,CAAC;IAED;;;OAGG;IACK,iBAAiB,CAAC,SAAiB,EAAE,KAAa,EAAE,YAAoB;QAC5E,wBAAwB;QACxB,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CACX,uBAAuB,KAAK,QAAQ,YAAY,KAAK;gBACrD,6BAA6B,SAAS,MAAM;gBAC5C,+EAA+E,CAClF,CAAC;QACN,CAAC;QAED,8CAA8C;QAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC/C,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAC1D,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,WAAW,CAAC;QAExD,6CAA6C;QAC7C,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;QAChE,IAAI,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACjE,MAAM,IAAI,KAAK,CACX,uBAAuB,KAAK,QAAQ,YAAY,KAAK;gBACrD,SAAS,SAAS,0CAA0C;gBAC5D,aAAa,YAAY,IAAI;gBAC7B,cAAc,aAAa,IAAI;gBAC/B,oHAAoH,CACvH,CAAC;QACN,CAAC;IACL,CAAC;IAEO,iBAAiB,CAAC,OAAe;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAEhC,CAAC;QAEF,MAAM,OAAO,GAAG,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;QAC1E,MAAM,YAAY,GAAqC,EAAE,CAAC;QAE1D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE,CAAC;YACnE,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACpH,SAAS;YACb,CAAC;YACD,YAAY,CAAC,GAAG,CAAC,GAAG;gBAChB,GAAG,EAAE,KAAK,CAAC,GAAG;gBACd,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,QAAQ,EAAE,gDAAgD;gBACpF,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,SAAS,EAAE,KAAK,CAAC,SAAS;aAC7B,CAAC;QACN,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;IACrC,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,SAAiB;QAC7C,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACtC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAErC,OAAO,IAAI,EAAE,CAAC;YACV,IAAI,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;gBACvC,OAAO,OAAO,CAAC;YACnB,CAAC;YAED,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACnB,OAAO,SAAS,CAAC;YACrB,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACrC,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;gBACrB,OAAO,SAAS,CAAC;YACrB,CAAC;YAED,OAAO,GAAG,MAAM,CAAC;QACrB,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,GAAW;QACtC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACxC,IAAI,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;gBAClD,OAAO,IAAI,CAAC;YAChB,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,UAAkB;QACvC,IAAI,CAAC;YACD,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC5B,OAAO,IAAI,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAK,KAA+B,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtD,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;CACJ"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Monarch syntax highlighting for the domain-lang language.
|
|
2
2
|
export default {
|
|
3
3
|
keywords: [
|
|
4
|
-
'ACL', 'AntiCorruptionLayer', 'BBoM', 'BigBallOfMud', 'BoundedContext', 'CF', 'Classification', 'Conformist', 'ContextMap', 'CustomerSupplier', 'Decision', 'Domain', 'DomainMap', 'Import', 'Metadata', 'Namespace', 'OHS', 'OpenHostService', 'P', 'PL', 'Partnership', 'Policy', 'PublishedLanguage', 'Rule', 'SK', 'SeparateWays', 'SharedKernel', 'Team', 'Term', 'UpstreamDownstream', 'aka', 'archetype', 'as', 'bc', 'businessModel', 'by', 'classification', 'cmap', 'contains', 'decision', 'decisions', 'description', 'dmap', 'dom', 'evolution', 'examples', 'for', '
|
|
4
|
+
'ACL', 'AntiCorruptionLayer', 'BBoM', 'BigBallOfMud', 'BoundedContext', 'CF', 'Classification', 'Conformist', 'ContextMap', 'CustomerSupplier', 'Decision', 'Domain', 'DomainMap', 'Import', 'Metadata', 'Namespace', 'OHS', 'OpenHostService', 'P', 'PL', 'Partnership', 'Policy', 'PublishedLanguage', 'Rule', 'SK', 'SeparateWays', 'SharedKernel', 'Team', 'Term', 'UpstreamDownstream', 'aka', 'archetype', 'as', 'bc', 'businessModel', 'by', 'classification', 'cmap', 'contains', 'decision', 'decisions', 'description', 'dmap', 'dom', 'evolution', 'examples', 'for', 'glossary', 'import', 'in', 'integrations', 'is', 'meta', 'metadata', 'ns', 'policy', 'relationships', 'rule', 'rules', 'synonyms', 'team', 'term', 'terminology', 'this', 'type', 'vision'
|
|
5
5
|
],
|
|
6
6
|
operators: [
|
|
7
7
|
',', '->', '.', ':', '<-', '<->', '=', '><'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain-lang.monarch.js","sourceRoot":"","sources":["../../src/syntaxes/domain-lang.monarch.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,eAAe;IACX,QAAQ,EAAE;QACN,KAAK,EAAC,qBAAqB,EAAC,MAAM,EAAC,cAAc,EAAC,gBAAgB,EAAC,IAAI,EAAC,gBAAgB,EAAC,YAAY,EAAC,YAAY,EAAC,kBAAkB,EAAC,UAAU,EAAC,QAAQ,EAAC,WAAW,EAAC,QAAQ,EAAC,UAAU,EAAC,WAAW,EAAC,KAAK,EAAC,iBAAiB,EAAC,GAAG,EAAC,IAAI,EAAC,aAAa,EAAC,QAAQ,EAAC,mBAAmB,EAAC,MAAM,EAAC,IAAI,EAAC,cAAc,EAAC,cAAc,EAAC,MAAM,EAAC,MAAM,EAAC,oBAAoB,EAAC,KAAK,EAAC,WAAW,EAAC,IAAI,EAAC,IAAI,EAAC,eAAe,EAAC,IAAI,EAAC,gBAAgB,EAAC,MAAM,EAAC,UAAU,EAAC,UAAU,EAAC,WAAW,EAAC,aAAa,EAAC,MAAM,EAAC,KAAK,EAAC,WAAW,EAAC,UAAU,EAAC,KAAK,EAAC,
|
|
1
|
+
{"version":3,"file":"domain-lang.monarch.js","sourceRoot":"","sources":["../../src/syntaxes/domain-lang.monarch.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,eAAe;IACX,QAAQ,EAAE;QACN,KAAK,EAAC,qBAAqB,EAAC,MAAM,EAAC,cAAc,EAAC,gBAAgB,EAAC,IAAI,EAAC,gBAAgB,EAAC,YAAY,EAAC,YAAY,EAAC,kBAAkB,EAAC,UAAU,EAAC,QAAQ,EAAC,WAAW,EAAC,QAAQ,EAAC,UAAU,EAAC,WAAW,EAAC,KAAK,EAAC,iBAAiB,EAAC,GAAG,EAAC,IAAI,EAAC,aAAa,EAAC,QAAQ,EAAC,mBAAmB,EAAC,MAAM,EAAC,IAAI,EAAC,cAAc,EAAC,cAAc,EAAC,MAAM,EAAC,MAAM,EAAC,oBAAoB,EAAC,KAAK,EAAC,WAAW,EAAC,IAAI,EAAC,IAAI,EAAC,eAAe,EAAC,IAAI,EAAC,gBAAgB,EAAC,MAAM,EAAC,UAAU,EAAC,UAAU,EAAC,WAAW,EAAC,aAAa,EAAC,MAAM,EAAC,KAAK,EAAC,WAAW,EAAC,UAAU,EAAC,KAAK,EAAC,UAAU,EAAC,QAAQ,EAAC,IAAI,EAAC,cAAc,EAAC,IAAI,EAAC,MAAM,EAAC,UAAU,EAAC,IAAI,EAAC,QAAQ,EAAC,eAAe,EAAC,MAAM,EAAC,OAAO,EAAC,UAAU,EAAC,MAAM,EAAC,MAAM,EAAC,aAAa,EAAC,MAAM,EAAC,MAAM,EAAC,QAAQ;KAC9qB;IACD,SAAS,EAAE;QACP,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,IAAI,EAAC,KAAK,EAAC,GAAG,EAAC,IAAI;KACvC;IACD,OAAO,EAAE,mCAAmC;IAE5C,SAAS,EAAE;QACP,OAAO,EAAE;YACL,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,EAAC,OAAO,EAAC,SAAS,EAAC,EAAE,UAAU,EAAE,EAAC,OAAO,EAAC,IAAI,EAAC,EAAE,EAAC,EAAE;YACjH,EAAE,KAAK,EAAE,iCAAiC,EAAE,MAAM,EAAE,EAAC,OAAO,EAAC,QAAQ,EAAC,EAAE;YACxE,EAAE,OAAO,EAAE,aAAa,EAAE;YAC1B,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,EAAC,OAAO,EAAC,UAAU,EAAC,EAAE,UAAU,EAAE,EAAC,OAAO,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE;SAC5G;QACD,UAAU,EAAE;YACR,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAC,OAAO,EAAC,OAAO,EAAC,EAAE;YAC3C,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAC,OAAO,EAAC,SAAS,EAAC,MAAM,EAAC,UAAU,EAAC,EAAE;YAChE,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,EAAC,OAAO,EAAC,SAAS,EAAC,EAAE;SACzD;QACD,OAAO,EAAE;YACL,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,EAAC,OAAO,EAAC,SAAS,EAAC,EAAE;YACjD,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAC,OAAO,EAAC,SAAS,EAAC,MAAM,EAAC,MAAM,EAAC,EAAE;YAC5D,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAC,OAAO,EAAC,SAAS,EAAC,EAAE;SAClD;KACJ;CACJ,CAAC"}
|
|
@@ -2,11 +2,10 @@ import { URI, type LangiumDocument, type LangiumDocuments } from 'langium';
|
|
|
2
2
|
/**
|
|
3
3
|
* Resolves an import path to an absolute file URI.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* -
|
|
7
|
-
* -
|
|
8
|
-
* -
|
|
9
|
-
* - Full URLs: https://github.com/owner/repo/blob/v1.0.0/file.dlang
|
|
5
|
+
* Delegates to ImportResolver which implements PRS-010 semantics:
|
|
6
|
+
* - File imports (with .dlang extension): Direct file access
|
|
7
|
+
* - Module imports (no extension): Requires model.yaml in directory
|
|
8
|
+
* - External dependencies: Resolved via manifest and lock file
|
|
10
9
|
*
|
|
11
10
|
* @param importingDoc - The document containing the import statement
|
|
12
11
|
* @param rawImportPath - The raw import path from the import statement
|
|
@@ -14,13 +13,6 @@ import { URI, type LangiumDocument, type LangiumDocuments } from 'langium';
|
|
|
14
13
|
* @throws {Error} If the import cannot be resolved
|
|
15
14
|
*/
|
|
16
15
|
export declare function resolveImportPath(importingDoc: LangiumDocument, rawImportPath: string): Promise<URI>;
|
|
17
|
-
/**
|
|
18
|
-
* Legacy function for backward compatibility.
|
|
19
|
-
* Use resolveImportPath instead.
|
|
20
|
-
*
|
|
21
|
-
* @deprecated Use resolveImportPath which supports git URLs and workspace paths
|
|
22
|
-
*/
|
|
23
|
-
export declare function resolveLocalImportPath(importingDoc: LangiumDocument, rawImportPath: string): Promise<string>;
|
|
24
16
|
/**
|
|
25
17
|
* Ensures the import graph is loaded from an entry file.
|
|
26
18
|
*
|
|
@@ -1,114 +1,60 @@
|
|
|
1
|
-
import fs from 'node:fs/promises';
|
|
2
1
|
import path from 'node:path';
|
|
3
2
|
import { URI } from 'langium';
|
|
4
|
-
import { GitUrlParser } from '../services/git-url-resolver.js';
|
|
5
3
|
import { WorkspaceManager } from '../services/workspace-manager.js';
|
|
6
|
-
|
|
7
|
-
let workspaceManager;
|
|
4
|
+
import { ImportResolver } from '../services/import-resolver.js';
|
|
8
5
|
/**
|
|
9
|
-
*
|
|
6
|
+
* Lazily initialized workspace manager for standalone (non-LSP) usage.
|
|
7
|
+
* Used by import graph building when services aren't available from DI.
|
|
8
|
+
*/
|
|
9
|
+
let standaloneWorkspaceManager;
|
|
10
|
+
let standaloneImportResolver;
|
|
11
|
+
let lastInitializedDir;
|
|
12
|
+
/**
|
|
13
|
+
* Gets or creates a standalone import resolver for non-LSP contexts.
|
|
14
|
+
* Creates its own WorkspaceManager if not previously initialized for this directory.
|
|
15
|
+
*
|
|
16
|
+
* NOTE: In LSP contexts, prefer using services.imports.ImportResolver directly.
|
|
17
|
+
* This function exists for utilities that don't have access to the service container.
|
|
10
18
|
*
|
|
11
19
|
* @param startDir - Directory to start workspace search from
|
|
12
|
-
* @returns Promise resolving to the
|
|
20
|
+
* @returns Promise resolving to the import resolver
|
|
13
21
|
*/
|
|
14
|
-
async function
|
|
15
|
-
if (
|
|
16
|
-
|
|
17
|
-
|
|
22
|
+
async function getStandaloneImportResolver(startDir) {
|
|
23
|
+
// Re-initialize if directory changed (workspace boundary)
|
|
24
|
+
if (lastInitializedDir !== startDir || !standaloneImportResolver) {
|
|
25
|
+
standaloneWorkspaceManager = new WorkspaceManager({ autoResolve: false, allowNetwork: false });
|
|
18
26
|
try {
|
|
19
|
-
await
|
|
27
|
+
await standaloneWorkspaceManager.initialize(startDir);
|
|
20
28
|
}
|
|
21
29
|
catch (error) {
|
|
22
30
|
console.warn(`Failed to initialize workspace: ${error instanceof Error ? error.message : String(error)}`);
|
|
23
|
-
// Continue without workspace - local imports will still work
|
|
24
31
|
}
|
|
32
|
+
const services = {
|
|
33
|
+
imports: { WorkspaceManager: standaloneWorkspaceManager }
|
|
34
|
+
};
|
|
35
|
+
standaloneImportResolver = new ImportResolver(services);
|
|
36
|
+
lastInitializedDir = startDir;
|
|
25
37
|
}
|
|
26
|
-
return
|
|
38
|
+
return standaloneImportResolver;
|
|
27
39
|
}
|
|
28
40
|
/**
|
|
29
|
-
* Gets the git URL resolver from
|
|
41
|
+
* Gets the git URL resolver from a workspace manager.
|
|
30
42
|
*
|
|
31
43
|
* @param startDir - Directory to start workspace search from
|
|
32
44
|
* @returns Promise resolving to the git URL resolver
|
|
33
45
|
*/
|
|
34
46
|
async function getGitResolver(startDir) {
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* Ensures a file path has the .dlang extension.
|
|
40
|
-
*
|
|
41
|
-
* @param filePath - The raw file path
|
|
42
|
-
* @returns Normalized path with .dlang extension
|
|
43
|
-
* @throws {Error} If path has an invalid extension
|
|
44
|
-
*/
|
|
45
|
-
function ensureDlangExtension(filePath) {
|
|
46
|
-
const ext = path.extname(filePath);
|
|
47
|
-
if (!ext) {
|
|
48
|
-
return `${filePath}.dlang`;
|
|
49
|
-
}
|
|
50
|
-
if (ext !== '.dlang') {
|
|
51
|
-
throw new Error(`Invalid file extension: ${ext}. Expected .dlang for file: ${filePath}`);
|
|
52
|
-
}
|
|
53
|
-
return filePath;
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Resolves workspace-relative paths (starting with ~/).
|
|
57
|
-
*
|
|
58
|
-
* @param importPath - Import path that may start with ~/
|
|
59
|
-
* @param workspaceRoot - The workspace root directory
|
|
60
|
-
* @returns Resolved absolute path
|
|
61
|
-
*/
|
|
62
|
-
function resolveWorkspacePath(importPath, workspaceRoot) {
|
|
63
|
-
if (importPath.startsWith('~/')) {
|
|
64
|
-
return path.join(workspaceRoot, importPath.slice(2));
|
|
65
|
-
}
|
|
66
|
-
return importPath;
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Finds the workspace root by looking for common workspace indicators.
|
|
70
|
-
*
|
|
71
|
-
* Searches upward from the document's directory looking for:
|
|
72
|
-
* - dlang.toml
|
|
73
|
-
* - .git directory
|
|
74
|
-
* - package.json with dlang configuration
|
|
75
|
-
*
|
|
76
|
-
* @param startDir - Directory to start searching from
|
|
77
|
-
* @returns Workspace root path or the start directory if not found
|
|
78
|
-
*/
|
|
79
|
-
async function findWorkspaceRoot(startDir) {
|
|
80
|
-
let currentDir = startDir;
|
|
81
|
-
const root = path.parse(currentDir).root;
|
|
82
|
-
while (currentDir !== root) {
|
|
83
|
-
// Check for workspace indicators
|
|
84
|
-
const indicators = ['dlang.toml', '.git', 'package.json'];
|
|
85
|
-
for (const indicator of indicators) {
|
|
86
|
-
const indicatorPath = path.join(currentDir, indicator);
|
|
87
|
-
try {
|
|
88
|
-
await fs.access(indicatorPath);
|
|
89
|
-
return currentDir; // Found workspace root
|
|
90
|
-
}
|
|
91
|
-
catch {
|
|
92
|
-
// Continue searching
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
// Move up one directory
|
|
96
|
-
const parentDir = path.dirname(currentDir);
|
|
97
|
-
if (parentDir === currentDir)
|
|
98
|
-
break; // Reached root
|
|
99
|
-
currentDir = parentDir;
|
|
100
|
-
}
|
|
101
|
-
// Default to start directory if no workspace root found
|
|
102
|
-
return startDir;
|
|
47
|
+
const workspaceManager = new WorkspaceManager({ autoResolve: false, allowNetwork: false });
|
|
48
|
+
await workspaceManager.initialize(startDir);
|
|
49
|
+
return workspaceManager.getGitResolver();
|
|
103
50
|
}
|
|
104
51
|
/**
|
|
105
52
|
* Resolves an import path to an absolute file URI.
|
|
106
53
|
*
|
|
107
|
-
*
|
|
108
|
-
* -
|
|
109
|
-
* -
|
|
110
|
-
* -
|
|
111
|
-
* - Full URLs: https://github.com/owner/repo/blob/v1.0.0/file.dlang
|
|
54
|
+
* Delegates to ImportResolver which implements PRS-010 semantics:
|
|
55
|
+
* - File imports (with .dlang extension): Direct file access
|
|
56
|
+
* - Module imports (no extension): Requires model.yaml in directory
|
|
57
|
+
* - External dependencies: Resolved via manifest and lock file
|
|
112
58
|
*
|
|
113
59
|
* @param importingDoc - The document containing the import statement
|
|
114
60
|
* @param rawImportPath - The raw import path from the import statement
|
|
@@ -117,54 +63,8 @@ async function findWorkspaceRoot(startDir) {
|
|
|
117
63
|
*/
|
|
118
64
|
export async function resolveImportPath(importingDoc, rawImportPath) {
|
|
119
65
|
const baseDir = path.dirname(importingDoc.uri.fsPath);
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
let gitResolver;
|
|
123
|
-
try {
|
|
124
|
-
const manifestImport = await manager.resolveDependencyImport(rawImportPath);
|
|
125
|
-
if (manifestImport) {
|
|
126
|
-
gitResolver = await manager.getGitResolver();
|
|
127
|
-
return await gitResolver.resolve(manifestImport);
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
catch {
|
|
131
|
-
// Ignore manifest resolution issues; fall back to other strategies
|
|
132
|
-
}
|
|
133
|
-
// Handle git URLs (shorthand or full)
|
|
134
|
-
if (GitUrlParser.isGitUrl(rawImportPath)) {
|
|
135
|
-
gitResolver = gitResolver ?? await manager.getGitResolver();
|
|
136
|
-
return await gitResolver.resolve(rawImportPath);
|
|
137
|
-
}
|
|
138
|
-
// Handle workspace-relative paths (~/)
|
|
139
|
-
let resolvedPath = rawImportPath;
|
|
140
|
-
if (rawImportPath.startsWith('~/')) {
|
|
141
|
-
const workspaceRoot = await findWorkspaceRoot(baseDir);
|
|
142
|
-
resolvedPath = resolveWorkspacePath(rawImportPath, workspaceRoot);
|
|
143
|
-
}
|
|
144
|
-
else if (!path.isAbsolute(rawImportPath)) {
|
|
145
|
-
// Handle relative paths
|
|
146
|
-
resolvedPath = path.resolve(baseDir, rawImportPath);
|
|
147
|
-
}
|
|
148
|
-
// Ensure .dlang extension
|
|
149
|
-
const normalized = ensureDlangExtension(resolvedPath);
|
|
150
|
-
// Verify file exists
|
|
151
|
-
try {
|
|
152
|
-
await fs.access(normalized);
|
|
153
|
-
}
|
|
154
|
-
catch {
|
|
155
|
-
throw new Error(`Import file not found: ${rawImportPath} (resolved to ${normalized})`);
|
|
156
|
-
}
|
|
157
|
-
return URI.file(normalized);
|
|
158
|
-
}
|
|
159
|
-
/**
|
|
160
|
-
* Legacy function for backward compatibility.
|
|
161
|
-
* Use resolveImportPath instead.
|
|
162
|
-
*
|
|
163
|
-
* @deprecated Use resolveImportPath which supports git URLs and workspace paths
|
|
164
|
-
*/
|
|
165
|
-
export async function resolveLocalImportPath(importingDoc, rawImportPath) {
|
|
166
|
-
const uri = await resolveImportPath(importingDoc, rawImportPath);
|
|
167
|
-
return uri.fsPath;
|
|
66
|
+
const resolver = await getStandaloneImportResolver(baseDir);
|
|
67
|
+
return resolver.resolveFrom(baseDir, rawImportPath);
|
|
168
68
|
}
|
|
169
69
|
/**
|
|
170
70
|
* Ensures the import graph is loaded from an entry file.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import-utils.js","sourceRoot":"","sources":["../../src/utils/import-utils.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"import-utils.js","sourceRoot":"","sources":["../../src/utils/import-utils.ts"],"names":[],"mappings":"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"}
|