@reventlessdev/reventless-core 3.0.0-alpha.169 → 3.0.0-alpha.171

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 (110) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/package.json +16 -16
  3. package/src/admin/Platform_Admin.res +5 -2
  4. package/src/admin/Platform_Admin.res.mjs +4 -4
  5. package/src/components/Aggregate/Aggregate.res +5 -1
  6. package/src/components/Aggregate/Aggregate_Builder.res +21 -6
  7. package/src/components/Aggregate/Aggregate_Builder.res.mjs +10 -7
  8. package/src/components/AutomationSlice/AutomationSlice.res +1 -0
  9. package/src/components/AutomationSlice/AutomationSlice_Builder.res +13 -2
  10. package/src/components/AutomationSlice/AutomationSlice_Builder.res.mjs +5 -2
  11. package/src/components/Builder_Helpers.res +16 -2
  12. package/src/components/Builder_Helpers.res.mjs +6 -6
  13. package/src/components/Dcb/Dcb_Builder.res +46 -4
  14. package/src/components/Dcb/Dcb_Builder.res.mjs +13 -9
  15. package/src/components/ExtensionPoint/ExtensionPoint.res +2 -0
  16. package/src/components/ExtensionPoint/ExtensionPoint_Builder.res +10 -0
  17. package/src/components/ExtensionPoint/ExtensionPoint_Builder.res.mjs +6 -4
  18. package/src/components/InboundTranslationSlice/InboundTranslationSlice.res +1 -0
  19. package/src/components/InboundTranslationSlice/InboundTranslationSlice_Builder.res +8 -1
  20. package/src/components/InboundTranslationSlice/InboundTranslationSlice_Builder.res.mjs +1 -1
  21. package/src/components/OutboundTranslationSlice/OutboundTranslationSlice.res +1 -0
  22. package/src/components/OutboundTranslationSlice/OutboundTranslationSlice_Builder.res +12 -3
  23. package/src/components/OutboundTranslationSlice/OutboundTranslationSlice_Builder.res.mjs +5 -2
  24. package/src/components/ReadModel/ReadModel.res +1 -0
  25. package/src/components/ReadModel/ReadModel_Builder.res +9 -1
  26. package/src/components/ReadModel/ReadModel_Builder.res.mjs +5 -2
  27. package/src/components/StateChangeSlice/StateChangeSlice.res +1 -0
  28. package/src/components/StateChangeSlice/StateChangeSlice_Builder.res +6 -0
  29. package/src/components/StateChangeSlice/StateChangeSlice_Builder.res.mjs +1 -1
  30. package/src/components/StateViewSlice/StateViewSlice.res +1 -0
  31. package/src/components/StateViewSlice/StateViewSlice_Builder.res +11 -3
  32. package/src/components/StateViewSlice/StateViewSlice_Builder.res.mjs +5 -2
  33. package/src/components/Task/Task.res +1 -0
  34. package/src/components/Task/Task_Builder.res +11 -2
  35. package/src/components/Task/Task_Builder.res.mjs +7 -4
  36. package/src/plugin/component/Plugin.res +5 -0
  37. package/src/plugin/component/Plugin_Builder.res +10 -2
  38. package/src/plugin/component/Plugin_Builder.res.mjs +7 -6
  39. package/src/plugin/component/Plugin_Helpers.res +2 -0
  40. package/src/plugin/component/Plugin_Helpers.res.mjs +2 -2
  41. package/src/plugin/connect/PluginExtensionPoint_Builder.res +2 -0
  42. package/src/plugin/connect/PluginExtensionPoint_Builder.res.mjs +3 -3
  43. package/tests/plugin/ManifestVisibilityTest.res +2 -2
  44. package/tests/plugin/PluginStructureTest.res +6 -6
  45. package/tests/IdentityTest.res.mjs +0 -174
  46. package/tests/adapter/MonitoringTest.res.mjs +0 -82
  47. package/tests/admin/Platform_ComponentDefinitionsApiTest.res.mjs +0 -356
  48. package/tests/admin/Platform_UIFragmentsApiTest.res.mjs +0 -101
  49. package/tests/aggregate/AggregateCacheTest.res.mjs +0 -433
  50. package/tests/aggregate/AggregateCallbackTest.res.mjs +0 -143
  51. package/tests/aggregate/AggregateCausationTest.res.mjs +0 -47
  52. package/tests/aggregate/AggregateConflictTest.res.mjs +0 -386
  53. package/tests/aggregate/AggregateFixtures.res.mjs +0 -308
  54. package/tests/aggregate/AggregateRejectionTest.res.mjs +0 -166
  55. package/tests/aggregate/AggregateSnapshotTest.res.mjs +0 -645
  56. package/tests/api/ApiNoApiTest.res.mjs +0 -90
  57. package/tests/api/GraphQL_StitcherTest.res.mjs +0 -112
  58. package/tests/api/SimpleTest.res.mjs +0 -10
  59. package/tests/api/SuryToJsonSchemaTest.res.mjs +0 -674
  60. package/tests/commandgenerator/CommandGeneratorCallbackTest.res.mjs +0 -160
  61. package/tests/commandgenerator/CommandGeneratorFixtures.res.mjs +0 -197
  62. package/tests/commandtopic/CommandTopicCallbackFixtures.res.mjs +0 -152
  63. package/tests/commandtopic/CommandTopicCallbackTest.res.mjs +0 -106
  64. package/tests/commandtopic/CommandTopicHelpersRejectionTest.res.mjs +0 -109
  65. package/tests/counter/CounterCallbackTest.res.mjs +0 -140
  66. package/tests/counter/CounterFixtures.res.mjs +0 -67
  67. package/tests/dcb/DcbDecodeTest.res.mjs +0 -194
  68. package/tests/dcb/DcbEventLogOperationsTest.res.mjs +0 -268
  69. package/tests/dcb/DcbFixtures.res.mjs +0 -534
  70. package/tests/dcb/DcbScopeInferenceTest.res.mjs +0 -480
  71. package/tests/dcb/DcbStateChangeSliceTest.res.mjs +0 -540
  72. package/tests/dcb/DcbTagTest.res.mjs +0 -867
  73. package/tests/dcb/DcbValidationTest.res.mjs +0 -476
  74. package/tests/eventlog/EventLogFixtures.res.mjs +0 -196
  75. package/tests/eventlog/EventLogOperationsTest.res.mjs +0 -192
  76. package/tests/eventlog/EventLogRetryTest.res.mjs +0 -195
  77. package/tests/eventmapper/EventMapperCallbackTest.res.mjs +0 -141
  78. package/tests/eventmapper/EventMapperFixtures.res.mjs +0 -440
  79. package/tests/eventmapper/EventMapperTest.res.mjs +0 -83
  80. package/tests/eventtopic/EventTopicFixtures.res.mjs +0 -65
  81. package/tests/eventtopic/EventTopicOperationsTest.res.mjs +0 -71
  82. package/tests/extensionpoint/ExtensionPointCallbackTest.res.mjs +0 -94
  83. package/tests/extensionpoint/ExtensionPointFixtures.res.mjs +0 -205
  84. package/tests/extensionpoint/ExtensionPointOperationsTest.res.mjs +0 -304
  85. package/tests/ftp/FTPTest.res.mjs +0 -88
  86. package/tests/logger/LogFormatTest.res.mjs +0 -309
  87. package/tests/logger/LoggerLazyTest.res.mjs +0 -40
  88. package/tests/message/MessageTest.res.mjs +0 -218
  89. package/tests/message/MetaEnvelopeTest.res.mjs +0 -188
  90. package/tests/plugin/ManifestVisibilityTest.res.mjs +0 -215
  91. package/tests/plugin/PluginSpecExperiment.res.mjs +0 -31
  92. package/tests/plugin/PluginStructureTest.res.mjs +0 -419
  93. package/tests/plugin/PluginVersionTest.res.mjs +0 -30
  94. package/tests/plugin/SchemaWalkerTest.res.mjs +0 -160
  95. package/tests/plugin/StateChangeSlice/PsPlaceOrder.res.mjs +0 -62
  96. package/tests/plugin/StateChangeSlice/PsShipOrder.res.mjs +0 -69
  97. package/tests/plugin/StateViewSlice/PsAnnotatedView.res.mjs +0 -95
  98. package/tests/plugin/StateViewSlice/PsAvailableProductsView.res.mjs +0 -69
  99. package/tests/plugin/StateViewSlice/PsCustomersView.res.mjs +0 -69
  100. package/tests/plugin/StateViewSlice/PsOrdersView.res.mjs +0 -81
  101. package/tests/poc/StructuralSubtypingPoc.res.mjs +0 -61
  102. package/tests/projection/ProjectionOptimizeTest.res.mjs +0 -75
  103. package/tests/querydb/QueryDbFixtures.res.mjs +0 -135
  104. package/tests/querydb/QueryDbOperationsTest.res.mjs +0 -168
  105. package/tests/sideeffecthandler/SideEffectHandlerCallbackTest.res.mjs +0 -77
  106. package/tests/sideeffecthandler/SideEffectHandlerFixtures.res.mjs +0 -139
  107. package/tests/util/CommandPublisherTest.res.mjs +0 -78
  108. package/tests/util/CsvStreamTest.res.mjs +0 -51
  109. package/tests/util/LruTest.res.mjs +0 -105
  110. package/tests/util/MetricsTest.res.mjs +0 -53
@@ -1,268 +0,0 @@
1
- // Generated by ReScript, PLEASE EDIT WITH CARE
2
-
3
- import * as S from "sury/src/S.res.mjs";
4
- import * as Stdlib_JSON from "@rescript/runtime/lib/es6/Stdlib_JSON.js";
5
- import * as Stdlib_Option from "@rescript/runtime/lib/es6/Stdlib_Option.js";
6
- import * as Stdlib_Result from "@rescript/runtime/lib/es6/Stdlib_Result.js";
7
- import * as DcbTag$Reventless from "@reventlessdev/reventless-spec/src/components/DcbTag.res.mjs";
8
- import * as Message$ReventlessCore from "../../src/Message.res.mjs";
9
- import * as DcbFixtures$ReventlessCore from "./DcbFixtures.res.mjs";
10
- import * as DcbEventLog_Operations$ReventlessCore from "../../src/components/DcbEventLog/DcbEventLog_Operations.res.mjs";
11
-
12
- let mock = DcbFixtures$ReventlessCore.makeMockStorage();
13
-
14
- let storage = mock.operations;
15
-
16
- let publishJson = mock.mockPublishJson;
17
-
18
- let TestOps = {
19
- name: "TestDcbEventLog",
20
- serviceName: "TestDcbEventLog",
21
- storage: storage,
22
- publishJson: publishJson
23
- };
24
-
25
- let Ops = DcbEventLog_Operations$ReventlessCore.Make(TestOps);
26
-
27
- let storage$1 = mock.operations;
28
-
29
- let publishJson$1 = mock.mockPublishJson;
30
-
31
- let TestOpsAlt = {
32
- name: "Catalog",
33
- serviceName: "CatalogDcbEventLog",
34
- storage: storage$1,
35
- publishJson: publishJson$1
36
- };
37
-
38
- let OpsAlt = DcbEventLog_Operations$ReventlessCore.Make(TestOpsAlt);
39
-
40
- globalThis.beforeEach(() => mock.reset());
41
-
42
- function encodeEvent(event) {
43
- let json = S.reverseConvertToJsonOrThrow(event, DcbFixtures$ReventlessCore.TestEventLogSpec.eventSchema);
44
- let match = Message$ReventlessCore.splitMessage(json);
45
- let tags = DcbTag$Reventless.extractTags(DcbFixtures$ReventlessCore.TestEventLogSpec.eventSchema, event);
46
- let meta = Message$ReventlessCore.generateMeta("test", undefined, undefined, undefined, undefined, undefined, undefined, undefined);
47
- return {
48
- eventType: match[0],
49
- data: match[1],
50
- tags: tags,
51
- meta: meta
52
- };
53
- }
54
-
55
- function decodeEvent(raw) {
56
- let json = Message$ReventlessCore.combineMessage(raw.eventType, Stdlib_Option.getOr(Stdlib_JSON.Decode.object(raw.data), {}));
57
- return S.parseJsonOrThrow(json, DcbFixtures$ReventlessCore.TestEventLogSpec.eventSchema);
58
- }
59
-
60
- globalThis.describe("DcbEventLog_Operations:", () => {
61
- globalThis.describe("round-trip (append then read)", () => {
62
- globalThis.test("ItemCreated preserves through round-trip", async () => {
63
- let event = {
64
- TAG: "ItemCreated",
65
- itemId: "item-1",
66
- name: "Test"
67
- };
68
- let rawEvent = encodeEvent(event);
69
- await Ops.append([rawEvent], undefined);
70
- let result = await Ops.read([{}], undefined);
71
- globalThis.expect([
72
- result.events.length,
73
- Stdlib_Option.map(result.events[0], decodeEvent)
74
- ]).toEqual([
75
- 1,
76
- event
77
- ]);
78
- });
79
- globalThis.test("CountUpdated with int tag preserves through round-trip", async () => {
80
- let event = {
81
- TAG: "CountUpdated",
82
- category: "electronics",
83
- amount: 42
84
- };
85
- let rawEvent = encodeEvent(event);
86
- await Ops.append([rawEvent], undefined);
87
- let result = await Ops.read([{}], undefined);
88
- globalThis.expect(Stdlib_Option.map(result.events[0], decodeEvent)).toEqual(event);
89
- });
90
- globalThis.test("multiple events in single append all read back", async () => {
91
- let events = [
92
- {
93
- TAG: "ItemCreated",
94
- itemId: "item-1",
95
- name: "First"
96
- },
97
- {
98
- TAG: "ItemRenamed",
99
- itemId: "item-1",
100
- newName: "Second"
101
- }
102
- ];
103
- let rawEvents = events.map(encodeEvent);
104
- await Ops.append(rawEvents, undefined);
105
- let result = await Ops.read([{}], undefined);
106
- globalThis.expect([
107
- result.events.length,
108
- result.events.map(decodeEvent)
109
- ]).toEqual([
110
- 2,
111
- events
112
- ]);
113
- });
114
- });
115
- globalThis.describe("append", () => {
116
- globalThis.test("stores events and publishes to event topic", async () => {
117
- let result = await Ops.append([encodeEvent({
118
- TAG: "ItemCreated",
119
- itemId: "item-1",
120
- name: "Test"
121
- })], undefined);
122
- globalThis.expect([
123
- Stdlib_Result.isOk(result),
124
- mock.getEvents().length,
125
- mock.publishedEvents.contents.length
126
- ]).toEqual([
127
- true,
128
- 1,
129
- 1
130
- ]);
131
- });
132
- globalThis.test("published events have correct service name", async () => {
133
- await Ops.append([encodeEvent({
134
- TAG: "ItemCreated",
135
- itemId: "item-1",
136
- name: "Test"
137
- })], undefined);
138
- globalThis.expect(Stdlib_Option.map(mock.publishedEvents.contents[0], pe => pe.service)).toEqual("TestDcbEventLog");
139
- });
140
- globalThis.test("service comes from Ops.serviceName, not Ops.name", async () => {
141
- await OpsAlt.append([encodeEvent({
142
- TAG: "ItemCreated",
143
- itemId: "item-1",
144
- name: "Test"
145
- })], undefined);
146
- globalThis.expect(Stdlib_Option.map(mock.publishedEvents.contents[0], pe => pe.service)).toEqual("CatalogDcbEventLog");
147
- });
148
- globalThis.test("error from storage does not publish to event topic", async () => {
149
- mock.failNextAppends.contents = 1;
150
- let result = await Ops.append([encodeEvent({
151
- TAG: "ItemCreated",
152
- itemId: "item-1",
153
- name: "Test"
154
- })], undefined);
155
- globalThis.expect([
156
- Stdlib_Result.isError(result),
157
- mock.publishedEvents.contents.length
158
- ]).toEqual([
159
- true,
160
- 0
161
- ]);
162
- });
163
- globalThis.test("with condition (no conflict) succeeds", async () => {
164
- await Ops.append([encodeEvent({
165
- TAG: "ItemCreated",
166
- itemId: "item-1",
167
- name: "Test"
168
- })], undefined);
169
- let condition_query = [{
170
- eventTypes: ["ItemCreated"],
171
- tags: [{
172
- key: "itemId",
173
- value: "item-1"
174
- }]
175
- }];
176
- let condition_after = "1";
177
- let condition = {
178
- query: condition_query,
179
- after: condition_after
180
- };
181
- let result = await Ops.append([encodeEvent({
182
- TAG: "ItemRenamed",
183
- itemId: "item-1",
184
- newName: "Updated"
185
- })], condition);
186
- globalThis.expect(Stdlib_Result.isOk(result)).toBe(true);
187
- });
188
- globalThis.test("multiple events all stored and published", async () => {
189
- let events = [
190
- {
191
- TAG: "ItemCreated",
192
- itemId: "item-1",
193
- name: "First"
194
- },
195
- {
196
- TAG: "ItemCreated",
197
- itemId: "item-2",
198
- name: "Second"
199
- }
200
- ];
201
- await Ops.append(events.map(encodeEvent), undefined);
202
- globalThis.expect([
203
- mock.getEvents().length,
204
- mock.publishedEvents.contents.length
205
- ]).toEqual([
206
- 2,
207
- 2
208
- ]);
209
- });
210
- });
211
- globalThis.describe("read", () => {
212
- globalThis.test("returns headPosition from storage", async () => {
213
- await Ops.append([encodeEvent({
214
- TAG: "ItemCreated",
215
- itemId: "item-1",
216
- name: "Test"
217
- })], undefined);
218
- let result = await Ops.read([{}], undefined);
219
- globalThis.expect(result.headPosition).toEqual("1");
220
- });
221
- globalThis.test("with ~after parameter filters out earlier events", async () => {
222
- await Ops.append([encodeEvent({
223
- TAG: "ItemCreated",
224
- itemId: "item-1",
225
- name: "First"
226
- })], undefined);
227
- await Ops.append([encodeEvent({
228
- TAG: "ItemRenamed",
229
- itemId: "item-1",
230
- newName: "Second"
231
- })], undefined);
232
- let result = await Ops.read([{}], "1");
233
- globalThis.expect([
234
- result.events.length,
235
- Stdlib_Option.map(result.events[0], decodeEvent)
236
- ]).toEqual([
237
- 1,
238
- {
239
- TAG: "ItemRenamed",
240
- itemId: "item-1",
241
- newName: "Second"
242
- }
243
- ]);
244
- });
245
- globalThis.test("no matching events returns empty array", async () => {
246
- await Ops.append([encodeEvent({
247
- TAG: "ItemCreated",
248
- itemId: "item-1",
249
- name: "Test"
250
- })], undefined);
251
- let result = await Ops.read([{
252
- eventTypes: ["NonExistent"]
253
- }], undefined);
254
- globalThis.expect(result.events.length).toEqual(0);
255
- });
256
- });
257
- });
258
-
259
- export {
260
- mock,
261
- TestOps,
262
- Ops,
263
- TestOpsAlt,
264
- OpsAlt,
265
- encodeEvent,
266
- decodeEvent,
267
- }
268
- /* mock Not a pure module */