@fornari-lanza/domain-design-language-language 0.0.1

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 (35) hide show
  1. package/README.md +24 -0
  2. package/out/domain-design-language-formatter.d.ts +5 -0
  3. package/out/domain-design-language-formatter.js +197 -0
  4. package/out/domain-design-language-formatter.js.map +1 -0
  5. package/out/domain-design-language-module.d.ts +41 -0
  6. package/out/domain-design-language-module.js +50 -0
  7. package/out/domain-design-language-module.js.map +1 -0
  8. package/out/domain-design-language-scope.d.ts +8 -0
  9. package/out/domain-design-language-scope.js +79 -0
  10. package/out/domain-design-language-scope.js.map +1 -0
  11. package/out/domain-design-language-validator.d.ts +39 -0
  12. package/out/domain-design-language-validator.js +468 -0
  13. package/out/domain-design-language-validator.js.map +1 -0
  14. package/out/generated/ast.d.ts +1393 -0
  15. package/out/generated/ast.js +1147 -0
  16. package/out/generated/ast.js.map +1 -0
  17. package/out/generated/grammar.d.ts +6 -0
  18. package/out/generated/grammar.js +3430 -0
  19. package/out/generated/grammar.js.map +1 -0
  20. package/out/generated/module.d.ts +13 -0
  21. package/out/generated/module.js +21 -0
  22. package/out/generated/module.js.map +1 -0
  23. package/out/index.d.ts +5 -0
  24. package/out/index.js +6 -0
  25. package/out/index.js.map +1 -0
  26. package/package.json +49 -0
  27. package/src/domain-design-language-formatter.ts +186 -0
  28. package/src/domain-design-language-module.ts +96 -0
  29. package/src/domain-design-language-scope.ts +132 -0
  30. package/src/domain-design-language-validator.ts +699 -0
  31. package/src/domain-design-language.langium +299 -0
  32. package/src/generated/ast.ts +1737 -0
  33. package/src/generated/grammar.ts +3432 -0
  34. package/src/generated/module.ts +25 -0
  35. package/src/index.ts +5 -0
@@ -0,0 +1,1737 @@
1
+ /******************************************************************************
2
+ * This file was generated by langium-cli 4.0.0.
3
+ * DO NOT EDIT MANUALLY!
4
+ ******************************************************************************/
5
+
6
+ /* eslint-disable */
7
+ import * as langium from 'langium';
8
+
9
+ export const DomainDesignLanguageTerminals = {
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 DomainDesignLanguageTerminalNames = keyof typeof DomainDesignLanguageTerminals;
18
+
19
+ export type DomainDesignLanguageKeywordNames =
20
+ | "("
21
+ | ")"
22
+ | ","
23
+ | "."
24
+ | ":"
25
+ | "Actor"
26
+ | "AggregateRoot"
27
+ | "AntiCorruptionLayer"
28
+ | "BoundedContext"
29
+ | "Command"
30
+ | "Conformist"
31
+ | "ContextMap"
32
+ | "Customer/Supplier"
33
+ | "DomainEvents"
34
+ | "DomainExceptions"
35
+ | "DomainService"
36
+ | "Entity"
37
+ | "Enum"
38
+ | "EventStorming"
39
+ | "ExternalSystem"
40
+ | "Methods"
41
+ | "OpenHostService"
42
+ | "Partnership"
43
+ | "Policy"
44
+ | "Port"
45
+ | "ProcessFlow"
46
+ | "PublishedLanguage"
47
+ | "ReadModel"
48
+ | "Relationship"
49
+ | "SharedKernel"
50
+ | "UID"
51
+ | "UbiquitousLanguage"
52
+ | "ValueObject"
53
+ | "["
54
+ | "]"
55
+ | "aliases:"
56
+ | "and"
57
+ | "between"
58
+ | "boolean"
59
+ | "calculation"
60
+ | "contract"
61
+ | "coordination"
62
+ | "correctivePolicies:"
63
+ | "date"
64
+ | "definition:"
65
+ | "dependencies:"
66
+ | "downstream:"
67
+ | "emits"
68
+ | "enforcedInvariants:"
69
+ | "given"
70
+ | "hotspot"
71
+ | "input:"
72
+ | "invokes"
73
+ | "issues"
74
+ | "many"
75
+ | "number"
76
+ | "on"
77
+ | "optional"
78
+ | "payload:"
79
+ | "projects"
80
+ | "response:"
81
+ | "string"
82
+ | "then"
83
+ | "to"
84
+ | "triggers"
85
+ | "type:"
86
+ | "upstream:"
87
+ | "uses"
88
+ | "views"
89
+ | "{"
90
+ | "}";
91
+
92
+ export type DomainDesignLanguageTokenNames = DomainDesignLanguageTerminalNames | DomainDesignLanguageKeywordNames;
93
+
94
+ export interface Actor extends langium.AstNode {
95
+ readonly $container: EventStormingDeclaration;
96
+ readonly $type: 'Actor';
97
+ description?: string;
98
+ name: string;
99
+ }
100
+
101
+ export const Actor = {
102
+ $type: 'Actor',
103
+ description: 'description',
104
+ name: 'name'
105
+ } as const;
106
+
107
+ export function isActor(item: unknown): item is Actor {
108
+ return reflection.isInstance(item, Actor.$type);
109
+ }
110
+
111
+ export interface ActorCommandStep extends langium.AstNode {
112
+ readonly $container: ProcessFlow;
113
+ readonly $type: 'ActorCommandStep';
114
+ command: langium.Reference<Command>;
115
+ issuer: langium.Reference<Actor>;
116
+ }
117
+
118
+ export const ActorCommandStep = {
119
+ $type: 'ActorCommandStep',
120
+ command: 'command',
121
+ issuer: 'issuer'
122
+ } as const;
123
+
124
+ export function isActorCommandStep(item: unknown): item is ActorCommandStep {
125
+ return reflection.isInstance(item, ActorCommandStep.$type);
126
+ }
127
+
128
+ export interface AggregateAttribute extends langium.AstNode {
129
+ readonly $container: AggregateRoot;
130
+ readonly $type: 'AggregateAttribute';
131
+ many: boolean;
132
+ optional: boolean;
133
+ type: Entity | Reference | ValueObject;
134
+ }
135
+
136
+ export const AggregateAttribute = {
137
+ $type: 'AggregateAttribute',
138
+ many: 'many',
139
+ optional: 'optional',
140
+ type: 'type'
141
+ } as const;
142
+
143
+ export function isAggregateAttribute(item: unknown): item is AggregateAttribute {
144
+ return reflection.isInstance(item, AggregateAttribute.$type);
145
+ }
146
+
147
+ export interface AggregateRoot extends langium.AstNode {
148
+ readonly $container: BoundedContext;
149
+ readonly $type: 'AggregateRoot';
150
+ attributes: Array<AggregateAttribute>;
151
+ correctivePolicies: Array<string>;
152
+ description: string;
153
+ enforcedInvariants: Array<string>;
154
+ events?: DomainEventsDeclaration;
155
+ exceptions?: ExceptionsDeclaration;
156
+ id: UID;
157
+ methods?: MethodsDeclaration;
158
+ name: string;
159
+ }
160
+
161
+ export const AggregateRoot = {
162
+ $type: 'AggregateRoot',
163
+ attributes: 'attributes',
164
+ correctivePolicies: 'correctivePolicies',
165
+ description: 'description',
166
+ enforcedInvariants: 'enforcedInvariants',
167
+ events: 'events',
168
+ exceptions: 'exceptions',
169
+ id: 'id',
170
+ methods: 'methods',
171
+ name: 'name'
172
+ } as const;
173
+
174
+ export function isAggregateRoot(item: unknown): item is AggregateRoot {
175
+ return reflection.isInstance(item, AggregateRoot.$type);
176
+ }
177
+
178
+ export interface AsymmetricRelationship extends langium.AstNode {
179
+ readonly $container: ContextMap;
180
+ readonly $type: 'AsymmetricRelationship';
181
+ customerSupplier: boolean;
182
+ description?: string;
183
+ downstream: langium.Reference<BoundedContext>;
184
+ downstreamRole?: DownstreamRole;
185
+ upstream: langium.Reference<BoundedContext>;
186
+ upstreamRoles: Array<UpstreamRole>;
187
+ }
188
+
189
+ export const AsymmetricRelationship = {
190
+ $type: 'AsymmetricRelationship',
191
+ customerSupplier: 'customerSupplier',
192
+ description: 'description',
193
+ downstream: 'downstream',
194
+ downstreamRole: 'downstreamRole',
195
+ upstream: 'upstream',
196
+ upstreamRoles: 'upstreamRoles'
197
+ } as const;
198
+
199
+ export function isAsymmetricRelationship(item: unknown): item is AsymmetricRelationship {
200
+ return reflection.isInstance(item, AsymmetricRelationship.$type);
201
+ }
202
+
203
+ export interface BoundedContext extends langium.AstNode {
204
+ readonly $container: DomainModel;
205
+ readonly $type: 'BoundedContext';
206
+ aggregates: Array<AggregateRoot>;
207
+ commands: Array<Command>;
208
+ description: string;
209
+ domainServices: Array<DomainService>;
210
+ eventStorming?: EventStormingDeclaration;
211
+ name: string;
212
+ ports: Array<Port>;
213
+ ubiquitousLanguage: UbiquitousLanguageDeclaration;
214
+ }
215
+
216
+ export const BoundedContext = {
217
+ $type: 'BoundedContext',
218
+ aggregates: 'aggregates',
219
+ commands: 'commands',
220
+ description: 'description',
221
+ domainServices: 'domainServices',
222
+ eventStorming: 'eventStorming',
223
+ name: 'name',
224
+ ports: 'ports',
225
+ ubiquitousLanguage: 'ubiquitousLanguage'
226
+ } as const;
227
+
228
+ export function isBoundedContext(item: unknown): item is BoundedContext {
229
+ return reflection.isInstance(item, BoundedContext.$type);
230
+ }
231
+
232
+ export interface Command extends langium.AstNode {
233
+ readonly $container: BoundedContext;
234
+ readonly $type: 'Command';
235
+ aggregate: langium.Reference<AggregateRoot>;
236
+ dependencies: Array<Dependency>;
237
+ description?: string;
238
+ domainServices: Array<langium.Reference<DomainService>>;
239
+ events: Array<langium.Reference<DomainEvent>>;
240
+ input?: InputDTO;
241
+ name: string;
242
+ response?: ResponseDTO;
243
+ }
244
+
245
+ export const Command = {
246
+ $type: 'Command',
247
+ aggregate: 'aggregate',
248
+ dependencies: 'dependencies',
249
+ description: 'description',
250
+ domainServices: 'domainServices',
251
+ events: 'events',
252
+ input: 'input',
253
+ name: 'name',
254
+ response: 'response'
255
+ } as const;
256
+
257
+ export function isCommand(item: unknown): item is Command {
258
+ return reflection.isInstance(item, Command.$type);
259
+ }
260
+
261
+ export interface ContextMap extends langium.AstNode {
262
+ readonly $container: DomainModel;
263
+ readonly $type: 'ContextMap';
264
+ relationships: Array<Relationship>;
265
+ }
266
+
267
+ export const ContextMap = {
268
+ $type: 'ContextMap',
269
+ relationships: 'relationships'
270
+ } as const;
271
+
272
+ export function isContextMap(item: unknown): item is ContextMap {
273
+ return reflection.isInstance(item, ContextMap.$type);
274
+ }
275
+
276
+ export interface Dependency extends langium.AstNode {
277
+ readonly $container: Command;
278
+ readonly $type: 'Dependency';
279
+ port: langium.Reference<Port>;
280
+ }
281
+
282
+ export const Dependency = {
283
+ $type: 'Dependency',
284
+ port: 'port'
285
+ } as const;
286
+
287
+ export function isDependency(item: unknown): item is Dependency {
288
+ return reflection.isInstance(item, Dependency.$type);
289
+ }
290
+
291
+ export interface DomainAttribute extends langium.AstNode {
292
+ readonly $container: DomainServiceInput | DomainServiceResponse | MethodInput;
293
+ readonly $type: 'DomainAttribute';
294
+ many: boolean;
295
+ name: string;
296
+ optional: boolean;
297
+ type: langium.Reference<DomainObject>;
298
+ }
299
+
300
+ export const DomainAttribute = {
301
+ $type: 'DomainAttribute',
302
+ many: 'many',
303
+ name: 'name',
304
+ optional: 'optional',
305
+ type: 'type'
306
+ } as const;
307
+
308
+ export function isDomainAttribute(item: unknown): item is DomainAttribute {
309
+ return reflection.isInstance(item, DomainAttribute.$type);
310
+ }
311
+
312
+ export interface DomainEvent extends langium.AstNode {
313
+ readonly $container: DomainEventsDeclaration;
314
+ readonly $type: 'DomainEvent';
315
+ description?: string;
316
+ name: string;
317
+ payload?: Payload;
318
+ }
319
+
320
+ export const DomainEvent = {
321
+ $type: 'DomainEvent',
322
+ description: 'description',
323
+ name: 'name',
324
+ payload: 'payload'
325
+ } as const;
326
+
327
+ export function isDomainEvent(item: unknown): item is DomainEvent {
328
+ return reflection.isInstance(item, DomainEvent.$type);
329
+ }
330
+
331
+ export interface DomainEventsDeclaration extends langium.AstNode {
332
+ readonly $container: AggregateRoot;
333
+ readonly $type: 'DomainEventsDeclaration';
334
+ events: Array<DomainEvent>;
335
+ }
336
+
337
+ export const DomainEventsDeclaration = {
338
+ $type: 'DomainEventsDeclaration',
339
+ events: 'events'
340
+ } as const;
341
+
342
+ export function isDomainEventsDeclaration(item: unknown): item is DomainEventsDeclaration {
343
+ return reflection.isInstance(item, DomainEventsDeclaration.$type);
344
+ }
345
+
346
+ export interface DomainException extends langium.AstNode {
347
+ readonly $container: ExceptionsDeclaration;
348
+ readonly $type: 'DomainException';
349
+ description?: string;
350
+ name: string;
351
+ }
352
+
353
+ export const DomainException = {
354
+ $type: 'DomainException',
355
+ description: 'description',
356
+ name: 'name'
357
+ } as const;
358
+
359
+ export function isDomainException(item: unknown): item is DomainException {
360
+ return reflection.isInstance(item, DomainException.$type);
361
+ }
362
+
363
+ export interface DomainModel extends langium.AstNode {
364
+ readonly $type: 'DomainModel';
365
+ boundedContext?: BoundedContext;
366
+ contextMap?: ContextMap;
367
+ }
368
+
369
+ export const DomainModel = {
370
+ $type: 'DomainModel',
371
+ boundedContext: 'boundedContext',
372
+ contextMap: 'contextMap'
373
+ } as const;
374
+
375
+ export function isDomainModel(item: unknown): item is DomainModel {
376
+ return reflection.isInstance(item, DomainModel.$type);
377
+ }
378
+
379
+ export type DomainObject = AggregateRoot | Entity | ValueObject;
380
+
381
+ export const DomainObject = {
382
+ $type: 'DomainObject'
383
+ } as const;
384
+
385
+ export function isDomainObject(item: unknown): item is DomainObject {
386
+ return reflection.isInstance(item, DomainObject.$type);
387
+ }
388
+
389
+ export interface DomainService extends langium.AstNode {
390
+ readonly $container: BoundedContext;
391
+ readonly $type: 'DomainService';
392
+ description: string;
393
+ input?: DomainServiceInput;
394
+ name: string;
395
+ response?: DomainServiceResponse;
396
+ type: 'calculation' | 'contract' | 'coordination';
397
+ }
398
+
399
+ export const DomainService = {
400
+ $type: 'DomainService',
401
+ description: 'description',
402
+ input: 'input',
403
+ name: 'name',
404
+ response: 'response',
405
+ type: 'type'
406
+ } as const;
407
+
408
+ export function isDomainService(item: unknown): item is DomainService {
409
+ return reflection.isInstance(item, DomainService.$type);
410
+ }
411
+
412
+ export interface DomainServiceInput extends langium.AstNode {
413
+ readonly $container: DomainService;
414
+ readonly $type: 'DomainServiceInput';
415
+ attributes: Array<DomainAttribute>;
416
+ }
417
+
418
+ export const DomainServiceInput = {
419
+ $type: 'DomainServiceInput',
420
+ attributes: 'attributes'
421
+ } as const;
422
+
423
+ export function isDomainServiceInput(item: unknown): item is DomainServiceInput {
424
+ return reflection.isInstance(item, DomainServiceInput.$type);
425
+ }
426
+
427
+ export interface DomainServiceResponse extends langium.AstNode {
428
+ readonly $container: DomainService;
429
+ readonly $type: 'DomainServiceResponse';
430
+ attributes: Array<DomainAttribute | PrimitiveAttribute>;
431
+ }
432
+
433
+ export const DomainServiceResponse = {
434
+ $type: 'DomainServiceResponse',
435
+ attributes: 'attributes'
436
+ } as const;
437
+
438
+ export function isDomainServiceResponse(item: unknown): item is DomainServiceResponse {
439
+ return reflection.isInstance(item, DomainServiceResponse.$type);
440
+ }
441
+
442
+ export type DownstreamRole = 'AntiCorruptionLayer' | 'Conformist';
443
+
444
+ export function isDownstreamRole(item: unknown): item is DownstreamRole {
445
+ return item === 'AntiCorruptionLayer' || item === 'Conformist';
446
+ }
447
+
448
+ export interface Entity extends langium.AstNode {
449
+ readonly $container: AggregateAttribute;
450
+ readonly $type: 'Entity';
451
+ attributes: Array<EntityAttribute>;
452
+ description: string;
453
+ id: UID;
454
+ name: string;
455
+ }
456
+
457
+ export const Entity = {
458
+ $type: 'Entity',
459
+ attributes: 'attributes',
460
+ description: 'description',
461
+ id: 'id',
462
+ name: 'name'
463
+ } as const;
464
+
465
+ export function isEntity(item: unknown): item is Entity {
466
+ return reflection.isInstance(item, Entity.$type);
467
+ }
468
+
469
+ export interface EntityAttribute extends langium.AstNode {
470
+ readonly $container: Entity;
471
+ readonly $type: 'EntityAttribute';
472
+ many: boolean;
473
+ optional: boolean;
474
+ type: Reference | ValueObject;
475
+ }
476
+
477
+ export const EntityAttribute = {
478
+ $type: 'EntityAttribute',
479
+ many: 'many',
480
+ optional: 'optional',
481
+ type: 'type'
482
+ } as const;
483
+
484
+ export function isEntityAttribute(item: unknown): item is EntityAttribute {
485
+ return reflection.isInstance(item, EntityAttribute.$type);
486
+ }
487
+
488
+ export interface Enum extends langium.AstNode {
489
+ readonly $container: PrimitiveAttribute;
490
+ readonly $type: 'Enum';
491
+ values: Array<string>;
492
+ }
493
+
494
+ export const Enum = {
495
+ $type: 'Enum',
496
+ values: 'values'
497
+ } as const;
498
+
499
+ export function isEnum(item: unknown): item is Enum {
500
+ return reflection.isInstance(item, Enum.$type);
501
+ }
502
+
503
+ export interface EventStormingDeclaration extends langium.AstNode {
504
+ readonly $container: BoundedContext;
505
+ readonly $type: 'EventStormingDeclaration';
506
+ elements: Array<EventStormingElement>;
507
+ flows: Array<ProcessFlow>;
508
+ }
509
+
510
+ export const EventStormingDeclaration = {
511
+ $type: 'EventStormingDeclaration',
512
+ elements: 'elements',
513
+ flows: 'flows'
514
+ } as const;
515
+
516
+ export function isEventStormingDeclaration(item: unknown): item is EventStormingDeclaration {
517
+ return reflection.isInstance(item, EventStormingDeclaration.$type);
518
+ }
519
+
520
+ export type EventStormingElement = Actor | ExternalSystem | ReadModel;
521
+
522
+ export const EventStormingElement = {
523
+ $type: 'EventStormingElement'
524
+ } as const;
525
+
526
+ export function isEventStormingElement(item: unknown): item is EventStormingElement {
527
+ return reflection.isInstance(item, EventStormingElement.$type);
528
+ }
529
+
530
+ export interface ExceptionsDeclaration extends langium.AstNode {
531
+ readonly $container: AggregateRoot;
532
+ readonly $type: 'ExceptionsDeclaration';
533
+ exceptions: Array<DomainException>;
534
+ }
535
+
536
+ export const ExceptionsDeclaration = {
537
+ $type: 'ExceptionsDeclaration',
538
+ exceptions: 'exceptions'
539
+ } as const;
540
+
541
+ export function isExceptionsDeclaration(item: unknown): item is ExceptionsDeclaration {
542
+ return reflection.isInstance(item, ExceptionsDeclaration.$type);
543
+ }
544
+
545
+ export interface ExternalSystem extends langium.AstNode {
546
+ readonly $container: EventStormingDeclaration;
547
+ readonly $type: 'ExternalSystem';
548
+ description?: string;
549
+ name: string;
550
+ }
551
+
552
+ export const ExternalSystem = {
553
+ $type: 'ExternalSystem',
554
+ description: 'description',
555
+ name: 'name'
556
+ } as const;
557
+
558
+ export function isExternalSystem(item: unknown): item is ExternalSystem {
559
+ return reflection.isInstance(item, ExternalSystem.$type);
560
+ }
561
+
562
+ export interface GivenStep extends langium.AstNode {
563
+ readonly $container: ProcessFlow;
564
+ readonly $type: 'GivenStep';
565
+ actor: langium.Reference<Actor>;
566
+ readModel: langium.Reference<ReadModel>;
567
+ }
568
+
569
+ export const GivenStep = {
570
+ $type: 'GivenStep',
571
+ actor: 'actor',
572
+ readModel: 'readModel'
573
+ } as const;
574
+
575
+ export function isGivenStep(item: unknown): item is GivenStep {
576
+ return reflection.isInstance(item, GivenStep.$type);
577
+ }
578
+
579
+ export type IDType = 'number' | 'string';
580
+
581
+ export function isIDType(item: unknown): item is IDType {
582
+ return item === 'string' || item === 'number';
583
+ }
584
+
585
+ export interface InputDTO extends langium.AstNode {
586
+ readonly $container: Command;
587
+ readonly $type: 'InputDTO';
588
+ attributes: Array<PrimitiveAttribute>;
589
+ }
590
+
591
+ export const InputDTO = {
592
+ $type: 'InputDTO',
593
+ attributes: 'attributes'
594
+ } as const;
595
+
596
+ export function isInputDTO(item: unknown): item is InputDTO {
597
+ return reflection.isInstance(item, InputDTO.$type);
598
+ }
599
+
600
+ export interface Method extends langium.AstNode {
601
+ readonly $container: MethodsDeclaration;
602
+ readonly $type: 'Method';
603
+ description?: string;
604
+ input?: MethodInput;
605
+ name: string;
606
+ }
607
+
608
+ export const Method = {
609
+ $type: 'Method',
610
+ description: 'description',
611
+ input: 'input',
612
+ name: 'name'
613
+ } as const;
614
+
615
+ export function isMethod(item: unknown): item is Method {
616
+ return reflection.isInstance(item, Method.$type);
617
+ }
618
+
619
+ export interface MethodInput extends langium.AstNode {
620
+ readonly $container: Method;
621
+ readonly $type: 'MethodInput';
622
+ attributes: Array<DomainAttribute>;
623
+ }
624
+
625
+ export const MethodInput = {
626
+ $type: 'MethodInput',
627
+ attributes: 'attributes'
628
+ } as const;
629
+
630
+ export function isMethodInput(item: unknown): item is MethodInput {
631
+ return reflection.isInstance(item, MethodInput.$type);
632
+ }
633
+
634
+ export interface MethodsDeclaration extends langium.AstNode {
635
+ readonly $container: AggregateRoot;
636
+ readonly $type: 'MethodsDeclaration';
637
+ methods: Array<Method>;
638
+ }
639
+
640
+ export const MethodsDeclaration = {
641
+ $type: 'MethodsDeclaration',
642
+ methods: 'methods'
643
+ } as const;
644
+
645
+ export function isMethodsDeclaration(item: unknown): item is MethodsDeclaration {
646
+ return reflection.isInstance(item, MethodsDeclaration.$type);
647
+ }
648
+
649
+ export interface Payload extends langium.AstNode {
650
+ readonly $container: DomainEvent;
651
+ readonly $type: 'Payload';
652
+ attributes: Array<PrimitiveAttribute>;
653
+ }
654
+
655
+ export const Payload = {
656
+ $type: 'Payload',
657
+ attributes: 'attributes'
658
+ } as const;
659
+
660
+ export function isPayload(item: unknown): item is Payload {
661
+ return reflection.isInstance(item, Payload.$type);
662
+ }
663
+
664
+ export interface Policy extends langium.AstNode {
665
+ readonly $container: PolicyTrigger;
666
+ readonly $type: 'Policy';
667
+ command: langium.Reference<Command>;
668
+ description?: string;
669
+ name: string;
670
+ }
671
+
672
+ export const Policy = {
673
+ $type: 'Policy',
674
+ command: 'command',
675
+ description: 'description',
676
+ name: 'name'
677
+ } as const;
678
+
679
+ export function isPolicy(item: unknown): item is Policy {
680
+ return reflection.isInstance(item, Policy.$type);
681
+ }
682
+
683
+ export interface PolicyTrigger extends langium.AstNode {
684
+ readonly $container: ReactionStep;
685
+ readonly $type: 'PolicyTrigger';
686
+ hotspot?: string;
687
+ policy: Policy;
688
+ }
689
+
690
+ export const PolicyTrigger = {
691
+ $type: 'PolicyTrigger',
692
+ hotspot: 'hotspot',
693
+ policy: 'policy'
694
+ } as const;
695
+
696
+ export function isPolicyTrigger(item: unknown): item is PolicyTrigger {
697
+ return reflection.isInstance(item, PolicyTrigger.$type);
698
+ }
699
+
700
+ export interface Port extends langium.AstNode {
701
+ readonly $container: BoundedContext;
702
+ readonly $type: 'Port';
703
+ description?: string;
704
+ name: string;
705
+ }
706
+
707
+ export const Port = {
708
+ $type: 'Port',
709
+ description: 'description',
710
+ name: 'name'
711
+ } as const;
712
+
713
+ export function isPort(item: unknown): item is Port {
714
+ return reflection.isInstance(item, Port.$type);
715
+ }
716
+
717
+ export type Primitive = 'boolean' | 'date' | 'number' | 'string';
718
+
719
+ export function isPrimitive(item: unknown): item is Primitive {
720
+ return item === 'string' || item === 'number' || item === 'boolean' || item === 'date';
721
+ }
722
+
723
+ export interface PrimitiveAttribute extends langium.AstNode {
724
+ readonly $container: DomainServiceResponse | InputDTO | Payload | ResponseDTO | ValueObject;
725
+ readonly $type: 'PrimitiveAttribute';
726
+ many: boolean;
727
+ name: string;
728
+ optional: boolean;
729
+ type: Enum | Primitive;
730
+ }
731
+
732
+ export const PrimitiveAttribute = {
733
+ $type: 'PrimitiveAttribute',
734
+ many: 'many',
735
+ name: 'name',
736
+ optional: 'optional',
737
+ type: 'type'
738
+ } as const;
739
+
740
+ export function isPrimitiveAttribute(item: unknown): item is PrimitiveAttribute {
741
+ return reflection.isInstance(item, PrimitiveAttribute.$type);
742
+ }
743
+
744
+ export interface ProcessFlow extends langium.AstNode {
745
+ readonly $container: EventStormingDeclaration;
746
+ readonly $type: 'ProcessFlow';
747
+ command: ActorCommandStep;
748
+ description?: string;
749
+ given?: GivenStep;
750
+ name: string;
751
+ reactions: Array<ReactionStep>;
752
+ }
753
+
754
+ export const ProcessFlow = {
755
+ $type: 'ProcessFlow',
756
+ command: 'command',
757
+ description: 'description',
758
+ given: 'given',
759
+ name: 'name',
760
+ reactions: 'reactions'
761
+ } as const;
762
+
763
+ export function isProcessFlow(item: unknown): item is ProcessFlow {
764
+ return reflection.isInstance(item, ProcessFlow.$type);
765
+ }
766
+
767
+ export interface Projection extends langium.AstNode {
768
+ readonly $container: ReactionStep;
769
+ readonly $type: 'Projection';
770
+ hotspot?: string;
771
+ readModel: langium.Reference<ReadModel>;
772
+ }
773
+
774
+ export const Projection = {
775
+ $type: 'Projection',
776
+ hotspot: 'hotspot',
777
+ readModel: 'readModel'
778
+ } as const;
779
+
780
+ export function isProjection(item: unknown): item is Projection {
781
+ return reflection.isInstance(item, Projection.$type);
782
+ }
783
+
784
+ export type QualifiedName = string;
785
+
786
+ export function isQualifiedName(item: unknown): item is QualifiedName {
787
+ return typeof item === 'string';
788
+ }
789
+
790
+ export type ReactionOutcome = PolicyTrigger | Projection;
791
+
792
+ export const ReactionOutcome = {
793
+ $type: 'ReactionOutcome'
794
+ } as const;
795
+
796
+ export function isReactionOutcome(item: unknown): item is ReactionOutcome {
797
+ return reflection.isInstance(item, ReactionOutcome.$type);
798
+ }
799
+
800
+ export interface ReactionStep extends langium.AstNode {
801
+ readonly $container: ProcessFlow;
802
+ readonly $type: 'ReactionStep';
803
+ outcomes: Array<ReactionOutcome>;
804
+ trigger: langium.Reference<DomainEvent>;
805
+ }
806
+
807
+ export const ReactionStep = {
808
+ $type: 'ReactionStep',
809
+ outcomes: 'outcomes',
810
+ trigger: 'trigger'
811
+ } as const;
812
+
813
+ export function isReactionStep(item: unknown): item is ReactionStep {
814
+ return reflection.isInstance(item, ReactionStep.$type);
815
+ }
816
+
817
+ export interface ReadModel extends langium.AstNode {
818
+ readonly $container: EventStormingDeclaration;
819
+ readonly $type: 'ReadModel';
820
+ description?: string;
821
+ name: string;
822
+ }
823
+
824
+ export const ReadModel = {
825
+ $type: 'ReadModel',
826
+ description: 'description',
827
+ name: 'name'
828
+ } as const;
829
+
830
+ export function isReadModel(item: unknown): item is ReadModel {
831
+ return reflection.isInstance(item, ReadModel.$type);
832
+ }
833
+
834
+ export interface Reference extends langium.AstNode {
835
+ readonly $container: AggregateAttribute | EntityAttribute;
836
+ readonly $type: 'Reference';
837
+ name: string;
838
+ to: langium.Reference<AggregateRoot>;
839
+ }
840
+
841
+ export const Reference = {
842
+ $type: 'Reference',
843
+ name: 'name',
844
+ to: 'to'
845
+ } as const;
846
+
847
+ export function isReference(item: unknown): item is Reference {
848
+ return reflection.isInstance(item, Reference.$type);
849
+ }
850
+
851
+ export type Relationship = AsymmetricRelationship | SymmetricRelationship;
852
+
853
+ export const Relationship = {
854
+ $type: 'Relationship'
855
+ } as const;
856
+
857
+ export function isRelationship(item: unknown): item is Relationship {
858
+ return reflection.isInstance(item, Relationship.$type);
859
+ }
860
+
861
+ export interface ResponseDTO extends langium.AstNode {
862
+ readonly $container: Command;
863
+ readonly $type: 'ResponseDTO';
864
+ attributes: Array<PrimitiveAttribute>;
865
+ }
866
+
867
+ export const ResponseDTO = {
868
+ $type: 'ResponseDTO',
869
+ attributes: 'attributes'
870
+ } as const;
871
+
872
+ export function isResponseDTO(item: unknown): item is ResponseDTO {
873
+ return reflection.isInstance(item, ResponseDTO.$type);
874
+ }
875
+
876
+ export interface SymmetricRelationship extends langium.AstNode {
877
+ readonly $container: ContextMap;
878
+ readonly $type: 'SymmetricRelationship';
879
+ description?: string;
880
+ participant1: langium.Reference<BoundedContext>;
881
+ participant2: langium.Reference<BoundedContext>;
882
+ type: 'Partnership' | 'SharedKernel';
883
+ }
884
+
885
+ export const SymmetricRelationship = {
886
+ $type: 'SymmetricRelationship',
887
+ description: 'description',
888
+ participant1: 'participant1',
889
+ participant2: 'participant2',
890
+ type: 'type'
891
+ } as const;
892
+
893
+ export function isSymmetricRelationship(item: unknown): item is SymmetricRelationship {
894
+ return reflection.isInstance(item, SymmetricRelationship.$type);
895
+ }
896
+
897
+ export interface Term extends langium.AstNode {
898
+ readonly $container: UbiquitousLanguageDeclaration;
899
+ readonly $type: 'Term';
900
+ aliases: Array<string>;
901
+ definition: string;
902
+ name: string;
903
+ }
904
+
905
+ export const Term = {
906
+ $type: 'Term',
907
+ aliases: 'aliases',
908
+ definition: 'definition',
909
+ name: 'name'
910
+ } as const;
911
+
912
+ export function isTerm(item: unknown): item is Term {
913
+ return reflection.isInstance(item, Term.$type);
914
+ }
915
+
916
+ export interface UbiquitousLanguageDeclaration extends langium.AstNode {
917
+ readonly $container: BoundedContext;
918
+ readonly $type: 'UbiquitousLanguageDeclaration';
919
+ terms: Array<Term>;
920
+ }
921
+
922
+ export const UbiquitousLanguageDeclaration = {
923
+ $type: 'UbiquitousLanguageDeclaration',
924
+ terms: 'terms'
925
+ } as const;
926
+
927
+ export function isUbiquitousLanguageDeclaration(item: unknown): item is UbiquitousLanguageDeclaration {
928
+ return reflection.isInstance(item, UbiquitousLanguageDeclaration.$type);
929
+ }
930
+
931
+ export interface UID extends langium.AstNode {
932
+ readonly $container: AggregateRoot | Entity;
933
+ readonly $type: 'UID';
934
+ enforcedInvariants: Array<string>;
935
+ type: IDType;
936
+ }
937
+
938
+ export const UID = {
939
+ $type: 'UID',
940
+ enforcedInvariants: 'enforcedInvariants',
941
+ type: 'type'
942
+ } as const;
943
+
944
+ export function isUID(item: unknown): item is UID {
945
+ return reflection.isInstance(item, UID.$type);
946
+ }
947
+
948
+ export type UpstreamRole = 'OpenHostService' | 'PublishedLanguage';
949
+
950
+ export function isUpstreamRole(item: unknown): item is UpstreamRole {
951
+ return item === 'OpenHostService' || item === 'PublishedLanguage';
952
+ }
953
+
954
+ export interface ValueObject extends langium.AstNode {
955
+ readonly $container: AggregateAttribute | EntityAttribute;
956
+ readonly $type: 'ValueObject';
957
+ attributes: Array<PrimitiveAttribute>;
958
+ description?: string;
959
+ enforcedInvariants: Array<string>;
960
+ name: string;
961
+ }
962
+
963
+ export const ValueObject = {
964
+ $type: 'ValueObject',
965
+ attributes: 'attributes',
966
+ description: 'description',
967
+ enforcedInvariants: 'enforcedInvariants',
968
+ name: 'name'
969
+ } as const;
970
+
971
+ export function isValueObject(item: unknown): item is ValueObject {
972
+ return reflection.isInstance(item, ValueObject.$type);
973
+ }
974
+
975
+ export type DomainDesignLanguageAstType = {
976
+ Actor: Actor
977
+ ActorCommandStep: ActorCommandStep
978
+ AggregateAttribute: AggregateAttribute
979
+ AggregateRoot: AggregateRoot
980
+ AsymmetricRelationship: AsymmetricRelationship
981
+ BoundedContext: BoundedContext
982
+ Command: Command
983
+ ContextMap: ContextMap
984
+ Dependency: Dependency
985
+ DomainAttribute: DomainAttribute
986
+ DomainEvent: DomainEvent
987
+ DomainEventsDeclaration: DomainEventsDeclaration
988
+ DomainException: DomainException
989
+ DomainModel: DomainModel
990
+ DomainObject: DomainObject
991
+ DomainService: DomainService
992
+ DomainServiceInput: DomainServiceInput
993
+ DomainServiceResponse: DomainServiceResponse
994
+ Entity: Entity
995
+ EntityAttribute: EntityAttribute
996
+ Enum: Enum
997
+ EventStormingDeclaration: EventStormingDeclaration
998
+ EventStormingElement: EventStormingElement
999
+ ExceptionsDeclaration: ExceptionsDeclaration
1000
+ ExternalSystem: ExternalSystem
1001
+ GivenStep: GivenStep
1002
+ InputDTO: InputDTO
1003
+ Method: Method
1004
+ MethodInput: MethodInput
1005
+ MethodsDeclaration: MethodsDeclaration
1006
+ Payload: Payload
1007
+ Policy: Policy
1008
+ PolicyTrigger: PolicyTrigger
1009
+ Port: Port
1010
+ PrimitiveAttribute: PrimitiveAttribute
1011
+ ProcessFlow: ProcessFlow
1012
+ Projection: Projection
1013
+ ReactionOutcome: ReactionOutcome
1014
+ ReactionStep: ReactionStep
1015
+ ReadModel: ReadModel
1016
+ Reference: Reference
1017
+ Relationship: Relationship
1018
+ ResponseDTO: ResponseDTO
1019
+ SymmetricRelationship: SymmetricRelationship
1020
+ Term: Term
1021
+ UID: UID
1022
+ UbiquitousLanguageDeclaration: UbiquitousLanguageDeclaration
1023
+ ValueObject: ValueObject
1024
+ }
1025
+
1026
+ export class DomainDesignLanguageAstReflection extends langium.AbstractAstReflection {
1027
+ override readonly types = {
1028
+ Actor: {
1029
+ name: Actor.$type,
1030
+ properties: {
1031
+ description: {
1032
+ name: Actor.description
1033
+ },
1034
+ name: {
1035
+ name: Actor.name
1036
+ }
1037
+ },
1038
+ superTypes: [EventStormingElement.$type]
1039
+ },
1040
+ ActorCommandStep: {
1041
+ name: ActorCommandStep.$type,
1042
+ properties: {
1043
+ command: {
1044
+ name: ActorCommandStep.command,
1045
+ referenceType: Command.$type
1046
+ },
1047
+ issuer: {
1048
+ name: ActorCommandStep.issuer,
1049
+ referenceType: Actor.$type
1050
+ }
1051
+ },
1052
+ superTypes: []
1053
+ },
1054
+ AggregateAttribute: {
1055
+ name: AggregateAttribute.$type,
1056
+ properties: {
1057
+ many: {
1058
+ name: AggregateAttribute.many,
1059
+ defaultValue: false
1060
+ },
1061
+ optional: {
1062
+ name: AggregateAttribute.optional,
1063
+ defaultValue: false
1064
+ },
1065
+ type: {
1066
+ name: AggregateAttribute.type
1067
+ }
1068
+ },
1069
+ superTypes: []
1070
+ },
1071
+ AggregateRoot: {
1072
+ name: AggregateRoot.$type,
1073
+ properties: {
1074
+ attributes: {
1075
+ name: AggregateRoot.attributes,
1076
+ defaultValue: []
1077
+ },
1078
+ correctivePolicies: {
1079
+ name: AggregateRoot.correctivePolicies,
1080
+ defaultValue: []
1081
+ },
1082
+ description: {
1083
+ name: AggregateRoot.description
1084
+ },
1085
+ enforcedInvariants: {
1086
+ name: AggregateRoot.enforcedInvariants,
1087
+ defaultValue: []
1088
+ },
1089
+ events: {
1090
+ name: AggregateRoot.events
1091
+ },
1092
+ exceptions: {
1093
+ name: AggregateRoot.exceptions
1094
+ },
1095
+ id: {
1096
+ name: AggregateRoot.id
1097
+ },
1098
+ methods: {
1099
+ name: AggregateRoot.methods
1100
+ },
1101
+ name: {
1102
+ name: AggregateRoot.name
1103
+ }
1104
+ },
1105
+ superTypes: [DomainObject.$type]
1106
+ },
1107
+ AsymmetricRelationship: {
1108
+ name: AsymmetricRelationship.$type,
1109
+ properties: {
1110
+ customerSupplier: {
1111
+ name: AsymmetricRelationship.customerSupplier,
1112
+ defaultValue: false
1113
+ },
1114
+ description: {
1115
+ name: AsymmetricRelationship.description
1116
+ },
1117
+ downstream: {
1118
+ name: AsymmetricRelationship.downstream,
1119
+ referenceType: BoundedContext.$type
1120
+ },
1121
+ downstreamRole: {
1122
+ name: AsymmetricRelationship.downstreamRole
1123
+ },
1124
+ upstream: {
1125
+ name: AsymmetricRelationship.upstream,
1126
+ referenceType: BoundedContext.$type
1127
+ },
1128
+ upstreamRoles: {
1129
+ name: AsymmetricRelationship.upstreamRoles,
1130
+ defaultValue: []
1131
+ }
1132
+ },
1133
+ superTypes: [Relationship.$type]
1134
+ },
1135
+ BoundedContext: {
1136
+ name: BoundedContext.$type,
1137
+ properties: {
1138
+ aggregates: {
1139
+ name: BoundedContext.aggregates,
1140
+ defaultValue: []
1141
+ },
1142
+ commands: {
1143
+ name: BoundedContext.commands,
1144
+ defaultValue: []
1145
+ },
1146
+ description: {
1147
+ name: BoundedContext.description
1148
+ },
1149
+ domainServices: {
1150
+ name: BoundedContext.domainServices,
1151
+ defaultValue: []
1152
+ },
1153
+ eventStorming: {
1154
+ name: BoundedContext.eventStorming
1155
+ },
1156
+ name: {
1157
+ name: BoundedContext.name
1158
+ },
1159
+ ports: {
1160
+ name: BoundedContext.ports,
1161
+ defaultValue: []
1162
+ },
1163
+ ubiquitousLanguage: {
1164
+ name: BoundedContext.ubiquitousLanguage
1165
+ }
1166
+ },
1167
+ superTypes: []
1168
+ },
1169
+ Command: {
1170
+ name: Command.$type,
1171
+ properties: {
1172
+ aggregate: {
1173
+ name: Command.aggregate,
1174
+ referenceType: AggregateRoot.$type
1175
+ },
1176
+ dependencies: {
1177
+ name: Command.dependencies,
1178
+ defaultValue: []
1179
+ },
1180
+ description: {
1181
+ name: Command.description
1182
+ },
1183
+ domainServices: {
1184
+ name: Command.domainServices,
1185
+ defaultValue: [],
1186
+ referenceType: DomainService.$type
1187
+ },
1188
+ events: {
1189
+ name: Command.events,
1190
+ defaultValue: [],
1191
+ referenceType: DomainEvent.$type
1192
+ },
1193
+ input: {
1194
+ name: Command.input
1195
+ },
1196
+ name: {
1197
+ name: Command.name
1198
+ },
1199
+ response: {
1200
+ name: Command.response
1201
+ }
1202
+ },
1203
+ superTypes: []
1204
+ },
1205
+ ContextMap: {
1206
+ name: ContextMap.$type,
1207
+ properties: {
1208
+ relationships: {
1209
+ name: ContextMap.relationships,
1210
+ defaultValue: []
1211
+ }
1212
+ },
1213
+ superTypes: []
1214
+ },
1215
+ Dependency: {
1216
+ name: Dependency.$type,
1217
+ properties: {
1218
+ port: {
1219
+ name: Dependency.port,
1220
+ referenceType: Port.$type
1221
+ }
1222
+ },
1223
+ superTypes: []
1224
+ },
1225
+ DomainAttribute: {
1226
+ name: DomainAttribute.$type,
1227
+ properties: {
1228
+ many: {
1229
+ name: DomainAttribute.many,
1230
+ defaultValue: false
1231
+ },
1232
+ name: {
1233
+ name: DomainAttribute.name
1234
+ },
1235
+ optional: {
1236
+ name: DomainAttribute.optional,
1237
+ defaultValue: false
1238
+ },
1239
+ type: {
1240
+ name: DomainAttribute.type,
1241
+ referenceType: DomainObject.$type
1242
+ }
1243
+ },
1244
+ superTypes: []
1245
+ },
1246
+ DomainEvent: {
1247
+ name: DomainEvent.$type,
1248
+ properties: {
1249
+ description: {
1250
+ name: DomainEvent.description
1251
+ },
1252
+ name: {
1253
+ name: DomainEvent.name
1254
+ },
1255
+ payload: {
1256
+ name: DomainEvent.payload
1257
+ }
1258
+ },
1259
+ superTypes: []
1260
+ },
1261
+ DomainEventsDeclaration: {
1262
+ name: DomainEventsDeclaration.$type,
1263
+ properties: {
1264
+ events: {
1265
+ name: DomainEventsDeclaration.events,
1266
+ defaultValue: []
1267
+ }
1268
+ },
1269
+ superTypes: []
1270
+ },
1271
+ DomainException: {
1272
+ name: DomainException.$type,
1273
+ properties: {
1274
+ description: {
1275
+ name: DomainException.description
1276
+ },
1277
+ name: {
1278
+ name: DomainException.name
1279
+ }
1280
+ },
1281
+ superTypes: []
1282
+ },
1283
+ DomainModel: {
1284
+ name: DomainModel.$type,
1285
+ properties: {
1286
+ boundedContext: {
1287
+ name: DomainModel.boundedContext
1288
+ },
1289
+ contextMap: {
1290
+ name: DomainModel.contextMap
1291
+ }
1292
+ },
1293
+ superTypes: []
1294
+ },
1295
+ DomainObject: {
1296
+ name: DomainObject.$type,
1297
+ properties: {
1298
+ },
1299
+ superTypes: []
1300
+ },
1301
+ DomainService: {
1302
+ name: DomainService.$type,
1303
+ properties: {
1304
+ description: {
1305
+ name: DomainService.description
1306
+ },
1307
+ input: {
1308
+ name: DomainService.input
1309
+ },
1310
+ name: {
1311
+ name: DomainService.name
1312
+ },
1313
+ response: {
1314
+ name: DomainService.response
1315
+ },
1316
+ type: {
1317
+ name: DomainService.type
1318
+ }
1319
+ },
1320
+ superTypes: []
1321
+ },
1322
+ DomainServiceInput: {
1323
+ name: DomainServiceInput.$type,
1324
+ properties: {
1325
+ attributes: {
1326
+ name: DomainServiceInput.attributes,
1327
+ defaultValue: []
1328
+ }
1329
+ },
1330
+ superTypes: []
1331
+ },
1332
+ DomainServiceResponse: {
1333
+ name: DomainServiceResponse.$type,
1334
+ properties: {
1335
+ attributes: {
1336
+ name: DomainServiceResponse.attributes,
1337
+ defaultValue: []
1338
+ }
1339
+ },
1340
+ superTypes: []
1341
+ },
1342
+ Entity: {
1343
+ name: Entity.$type,
1344
+ properties: {
1345
+ attributes: {
1346
+ name: Entity.attributes,
1347
+ defaultValue: []
1348
+ },
1349
+ description: {
1350
+ name: Entity.description
1351
+ },
1352
+ id: {
1353
+ name: Entity.id
1354
+ },
1355
+ name: {
1356
+ name: Entity.name
1357
+ }
1358
+ },
1359
+ superTypes: [DomainObject.$type]
1360
+ },
1361
+ EntityAttribute: {
1362
+ name: EntityAttribute.$type,
1363
+ properties: {
1364
+ many: {
1365
+ name: EntityAttribute.many,
1366
+ defaultValue: false
1367
+ },
1368
+ optional: {
1369
+ name: EntityAttribute.optional,
1370
+ defaultValue: false
1371
+ },
1372
+ type: {
1373
+ name: EntityAttribute.type
1374
+ }
1375
+ },
1376
+ superTypes: []
1377
+ },
1378
+ Enum: {
1379
+ name: Enum.$type,
1380
+ properties: {
1381
+ values: {
1382
+ name: Enum.values,
1383
+ defaultValue: []
1384
+ }
1385
+ },
1386
+ superTypes: []
1387
+ },
1388
+ EventStormingDeclaration: {
1389
+ name: EventStormingDeclaration.$type,
1390
+ properties: {
1391
+ elements: {
1392
+ name: EventStormingDeclaration.elements,
1393
+ defaultValue: []
1394
+ },
1395
+ flows: {
1396
+ name: EventStormingDeclaration.flows,
1397
+ defaultValue: []
1398
+ }
1399
+ },
1400
+ superTypes: []
1401
+ },
1402
+ EventStormingElement: {
1403
+ name: EventStormingElement.$type,
1404
+ properties: {
1405
+ },
1406
+ superTypes: []
1407
+ },
1408
+ ExceptionsDeclaration: {
1409
+ name: ExceptionsDeclaration.$type,
1410
+ properties: {
1411
+ exceptions: {
1412
+ name: ExceptionsDeclaration.exceptions,
1413
+ defaultValue: []
1414
+ }
1415
+ },
1416
+ superTypes: []
1417
+ },
1418
+ ExternalSystem: {
1419
+ name: ExternalSystem.$type,
1420
+ properties: {
1421
+ description: {
1422
+ name: ExternalSystem.description
1423
+ },
1424
+ name: {
1425
+ name: ExternalSystem.name
1426
+ }
1427
+ },
1428
+ superTypes: [EventStormingElement.$type]
1429
+ },
1430
+ GivenStep: {
1431
+ name: GivenStep.$type,
1432
+ properties: {
1433
+ actor: {
1434
+ name: GivenStep.actor,
1435
+ referenceType: Actor.$type
1436
+ },
1437
+ readModel: {
1438
+ name: GivenStep.readModel,
1439
+ referenceType: ReadModel.$type
1440
+ }
1441
+ },
1442
+ superTypes: []
1443
+ },
1444
+ InputDTO: {
1445
+ name: InputDTO.$type,
1446
+ properties: {
1447
+ attributes: {
1448
+ name: InputDTO.attributes,
1449
+ defaultValue: []
1450
+ }
1451
+ },
1452
+ superTypes: []
1453
+ },
1454
+ Method: {
1455
+ name: Method.$type,
1456
+ properties: {
1457
+ description: {
1458
+ name: Method.description
1459
+ },
1460
+ input: {
1461
+ name: Method.input
1462
+ },
1463
+ name: {
1464
+ name: Method.name
1465
+ }
1466
+ },
1467
+ superTypes: []
1468
+ },
1469
+ MethodInput: {
1470
+ name: MethodInput.$type,
1471
+ properties: {
1472
+ attributes: {
1473
+ name: MethodInput.attributes,
1474
+ defaultValue: []
1475
+ }
1476
+ },
1477
+ superTypes: []
1478
+ },
1479
+ MethodsDeclaration: {
1480
+ name: MethodsDeclaration.$type,
1481
+ properties: {
1482
+ methods: {
1483
+ name: MethodsDeclaration.methods,
1484
+ defaultValue: []
1485
+ }
1486
+ },
1487
+ superTypes: []
1488
+ },
1489
+ Payload: {
1490
+ name: Payload.$type,
1491
+ properties: {
1492
+ attributes: {
1493
+ name: Payload.attributes,
1494
+ defaultValue: []
1495
+ }
1496
+ },
1497
+ superTypes: []
1498
+ },
1499
+ Policy: {
1500
+ name: Policy.$type,
1501
+ properties: {
1502
+ command: {
1503
+ name: Policy.command,
1504
+ referenceType: Command.$type
1505
+ },
1506
+ description: {
1507
+ name: Policy.description
1508
+ },
1509
+ name: {
1510
+ name: Policy.name
1511
+ }
1512
+ },
1513
+ superTypes: []
1514
+ },
1515
+ PolicyTrigger: {
1516
+ name: PolicyTrigger.$type,
1517
+ properties: {
1518
+ hotspot: {
1519
+ name: PolicyTrigger.hotspot
1520
+ },
1521
+ policy: {
1522
+ name: PolicyTrigger.policy
1523
+ }
1524
+ },
1525
+ superTypes: [ReactionOutcome.$type]
1526
+ },
1527
+ Port: {
1528
+ name: Port.$type,
1529
+ properties: {
1530
+ description: {
1531
+ name: Port.description
1532
+ },
1533
+ name: {
1534
+ name: Port.name
1535
+ }
1536
+ },
1537
+ superTypes: []
1538
+ },
1539
+ PrimitiveAttribute: {
1540
+ name: PrimitiveAttribute.$type,
1541
+ properties: {
1542
+ many: {
1543
+ name: PrimitiveAttribute.many,
1544
+ defaultValue: false
1545
+ },
1546
+ name: {
1547
+ name: PrimitiveAttribute.name
1548
+ },
1549
+ optional: {
1550
+ name: PrimitiveAttribute.optional,
1551
+ defaultValue: false
1552
+ },
1553
+ type: {
1554
+ name: PrimitiveAttribute.type
1555
+ }
1556
+ },
1557
+ superTypes: []
1558
+ },
1559
+ ProcessFlow: {
1560
+ name: ProcessFlow.$type,
1561
+ properties: {
1562
+ command: {
1563
+ name: ProcessFlow.command
1564
+ },
1565
+ description: {
1566
+ name: ProcessFlow.description
1567
+ },
1568
+ given: {
1569
+ name: ProcessFlow.given
1570
+ },
1571
+ name: {
1572
+ name: ProcessFlow.name
1573
+ },
1574
+ reactions: {
1575
+ name: ProcessFlow.reactions,
1576
+ defaultValue: []
1577
+ }
1578
+ },
1579
+ superTypes: []
1580
+ },
1581
+ Projection: {
1582
+ name: Projection.$type,
1583
+ properties: {
1584
+ hotspot: {
1585
+ name: Projection.hotspot
1586
+ },
1587
+ readModel: {
1588
+ name: Projection.readModel,
1589
+ referenceType: ReadModel.$type
1590
+ }
1591
+ },
1592
+ superTypes: [ReactionOutcome.$type]
1593
+ },
1594
+ ReactionOutcome: {
1595
+ name: ReactionOutcome.$type,
1596
+ properties: {
1597
+ },
1598
+ superTypes: []
1599
+ },
1600
+ ReactionStep: {
1601
+ name: ReactionStep.$type,
1602
+ properties: {
1603
+ outcomes: {
1604
+ name: ReactionStep.outcomes,
1605
+ defaultValue: []
1606
+ },
1607
+ trigger: {
1608
+ name: ReactionStep.trigger,
1609
+ referenceType: DomainEvent.$type
1610
+ }
1611
+ },
1612
+ superTypes: []
1613
+ },
1614
+ ReadModel: {
1615
+ name: ReadModel.$type,
1616
+ properties: {
1617
+ description: {
1618
+ name: ReadModel.description
1619
+ },
1620
+ name: {
1621
+ name: ReadModel.name
1622
+ }
1623
+ },
1624
+ superTypes: [EventStormingElement.$type]
1625
+ },
1626
+ Reference: {
1627
+ name: Reference.$type,
1628
+ properties: {
1629
+ name: {
1630
+ name: Reference.name
1631
+ },
1632
+ to: {
1633
+ name: Reference.to,
1634
+ referenceType: AggregateRoot.$type
1635
+ }
1636
+ },
1637
+ superTypes: []
1638
+ },
1639
+ Relationship: {
1640
+ name: Relationship.$type,
1641
+ properties: {
1642
+ },
1643
+ superTypes: []
1644
+ },
1645
+ ResponseDTO: {
1646
+ name: ResponseDTO.$type,
1647
+ properties: {
1648
+ attributes: {
1649
+ name: ResponseDTO.attributes,
1650
+ defaultValue: []
1651
+ }
1652
+ },
1653
+ superTypes: []
1654
+ },
1655
+ SymmetricRelationship: {
1656
+ name: SymmetricRelationship.$type,
1657
+ properties: {
1658
+ description: {
1659
+ name: SymmetricRelationship.description
1660
+ },
1661
+ participant1: {
1662
+ name: SymmetricRelationship.participant1,
1663
+ referenceType: BoundedContext.$type
1664
+ },
1665
+ participant2: {
1666
+ name: SymmetricRelationship.participant2,
1667
+ referenceType: BoundedContext.$type
1668
+ },
1669
+ type: {
1670
+ name: SymmetricRelationship.type
1671
+ }
1672
+ },
1673
+ superTypes: [Relationship.$type]
1674
+ },
1675
+ Term: {
1676
+ name: Term.$type,
1677
+ properties: {
1678
+ aliases: {
1679
+ name: Term.aliases,
1680
+ defaultValue: []
1681
+ },
1682
+ definition: {
1683
+ name: Term.definition
1684
+ },
1685
+ name: {
1686
+ name: Term.name
1687
+ }
1688
+ },
1689
+ superTypes: []
1690
+ },
1691
+ UID: {
1692
+ name: UID.$type,
1693
+ properties: {
1694
+ enforcedInvariants: {
1695
+ name: UID.enforcedInvariants,
1696
+ defaultValue: []
1697
+ },
1698
+ type: {
1699
+ name: UID.type
1700
+ }
1701
+ },
1702
+ superTypes: []
1703
+ },
1704
+ UbiquitousLanguageDeclaration: {
1705
+ name: UbiquitousLanguageDeclaration.$type,
1706
+ properties: {
1707
+ terms: {
1708
+ name: UbiquitousLanguageDeclaration.terms,
1709
+ defaultValue: []
1710
+ }
1711
+ },
1712
+ superTypes: []
1713
+ },
1714
+ ValueObject: {
1715
+ name: ValueObject.$type,
1716
+ properties: {
1717
+ attributes: {
1718
+ name: ValueObject.attributes,
1719
+ defaultValue: []
1720
+ },
1721
+ description: {
1722
+ name: ValueObject.description
1723
+ },
1724
+ enforcedInvariants: {
1725
+ name: ValueObject.enforcedInvariants,
1726
+ defaultValue: []
1727
+ },
1728
+ name: {
1729
+ name: ValueObject.name
1730
+ }
1731
+ },
1732
+ superTypes: [DomainObject.$type]
1733
+ }
1734
+ } as const satisfies langium.AstMetaData
1735
+ }
1736
+
1737
+ export const reflection = new DomainDesignLanguageAstReflection();