eventmodeler 0.5.0 → 0.6.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 (150) hide show
  1. package/dist/index.js +6776 -2132
  2. package/package.json +11 -5
  3. package/dist/api/index.d.ts +0 -285
  4. package/dist/api/index.js +0 -323
  5. package/dist/cloud/slices/index.d.ts +0 -276
  6. package/dist/cloud/slices/index.js +0 -406
  7. package/dist/eventmodeler.js +0 -5646
  8. package/dist/formatters.d.ts +0 -17
  9. package/dist/formatters.js +0 -482
  10. package/dist/index.d.ts +0 -2
  11. package/dist/lib/auth.d.ts +0 -24
  12. package/dist/lib/auth.js +0 -331
  13. package/dist/lib/backend.d.ts +0 -43
  14. package/dist/lib/backend.js +0 -73
  15. package/dist/lib/chapter-utils.d.ts +0 -13
  16. package/dist/lib/chapter-utils.js +0 -71
  17. package/dist/lib/cloud-client.d.ts +0 -69
  18. package/dist/lib/cloud-client.js +0 -364
  19. package/dist/lib/config.d.ts +0 -30
  20. package/dist/lib/config.js +0 -95
  21. package/dist/lib/diff/merge-rules.d.ts +0 -45
  22. package/dist/lib/diff/merge-rules.js +0 -210
  23. package/dist/lib/diff/model-differ.d.ts +0 -8
  24. package/dist/lib/diff/model-differ.js +0 -568
  25. package/dist/lib/diff/three-way-merge.d.ts +0 -7
  26. package/dist/lib/diff/three-way-merge.js +0 -390
  27. package/dist/lib/diff/types.d.ts +0 -75
  28. package/dist/lib/diff/types.js +0 -1
  29. package/dist/lib/element-lookup.d.ts +0 -58
  30. package/dist/lib/element-lookup.js +0 -126
  31. package/dist/lib/file-loader.d.ts +0 -8
  32. package/dist/lib/file-loader.js +0 -108
  33. package/dist/lib/flow-utils.d.ts +0 -53
  34. package/dist/lib/flow-utils.js +0 -348
  35. package/dist/lib/format.d.ts +0 -10
  36. package/dist/lib/format.js +0 -23
  37. package/dist/lib/project-config.d.ts +0 -27
  38. package/dist/lib/project-config.js +0 -83
  39. package/dist/lib/slice-utils.d.ts +0 -59
  40. package/dist/lib/slice-utils.js +0 -140
  41. package/dist/local/slices/index.d.ts +0 -11
  42. package/dist/local/slices/index.js +0 -13
  43. package/dist/projection.d.ts +0 -3
  44. package/dist/projection.js +0 -828
  45. package/dist/slices/add-field/index.d.ts +0 -8
  46. package/dist/slices/add-field/index.js +0 -211
  47. package/dist/slices/add-scenario/index.d.ts +0 -27
  48. package/dist/slices/add-scenario/index.js +0 -307
  49. package/dist/slices/codegen-chapter-events/index.d.ts +0 -2
  50. package/dist/slices/codegen-chapter-events/index.js +0 -145
  51. package/dist/slices/codegen-slice/index.d.ts +0 -2
  52. package/dist/slices/codegen-slice/index.js +0 -448
  53. package/dist/slices/create-automation-slice/index.d.ts +0 -2
  54. package/dist/slices/create-automation-slice/index.js +0 -304
  55. package/dist/slices/create-flow/index.d.ts +0 -2
  56. package/dist/slices/create-flow/index.js +0 -183
  57. package/dist/slices/create-state-change-slice/index.d.ts +0 -2
  58. package/dist/slices/create-state-change-slice/index.js +0 -263
  59. package/dist/slices/create-state-view-slice/index.d.ts +0 -2
  60. package/dist/slices/create-state-view-slice/index.js +0 -128
  61. package/dist/slices/diff/index.d.ts +0 -11
  62. package/dist/slices/diff/index.js +0 -293
  63. package/dist/slices/export-eventmodel-to-json/index.d.ts +0 -2
  64. package/dist/slices/export-eventmodel-to-json/index.js +0 -355
  65. package/dist/slices/git/index.d.ts +0 -2
  66. package/dist/slices/git/index.js +0 -125
  67. package/dist/slices/guide/guides/codegen.d.ts +0 -5
  68. package/dist/slices/guide/guides/codegen.js +0 -339
  69. package/dist/slices/guide/guides/connect-slices.d.ts +0 -5
  70. package/dist/slices/guide/guides/connect-slices.js +0 -202
  71. package/dist/slices/guide/guides/create-slices.d.ts +0 -5
  72. package/dist/slices/guide/guides/create-slices.js +0 -303
  73. package/dist/slices/guide/guides/explore.d.ts +0 -5
  74. package/dist/slices/guide/guides/explore.js +0 -251
  75. package/dist/slices/guide/guides/information-flow.d.ts +0 -5
  76. package/dist/slices/guide/guides/information-flow.js +0 -318
  77. package/dist/slices/guide/guides/scenarios.d.ts +0 -5
  78. package/dist/slices/guide/guides/scenarios.js +0 -269
  79. package/dist/slices/guide/index.d.ts +0 -1
  80. package/dist/slices/guide/index.js +0 -40
  81. package/dist/slices/import/index.d.ts +0 -8
  82. package/dist/slices/import/index.js +0 -63
  83. package/dist/slices/init/index.d.ts +0 -5
  84. package/dist/slices/init/index.js +0 -80
  85. package/dist/slices/list-chapters/index.d.ts +0 -3
  86. package/dist/slices/list-chapters/index.js +0 -21
  87. package/dist/slices/list-commands/index.d.ts +0 -3
  88. package/dist/slices/list-commands/index.js +0 -20
  89. package/dist/slices/list-events/index.d.ts +0 -3
  90. package/dist/slices/list-events/index.js +0 -98
  91. package/dist/slices/list-processors/index.d.ts +0 -3
  92. package/dist/slices/list-processors/index.js +0 -20
  93. package/dist/slices/list-readmodels/index.d.ts +0 -3
  94. package/dist/slices/list-readmodels/index.js +0 -21
  95. package/dist/slices/list-scenarios/index.d.ts +0 -3
  96. package/dist/slices/list-scenarios/index.js +0 -35
  97. package/dist/slices/list-screens/index.d.ts +0 -3
  98. package/dist/slices/list-screens/index.js +0 -47
  99. package/dist/slices/list-slices/index.d.ts +0 -3
  100. package/dist/slices/list-slices/index.js +0 -35
  101. package/dist/slices/login/index.d.ts +0 -1
  102. package/dist/slices/login/index.js +0 -20
  103. package/dist/slices/logout/index.d.ts +0 -1
  104. package/dist/slices/logout/index.js +0 -14
  105. package/dist/slices/map-fields/index.d.ts +0 -2
  106. package/dist/slices/map-fields/index.js +0 -269
  107. package/dist/slices/mark-slice-status/index.d.ts +0 -2
  108. package/dist/slices/mark-slice-status/index.js +0 -31
  109. package/dist/slices/merge/index.d.ts +0 -19
  110. package/dist/slices/merge/index.js +0 -147
  111. package/dist/slices/open-app/index.d.ts +0 -1
  112. package/dist/slices/open-app/index.js +0 -36
  113. package/dist/slices/remove-field/index.d.ts +0 -8
  114. package/dist/slices/remove-field/index.js +0 -167
  115. package/dist/slices/remove-scenario/index.d.ts +0 -2
  116. package/dist/slices/remove-scenario/index.js +0 -77
  117. package/dist/slices/search/index.d.ts +0 -3
  118. package/dist/slices/search/index.js +0 -302
  119. package/dist/slices/show-actor/index.d.ts +0 -4
  120. package/dist/slices/show-actor/index.js +0 -115
  121. package/dist/slices/show-aggregate/index.d.ts +0 -3
  122. package/dist/slices/show-aggregate/index.js +0 -108
  123. package/dist/slices/show-aggregate-completeness/index.d.ts +0 -4
  124. package/dist/slices/show-aggregate-completeness/index.js +0 -181
  125. package/dist/slices/show-chapter/index.d.ts +0 -3
  126. package/dist/slices/show-chapter/index.js +0 -195
  127. package/dist/slices/show-command/index.d.ts +0 -3
  128. package/dist/slices/show-command/index.js +0 -133
  129. package/dist/slices/show-completeness/index.d.ts +0 -4
  130. package/dist/slices/show-completeness/index.js +0 -731
  131. package/dist/slices/show-event/index.d.ts +0 -3
  132. package/dist/slices/show-event/index.js +0 -118
  133. package/dist/slices/show-model-summary/index.d.ts +0 -3
  134. package/dist/slices/show-model-summary/index.js +0 -31
  135. package/dist/slices/show-processor/index.d.ts +0 -3
  136. package/dist/slices/show-processor/index.js +0 -111
  137. package/dist/slices/show-readmodel/index.d.ts +0 -3
  138. package/dist/slices/show-readmodel/index.js +0 -158
  139. package/dist/slices/show-scenario/index.d.ts +0 -3
  140. package/dist/slices/show-scenario/index.js +0 -196
  141. package/dist/slices/show-screen/index.d.ts +0 -3
  142. package/dist/slices/show-screen/index.js +0 -139
  143. package/dist/slices/show-slice/index.d.ts +0 -3
  144. package/dist/slices/show-slice/index.js +0 -696
  145. package/dist/slices/update-field/index.d.ts +0 -15
  146. package/dist/slices/update-field/index.js +0 -208
  147. package/dist/slices/whoami/index.d.ts +0 -2
  148. package/dist/slices/whoami/index.js +0 -44
  149. package/dist/types.d.ts +0 -195
  150. package/dist/types.js +0 -1
@@ -1,263 +0,0 @@
1
- import { appendEvent } from '../../lib/file-loader.js';
2
- import { STATE_CHANGE_SLICE, SLICE_GAP, calculateSlicePosition, validateSliceNameUnique, inferFieldMappings, parseFieldsFromXml, getSlicesToShift, fieldInputToField, } from '../../lib/slice-utils.js';
3
- function getAttr(attrs, name) {
4
- const match = attrs.match(new RegExp(`${name}="([^"]*)"`));
5
- return match ? match[1] : undefined;
6
- }
7
- function parseXmlInput(xml) {
8
- // Parse <state-change-slice name="..." after="..." before="...">
9
- const sliceMatch = xml.match(/<state-change-slice([^>]*)>/);
10
- if (!sliceMatch) {
11
- throw new Error('Invalid XML: missing <state-change-slice> tag');
12
- }
13
- const sliceName = getAttr(sliceMatch[1], 'name');
14
- if (!sliceName) {
15
- throw new Error('Invalid XML: state-change-slice must have a name attribute');
16
- }
17
- const after = getAttr(sliceMatch[1], 'after');
18
- const before = getAttr(sliceMatch[1], 'before');
19
- // Parse screen
20
- const screenMatch = xml.match(/<screen([^>]*)>([\s\S]*?)<\/screen>/);
21
- if (!screenMatch) {
22
- throw new Error('Invalid XML: missing <screen> element');
23
- }
24
- const screenName = getAttr(screenMatch[1], 'name');
25
- if (!screenName) {
26
- throw new Error('Invalid XML: screen must have a name attribute');
27
- }
28
- const screenFields = parseFieldsFromXml(screenMatch[2]);
29
- // Parse command
30
- const commandMatch = xml.match(/<command([^>]*)>([\s\S]*?)<\/command>/);
31
- if (!commandMatch) {
32
- throw new Error('Invalid XML: missing <command> element');
33
- }
34
- const commandName = getAttr(commandMatch[1], 'name');
35
- if (!commandName) {
36
- throw new Error('Invalid XML: command must have a name attribute');
37
- }
38
- const commandFields = parseFieldsFromXml(commandMatch[2]);
39
- // Parse event
40
- const eventMatch = xml.match(/<event([^>]*)>([\s\S]*?)<\/event>/);
41
- if (!eventMatch) {
42
- throw new Error('Invalid XML: missing <event> element');
43
- }
44
- const eventName = getAttr(eventMatch[1], 'name');
45
- if (!eventName) {
46
- throw new Error('Invalid XML: event must have a name attribute');
47
- }
48
- const eventFields = parseFieldsFromXml(eventMatch[2]);
49
- return {
50
- sliceName,
51
- after,
52
- before,
53
- screen: { name: screenName, fields: screenFields },
54
- command: { name: commandName, fields: commandFields },
55
- event: { name: eventName, fields: eventFields },
56
- };
57
- }
58
- export function createStateChangeSlice(model, filePath, xmlInput) {
59
- // Parse input
60
- let input;
61
- try {
62
- input = parseXmlInput(xmlInput);
63
- }
64
- catch (err) {
65
- console.error(`Error: ${err.message}`);
66
- process.exit(1);
67
- }
68
- // Validate slice name is unique
69
- try {
70
- validateSliceNameUnique(model, input.sliceName);
71
- }
72
- catch (err) {
73
- console.error(`Error: ${err.message}`);
74
- process.exit(1);
75
- }
76
- // Calculate position
77
- let slicePosition;
78
- try {
79
- slicePosition = calculateSlicePosition(model, STATE_CHANGE_SLICE.width, {
80
- after: input.after,
81
- before: input.before,
82
- });
83
- }
84
- catch (err) {
85
- console.error(`Error: ${err.message}`);
86
- process.exit(1);
87
- }
88
- // Handle "before" positioning - shift existing slices
89
- if (input.before) {
90
- const shiftAmount = STATE_CHANGE_SLICE.width + SLICE_GAP;
91
- const toShift = getSlicesToShift(model, slicePosition.x, shiftAmount);
92
- for (const { sliceId, newX, currentY } of toShift) {
93
- appendEvent(filePath, {
94
- type: 'SliceMoved',
95
- data: {
96
- sliceId,
97
- position: { x: newX, y: currentY },
98
- timestamp: Date.now(),
99
- },
100
- });
101
- }
102
- }
103
- // Generate IDs
104
- const sliceId = crypto.randomUUID();
105
- const screenId = crypto.randomUUID();
106
- const commandId = crypto.randomUUID();
107
- const eventId = crypto.randomUUID();
108
- const screenToCommandFlowId = crypto.randomUUID();
109
- const commandToEventFlowId = crypto.randomUUID();
110
- // Convert field inputs to fields with IDs
111
- const screenFields = input.screen.fields.map(fieldInputToField);
112
- const commandFields = input.command.fields.map(fieldInputToField);
113
- const eventFields = input.event.fields.map(fieldInputToField);
114
- // Infer field mappings
115
- const screenToCommandMappings = inferFieldMappings(screenFields, commandFields);
116
- const commandToEventMappings = inferFieldMappings(commandFields, eventFields);
117
- // Calculate absolute positions for components within the slice
118
- const screenPosition = {
119
- x: slicePosition.x + STATE_CHANGE_SLICE.screen.offsetX,
120
- y: slicePosition.y + STATE_CHANGE_SLICE.screen.offsetY,
121
- };
122
- const commandPosition = {
123
- x: slicePosition.x + STATE_CHANGE_SLICE.command.offsetX,
124
- y: slicePosition.y + STATE_CHANGE_SLICE.command.offsetY,
125
- };
126
- const eventPosition = {
127
- x: slicePosition.x + STATE_CHANGE_SLICE.event.offsetX,
128
- y: slicePosition.y + STATE_CHANGE_SLICE.event.offsetY,
129
- };
130
- // Emit atomic events in sequence
131
- // 1. Create the slice
132
- appendEvent(filePath, {
133
- type: 'SlicePlaced',
134
- data: {
135
- sliceId,
136
- name: input.sliceName,
137
- position: slicePosition,
138
- size: { width: STATE_CHANGE_SLICE.width, height: STATE_CHANGE_SLICE.height },
139
- timestamp: Date.now(),
140
- },
141
- });
142
- // 2. Create the screen
143
- appendEvent(filePath, {
144
- type: 'ScreenPlaced',
145
- data: {
146
- screenId,
147
- name: input.screen.name,
148
- position: screenPosition,
149
- width: STATE_CHANGE_SLICE.screen.width,
150
- height: STATE_CHANGE_SLICE.screen.height,
151
- timestamp: Date.now(),
152
- },
153
- });
154
- // 3. Add screen fields
155
- for (const field of screenFields) {
156
- appendEvent(filePath, {
157
- type: 'ScreenFieldAdded',
158
- data: {
159
- screenId,
160
- field,
161
- timestamp: Date.now(),
162
- },
163
- });
164
- }
165
- // 4. Create the command
166
- appendEvent(filePath, {
167
- type: 'CommandStickyPlaced',
168
- data: {
169
- commandStickyId: commandId,
170
- name: input.command.name,
171
- position: commandPosition,
172
- width: STATE_CHANGE_SLICE.command.width,
173
- height: STATE_CHANGE_SLICE.command.height,
174
- timestamp: Date.now(),
175
- },
176
- });
177
- // 5. Add command fields
178
- for (const field of commandFields) {
179
- appendEvent(filePath, {
180
- type: 'CommandFieldAdded',
181
- data: {
182
- commandStickyId: commandId,
183
- field,
184
- timestamp: Date.now(),
185
- },
186
- });
187
- }
188
- // 6. Create the event
189
- appendEvent(filePath, {
190
- type: 'EventStickyPlaced',
191
- data: {
192
- eventStickyId: eventId,
193
- name: input.event.name,
194
- position: eventPosition,
195
- width: STATE_CHANGE_SLICE.event.width,
196
- height: STATE_CHANGE_SLICE.event.height,
197
- timestamp: Date.now(),
198
- },
199
- });
200
- // 7. Add event fields
201
- for (const field of eventFields) {
202
- appendEvent(filePath, {
203
- type: 'EventFieldAdded',
204
- data: {
205
- eventStickyId: eventId,
206
- field,
207
- timestamp: Date.now(),
208
- },
209
- });
210
- }
211
- // 8. Create screen -> command flow
212
- appendEvent(filePath, {
213
- type: 'ScreenToCommandFlowSpecified',
214
- data: {
215
- flowId: screenToCommandFlowId,
216
- screenId,
217
- commandStickyId: commandId,
218
- sourceHandle: 'bottom-source',
219
- targetHandle: 'top-target',
220
- timestamp: Date.now(),
221
- },
222
- });
223
- // 9. Add screen -> command field mappings
224
- if (screenToCommandMappings.length > 0) {
225
- appendEvent(filePath, {
226
- type: 'FieldMappingSpecified',
227
- data: {
228
- flowId: screenToCommandFlowId,
229
- mappings: screenToCommandMappings,
230
- timestamp: Date.now(),
231
- },
232
- });
233
- }
234
- // 10. Create command -> event flow
235
- appendEvent(filePath, {
236
- type: 'CommandToEventFlowSpecified',
237
- data: {
238
- flowId: commandToEventFlowId,
239
- commandStickyId: commandId,
240
- eventStickyId: eventId,
241
- sourceHandle: 'bottom-source',
242
- targetHandle: 'top-target',
243
- timestamp: Date.now(),
244
- },
245
- });
246
- // 11. Add command -> event field mappings
247
- if (commandToEventMappings.length > 0) {
248
- appendEvent(filePath, {
249
- type: 'FieldMappingSpecified',
250
- data: {
251
- flowId: commandToEventFlowId,
252
- mappings: commandToEventMappings,
253
- timestamp: Date.now(),
254
- },
255
- });
256
- }
257
- console.log(`Created state-change slice "${input.sliceName}"`);
258
- console.log(` Screen: ${input.screen.name} (${screenFields.length} fields)`);
259
- console.log(` Command: ${input.command.name} (${commandFields.length} fields)`);
260
- console.log(` Event: ${input.event.name} (${eventFields.length} fields)`);
261
- console.log(` Screen -> Command mappings: ${screenToCommandMappings.length}`);
262
- console.log(` Command -> Event mappings: ${commandToEventMappings.length}`);
263
- }
@@ -1,2 +0,0 @@
1
- import type { EventModel } from '../../types.js';
2
- export declare function createStateViewSlice(model: EventModel, filePath: string, xmlInput: string): void;
@@ -1,128 +0,0 @@
1
- import { appendEvent } from '../../lib/file-loader.js';
2
- import { STATE_VIEW_SLICE, SLICE_GAP, calculateSlicePosition, validateSliceNameUnique, parseFieldsFromXml, getSlicesToShift, fieldInputToField, } from '../../lib/slice-utils.js';
3
- function getAttr(attrs, name) {
4
- const match = attrs.match(new RegExp(`${name}="([^"]*)"`));
5
- return match ? match[1] : undefined;
6
- }
7
- function parseXmlInput(xml) {
8
- // Parse <state-view-slice name="..." after="..." before="...">
9
- const sliceMatch = xml.match(/<state-view-slice([^>]*)>/);
10
- if (!sliceMatch) {
11
- throw new Error('Invalid XML: missing <state-view-slice> tag');
12
- }
13
- const sliceName = getAttr(sliceMatch[1], 'name');
14
- if (!sliceName) {
15
- throw new Error('Invalid XML: state-view-slice must have a name attribute');
16
- }
17
- const after = getAttr(sliceMatch[1], 'after');
18
- const before = getAttr(sliceMatch[1], 'before');
19
- // Parse read-model
20
- const readModelMatch = xml.match(/<read-model([^>]*)>([\s\S]*?)<\/read-model>/);
21
- if (!readModelMatch) {
22
- throw new Error('Invalid XML: missing <read-model> element');
23
- }
24
- const readModelName = getAttr(readModelMatch[1], 'name');
25
- if (!readModelName) {
26
- throw new Error('Invalid XML: read-model must have a name attribute');
27
- }
28
- const readModelFields = parseFieldsFromXml(readModelMatch[2]);
29
- return {
30
- sliceName,
31
- after,
32
- before,
33
- readModel: { name: readModelName, fields: readModelFields },
34
- };
35
- }
36
- export function createStateViewSlice(model, filePath, xmlInput) {
37
- // Parse input
38
- let input;
39
- try {
40
- input = parseXmlInput(xmlInput);
41
- }
42
- catch (err) {
43
- console.error(`Error: ${err.message}`);
44
- process.exit(1);
45
- }
46
- // Validate slice name is unique
47
- try {
48
- validateSliceNameUnique(model, input.sliceName);
49
- }
50
- catch (err) {
51
- console.error(`Error: ${err.message}`);
52
- process.exit(1);
53
- }
54
- // Calculate position
55
- let slicePosition;
56
- try {
57
- slicePosition = calculateSlicePosition(model, STATE_VIEW_SLICE.width, {
58
- after: input.after,
59
- before: input.before,
60
- });
61
- }
62
- catch (err) {
63
- console.error(`Error: ${err.message}`);
64
- process.exit(1);
65
- }
66
- // Handle "before" positioning - shift existing slices
67
- if (input.before) {
68
- const shiftAmount = STATE_VIEW_SLICE.width + SLICE_GAP;
69
- const toShift = getSlicesToShift(model, slicePosition.x, shiftAmount);
70
- for (const { sliceId, newX, currentY } of toShift) {
71
- appendEvent(filePath, {
72
- type: 'SliceMoved',
73
- data: {
74
- sliceId,
75
- position: { x: newX, y: currentY },
76
- timestamp: Date.now(),
77
- },
78
- });
79
- }
80
- }
81
- // Generate IDs
82
- const sliceId = crypto.randomUUID();
83
- const readModelId = crypto.randomUUID();
84
- // Convert field inputs to fields with IDs
85
- const readModelFields = input.readModel.fields.map(fieldInputToField);
86
- // Calculate absolute position for read model within the slice
87
- const readModelPosition = {
88
- x: slicePosition.x + STATE_VIEW_SLICE.readModel.offsetX,
89
- y: slicePosition.y + STATE_VIEW_SLICE.readModel.offsetY,
90
- };
91
- // Emit atomic events in sequence
92
- // 1. Create the slice
93
- appendEvent(filePath, {
94
- type: 'SlicePlaced',
95
- data: {
96
- sliceId,
97
- name: input.sliceName,
98
- position: slicePosition,
99
- size: { width: STATE_VIEW_SLICE.width, height: STATE_VIEW_SLICE.height },
100
- timestamp: Date.now(),
101
- },
102
- });
103
- // 2. Create the read model
104
- appendEvent(filePath, {
105
- type: 'ReadModelStickyPlaced',
106
- data: {
107
- readModelStickyId: readModelId,
108
- name: input.readModel.name,
109
- position: readModelPosition,
110
- width: STATE_VIEW_SLICE.readModel.width,
111
- height: STATE_VIEW_SLICE.readModel.height,
112
- timestamp: Date.now(),
113
- },
114
- });
115
- // 3. Add read model fields
116
- for (const field of readModelFields) {
117
- appendEvent(filePath, {
118
- type: 'ReadModelFieldAdded',
119
- data: {
120
- readModelStickyId: readModelId,
121
- field,
122
- timestamp: Date.now(),
123
- },
124
- });
125
- }
126
- console.log(`Created state-view slice "${input.sliceName}"`);
127
- console.log(` ReadModel: ${input.readModel.name} (${readModelFields.length} fields)`);
128
- }
@@ -1,11 +0,0 @@
1
- import type { OutputFormat } from '../../lib/format.js';
2
- type DiffOutputFormat = OutputFormat | 'text';
3
- /**
4
- * Diff two eventmodel files or compare a file against a git ref.
5
- *
6
- * Usage:
7
- * diff(file1, file2, format) - Compare two files
8
- * diff(file1, undefined, format, ref) - Compare file against git ref (default: HEAD)
9
- */
10
- export declare function diff(basePath: string, comparePath: string | undefined, format: DiffOutputFormat, gitRef?: string): void;
11
- export {};