@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.
Files changed (212) hide show
  1. package/README.md +163 -0
  2. package/out/ast-augmentation.d.ts +6 -0
  3. package/out/ast-augmentation.js +2 -0
  4. package/out/ast-augmentation.js.map +1 -0
  5. package/out/domain-lang-module.d.ts +57 -0
  6. package/out/domain-lang-module.js +67 -0
  7. package/out/domain-lang-module.js.map +1 -0
  8. package/out/generated/ast.d.ts +759 -0
  9. package/out/generated/ast.js +556 -0
  10. package/out/generated/ast.js.map +1 -0
  11. package/out/generated/grammar.d.ts +6 -0
  12. package/out/generated/grammar.js +2407 -0
  13. package/out/generated/grammar.js.map +1 -0
  14. package/out/generated/module.d.ts +13 -0
  15. package/out/generated/module.js +21 -0
  16. package/out/generated/module.js.map +1 -0
  17. package/out/index.d.ts +16 -0
  18. package/out/index.js +22 -0
  19. package/out/index.js.map +1 -0
  20. package/out/lsp/domain-lang-code-actions.d.ts +55 -0
  21. package/out/lsp/domain-lang-code-actions.js +143 -0
  22. package/out/lsp/domain-lang-code-actions.js.map +1 -0
  23. package/out/lsp/domain-lang-completion.d.ts +37 -0
  24. package/out/lsp/domain-lang-completion.js +452 -0
  25. package/out/lsp/domain-lang-completion.js.map +1 -0
  26. package/out/lsp/domain-lang-formatter.d.ts +15 -0
  27. package/out/lsp/domain-lang-formatter.js +43 -0
  28. package/out/lsp/domain-lang-formatter.js.map +1 -0
  29. package/out/lsp/domain-lang-naming.d.ts +34 -0
  30. package/out/lsp/domain-lang-naming.js +49 -0
  31. package/out/lsp/domain-lang-naming.js.map +1 -0
  32. package/out/lsp/domain-lang-scope.d.ts +59 -0
  33. package/out/lsp/domain-lang-scope.js +102 -0
  34. package/out/lsp/domain-lang-scope.js.map +1 -0
  35. package/out/lsp/domain-lang-workspace-manager.d.ts +21 -0
  36. package/out/lsp/domain-lang-workspace-manager.js +93 -0
  37. package/out/lsp/domain-lang-workspace-manager.js.map +1 -0
  38. package/out/lsp/hover/ddd-pattern-explanations.d.ts +50 -0
  39. package/out/lsp/hover/ddd-pattern-explanations.js +196 -0
  40. package/out/lsp/hover/ddd-pattern-explanations.js.map +1 -0
  41. package/out/lsp/hover/domain-lang-hover.d.ts +19 -0
  42. package/out/lsp/hover/domain-lang-hover.js +302 -0
  43. package/out/lsp/hover/domain-lang-hover.js.map +1 -0
  44. package/out/lsp/hover/domain-lang-keywords.d.ts +13 -0
  45. package/out/lsp/hover/domain-lang-keywords.js +47 -0
  46. package/out/lsp/hover/domain-lang-keywords.js.map +1 -0
  47. package/out/lsp/manifest-diagnostics.d.ts +82 -0
  48. package/out/lsp/manifest-diagnostics.js +230 -0
  49. package/out/lsp/manifest-diagnostics.js.map +1 -0
  50. package/out/main-browser.d.ts +1 -0
  51. package/out/main-browser.js +11 -0
  52. package/out/main-browser.js.map +1 -0
  53. package/out/main.d.ts +1 -0
  54. package/out/main.js +74 -0
  55. package/out/main.js.map +1 -0
  56. package/out/sdk/ast-augmentation.d.ts +136 -0
  57. package/out/sdk/ast-augmentation.js +62 -0
  58. package/out/sdk/ast-augmentation.js.map +1 -0
  59. package/out/sdk/index.d.ts +94 -0
  60. package/out/sdk/index.js +97 -0
  61. package/out/sdk/index.js.map +1 -0
  62. package/out/sdk/indexes.d.ts +16 -0
  63. package/out/sdk/indexes.js +97 -0
  64. package/out/sdk/indexes.js.map +1 -0
  65. package/out/sdk/loader-node.d.ts +51 -0
  66. package/out/sdk/loader-node.js +119 -0
  67. package/out/sdk/loader-node.js.map +1 -0
  68. package/out/sdk/loader.d.ts +49 -0
  69. package/out/sdk/loader.js +85 -0
  70. package/out/sdk/loader.js.map +1 -0
  71. package/out/sdk/patterns.d.ts +93 -0
  72. package/out/sdk/patterns.js +123 -0
  73. package/out/sdk/patterns.js.map +1 -0
  74. package/out/sdk/query.d.ts +90 -0
  75. package/out/sdk/query.js +679 -0
  76. package/out/sdk/query.js.map +1 -0
  77. package/out/sdk/resolution.d.ts +52 -0
  78. package/out/sdk/resolution.js +68 -0
  79. package/out/sdk/resolution.js.map +1 -0
  80. package/out/sdk/types.d.ts +280 -0
  81. package/out/sdk/types.js +8 -0
  82. package/out/sdk/types.js.map +1 -0
  83. package/out/services/dependency-analyzer.d.ts +58 -0
  84. package/out/services/dependency-analyzer.js +254 -0
  85. package/out/services/dependency-analyzer.js.map +1 -0
  86. package/out/services/dependency-resolver.d.ts +146 -0
  87. package/out/services/dependency-resolver.js +452 -0
  88. package/out/services/dependency-resolver.js.map +1 -0
  89. package/out/services/git-url-resolver.browser.d.ts +10 -0
  90. package/out/services/git-url-resolver.browser.js +19 -0
  91. package/out/services/git-url-resolver.browser.js.map +1 -0
  92. package/out/services/git-url-resolver.d.ts +158 -0
  93. package/out/services/git-url-resolver.js +416 -0
  94. package/out/services/git-url-resolver.js.map +1 -0
  95. package/out/services/governance-validator.d.ts +44 -0
  96. package/out/services/governance-validator.js +153 -0
  97. package/out/services/governance-validator.js.map +1 -0
  98. package/out/services/import-resolver.d.ts +77 -0
  99. package/out/services/import-resolver.js +240 -0
  100. package/out/services/import-resolver.js.map +1 -0
  101. package/out/services/performance-optimizer.d.ts +60 -0
  102. package/out/services/performance-optimizer.js +140 -0
  103. package/out/services/performance-optimizer.js.map +1 -0
  104. package/out/services/relationship-inference.d.ts +11 -0
  105. package/out/services/relationship-inference.js +98 -0
  106. package/out/services/relationship-inference.js.map +1 -0
  107. package/out/services/semver.d.ts +98 -0
  108. package/out/services/semver.js +195 -0
  109. package/out/services/semver.js.map +1 -0
  110. package/out/services/types.d.ts +340 -0
  111. package/out/services/types.js +46 -0
  112. package/out/services/types.js.map +1 -0
  113. package/out/services/workspace-manager.d.ts +123 -0
  114. package/out/services/workspace-manager.js +489 -0
  115. package/out/services/workspace-manager.js.map +1 -0
  116. package/out/syntaxes/domain-lang.monarch.d.ts +76 -0
  117. package/out/syntaxes/domain-lang.monarch.js +29 -0
  118. package/out/syntaxes/domain-lang.monarch.js.map +1 -0
  119. package/out/utils/import-utils.d.ts +49 -0
  120. package/out/utils/import-utils.js +128 -0
  121. package/out/utils/import-utils.js.map +1 -0
  122. package/out/validation/bounded-context.d.ts +11 -0
  123. package/out/validation/bounded-context.js +79 -0
  124. package/out/validation/bounded-context.js.map +1 -0
  125. package/out/validation/classification.d.ts +3 -0
  126. package/out/validation/classification.js +3 -0
  127. package/out/validation/classification.js.map +1 -0
  128. package/out/validation/constants.d.ts +180 -0
  129. package/out/validation/constants.js +235 -0
  130. package/out/validation/constants.js.map +1 -0
  131. package/out/validation/domain-lang-validator.d.ts +2 -0
  132. package/out/validation/domain-lang-validator.js +27 -0
  133. package/out/validation/domain-lang-validator.js.map +1 -0
  134. package/out/validation/domain.d.ts +11 -0
  135. package/out/validation/domain.js +63 -0
  136. package/out/validation/domain.js.map +1 -0
  137. package/out/validation/import.d.ts +68 -0
  138. package/out/validation/import.js +237 -0
  139. package/out/validation/import.js.map +1 -0
  140. package/out/validation/manifest.d.ts +144 -0
  141. package/out/validation/manifest.js +327 -0
  142. package/out/validation/manifest.js.map +1 -0
  143. package/out/validation/maps.d.ts +21 -0
  144. package/out/validation/maps.js +60 -0
  145. package/out/validation/maps.js.map +1 -0
  146. package/out/validation/metadata.d.ts +7 -0
  147. package/out/validation/metadata.js +16 -0
  148. package/out/validation/metadata.js.map +1 -0
  149. package/out/validation/model.d.ts +12 -0
  150. package/out/validation/model.js +29 -0
  151. package/out/validation/model.js.map +1 -0
  152. package/out/validation/relationships.d.ts +12 -0
  153. package/out/validation/relationships.js +94 -0
  154. package/out/validation/relationships.js.map +1 -0
  155. package/out/validation/shared.d.ts +6 -0
  156. package/out/validation/shared.js +12 -0
  157. package/out/validation/shared.js.map +1 -0
  158. package/package.json +110 -0
  159. package/src/ast-augmentation.ts +5 -0
  160. package/src/domain-lang-module.ts +112 -0
  161. package/src/domain-lang.langium +351 -0
  162. package/src/generated/ast.ts +986 -0
  163. package/src/generated/grammar.ts +2409 -0
  164. package/src/generated/module.ts +25 -0
  165. package/src/index.ts +24 -0
  166. package/src/lsp/domain-lang-code-actions.ts +189 -0
  167. package/src/lsp/domain-lang-completion.ts +514 -0
  168. package/src/lsp/domain-lang-formatter.ts +51 -0
  169. package/src/lsp/domain-lang-naming.ts +56 -0
  170. package/src/lsp/domain-lang-scope.ts +137 -0
  171. package/src/lsp/domain-lang-workspace-manager.ts +104 -0
  172. package/src/lsp/hover/ddd-pattern-explanations.ts +237 -0
  173. package/src/lsp/hover/domain-lang-hover.ts +338 -0
  174. package/src/lsp/hover/domain-lang-keywords.ts +50 -0
  175. package/src/lsp/manifest-diagnostics.ts +290 -0
  176. package/src/main-browser.ts +15 -0
  177. package/src/main.ts +85 -0
  178. package/src/sdk/README.md +297 -0
  179. package/src/sdk/ast-augmentation.ts +157 -0
  180. package/src/sdk/index.ts +126 -0
  181. package/src/sdk/indexes.ts +155 -0
  182. package/src/sdk/loader-node.ts +146 -0
  183. package/src/sdk/loader.ts +99 -0
  184. package/src/sdk/patterns.ts +147 -0
  185. package/src/sdk/query.ts +802 -0
  186. package/src/sdk/resolution.ts +78 -0
  187. package/src/sdk/types.ts +323 -0
  188. package/src/services/dependency-analyzer.ts +321 -0
  189. package/src/services/dependency-resolver.ts +551 -0
  190. package/src/services/git-url-resolver.browser.ts +26 -0
  191. package/src/services/git-url-resolver.ts +517 -0
  192. package/src/services/governance-validator.ts +177 -0
  193. package/src/services/import-resolver.ts +292 -0
  194. package/src/services/performance-optimizer.ts +170 -0
  195. package/src/services/relationship-inference.ts +121 -0
  196. package/src/services/semver.ts +213 -0
  197. package/src/services/types.ts +415 -0
  198. package/src/services/workspace-manager.ts +607 -0
  199. package/src/syntaxes/domain-lang.monarch.ts +29 -0
  200. package/src/utils/import-utils.ts +152 -0
  201. package/src/validation/bounded-context.ts +99 -0
  202. package/src/validation/classification.ts +5 -0
  203. package/src/validation/constants.ts +304 -0
  204. package/src/validation/domain-lang-validator.ts +33 -0
  205. package/src/validation/domain.ts +77 -0
  206. package/src/validation/import.ts +295 -0
  207. package/src/validation/manifest.ts +439 -0
  208. package/src/validation/maps.ts +76 -0
  209. package/src/validation/metadata.ts +18 -0
  210. package/src/validation/model.ts +37 -0
  211. package/src/validation/relationships.ts +154 -0
  212. 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
+ }
@@ -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
+ }