@domainlang/language 0.1.20
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 +163 -0
- package/out/ast-augmentation.d.ts +6 -0
- package/out/ast-augmentation.js +2 -0
- package/out/ast-augmentation.js.map +1 -0
- package/out/domain-lang-module.d.ts +57 -0
- package/out/domain-lang-module.js +67 -0
- package/out/domain-lang-module.js.map +1 -0
- package/out/generated/ast.d.ts +759 -0
- package/out/generated/ast.js +556 -0
- package/out/generated/ast.js.map +1 -0
- package/out/generated/grammar.d.ts +6 -0
- package/out/generated/grammar.js +2407 -0
- package/out/generated/grammar.js.map +1 -0
- package/out/generated/module.d.ts +13 -0
- package/out/generated/module.js +21 -0
- package/out/generated/module.js.map +1 -0
- package/out/index.d.ts +16 -0
- package/out/index.js +22 -0
- package/out/index.js.map +1 -0
- 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-completion.d.ts +37 -0
- package/out/lsp/domain-lang-completion.js +452 -0
- package/out/lsp/domain-lang-completion.js.map +1 -0
- package/out/lsp/domain-lang-formatter.d.ts +15 -0
- package/out/lsp/domain-lang-formatter.js +43 -0
- package/out/lsp/domain-lang-formatter.js.map +1 -0
- package/out/lsp/domain-lang-naming.d.ts +34 -0
- package/out/lsp/domain-lang-naming.js +49 -0
- package/out/lsp/domain-lang-naming.js.map +1 -0
- package/out/lsp/domain-lang-scope.d.ts +59 -0
- package/out/lsp/domain-lang-scope.js +102 -0
- package/out/lsp/domain-lang-scope.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/ddd-pattern-explanations.d.ts +50 -0
- package/out/lsp/hover/ddd-pattern-explanations.js +196 -0
- package/out/lsp/hover/ddd-pattern-explanations.js.map +1 -0
- package/out/lsp/hover/domain-lang-hover.d.ts +19 -0
- package/out/lsp/hover/domain-lang-hover.js +302 -0
- package/out/lsp/hover/domain-lang-hover.js.map +1 -0
- package/out/lsp/hover/domain-lang-keywords.d.ts +13 -0
- package/out/lsp/hover/domain-lang-keywords.js +47 -0
- package/out/lsp/hover/domain-lang-keywords.js.map +1 -0
- 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/main-browser.d.ts +1 -0
- package/out/main-browser.js +11 -0
- package/out/main-browser.js.map +1 -0
- package/out/main.d.ts +1 -0
- package/out/main.js +74 -0
- package/out/main.js.map +1 -0
- package/out/sdk/ast-augmentation.d.ts +136 -0
- package/out/sdk/ast-augmentation.js +62 -0
- package/out/sdk/ast-augmentation.js.map +1 -0
- package/out/sdk/index.d.ts +94 -0
- package/out/sdk/index.js +97 -0
- package/out/sdk/index.js.map +1 -0
- package/out/sdk/indexes.d.ts +16 -0
- package/out/sdk/indexes.js +97 -0
- package/out/sdk/indexes.js.map +1 -0
- package/out/sdk/loader-node.d.ts +51 -0
- package/out/sdk/loader-node.js +119 -0
- package/out/sdk/loader-node.js.map +1 -0
- package/out/sdk/loader.d.ts +49 -0
- package/out/sdk/loader.js +85 -0
- package/out/sdk/loader.js.map +1 -0
- package/out/sdk/patterns.d.ts +93 -0
- package/out/sdk/patterns.js +123 -0
- package/out/sdk/patterns.js.map +1 -0
- package/out/sdk/query.d.ts +90 -0
- package/out/sdk/query.js +679 -0
- package/out/sdk/query.js.map +1 -0
- package/out/sdk/resolution.d.ts +52 -0
- package/out/sdk/resolution.js +68 -0
- package/out/sdk/resolution.js.map +1 -0
- package/out/sdk/types.d.ts +280 -0
- package/out/sdk/types.js +8 -0
- package/out/sdk/types.js.map +1 -0
- package/out/services/dependency-analyzer.d.ts +58 -0
- package/out/services/dependency-analyzer.js +254 -0
- package/out/services/dependency-analyzer.js.map +1 -0
- package/out/services/dependency-resolver.d.ts +146 -0
- package/out/services/dependency-resolver.js +452 -0
- package/out/services/dependency-resolver.js.map +1 -0
- package/out/services/git-url-resolver.browser.d.ts +10 -0
- package/out/services/git-url-resolver.browser.js +19 -0
- package/out/services/git-url-resolver.browser.js.map +1 -0
- package/out/services/git-url-resolver.d.ts +158 -0
- package/out/services/git-url-resolver.js +416 -0
- package/out/services/git-url-resolver.js.map +1 -0
- package/out/services/governance-validator.d.ts +44 -0
- package/out/services/governance-validator.js +153 -0
- package/out/services/governance-validator.js.map +1 -0
- package/out/services/import-resolver.d.ts +77 -0
- package/out/services/import-resolver.js +240 -0
- package/out/services/import-resolver.js.map +1 -0
- package/out/services/performance-optimizer.d.ts +60 -0
- package/out/services/performance-optimizer.js +140 -0
- package/out/services/performance-optimizer.js.map +1 -0
- package/out/services/relationship-inference.d.ts +11 -0
- package/out/services/relationship-inference.js +98 -0
- package/out/services/relationship-inference.js.map +1 -0
- 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 +123 -0
- package/out/services/workspace-manager.js +489 -0
- package/out/services/workspace-manager.js.map +1 -0
- package/out/syntaxes/domain-lang.monarch.d.ts +76 -0
- package/out/syntaxes/domain-lang.monarch.js +29 -0
- package/out/syntaxes/domain-lang.monarch.js.map +1 -0
- package/out/utils/import-utils.d.ts +49 -0
- package/out/utils/import-utils.js +128 -0
- package/out/utils/import-utils.js.map +1 -0
- package/out/validation/bounded-context.d.ts +11 -0
- package/out/validation/bounded-context.js +79 -0
- package/out/validation/bounded-context.js.map +1 -0
- package/out/validation/classification.d.ts +3 -0
- package/out/validation/classification.js +3 -0
- package/out/validation/classification.js.map +1 -0
- package/out/validation/constants.d.ts +180 -0
- package/out/validation/constants.js +235 -0
- package/out/validation/constants.js.map +1 -0
- package/out/validation/domain-lang-validator.d.ts +2 -0
- package/out/validation/domain-lang-validator.js +27 -0
- package/out/validation/domain-lang-validator.js.map +1 -0
- package/out/validation/domain.d.ts +11 -0
- package/out/validation/domain.js +63 -0
- package/out/validation/domain.js.map +1 -0
- package/out/validation/import.d.ts +68 -0
- package/out/validation/import.js +237 -0
- package/out/validation/import.js.map +1 -0
- 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.d.ts +21 -0
- package/out/validation/maps.js +60 -0
- package/out/validation/maps.js.map +1 -0
- package/out/validation/metadata.d.ts +7 -0
- package/out/validation/metadata.js +16 -0
- package/out/validation/metadata.js.map +1 -0
- package/out/validation/model.d.ts +12 -0
- package/out/validation/model.js +29 -0
- package/out/validation/model.js.map +1 -0
- package/out/validation/relationships.d.ts +12 -0
- package/out/validation/relationships.js +94 -0
- package/out/validation/relationships.js.map +1 -0
- package/out/validation/shared.d.ts +6 -0
- package/out/validation/shared.js +12 -0
- package/out/validation/shared.js.map +1 -0
- package/package.json +110 -0
- package/src/ast-augmentation.ts +5 -0
- package/src/domain-lang-module.ts +112 -0
- package/src/domain-lang.langium +351 -0
- package/src/generated/ast.ts +986 -0
- package/src/generated/grammar.ts +2409 -0
- package/src/generated/module.ts +25 -0
- package/src/index.ts +24 -0
- package/src/lsp/domain-lang-code-actions.ts +189 -0
- package/src/lsp/domain-lang-completion.ts +514 -0
- package/src/lsp/domain-lang-formatter.ts +51 -0
- package/src/lsp/domain-lang-naming.ts +56 -0
- package/src/lsp/domain-lang-scope.ts +137 -0
- package/src/lsp/domain-lang-workspace-manager.ts +104 -0
- package/src/lsp/hover/ddd-pattern-explanations.ts +237 -0
- package/src/lsp/hover/domain-lang-hover.ts +338 -0
- package/src/lsp/hover/domain-lang-keywords.ts +50 -0
- package/src/lsp/manifest-diagnostics.ts +290 -0
- package/src/main-browser.ts +15 -0
- package/src/main.ts +85 -0
- package/src/sdk/README.md +297 -0
- package/src/sdk/ast-augmentation.ts +157 -0
- package/src/sdk/index.ts +126 -0
- package/src/sdk/indexes.ts +155 -0
- package/src/sdk/loader-node.ts +146 -0
- package/src/sdk/loader.ts +99 -0
- package/src/sdk/patterns.ts +147 -0
- package/src/sdk/query.ts +802 -0
- package/src/sdk/resolution.ts +78 -0
- package/src/sdk/types.ts +323 -0
- package/src/services/dependency-analyzer.ts +321 -0
- package/src/services/dependency-resolver.ts +551 -0
- package/src/services/git-url-resolver.browser.ts +26 -0
- package/src/services/git-url-resolver.ts +517 -0
- package/src/services/governance-validator.ts +177 -0
- package/src/services/import-resolver.ts +292 -0
- package/src/services/performance-optimizer.ts +170 -0
- package/src/services/relationship-inference.ts +121 -0
- package/src/services/semver.ts +213 -0
- package/src/services/types.ts +415 -0
- package/src/services/workspace-manager.ts +607 -0
- package/src/syntaxes/domain-lang.monarch.ts +29 -0
- package/src/utils/import-utils.ts +152 -0
- package/src/validation/bounded-context.ts +99 -0
- package/src/validation/classification.ts +5 -0
- package/src/validation/constants.ts +304 -0
- package/src/validation/domain-lang-validator.ts +33 -0
- package/src/validation/domain.ts +77 -0
- package/src/validation/import.ts +295 -0
- package/src/validation/manifest.ts +439 -0
- package/src/validation/maps.ts +76 -0
- package/src/validation/metadata.ts +18 -0
- package/src/validation/model.ts +37 -0
- package/src/validation/relationships.ts +154 -0
- package/src/validation/shared.ts +14 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/sdk/query.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Property resolution logic for SDK-augmented properties.
|
|
3
|
+
*
|
|
4
|
+
* This module provides resolution functions ONLY for properties that require
|
|
5
|
+
* precedence logic or transformation. Direct properties (description, vision,
|
|
6
|
+
* businessModel, evolution, archetype) should be accessed directly on the AST node.
|
|
7
|
+
*
|
|
8
|
+
* **Functions provided:**
|
|
9
|
+
* - `effectiveClassification` - Array precedence: inline `as` → body `classification:`
|
|
10
|
+
* - `effectiveTeam` - Array precedence: inline `by` → body `team:`
|
|
11
|
+
* - `metadataAsMap` - Array to Map conversion
|
|
12
|
+
*
|
|
13
|
+
* **Direct access (no resolution needed):**
|
|
14
|
+
* - `bc.description` - Direct string property
|
|
15
|
+
* - `bc.businessModel?.ref` - Direct reference
|
|
16
|
+
* - `bc.evolution?.ref` - Direct reference
|
|
17
|
+
* - `bc.archetype?.ref` - Direct reference
|
|
18
|
+
* - `domain.description` - Direct string property
|
|
19
|
+
* - `domain.vision` - Direct string property
|
|
20
|
+
* - `domain.type?.ref` - Direct reference
|
|
21
|
+
*/
|
|
22
|
+
import type { BoundedContext, Classification, Team } from '../generated/ast.js';
|
|
23
|
+
/**
|
|
24
|
+
* Returns the effective classification for a BoundedContext.
|
|
25
|
+
*
|
|
26
|
+
* Precedence:
|
|
27
|
+
* 1. Header inline (`as` keyword) - highest priority
|
|
28
|
+
* 2. Block property (`classification:`)
|
|
29
|
+
*
|
|
30
|
+
* @param bc - BoundedContext AST node
|
|
31
|
+
* @returns Classification reference or undefined
|
|
32
|
+
*/
|
|
33
|
+
export declare function effectiveClassification(bc: BoundedContext): Classification | undefined;
|
|
34
|
+
/**
|
|
35
|
+
* Returns the effective team for a BoundedContext.
|
|
36
|
+
*
|
|
37
|
+
* Precedence:
|
|
38
|
+
* 1. Header inline (`by` keyword) - highest priority
|
|
39
|
+
* 2. Block property (`team:`)
|
|
40
|
+
*
|
|
41
|
+
* @param bc - BoundedContext AST node
|
|
42
|
+
* @returns Team reference or undefined
|
|
43
|
+
*/
|
|
44
|
+
export declare function effectiveTeam(bc: BoundedContext): Team | undefined;
|
|
45
|
+
/**
|
|
46
|
+
* Returns metadata for a BoundedContext as a Map.
|
|
47
|
+
* Converts the metadata array to a key-value map.
|
|
48
|
+
*
|
|
49
|
+
* @param bc - BoundedContext AST node
|
|
50
|
+
* @returns ReadonlyMap of metadata entries
|
|
51
|
+
*/
|
|
52
|
+
export declare function metadataAsMap(bc: BoundedContext): ReadonlyMap<string, string>;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Property resolution logic for SDK-augmented properties.
|
|
3
|
+
*
|
|
4
|
+
* This module provides resolution functions ONLY for properties that require
|
|
5
|
+
* precedence logic or transformation. Direct properties (description, vision,
|
|
6
|
+
* businessModel, evolution, archetype) should be accessed directly on the AST node.
|
|
7
|
+
*
|
|
8
|
+
* **Functions provided:**
|
|
9
|
+
* - `effectiveClassification` - Array precedence: inline `as` → body `classification:`
|
|
10
|
+
* - `effectiveTeam` - Array precedence: inline `by` → body `team:`
|
|
11
|
+
* - `metadataAsMap` - Array to Map conversion
|
|
12
|
+
*
|
|
13
|
+
* **Direct access (no resolution needed):**
|
|
14
|
+
* - `bc.description` - Direct string property
|
|
15
|
+
* - `bc.businessModel?.ref` - Direct reference
|
|
16
|
+
* - `bc.evolution?.ref` - Direct reference
|
|
17
|
+
* - `bc.archetype?.ref` - Direct reference
|
|
18
|
+
* - `domain.description` - Direct string property
|
|
19
|
+
* - `domain.vision` - Direct string property
|
|
20
|
+
* - `domain.type?.ref` - Direct reference
|
|
21
|
+
*/
|
|
22
|
+
/**
|
|
23
|
+
* Returns the effective classification for a BoundedContext.
|
|
24
|
+
*
|
|
25
|
+
* Precedence:
|
|
26
|
+
* 1. Header inline (`as` keyword) - highest priority
|
|
27
|
+
* 2. Block property (`classification:`)
|
|
28
|
+
*
|
|
29
|
+
* @param bc - BoundedContext AST node
|
|
30
|
+
* @returns Classification reference or undefined
|
|
31
|
+
*/
|
|
32
|
+
export function effectiveClassification(bc) {
|
|
33
|
+
// Return the first resolved classification (inline takes precedence due to grammar order)
|
|
34
|
+
return bc.classification?.[0]?.ref;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Returns the effective team for a BoundedContext.
|
|
38
|
+
*
|
|
39
|
+
* Precedence:
|
|
40
|
+
* 1. Header inline (`by` keyword) - highest priority
|
|
41
|
+
* 2. Block property (`team:`)
|
|
42
|
+
*
|
|
43
|
+
* @param bc - BoundedContext AST node
|
|
44
|
+
* @returns Team reference or undefined
|
|
45
|
+
*/
|
|
46
|
+
export function effectiveTeam(bc) {
|
|
47
|
+
// Return the first resolved team (inline takes precedence due to grammar order)
|
|
48
|
+
return bc.team?.[0]?.ref;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Returns metadata for a BoundedContext as a Map.
|
|
52
|
+
* Converts the metadata array to a key-value map.
|
|
53
|
+
*
|
|
54
|
+
* @param bc - BoundedContext AST node
|
|
55
|
+
* @returns ReadonlyMap of metadata entries
|
|
56
|
+
*/
|
|
57
|
+
export function metadataAsMap(bc) {
|
|
58
|
+
const map = new Map();
|
|
59
|
+
for (const entry of bc.metadata ?? []) {
|
|
60
|
+
const key = entry.key?.ref?.name;
|
|
61
|
+
const value = entry.value;
|
|
62
|
+
if (key && value) {
|
|
63
|
+
map.set(key, value);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return map;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=resolution.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolution.js","sourceRoot":"","sources":["../../src/sdk/resolution.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAQH;;;;;;;;;GASG;AACH,MAAM,UAAU,uBAAuB,CAAC,EAAkB;IACtD,0FAA0F;IAC1F,OAAO,EAAE,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;AACvC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAAC,EAAkB;IAC5C,gFAAgF;IAChF,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;AAC7B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,EAAkB;IAC5C,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEtC,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;QACpC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC;QACjC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAC1B,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACxB,CAAC;IACL,CAAC;IAED,OAAO,GAAG,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type definitions for the Model Query SDK.
|
|
3
|
+
* Provides interfaces for fluent query operations on DomainLang models.
|
|
4
|
+
*/
|
|
5
|
+
import type { AstNode, URI } from 'langium';
|
|
6
|
+
import type { BoundedContext, Classification, ContextMap, Domain, DomainMap, Model, NamespaceDeclaration, Relationship, Team } from '../generated/ast.js';
|
|
7
|
+
import type { DomainLangServices } from '../domain-lang-module.js';
|
|
8
|
+
import './ast-augmentation.js';
|
|
9
|
+
/**
|
|
10
|
+
* Context returned from loadModel functions.
|
|
11
|
+
* Contains the parsed model, document URIs, and query API.
|
|
12
|
+
*/
|
|
13
|
+
export interface QueryContext {
|
|
14
|
+
/** Root model node */
|
|
15
|
+
readonly model: Model;
|
|
16
|
+
/** URIs of all documents in the model (including imports) */
|
|
17
|
+
readonly documents: URI[];
|
|
18
|
+
/** Query API for model traversal */
|
|
19
|
+
readonly query: Query;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Options for loading models from files or text.
|
|
23
|
+
*/
|
|
24
|
+
export interface LoadOptions {
|
|
25
|
+
/** Workspace directory for resolving relative imports */
|
|
26
|
+
workspaceDir?: string;
|
|
27
|
+
/** Reuse existing Langium services instead of creating new ones */
|
|
28
|
+
services?: DomainLangServices;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Main query interface for model traversal.
|
|
32
|
+
* Provides O(1) lookups and fluent collection queries.
|
|
33
|
+
*/
|
|
34
|
+
export interface Query {
|
|
35
|
+
/**
|
|
36
|
+
* Returns all domains in the model as a chainable query.
|
|
37
|
+
* @returns QueryBuilder for domains
|
|
38
|
+
* @example
|
|
39
|
+
* ```typescript
|
|
40
|
+
* const coreDomains = query.domains()
|
|
41
|
+
* .where(d => d.type?.ref?.name === 'Core');
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
domains(): QueryBuilder<Domain>;
|
|
45
|
+
/**
|
|
46
|
+
* Returns all bounded contexts in the model as a chainable query.
|
|
47
|
+
* @returns BcQueryBuilder with context-specific filters
|
|
48
|
+
* @example
|
|
49
|
+
* ```typescript
|
|
50
|
+
* const contexts = query.boundedContexts()
|
|
51
|
+
* .withClassification('Core')
|
|
52
|
+
* .withTeam('PaymentTeam');
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
boundedContexts(): BcQueryBuilder;
|
|
56
|
+
/**
|
|
57
|
+
* Returns all teams in the model as a chainable query.
|
|
58
|
+
* @returns QueryBuilder for teams
|
|
59
|
+
*/
|
|
60
|
+
teams(): QueryBuilder<Team>;
|
|
61
|
+
/**
|
|
62
|
+
* Returns all classifications in the model as a chainable query.
|
|
63
|
+
* @returns QueryBuilder for classifications
|
|
64
|
+
*/
|
|
65
|
+
classifications(): QueryBuilder<Classification>;
|
|
66
|
+
/**
|
|
67
|
+
* Returns all relationships as a chainable query.
|
|
68
|
+
* Includes relationships from both BoundedContext blocks and ContextMap.
|
|
69
|
+
* @returns QueryBuilder for relationships
|
|
70
|
+
*/
|
|
71
|
+
relationships(): QueryBuilder<RelationshipView>;
|
|
72
|
+
/**
|
|
73
|
+
* Returns all context maps in the model as a chainable query.
|
|
74
|
+
* @returns QueryBuilder for context maps
|
|
75
|
+
*/
|
|
76
|
+
contextMaps(): QueryBuilder<ContextMap>;
|
|
77
|
+
/**
|
|
78
|
+
* Returns all domain maps in the model as a chainable query.
|
|
79
|
+
* @returns QueryBuilder for domain maps
|
|
80
|
+
*/
|
|
81
|
+
domainMaps(): QueryBuilder<DomainMap>;
|
|
82
|
+
/**
|
|
83
|
+
* Returns all namespace declarations in the model as a chainable query.
|
|
84
|
+
* @returns QueryBuilder for namespaces
|
|
85
|
+
*/
|
|
86
|
+
namespaces(): QueryBuilder<NamespaceDeclaration>;
|
|
87
|
+
/**
|
|
88
|
+
* Finds any AST node by its fully qualified name.
|
|
89
|
+
* @param fqn - Fully qualified name (e.g., 'Sales.OrderContext')
|
|
90
|
+
* @returns The node or undefined if not found
|
|
91
|
+
* @example
|
|
92
|
+
* ```typescript
|
|
93
|
+
* const bc = query.byFqn<BoundedContext>('Sales.OrderContext');
|
|
94
|
+
* ```
|
|
95
|
+
*/
|
|
96
|
+
byFqn<T extends AstNode = AstNode>(fqn: string): T | undefined;
|
|
97
|
+
/**
|
|
98
|
+
* Finds a domain by simple name or FQN.
|
|
99
|
+
* @param name - Domain name
|
|
100
|
+
* @returns The domain or undefined if not found
|
|
101
|
+
*/
|
|
102
|
+
domain(name: string): Domain | undefined;
|
|
103
|
+
/**
|
|
104
|
+
* Finds a bounded context by simple name or FQN.
|
|
105
|
+
* @param name - Bounded context name
|
|
106
|
+
* @returns The bounded context or undefined if not found
|
|
107
|
+
*/
|
|
108
|
+
boundedContext(name: string): BoundedContext | undefined;
|
|
109
|
+
/**
|
|
110
|
+
* Alias for boundedContext() - shorthand for convenience.
|
|
111
|
+
* @param name - Bounded context name
|
|
112
|
+
* @returns The bounded context or undefined if not found
|
|
113
|
+
*/
|
|
114
|
+
bc(name: string): BoundedContext | undefined;
|
|
115
|
+
/**
|
|
116
|
+
* Finds a team by simple name.
|
|
117
|
+
* @param name - Team name
|
|
118
|
+
* @returns The team or undefined if not found
|
|
119
|
+
*/
|
|
120
|
+
team(name: string): Team | undefined;
|
|
121
|
+
/**
|
|
122
|
+
* Computes the fully qualified name for any AST node.
|
|
123
|
+
* @param node - AST node
|
|
124
|
+
* @returns Fully qualified name (e.g., 'Sales.OrderContext')
|
|
125
|
+
*/
|
|
126
|
+
fqn(node: AstNode): string;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Fluent query builder supporting lazy iteration and chaining.
|
|
130
|
+
* Terminal operations materialize the results.
|
|
131
|
+
*/
|
|
132
|
+
export interface QueryBuilder<T> extends Iterable<T> {
|
|
133
|
+
/**
|
|
134
|
+
* Filters items by a predicate function.
|
|
135
|
+
* Chains without materializing intermediate results.
|
|
136
|
+
* @param predicate - Function that returns true for items to include
|
|
137
|
+
* @returns New QueryBuilder with combined filters
|
|
138
|
+
* @example
|
|
139
|
+
* ```typescript
|
|
140
|
+
* query.domains()
|
|
141
|
+
* .where(d => d.parent !== undefined)
|
|
142
|
+
* .where(d => d.classification?.name === 'Core');
|
|
143
|
+
* ```
|
|
144
|
+
*/
|
|
145
|
+
where(predicate: (item: T) => boolean): QueryBuilder<T>;
|
|
146
|
+
/**
|
|
147
|
+
* Filters by simple name or regex pattern.
|
|
148
|
+
* @param pattern - String or RegExp to match against name
|
|
149
|
+
* @returns New QueryBuilder with name filter
|
|
150
|
+
* @example
|
|
151
|
+
* ```typescript
|
|
152
|
+
* query.domains().withName(/^Sales/);
|
|
153
|
+
* ```
|
|
154
|
+
*/
|
|
155
|
+
withName(pattern: string | RegExp): QueryBuilder<T>;
|
|
156
|
+
/**
|
|
157
|
+
* Filters by fully qualified name or regex pattern.
|
|
158
|
+
* @param pattern - String or RegExp to match against FQN
|
|
159
|
+
* @returns New QueryBuilder with FQN filter
|
|
160
|
+
* @example
|
|
161
|
+
* ```typescript
|
|
162
|
+
* query.boundedContexts().withFqn('Sales.OrderContext');
|
|
163
|
+
* ```
|
|
164
|
+
*/
|
|
165
|
+
withFqn(pattern: string | RegExp): QueryBuilder<T>;
|
|
166
|
+
/**
|
|
167
|
+
* Returns the first item or undefined if no items match.
|
|
168
|
+
* Terminal operation.
|
|
169
|
+
* @returns First matching item or undefined
|
|
170
|
+
*/
|
|
171
|
+
first(): T | undefined;
|
|
172
|
+
/**
|
|
173
|
+
* Materializes all items into an array.
|
|
174
|
+
* Terminal operation.
|
|
175
|
+
* @returns Array of all matching items
|
|
176
|
+
*/
|
|
177
|
+
toArray(): T[];
|
|
178
|
+
/**
|
|
179
|
+
* Counts items without materializing.
|
|
180
|
+
* Terminal operation.
|
|
181
|
+
* @returns Number of matching items
|
|
182
|
+
*/
|
|
183
|
+
count(): number;
|
|
184
|
+
/**
|
|
185
|
+
* Iterator for lazy evaluation.
|
|
186
|
+
* Allows use in for...of loops and spread operators.
|
|
187
|
+
*/
|
|
188
|
+
[Symbol.iterator](): Iterator<T>;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Specialized query builder for BoundedContext with domain-specific filters.
|
|
192
|
+
* Extends base QueryBuilder with context-aware methods.
|
|
193
|
+
*/
|
|
194
|
+
export interface BcQueryBuilder extends QueryBuilder<BoundedContext> {
|
|
195
|
+
/**
|
|
196
|
+
* Filters contexts belonging to a specific domain.
|
|
197
|
+
* @param domain - Domain name or Domain instance
|
|
198
|
+
* @returns New BcQueryBuilder with domain filter
|
|
199
|
+
* @example
|
|
200
|
+
* ```typescript
|
|
201
|
+
* query.boundedContexts().inDomain('Sales');
|
|
202
|
+
* ```
|
|
203
|
+
*/
|
|
204
|
+
inDomain(domain: string | Domain): BcQueryBuilder;
|
|
205
|
+
/**
|
|
206
|
+
* Filters contexts assigned to a specific team.
|
|
207
|
+
* Uses SDK-resolved team property (header inline or block).
|
|
208
|
+
* @param team - Team name or Team instance
|
|
209
|
+
* @returns New BcQueryBuilder with team filter
|
|
210
|
+
* @example
|
|
211
|
+
* ```typescript
|
|
212
|
+
* query.boundedContexts().withTeam('PaymentTeam');
|
|
213
|
+
* ```
|
|
214
|
+
*/
|
|
215
|
+
withTeam(team: string | Team): BcQueryBuilder;
|
|
216
|
+
/**
|
|
217
|
+
* Filters contexts with a specific strategic classification.
|
|
218
|
+
* Uses SDK-resolved classification precedence (header inline `as` → body `classification:`).
|
|
219
|
+
* @param classification - Classification name or Classification instance
|
|
220
|
+
* @returns New BcQueryBuilder with classification filter
|
|
221
|
+
* @example
|
|
222
|
+
* ```typescript
|
|
223
|
+
* query.boundedContexts().withClassification('Core');
|
|
224
|
+
* ```
|
|
225
|
+
*/
|
|
226
|
+
withClassification(classification: string | Classification): BcQueryBuilder;
|
|
227
|
+
/**
|
|
228
|
+
* Filters contexts with specific metadata key-value pair.
|
|
229
|
+
* @param key - Metadata key
|
|
230
|
+
* @param value - Optional metadata value (if omitted, matches any value)
|
|
231
|
+
* @returns New BcQueryBuilder with metadata filter
|
|
232
|
+
* @example
|
|
233
|
+
* ```typescript
|
|
234
|
+
* query.boundedContexts()
|
|
235
|
+
* .withMetadata('Language', 'TypeScript')
|
|
236
|
+
* .withMetadata('Framework'); // Any framework
|
|
237
|
+
* ```
|
|
238
|
+
*/
|
|
239
|
+
withMetadata(key: string, value?: string): BcQueryBuilder;
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Unified view of a relationship between two BoundedContexts.
|
|
243
|
+
* Relationships can be defined in BoundedContext blocks or ContextMap.
|
|
244
|
+
*/
|
|
245
|
+
export interface RelationshipView {
|
|
246
|
+
/** Left-hand side BoundedContext */
|
|
247
|
+
readonly left: BoundedContext;
|
|
248
|
+
/** Right-hand side BoundedContext */
|
|
249
|
+
readonly right: BoundedContext;
|
|
250
|
+
/** Relationship direction arrow */
|
|
251
|
+
readonly arrow: '->' | '<-' | '<->' | '><';
|
|
252
|
+
/** Integration patterns on left side (e.g., ['OHS', 'PL']) */
|
|
253
|
+
readonly leftPatterns: readonly string[];
|
|
254
|
+
/** Integration patterns on right side (e.g., ['CF', 'ACL']) */
|
|
255
|
+
readonly rightPatterns: readonly string[];
|
|
256
|
+
/** Explicit relationship type if specified */
|
|
257
|
+
readonly type?: string;
|
|
258
|
+
/** SDK-inferred relationship type based on patterns */
|
|
259
|
+
readonly inferredType?: string;
|
|
260
|
+
/** Source of the relationship definition */
|
|
261
|
+
readonly source: 'BoundedContext' | 'ContextMap';
|
|
262
|
+
/** Original AST relationship node */
|
|
263
|
+
readonly astNode: Relationship;
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Internal index structure for O(1) lookups.
|
|
267
|
+
* Not exported from public API.
|
|
268
|
+
*/
|
|
269
|
+
export interface ModelIndexes {
|
|
270
|
+
/** Map from FQN to AST node */
|
|
271
|
+
readonly byFqn: ReadonlyMap<string, AstNode>;
|
|
272
|
+
/** Map from simple name to AST nodes (may have duplicates) */
|
|
273
|
+
readonly byName: ReadonlyMap<string, AstNode[]>;
|
|
274
|
+
/** Map from team name to BoundedContexts */
|
|
275
|
+
readonly byTeam: ReadonlyMap<string, BoundedContext[]>;
|
|
276
|
+
/** Map from strategic classification name to BoundedContexts */
|
|
277
|
+
readonly byClassification: ReadonlyMap<string, BoundedContext[]>;
|
|
278
|
+
/** Map from metadata key to BoundedContexts */
|
|
279
|
+
readonly byMetadataKey: ReadonlyMap<string, BoundedContext[]>;
|
|
280
|
+
}
|
package/out/sdk/types.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type definitions for the Model Query SDK.
|
|
3
|
+
* Provides interfaces for fluent query operations on DomainLang models.
|
|
4
|
+
*/
|
|
5
|
+
// Import augmentation module for extended AST types
|
|
6
|
+
// This enables native SDK properties on BoundedContext, Domain, and Relationship
|
|
7
|
+
import './ast-augmentation.js';
|
|
8
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/sdk/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAgBH,oDAAoD;AACpD,iFAAiF;AACjF,OAAO,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dependency Analysis Service
|
|
3
|
+
*
|
|
4
|
+
* Provides tools for visualizing and analyzing dependency relationships:
|
|
5
|
+
* - Dependency tree visualization
|
|
6
|
+
* - Impact analysis (reverse dependencies)
|
|
7
|
+
* - Circular dependency detection
|
|
8
|
+
* - Version policy enforcement
|
|
9
|
+
*/
|
|
10
|
+
import type { LockFile, DependencyTreeNode, ReverseDependency, VersionPolicy } from './types.js';
|
|
11
|
+
/**
|
|
12
|
+
* Analyzes dependency relationships and provides visualization/analysis tools.
|
|
13
|
+
*/
|
|
14
|
+
export declare class DependencyAnalyzer {
|
|
15
|
+
/**
|
|
16
|
+
* Builds a dependency tree from a lock file.
|
|
17
|
+
*
|
|
18
|
+
* @param lockFile - The lock file to analyze
|
|
19
|
+
* @param workspaceRoot - Workspace root to load dependency metadata
|
|
20
|
+
* @returns Root nodes of the dependency tree
|
|
21
|
+
*/
|
|
22
|
+
buildDependencyTree(lockFile: LockFile, workspaceRoot: string): Promise<DependencyTreeNode[]>;
|
|
23
|
+
/**
|
|
24
|
+
* Recursively builds a dependency tree node.
|
|
25
|
+
*/
|
|
26
|
+
private buildTreeNode;
|
|
27
|
+
/**
|
|
28
|
+
* Finds all packages that depend on a given package.
|
|
29
|
+
*
|
|
30
|
+
* @param targetPackage - Package to analyze
|
|
31
|
+
* @param lockFile - Lock file with all dependencies
|
|
32
|
+
* @param workspaceRoot - Workspace root
|
|
33
|
+
* @returns List of reverse dependencies
|
|
34
|
+
*/
|
|
35
|
+
findReverseDependencies(targetPackage: string, lockFile: LockFile, workspaceRoot: string): Promise<ReverseDependency[]>;
|
|
36
|
+
/**
|
|
37
|
+
* Formats a dependency tree as a readable string.
|
|
38
|
+
*/
|
|
39
|
+
formatDependencyTree(nodes: DependencyTreeNode[], options?: {
|
|
40
|
+
showCommits?: boolean;
|
|
41
|
+
}): string;
|
|
42
|
+
/**
|
|
43
|
+
* Detects circular dependencies in a dependency graph.
|
|
44
|
+
*/
|
|
45
|
+
detectCircularDependencies(lockFile: LockFile): Promise<string[][]>;
|
|
46
|
+
/**
|
|
47
|
+
* Resolves ref policies (latest, stable) to concrete refs.
|
|
48
|
+
*/
|
|
49
|
+
resolveVersionPolicy(_packageKey: string, policy: string, availableRefs: string[]): Promise<VersionPolicy>;
|
|
50
|
+
/**
|
|
51
|
+
* Gets the cache directory for a package.
|
|
52
|
+
*/
|
|
53
|
+
private getCacheDir;
|
|
54
|
+
/**
|
|
55
|
+
* Loads dependencies from a cached package.
|
|
56
|
+
*/
|
|
57
|
+
private loadPackageDependencies;
|
|
58
|
+
}
|