@domainlang/language 0.1.81
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 +32 -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 +55 -0
- package/out/domain-lang-module.js +59 -0
- package/out/domain-lang-module.js.map +1 -0
- package/out/generated/ast.d.ts +770 -0
- package/out/generated/ast.js +565 -0
- package/out/generated/ast.js.map +1 -0
- package/out/generated/grammar.d.ts +6 -0
- package/out/generated/grammar.js +2502 -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 +13 -0
- package/out/index.js +17 -0
- package/out/index.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/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 +306 -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/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 +47 -0
- package/out/sdk/loader-node.js +104 -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 +301 -0
- package/out/sdk/types.js +8 -0
- package/out/sdk/types.js.map +1 -0
- package/out/services/dependency-analyzer.d.ts +94 -0
- package/out/services/dependency-analyzer.js +279 -0
- package/out/services/dependency-analyzer.js.map +1 -0
- package/out/services/dependency-resolver.d.ts +123 -0
- package/out/services/dependency-resolver.js +252 -0
- package/out/services/dependency-resolver.js.map +1 -0
- package/out/services/git-url-resolver.browser.d.ts +18 -0
- package/out/services/git-url-resolver.browser.js +15 -0
- package/out/services/git-url-resolver.browser.js.map +1 -0
- package/out/services/git-url-resolver.d.ts +192 -0
- package/out/services/git-url-resolver.js +382 -0
- package/out/services/git-url-resolver.js.map +1 -0
- package/out/services/governance-validator.d.ts +80 -0
- package/out/services/governance-validator.js +159 -0
- package/out/services/governance-validator.js.map +1 -0
- package/out/services/import-resolver.d.ts +18 -0
- package/out/services/import-resolver.js +22 -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/workspace-manager.d.ts +76 -0
- package/out/services/workspace-manager.js +323 -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 +57 -0
- package/out/utils/import-utils.js +228 -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 +77 -0
- package/out/validation/constants.js +96 -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 +18 -0
- package/out/validation/domain.js.map +1 -0
- package/out/validation/import.d.ts +44 -0
- package/out/validation/import.js +135 -0
- package/out/validation/import.js.map +1 -0
- package/out/validation/maps.d.ts +21 -0
- package/out/validation/maps.js +56 -0
- package/out/validation/maps.js.map +1 -0
- package/out/validation/metadata.d.ts +7 -0
- package/out/validation/metadata.js +12 -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 +97 -0
- package/src/ast-augmentation.ts +5 -0
- package/src/domain-lang-module.ts +100 -0
- package/src/domain-lang.langium +356 -0
- package/src/generated/ast.ts +999 -0
- package/src/generated/grammar.ts +2504 -0
- package/src/generated/module.ts +25 -0
- package/src/index.ts +17 -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/hover/ddd-pattern-explanations.ts +237 -0
- package/src/lsp/hover/domain-lang-hover.ts +340 -0
- package/src/lsp/hover/domain-lang-keywords.ts +50 -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 +128 -0
- package/src/sdk/indexes.ts +155 -0
- package/src/sdk/loader-node.ts +126 -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 +346 -0
- package/src/services/dependency-analyzer.ts +381 -0
- package/src/services/dependency-resolver.ts +334 -0
- package/src/services/git-url-resolver.browser.ts +31 -0
- package/src/services/git-url-resolver.ts +524 -0
- package/src/services/governance-validator.ts +219 -0
- package/src/services/import-resolver.ts +30 -0
- package/src/services/performance-optimizer.ts +170 -0
- package/src/services/relationship-inference.ts +121 -0
- package/src/services/workspace-manager.ts +416 -0
- package/src/syntaxes/domain-lang.monarch.ts +29 -0
- package/src/utils/import-utils.ts +274 -0
- package/src/validation/bounded-context.ts +99 -0
- package/src/validation/classification.ts +5 -0
- package/src/validation/constants.ts +124 -0
- package/src/validation/domain-lang-validator.ts +33 -0
- package/src/validation/domain.ts +24 -0
- package/src/validation/import.ts +171 -0
- package/src/validation/maps.ts +72 -0
- package/src/validation/metadata.ts +14 -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,999 @@
|
|
|
1
|
+
/******************************************************************************
|
|
2
|
+
* This file was generated by langium-cli 4.1.0.
|
|
3
|
+
* DO NOT EDIT MANUALLY!
|
|
4
|
+
******************************************************************************/
|
|
5
|
+
|
|
6
|
+
/* eslint-disable */
|
|
7
|
+
import * as langium from 'langium';
|
|
8
|
+
|
|
9
|
+
export const DomainLangTerminals = {
|
|
10
|
+
WS: /\s+/,
|
|
11
|
+
ID: /[_a-zA-Z][\w_-]*/,
|
|
12
|
+
STRING: /"(\\.|[^"\\])*"|'(\\.|[^'\\])*'/,
|
|
13
|
+
ML_COMMENT: /\/\*[\s\S]*?\*\//,
|
|
14
|
+
SL_COMMENT: /\/\/[^\n\r]*/,
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export type DomainLangTerminalNames = keyof typeof DomainLangTerminals;
|
|
18
|
+
|
|
19
|
+
export type DomainLangKeywordNames =
|
|
20
|
+
| ","
|
|
21
|
+
| "->"
|
|
22
|
+
| "."
|
|
23
|
+
| ":"
|
|
24
|
+
| "<-"
|
|
25
|
+
| "<->"
|
|
26
|
+
| "="
|
|
27
|
+
| "><"
|
|
28
|
+
| "ACL"
|
|
29
|
+
| "AntiCorruptionLayer"
|
|
30
|
+
| "BBoM"
|
|
31
|
+
| "BigBallOfMud"
|
|
32
|
+
| "BoundedContext"
|
|
33
|
+
| "CF"
|
|
34
|
+
| "Classification"
|
|
35
|
+
| "Conformist"
|
|
36
|
+
| "ContextMap"
|
|
37
|
+
| "CustomerSupplier"
|
|
38
|
+
| "Decision"
|
|
39
|
+
| "Domain"
|
|
40
|
+
| "DomainMap"
|
|
41
|
+
| "Import"
|
|
42
|
+
| "Metadata"
|
|
43
|
+
| "Namespace"
|
|
44
|
+
| "OHS"
|
|
45
|
+
| "OpenHostService"
|
|
46
|
+
| "P"
|
|
47
|
+
| "PL"
|
|
48
|
+
| "Partnership"
|
|
49
|
+
| "Policy"
|
|
50
|
+
| "PublishedLanguage"
|
|
51
|
+
| "Rule"
|
|
52
|
+
| "SK"
|
|
53
|
+
| "SeparateWays"
|
|
54
|
+
| "SharedKernel"
|
|
55
|
+
| "Team"
|
|
56
|
+
| "Term"
|
|
57
|
+
| "UpstreamDownstream"
|
|
58
|
+
| "["
|
|
59
|
+
| "]"
|
|
60
|
+
| "aka"
|
|
61
|
+
| "archetype"
|
|
62
|
+
| "as"
|
|
63
|
+
| "bc"
|
|
64
|
+
| "businessModel"
|
|
65
|
+
| "by"
|
|
66
|
+
| "classification"
|
|
67
|
+
| "cmap"
|
|
68
|
+
| "contains"
|
|
69
|
+
| "decision"
|
|
70
|
+
| "decisions"
|
|
71
|
+
| "description"
|
|
72
|
+
| "dmap"
|
|
73
|
+
| "dom"
|
|
74
|
+
| "evolution"
|
|
75
|
+
| "examples"
|
|
76
|
+
| "for"
|
|
77
|
+
| "from"
|
|
78
|
+
| "glossary"
|
|
79
|
+
| "import"
|
|
80
|
+
| "in"
|
|
81
|
+
| "integrations"
|
|
82
|
+
| "integrity"
|
|
83
|
+
| "is"
|
|
84
|
+
| "meta"
|
|
85
|
+
| "metadata"
|
|
86
|
+
| "ns"
|
|
87
|
+
| "policy"
|
|
88
|
+
| "relationships"
|
|
89
|
+
| "rule"
|
|
90
|
+
| "rules"
|
|
91
|
+
| "synonyms"
|
|
92
|
+
| "team"
|
|
93
|
+
| "term"
|
|
94
|
+
| "terminology"
|
|
95
|
+
| "this"
|
|
96
|
+
| "type"
|
|
97
|
+
| "vision"
|
|
98
|
+
| "{"
|
|
99
|
+
| "}";
|
|
100
|
+
|
|
101
|
+
export type DomainLangTokenNames = DomainLangTerminalNames | DomainLangKeywordNames;
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Decisions, Policies, and Business Rules.
|
|
105
|
+
* All types are interchangeable - use what reads best for your domain.
|
|
106
|
+
*/
|
|
107
|
+
export type AbstractDecision = BusinessRule | Decision | Policy;
|
|
108
|
+
|
|
109
|
+
export const AbstractDecision = {
|
|
110
|
+
$type: 'AbstractDecision'
|
|
111
|
+
} as const;
|
|
112
|
+
|
|
113
|
+
export function isAbstractDecision(item: unknown): item is AbstractDecision {
|
|
114
|
+
return reflection.isInstance(item, AbstractDecision.$type);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Assignment operators - flexible syntax.
|
|
119
|
+
*/
|
|
120
|
+
export type Assignment = ':' | '=' | 'is';
|
|
121
|
+
|
|
122
|
+
export function isAssignment(item: unknown): item is Assignment {
|
|
123
|
+
return item === ':' || item === 'is' || item === '=';
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* Bounded Context - A boundary within which a domain model is defined.
|
|
128
|
+
* Central pattern in DDD for managing complexity and team boundaries.
|
|
129
|
+
* Belongs to exactly ONE domain (fundamental DDD principle).
|
|
130
|
+
* Body properties can appear in any order. Validation enforces at-most-once constraint.
|
|
131
|
+
* The `classification` property indicates strategic importance per Bounded Context Canvas.
|
|
132
|
+
* The `evolution` property indicates maturity stage per Wardley Maps/BC Canvas.
|
|
133
|
+
* The `archetype` property indicates behavioral role per DDD archetypes (Gateway, Execution, etc).
|
|
134
|
+
*/
|
|
135
|
+
export interface BoundedContext extends langium.AstNode {
|
|
136
|
+
readonly $container: Model | NamespaceDeclaration;
|
|
137
|
+
readonly $type: 'Assignment' | 'BoundedContext';
|
|
138
|
+
archetype?: langium.Reference<Classification>;
|
|
139
|
+
businessModel?: langium.Reference<Classification>;
|
|
140
|
+
classification: Array<langium.Reference<Classification>>;
|
|
141
|
+
decisions: Array<AbstractDecision>;
|
|
142
|
+
description?: string;
|
|
143
|
+
domain?: langium.Reference<Domain>;
|
|
144
|
+
evolution?: langium.Reference<Classification>;
|
|
145
|
+
metadata: Array<MetadataEntry>;
|
|
146
|
+
name: string;
|
|
147
|
+
relationships: Array<Relationship>;
|
|
148
|
+
team: Array<langium.Reference<Team>>;
|
|
149
|
+
terminology: Array<DomainTerm>;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
export const BoundedContext = {
|
|
153
|
+
$type: 'BoundedContext',
|
|
154
|
+
archetype: 'archetype',
|
|
155
|
+
businessModel: 'businessModel',
|
|
156
|
+
classification: 'classification',
|
|
157
|
+
decisions: 'decisions',
|
|
158
|
+
description: 'description',
|
|
159
|
+
domain: 'domain',
|
|
160
|
+
evolution: 'evolution',
|
|
161
|
+
metadata: 'metadata',
|
|
162
|
+
name: 'name',
|
|
163
|
+
relationships: 'relationships',
|
|
164
|
+
team: 'team',
|
|
165
|
+
terminology: 'terminology'
|
|
166
|
+
} as const;
|
|
167
|
+
|
|
168
|
+
export function isBoundedContext(item: unknown): item is BoundedContext {
|
|
169
|
+
return reflection.isInstance(item, BoundedContext.$type);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* Context reference - can be 'this' (self-reference) or a qualified name.
|
|
174
|
+
*/
|
|
175
|
+
export interface BoundedContextRef extends langium.AstNode {
|
|
176
|
+
readonly $type: 'BoundedContextRef' | 'ThisRef';
|
|
177
|
+
link?: langium.Reference<BoundedContext>;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
export const BoundedContextRef = {
|
|
181
|
+
$type: 'BoundedContextRef',
|
|
182
|
+
link: 'link'
|
|
183
|
+
} as const;
|
|
184
|
+
|
|
185
|
+
export function isBoundedContextRef(item: unknown): item is BoundedContextRef {
|
|
186
|
+
return reflection.isInstance(item, BoundedContextRef.$type);
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
export interface BusinessRule extends langium.AstNode {
|
|
190
|
+
readonly $container: BoundedContext;
|
|
191
|
+
readonly $type: 'Assignment' | 'BusinessRule';
|
|
192
|
+
classification: langium.Reference<Classification>;
|
|
193
|
+
name: string;
|
|
194
|
+
value: string;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
export const BusinessRule = {
|
|
198
|
+
$type: 'BusinessRule',
|
|
199
|
+
classification: 'classification',
|
|
200
|
+
name: 'name',
|
|
201
|
+
value: 'value'
|
|
202
|
+
} as const;
|
|
203
|
+
|
|
204
|
+
export function isBusinessRule(item: unknown): item is BusinessRule {
|
|
205
|
+
return reflection.isInstance(item, BusinessRule.$type);
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
/**
|
|
209
|
+
* Classification - Reusable label for categorizing elements.
|
|
210
|
+
* Examples: Core, Supporting, Generic, Strategic, Commodity, Architectural, Business, Technical.
|
|
211
|
+
*/
|
|
212
|
+
export interface Classification extends langium.AstNode {
|
|
213
|
+
readonly $container: Model | NamespaceDeclaration;
|
|
214
|
+
readonly $type: 'Classification';
|
|
215
|
+
name: string;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
export const Classification = {
|
|
219
|
+
$type: 'Classification',
|
|
220
|
+
name: 'name'
|
|
221
|
+
} as const;
|
|
222
|
+
|
|
223
|
+
export function isClassification(item: unknown): item is Classification {
|
|
224
|
+
return reflection.isInstance(item, Classification.$type);
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
export type Container = Model | NamespaceDeclaration;
|
|
228
|
+
|
|
229
|
+
export const Container = {
|
|
230
|
+
$type: 'Container'
|
|
231
|
+
} as const;
|
|
232
|
+
|
|
233
|
+
export function isContainer(item: unknown): item is Container {
|
|
234
|
+
return reflection.isInstance(item, Container.$type);
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* Context Map - Visualizes relationships between Bounded Contexts.
|
|
239
|
+
* Shows integration patterns and team interactions.
|
|
240
|
+
*/
|
|
241
|
+
export interface ContextMap extends langium.AstNode {
|
|
242
|
+
readonly $container: Model | NamespaceDeclaration;
|
|
243
|
+
readonly $type: 'ContextMap';
|
|
244
|
+
boundedContexts: Array<langium.MultiReference<BoundedContext>>;
|
|
245
|
+
name: string;
|
|
246
|
+
relationships: Array<Relationship>;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
export const ContextMap = {
|
|
250
|
+
$type: 'ContextMap',
|
|
251
|
+
boundedContexts: 'boundedContexts',
|
|
252
|
+
name: 'name',
|
|
253
|
+
relationships: 'relationships'
|
|
254
|
+
} as const;
|
|
255
|
+
|
|
256
|
+
export function isContextMap(item: unknown): item is ContextMap {
|
|
257
|
+
return reflection.isInstance(item, ContextMap.$type);
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
export interface Decision extends langium.AstNode {
|
|
261
|
+
readonly $container: BoundedContext;
|
|
262
|
+
readonly $type: 'Assignment' | 'Decision';
|
|
263
|
+
classification: langium.Reference<Classification>;
|
|
264
|
+
name: string;
|
|
265
|
+
value: string;
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
export const Decision = {
|
|
269
|
+
$type: 'Decision',
|
|
270
|
+
classification: 'classification',
|
|
271
|
+
name: 'name',
|
|
272
|
+
value: 'value'
|
|
273
|
+
} as const;
|
|
274
|
+
|
|
275
|
+
export function isDecision(item: unknown): item is Decision {
|
|
276
|
+
return reflection.isInstance(item, Decision.$type);
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
/**
|
|
280
|
+
* Domain - A sphere of knowledge or activity in DDD.
|
|
281
|
+
* Can be nested via `in` to show subdomain hierarchy.
|
|
282
|
+
* The `type` property indicates strategic importance (Core, Supporting, Generic) per Bounded Context Canvas.
|
|
283
|
+
* Body is optional - allows header-only Domain definitions.
|
|
284
|
+
*/
|
|
285
|
+
export interface Domain extends langium.AstNode {
|
|
286
|
+
readonly $container: Model | NamespaceDeclaration;
|
|
287
|
+
readonly $type: 'Assignment' | 'Domain';
|
|
288
|
+
description?: string;
|
|
289
|
+
name: string;
|
|
290
|
+
parent?: langium.Reference<Domain>;
|
|
291
|
+
type?: langium.Reference<Classification>;
|
|
292
|
+
vision?: string;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
export const Domain = {
|
|
296
|
+
$type: 'Domain',
|
|
297
|
+
description: 'description',
|
|
298
|
+
name: 'name',
|
|
299
|
+
parent: 'parent',
|
|
300
|
+
type: 'type',
|
|
301
|
+
vision: 'vision'
|
|
302
|
+
} as const;
|
|
303
|
+
|
|
304
|
+
export function isDomain(item: unknown): item is Domain {
|
|
305
|
+
return reflection.isInstance(item, Domain.$type);
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
/**
|
|
309
|
+
* Domain Map - Visualizes relationships between Domains.
|
|
310
|
+
* Shows high-level domain organization and subdomain structure.
|
|
311
|
+
*/
|
|
312
|
+
export interface DomainMap extends langium.AstNode {
|
|
313
|
+
readonly $container: Model | NamespaceDeclaration;
|
|
314
|
+
readonly $type: 'DomainMap';
|
|
315
|
+
domains: Array<langium.MultiReference<Domain>>;
|
|
316
|
+
name: string;
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
export const DomainMap = {
|
|
320
|
+
$type: 'DomainMap',
|
|
321
|
+
domains: 'domains',
|
|
322
|
+
name: 'name'
|
|
323
|
+
} as const;
|
|
324
|
+
|
|
325
|
+
export function isDomainMap(item: unknown): item is DomainMap {
|
|
326
|
+
return reflection.isInstance(item, DomainMap.$type);
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
/**
|
|
330
|
+
* Domain Terminology - Ubiquitous language terms with definitions.
|
|
331
|
+
* Supports synonyms and examples for richer glossaries.
|
|
332
|
+
*/
|
|
333
|
+
export interface DomainTerm extends langium.AstNode {
|
|
334
|
+
readonly $container: BoundedContext;
|
|
335
|
+
readonly $type: 'Assignment' | 'DomainTerm';
|
|
336
|
+
examples: Array<string>;
|
|
337
|
+
meaning?: string;
|
|
338
|
+
name: string;
|
|
339
|
+
synonyms: Array<string>;
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
export const DomainTerm = {
|
|
343
|
+
$type: 'DomainTerm',
|
|
344
|
+
examples: 'examples',
|
|
345
|
+
meaning: 'meaning',
|
|
346
|
+
name: 'name',
|
|
347
|
+
synonyms: 'synonyms'
|
|
348
|
+
} as const;
|
|
349
|
+
|
|
350
|
+
export function isDomainTerm(item: unknown): item is DomainTerm {
|
|
351
|
+
return reflection.isInstance(item, DomainTerm.$type);
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
/**
|
|
355
|
+
* Import Statement - Git-native import system inspired by Go modules and Deno.
|
|
356
|
+
*
|
|
357
|
+
* Supported formats:
|
|
358
|
+
* - Local files: import "./shared/types.dlang"
|
|
359
|
+
* - Workspace-relative: import "~/contexts/sales.dlang"
|
|
360
|
+
* - GitHub packages: import "owner/repo@v1.0.0"
|
|
361
|
+
* - GitLab/Git URLs: import "https://gitlab.com/owner/repo@v1.0.0"
|
|
362
|
+
* - With aliases: import "ddd-patterns/core@v2.1.0" as DDD
|
|
363
|
+
* - Named imports: import { OrderContext } from "./contexts.dlang"
|
|
364
|
+
*/
|
|
365
|
+
export interface ImportStatement extends langium.AstNode {
|
|
366
|
+
readonly $container: Model;
|
|
367
|
+
readonly $type: 'ImportStatement';
|
|
368
|
+
alias?: string;
|
|
369
|
+
integrity?: string;
|
|
370
|
+
symbols: Array<string>;
|
|
371
|
+
uri: string;
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
export const ImportStatement = {
|
|
375
|
+
$type: 'ImportStatement',
|
|
376
|
+
alias: 'alias',
|
|
377
|
+
integrity: 'integrity',
|
|
378
|
+
symbols: 'symbols',
|
|
379
|
+
uri: 'uri'
|
|
380
|
+
} as const;
|
|
381
|
+
|
|
382
|
+
export function isImportStatement(item: unknown): item is ImportStatement {
|
|
383
|
+
return reflection.isInstance(item, ImportStatement.$type);
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
/**
|
|
387
|
+
* DDD Integration Patterns (used in relationships).
|
|
388
|
+
*/
|
|
389
|
+
export type IntegrationPattern = 'ACL' | 'AntiCorruptionLayer' | 'BBoM' | 'BigBallOfMud' | 'CF' | 'Conformist' | 'OHS' | 'OpenHostService' | 'P' | 'PL' | 'Partnership' | 'PublishedLanguage' | 'SK' | 'SharedKernel';
|
|
390
|
+
|
|
391
|
+
export function isIntegrationPattern(item: unknown): item is IntegrationPattern {
|
|
392
|
+
return item === 'PL' || item === 'PublishedLanguage' || item === 'OHS' || item === 'OpenHostService' || item === 'CF' || item === 'Conformist' || item === 'ACL' || item === 'AntiCorruptionLayer' || item === 'P' || item === 'Partnership' || item === 'SK' || item === 'SharedKernel' || item === 'BBoM' || item === 'BigBallOfMud';
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
/**
|
|
396
|
+
* Metadata - Defines a key that can be used in metadata blocks.
|
|
397
|
+
* Examples: Language, Framework, Database, Repository.
|
|
398
|
+
* Can be defined locally or imported from stdlib.
|
|
399
|
+
*/
|
|
400
|
+
export interface Metadata extends langium.AstNode {
|
|
401
|
+
readonly $container: Model | NamespaceDeclaration;
|
|
402
|
+
readonly $type: 'Metadata';
|
|
403
|
+
name: string;
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
export const Metadata = {
|
|
407
|
+
$type: 'Metadata',
|
|
408
|
+
name: 'name'
|
|
409
|
+
} as const;
|
|
410
|
+
|
|
411
|
+
export function isMetadata(item: unknown): item is Metadata {
|
|
412
|
+
return reflection.isInstance(item, Metadata.$type);
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
export interface MetadataEntry extends langium.AstNode {
|
|
416
|
+
readonly $container: BoundedContext;
|
|
417
|
+
readonly $type: 'Assignment' | 'MetadataEntry';
|
|
418
|
+
key: langium.Reference<Metadata>;
|
|
419
|
+
value: string;
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
export const MetadataEntry = {
|
|
423
|
+
$type: 'MetadataEntry',
|
|
424
|
+
key: 'key',
|
|
425
|
+
value: 'value'
|
|
426
|
+
} as const;
|
|
427
|
+
|
|
428
|
+
export function isMetadataEntry(item: unknown): item is MetadataEntry {
|
|
429
|
+
return reflection.isInstance(item, MetadataEntry.$type);
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
/**
|
|
433
|
+
* Root AST node - aggregates all top-level DDD elements.
|
|
434
|
+
* Produces the entry point for parsing .dlang files.
|
|
435
|
+
*/
|
|
436
|
+
export interface Model extends langium.AstNode {
|
|
437
|
+
readonly $type: 'Model';
|
|
438
|
+
children: Array<StructureElement>;
|
|
439
|
+
imports: Array<ImportStatement>;
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
export const Model = {
|
|
443
|
+
$type: 'Model',
|
|
444
|
+
children: 'children',
|
|
445
|
+
imports: 'imports'
|
|
446
|
+
} as const;
|
|
447
|
+
|
|
448
|
+
export function isModel(item: unknown): item is Model {
|
|
449
|
+
return reflection.isInstance(item, Model.$type);
|
|
450
|
+
}
|
|
451
|
+
|
|
452
|
+
/**
|
|
453
|
+
* Namespace Declaration - Hierarchical namespacing for organizing models.
|
|
454
|
+
* Combines package modularity with group-style nesting.
|
|
455
|
+
*/
|
|
456
|
+
export interface NamespaceDeclaration extends langium.AstNode {
|
|
457
|
+
readonly $container: Model | NamespaceDeclaration;
|
|
458
|
+
readonly $type: 'NamespaceDeclaration';
|
|
459
|
+
children: Array<StructureElement>;
|
|
460
|
+
name: QualifiedName;
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
export const NamespaceDeclaration = {
|
|
464
|
+
$type: 'NamespaceDeclaration',
|
|
465
|
+
children: 'children',
|
|
466
|
+
name: 'name'
|
|
467
|
+
} as const;
|
|
468
|
+
|
|
469
|
+
export function isNamespaceDeclaration(item: unknown): item is NamespaceDeclaration {
|
|
470
|
+
return reflection.isInstance(item, NamespaceDeclaration.$type);
|
|
471
|
+
}
|
|
472
|
+
|
|
473
|
+
/**
|
|
474
|
+
* Union of mapping constructs for visualizing architecture.
|
|
475
|
+
*/
|
|
476
|
+
export type ObjectMap = ContextMap | DomainMap;
|
|
477
|
+
|
|
478
|
+
export const ObjectMap = {
|
|
479
|
+
$type: 'ObjectMap'
|
|
480
|
+
} as const;
|
|
481
|
+
|
|
482
|
+
export function isObjectMap(item: unknown): item is ObjectMap {
|
|
483
|
+
return reflection.isInstance(item, ObjectMap.$type);
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
export interface Policy extends langium.AstNode {
|
|
487
|
+
readonly $container: BoundedContext;
|
|
488
|
+
readonly $type: 'Assignment' | 'Policy';
|
|
489
|
+
classification: langium.Reference<Classification>;
|
|
490
|
+
name: string;
|
|
491
|
+
value: string;
|
|
492
|
+
}
|
|
493
|
+
|
|
494
|
+
export const Policy = {
|
|
495
|
+
$type: 'Policy',
|
|
496
|
+
classification: 'classification',
|
|
497
|
+
name: 'name',
|
|
498
|
+
value: 'value'
|
|
499
|
+
} as const;
|
|
500
|
+
|
|
501
|
+
export function isPolicy(item: unknown): item is Policy {
|
|
502
|
+
return reflection.isInstance(item, Policy.$type);
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
/**
|
|
506
|
+
* Qualified Name - Hierarchical namespacing with dots.
|
|
507
|
+
*/
|
|
508
|
+
export type QualifiedName = string;
|
|
509
|
+
|
|
510
|
+
export function isQualifiedName(item: unknown): item is QualifiedName {
|
|
511
|
+
return typeof item === 'string';
|
|
512
|
+
}
|
|
513
|
+
|
|
514
|
+
/**
|
|
515
|
+
* Relationship - Connection between two Bounded Contexts.
|
|
516
|
+
* Supports DDD integration patterns (ACL, OHS, PL, etc.) and relationship types.
|
|
517
|
+
*/
|
|
518
|
+
export interface Relationship extends langium.AstNode {
|
|
519
|
+
readonly $container: BoundedContext | ContextMap;
|
|
520
|
+
readonly $type: 'Assignment' | 'Relationship';
|
|
521
|
+
arrow: RelationshipArrow;
|
|
522
|
+
left: BoundedContextRef;
|
|
523
|
+
leftPatterns: Array<IntegrationPattern>;
|
|
524
|
+
right: BoundedContextRef;
|
|
525
|
+
rightPatterns: Array<IntegrationPattern>;
|
|
526
|
+
type?: RelationshipType;
|
|
527
|
+
}
|
|
528
|
+
|
|
529
|
+
export const Relationship = {
|
|
530
|
+
$type: 'Relationship',
|
|
531
|
+
arrow: 'arrow',
|
|
532
|
+
left: 'left',
|
|
533
|
+
leftPatterns: 'leftPatterns',
|
|
534
|
+
right: 'right',
|
|
535
|
+
rightPatterns: 'rightPatterns',
|
|
536
|
+
type: 'type'
|
|
537
|
+
} as const;
|
|
538
|
+
|
|
539
|
+
export function isRelationship(item: unknown): item is Relationship {
|
|
540
|
+
return reflection.isInstance(item, Relationship.$type);
|
|
541
|
+
}
|
|
542
|
+
|
|
543
|
+
/**
|
|
544
|
+
* Relationship arrows - symbolic and named types.
|
|
545
|
+
*
|
|
546
|
+
* Arrow semantics:
|
|
547
|
+
* -> Upstream to downstream (left provides, right consumes)
|
|
548
|
+
* <- Downstream to upstream (right provides, left consumes)
|
|
549
|
+
* <-> Bidirectional/Partnership (mutual dependency)
|
|
550
|
+
* >< Separate Ways (no integration, teams go their own way)
|
|
551
|
+
*/
|
|
552
|
+
export type RelationshipArrow = '->' | '<-' | '<->' | '><';
|
|
553
|
+
|
|
554
|
+
export function isRelationshipArrow(item: unknown): item is RelationshipArrow {
|
|
555
|
+
return item === '<->' || item === '->' || item === '<-' || item === '><';
|
|
556
|
+
}
|
|
557
|
+
|
|
558
|
+
/**
|
|
559
|
+
* DDD Relationship Types.
|
|
560
|
+
*/
|
|
561
|
+
export type RelationshipType = 'CustomerSupplier' | 'Partnership' | 'SeparateWays' | 'SharedKernel' | 'UpstreamDownstream';
|
|
562
|
+
|
|
563
|
+
export function isRelationshipType(item: unknown): item is RelationshipType {
|
|
564
|
+
return item === 'Partnership' || item === 'SharedKernel' || item === 'CustomerSupplier' || item === 'UpstreamDownstream' || item === 'SeparateWays';
|
|
565
|
+
}
|
|
566
|
+
|
|
567
|
+
/**
|
|
568
|
+
* Top-level elements that can appear in the model.
|
|
569
|
+
* Unifies all major DDD constructs for flexible ordering.
|
|
570
|
+
*/
|
|
571
|
+
export type StructureElement = NamespaceDeclaration | ObjectMap | Type;
|
|
572
|
+
|
|
573
|
+
export const StructureElement = {
|
|
574
|
+
$type: 'StructureElement'
|
|
575
|
+
} as const;
|
|
576
|
+
|
|
577
|
+
export function isStructureElement(item: unknown): item is StructureElement {
|
|
578
|
+
return reflection.isInstance(item, StructureElement.$type);
|
|
579
|
+
}
|
|
580
|
+
|
|
581
|
+
/**
|
|
582
|
+
* Team - People responsible for a Bounded Context or Domain.
|
|
583
|
+
* Represents organizational boundaries in DDD.
|
|
584
|
+
*/
|
|
585
|
+
export interface Team extends langium.AstNode {
|
|
586
|
+
readonly $container: Model | NamespaceDeclaration;
|
|
587
|
+
readonly $type: 'Team';
|
|
588
|
+
name: string;
|
|
589
|
+
}
|
|
590
|
+
|
|
591
|
+
export const Team = {
|
|
592
|
+
$type: 'Team',
|
|
593
|
+
name: 'name'
|
|
594
|
+
} as const;
|
|
595
|
+
|
|
596
|
+
export function isTeam(item: unknown): item is Team {
|
|
597
|
+
return reflection.isInstance(item, Team.$type);
|
|
598
|
+
}
|
|
599
|
+
|
|
600
|
+
/**
|
|
601
|
+
* Context reference - can be 'this' (self-reference) or a qualified name.
|
|
602
|
+
*/
|
|
603
|
+
export interface ThisRef extends BoundedContextRef {
|
|
604
|
+
readonly $type: 'ThisRef';
|
|
605
|
+
}
|
|
606
|
+
|
|
607
|
+
export const ThisRef = {
|
|
608
|
+
$type: 'ThisRef',
|
|
609
|
+
link: 'link'
|
|
610
|
+
} as const;
|
|
611
|
+
|
|
612
|
+
export function isThisRef(item: unknown): item is ThisRef {
|
|
613
|
+
return reflection.isInstance(item, ThisRef.$type);
|
|
614
|
+
}
|
|
615
|
+
|
|
616
|
+
/**
|
|
617
|
+
* Union of all main DDD type constructs.
|
|
618
|
+
*/
|
|
619
|
+
export type Type = BoundedContext | Classification | Domain | Metadata | Team;
|
|
620
|
+
|
|
621
|
+
export const Type = {
|
|
622
|
+
$type: 'Type'
|
|
623
|
+
} as const;
|
|
624
|
+
|
|
625
|
+
export function isType(item: unknown): item is Type {
|
|
626
|
+
return reflection.isInstance(item, Type.$type);
|
|
627
|
+
}
|
|
628
|
+
|
|
629
|
+
export type DomainLangAstType = {
|
|
630
|
+
AbstractDecision: AbstractDecision
|
|
631
|
+
BoundedContext: BoundedContext
|
|
632
|
+
BoundedContextRef: BoundedContextRef
|
|
633
|
+
BusinessRule: BusinessRule
|
|
634
|
+
Classification: Classification
|
|
635
|
+
Container: Container
|
|
636
|
+
ContextMap: ContextMap
|
|
637
|
+
Decision: Decision
|
|
638
|
+
Domain: Domain
|
|
639
|
+
DomainMap: DomainMap
|
|
640
|
+
DomainTerm: DomainTerm
|
|
641
|
+
ImportStatement: ImportStatement
|
|
642
|
+
Metadata: Metadata
|
|
643
|
+
MetadataEntry: MetadataEntry
|
|
644
|
+
Model: Model
|
|
645
|
+
NamespaceDeclaration: NamespaceDeclaration
|
|
646
|
+
ObjectMap: ObjectMap
|
|
647
|
+
Policy: Policy
|
|
648
|
+
Relationship: Relationship
|
|
649
|
+
StructureElement: StructureElement
|
|
650
|
+
Team: Team
|
|
651
|
+
ThisRef: ThisRef
|
|
652
|
+
Type: Type
|
|
653
|
+
}
|
|
654
|
+
|
|
655
|
+
export class DomainLangAstReflection extends langium.AbstractAstReflection {
|
|
656
|
+
override readonly types = {
|
|
657
|
+
AbstractDecision: {
|
|
658
|
+
name: AbstractDecision.$type,
|
|
659
|
+
properties: {
|
|
660
|
+
},
|
|
661
|
+
superTypes: []
|
|
662
|
+
},
|
|
663
|
+
BoundedContext: {
|
|
664
|
+
name: BoundedContext.$type,
|
|
665
|
+
properties: {
|
|
666
|
+
archetype: {
|
|
667
|
+
name: BoundedContext.archetype,
|
|
668
|
+
referenceType: Classification.$type
|
|
669
|
+
},
|
|
670
|
+
businessModel: {
|
|
671
|
+
name: BoundedContext.businessModel,
|
|
672
|
+
referenceType: Classification.$type
|
|
673
|
+
},
|
|
674
|
+
classification: {
|
|
675
|
+
name: BoundedContext.classification,
|
|
676
|
+
defaultValue: [],
|
|
677
|
+
referenceType: Classification.$type
|
|
678
|
+
},
|
|
679
|
+
decisions: {
|
|
680
|
+
name: BoundedContext.decisions,
|
|
681
|
+
defaultValue: []
|
|
682
|
+
},
|
|
683
|
+
description: {
|
|
684
|
+
name: BoundedContext.description
|
|
685
|
+
},
|
|
686
|
+
domain: {
|
|
687
|
+
name: BoundedContext.domain,
|
|
688
|
+
referenceType: Domain.$type
|
|
689
|
+
},
|
|
690
|
+
evolution: {
|
|
691
|
+
name: BoundedContext.evolution,
|
|
692
|
+
referenceType: Classification.$type
|
|
693
|
+
},
|
|
694
|
+
metadata: {
|
|
695
|
+
name: BoundedContext.metadata,
|
|
696
|
+
defaultValue: []
|
|
697
|
+
},
|
|
698
|
+
name: {
|
|
699
|
+
name: BoundedContext.name
|
|
700
|
+
},
|
|
701
|
+
relationships: {
|
|
702
|
+
name: BoundedContext.relationships,
|
|
703
|
+
defaultValue: []
|
|
704
|
+
},
|
|
705
|
+
team: {
|
|
706
|
+
name: BoundedContext.team,
|
|
707
|
+
defaultValue: [],
|
|
708
|
+
referenceType: Team.$type
|
|
709
|
+
},
|
|
710
|
+
terminology: {
|
|
711
|
+
name: BoundedContext.terminology,
|
|
712
|
+
defaultValue: []
|
|
713
|
+
}
|
|
714
|
+
},
|
|
715
|
+
superTypes: [Type.$type]
|
|
716
|
+
},
|
|
717
|
+
BoundedContextRef: {
|
|
718
|
+
name: BoundedContextRef.$type,
|
|
719
|
+
properties: {
|
|
720
|
+
link: {
|
|
721
|
+
name: BoundedContextRef.link,
|
|
722
|
+
referenceType: BoundedContext.$type
|
|
723
|
+
}
|
|
724
|
+
},
|
|
725
|
+
superTypes: []
|
|
726
|
+
},
|
|
727
|
+
BusinessRule: {
|
|
728
|
+
name: BusinessRule.$type,
|
|
729
|
+
properties: {
|
|
730
|
+
classification: {
|
|
731
|
+
name: BusinessRule.classification,
|
|
732
|
+
referenceType: Classification.$type
|
|
733
|
+
},
|
|
734
|
+
name: {
|
|
735
|
+
name: BusinessRule.name
|
|
736
|
+
},
|
|
737
|
+
value: {
|
|
738
|
+
name: BusinessRule.value
|
|
739
|
+
}
|
|
740
|
+
},
|
|
741
|
+
superTypes: [AbstractDecision.$type]
|
|
742
|
+
},
|
|
743
|
+
Classification: {
|
|
744
|
+
name: Classification.$type,
|
|
745
|
+
properties: {
|
|
746
|
+
name: {
|
|
747
|
+
name: Classification.name
|
|
748
|
+
}
|
|
749
|
+
},
|
|
750
|
+
superTypes: [Type.$type]
|
|
751
|
+
},
|
|
752
|
+
Container: {
|
|
753
|
+
name: Container.$type,
|
|
754
|
+
properties: {
|
|
755
|
+
},
|
|
756
|
+
superTypes: []
|
|
757
|
+
},
|
|
758
|
+
ContextMap: {
|
|
759
|
+
name: ContextMap.$type,
|
|
760
|
+
properties: {
|
|
761
|
+
boundedContexts: {
|
|
762
|
+
name: ContextMap.boundedContexts,
|
|
763
|
+
defaultValue: [],
|
|
764
|
+
referenceType: BoundedContext.$type
|
|
765
|
+
},
|
|
766
|
+
name: {
|
|
767
|
+
name: ContextMap.name
|
|
768
|
+
},
|
|
769
|
+
relationships: {
|
|
770
|
+
name: ContextMap.relationships,
|
|
771
|
+
defaultValue: []
|
|
772
|
+
}
|
|
773
|
+
},
|
|
774
|
+
superTypes: [ObjectMap.$type]
|
|
775
|
+
},
|
|
776
|
+
Decision: {
|
|
777
|
+
name: Decision.$type,
|
|
778
|
+
properties: {
|
|
779
|
+
classification: {
|
|
780
|
+
name: Decision.classification,
|
|
781
|
+
referenceType: Classification.$type
|
|
782
|
+
},
|
|
783
|
+
name: {
|
|
784
|
+
name: Decision.name
|
|
785
|
+
},
|
|
786
|
+
value: {
|
|
787
|
+
name: Decision.value
|
|
788
|
+
}
|
|
789
|
+
},
|
|
790
|
+
superTypes: [AbstractDecision.$type]
|
|
791
|
+
},
|
|
792
|
+
Domain: {
|
|
793
|
+
name: Domain.$type,
|
|
794
|
+
properties: {
|
|
795
|
+
description: {
|
|
796
|
+
name: Domain.description
|
|
797
|
+
},
|
|
798
|
+
name: {
|
|
799
|
+
name: Domain.name
|
|
800
|
+
},
|
|
801
|
+
parent: {
|
|
802
|
+
name: Domain.parent,
|
|
803
|
+
referenceType: Domain.$type
|
|
804
|
+
},
|
|
805
|
+
type: {
|
|
806
|
+
name: Domain.type,
|
|
807
|
+
referenceType: Classification.$type
|
|
808
|
+
},
|
|
809
|
+
vision: {
|
|
810
|
+
name: Domain.vision
|
|
811
|
+
}
|
|
812
|
+
},
|
|
813
|
+
superTypes: [Type.$type]
|
|
814
|
+
},
|
|
815
|
+
DomainMap: {
|
|
816
|
+
name: DomainMap.$type,
|
|
817
|
+
properties: {
|
|
818
|
+
domains: {
|
|
819
|
+
name: DomainMap.domains,
|
|
820
|
+
defaultValue: [],
|
|
821
|
+
referenceType: Domain.$type
|
|
822
|
+
},
|
|
823
|
+
name: {
|
|
824
|
+
name: DomainMap.name
|
|
825
|
+
}
|
|
826
|
+
},
|
|
827
|
+
superTypes: [ObjectMap.$type]
|
|
828
|
+
},
|
|
829
|
+
DomainTerm: {
|
|
830
|
+
name: DomainTerm.$type,
|
|
831
|
+
properties: {
|
|
832
|
+
examples: {
|
|
833
|
+
name: DomainTerm.examples,
|
|
834
|
+
defaultValue: []
|
|
835
|
+
},
|
|
836
|
+
meaning: {
|
|
837
|
+
name: DomainTerm.meaning
|
|
838
|
+
},
|
|
839
|
+
name: {
|
|
840
|
+
name: DomainTerm.name
|
|
841
|
+
},
|
|
842
|
+
synonyms: {
|
|
843
|
+
name: DomainTerm.synonyms,
|
|
844
|
+
defaultValue: []
|
|
845
|
+
}
|
|
846
|
+
},
|
|
847
|
+
superTypes: []
|
|
848
|
+
},
|
|
849
|
+
ImportStatement: {
|
|
850
|
+
name: ImportStatement.$type,
|
|
851
|
+
properties: {
|
|
852
|
+
alias: {
|
|
853
|
+
name: ImportStatement.alias
|
|
854
|
+
},
|
|
855
|
+
integrity: {
|
|
856
|
+
name: ImportStatement.integrity
|
|
857
|
+
},
|
|
858
|
+
symbols: {
|
|
859
|
+
name: ImportStatement.symbols,
|
|
860
|
+
defaultValue: []
|
|
861
|
+
},
|
|
862
|
+
uri: {
|
|
863
|
+
name: ImportStatement.uri
|
|
864
|
+
}
|
|
865
|
+
},
|
|
866
|
+
superTypes: []
|
|
867
|
+
},
|
|
868
|
+
Metadata: {
|
|
869
|
+
name: Metadata.$type,
|
|
870
|
+
properties: {
|
|
871
|
+
name: {
|
|
872
|
+
name: Metadata.name
|
|
873
|
+
}
|
|
874
|
+
},
|
|
875
|
+
superTypes: [Type.$type]
|
|
876
|
+
},
|
|
877
|
+
MetadataEntry: {
|
|
878
|
+
name: MetadataEntry.$type,
|
|
879
|
+
properties: {
|
|
880
|
+
key: {
|
|
881
|
+
name: MetadataEntry.key,
|
|
882
|
+
referenceType: Metadata.$type
|
|
883
|
+
},
|
|
884
|
+
value: {
|
|
885
|
+
name: MetadataEntry.value
|
|
886
|
+
}
|
|
887
|
+
},
|
|
888
|
+
superTypes: []
|
|
889
|
+
},
|
|
890
|
+
Model: {
|
|
891
|
+
name: Model.$type,
|
|
892
|
+
properties: {
|
|
893
|
+
children: {
|
|
894
|
+
name: Model.children,
|
|
895
|
+
defaultValue: []
|
|
896
|
+
},
|
|
897
|
+
imports: {
|
|
898
|
+
name: Model.imports,
|
|
899
|
+
defaultValue: []
|
|
900
|
+
}
|
|
901
|
+
},
|
|
902
|
+
superTypes: [Container.$type]
|
|
903
|
+
},
|
|
904
|
+
NamespaceDeclaration: {
|
|
905
|
+
name: NamespaceDeclaration.$type,
|
|
906
|
+
properties: {
|
|
907
|
+
children: {
|
|
908
|
+
name: NamespaceDeclaration.children,
|
|
909
|
+
defaultValue: []
|
|
910
|
+
},
|
|
911
|
+
name: {
|
|
912
|
+
name: NamespaceDeclaration.name
|
|
913
|
+
}
|
|
914
|
+
},
|
|
915
|
+
superTypes: [Container.$type, StructureElement.$type]
|
|
916
|
+
},
|
|
917
|
+
ObjectMap: {
|
|
918
|
+
name: ObjectMap.$type,
|
|
919
|
+
properties: {
|
|
920
|
+
},
|
|
921
|
+
superTypes: [StructureElement.$type]
|
|
922
|
+
},
|
|
923
|
+
Policy: {
|
|
924
|
+
name: Policy.$type,
|
|
925
|
+
properties: {
|
|
926
|
+
classification: {
|
|
927
|
+
name: Policy.classification,
|
|
928
|
+
referenceType: Classification.$type
|
|
929
|
+
},
|
|
930
|
+
name: {
|
|
931
|
+
name: Policy.name
|
|
932
|
+
},
|
|
933
|
+
value: {
|
|
934
|
+
name: Policy.value
|
|
935
|
+
}
|
|
936
|
+
},
|
|
937
|
+
superTypes: [AbstractDecision.$type]
|
|
938
|
+
},
|
|
939
|
+
Relationship: {
|
|
940
|
+
name: Relationship.$type,
|
|
941
|
+
properties: {
|
|
942
|
+
arrow: {
|
|
943
|
+
name: Relationship.arrow
|
|
944
|
+
},
|
|
945
|
+
left: {
|
|
946
|
+
name: Relationship.left
|
|
947
|
+
},
|
|
948
|
+
leftPatterns: {
|
|
949
|
+
name: Relationship.leftPatterns,
|
|
950
|
+
defaultValue: []
|
|
951
|
+
},
|
|
952
|
+
right: {
|
|
953
|
+
name: Relationship.right
|
|
954
|
+
},
|
|
955
|
+
rightPatterns: {
|
|
956
|
+
name: Relationship.rightPatterns,
|
|
957
|
+
defaultValue: []
|
|
958
|
+
},
|
|
959
|
+
type: {
|
|
960
|
+
name: Relationship.type
|
|
961
|
+
}
|
|
962
|
+
},
|
|
963
|
+
superTypes: []
|
|
964
|
+
},
|
|
965
|
+
StructureElement: {
|
|
966
|
+
name: StructureElement.$type,
|
|
967
|
+
properties: {
|
|
968
|
+
},
|
|
969
|
+
superTypes: []
|
|
970
|
+
},
|
|
971
|
+
Team: {
|
|
972
|
+
name: Team.$type,
|
|
973
|
+
properties: {
|
|
974
|
+
name: {
|
|
975
|
+
name: Team.name
|
|
976
|
+
}
|
|
977
|
+
},
|
|
978
|
+
superTypes: [Type.$type]
|
|
979
|
+
},
|
|
980
|
+
ThisRef: {
|
|
981
|
+
name: ThisRef.$type,
|
|
982
|
+
properties: {
|
|
983
|
+
link: {
|
|
984
|
+
name: ThisRef.link,
|
|
985
|
+
referenceType: BoundedContext.$type
|
|
986
|
+
}
|
|
987
|
+
},
|
|
988
|
+
superTypes: [BoundedContextRef.$type]
|
|
989
|
+
},
|
|
990
|
+
Type: {
|
|
991
|
+
name: Type.$type,
|
|
992
|
+
properties: {
|
|
993
|
+
},
|
|
994
|
+
superTypes: [StructureElement.$type]
|
|
995
|
+
}
|
|
996
|
+
} as const satisfies langium.AstMetaData
|
|
997
|
+
}
|
|
998
|
+
|
|
999
|
+
export const reflection = new DomainLangAstReflection();
|