@reventlessdev/reventless-core 3.0.0-alpha.170 → 3.0.0-alpha.172

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 (83) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/package.json +14 -14
  3. package/src/components/ExtensionPoint/ExtensionPoint_Builder.res +5 -2
  4. package/src/components/ExtensionPoint/ExtensionPoint_Builder.res.mjs +3 -3
  5. package/src/components/Heartbeat/Heartbeat.res +2 -2
  6. package/src/components/Heartbeat/Heartbeat_Builder.res +2 -2
  7. package/src/components/Heartbeat/Heartbeat_Builder.res.mjs +2 -4
  8. package/src/components/Task/Task_Builder.res +6 -4
  9. package/src/components/Task/Task_Builder.res.mjs +4 -4
  10. package/src/plugin/component/Plugin_Builder.res +5 -1
  11. package/src/plugin/component/Plugin_Builder.res.mjs +1 -1
  12. package/src/plugin/component/Plugin_Helpers.res +6 -1
  13. package/src/plugin/connect/PluginExtensionPoint_Builder.res +2 -0
  14. package/src/plugin/connect/PluginExtensionPoint_Builder.res.mjs +3 -3
  15. package/src/plugin/connect/PluginExtensionPoint_Plugin.res +12 -5
  16. package/src/plugin/connect/PluginExtensionPoint_Plugin.res.mjs +8 -2
  17. package/tests/plugin/HeartbeatDisconnectGraceTest.res +98 -0
  18. package/tests/IdentityTest.res.mjs +0 -174
  19. package/tests/adapter/MonitoringTest.res.mjs +0 -82
  20. package/tests/admin/Platform_ComponentDefinitionsApiTest.res.mjs +0 -356
  21. package/tests/admin/Platform_UIFragmentsApiTest.res.mjs +0 -101
  22. package/tests/aggregate/AggregateCacheTest.res.mjs +0 -433
  23. package/tests/aggregate/AggregateCallbackTest.res.mjs +0 -143
  24. package/tests/aggregate/AggregateCausationTest.res.mjs +0 -47
  25. package/tests/aggregate/AggregateConflictTest.res.mjs +0 -386
  26. package/tests/aggregate/AggregateFixtures.res.mjs +0 -308
  27. package/tests/aggregate/AggregateRejectionTest.res.mjs +0 -166
  28. package/tests/aggregate/AggregateSnapshotTest.res.mjs +0 -645
  29. package/tests/api/ApiNoApiTest.res.mjs +0 -90
  30. package/tests/api/GraphQL_StitcherTest.res.mjs +0 -112
  31. package/tests/api/SimpleTest.res.mjs +0 -10
  32. package/tests/api/SuryToJsonSchemaTest.res.mjs +0 -674
  33. package/tests/commandgenerator/CommandGeneratorCallbackTest.res.mjs +0 -160
  34. package/tests/commandgenerator/CommandGeneratorFixtures.res.mjs +0 -197
  35. package/tests/commandtopic/CommandTopicCallbackFixtures.res.mjs +0 -152
  36. package/tests/commandtopic/CommandTopicCallbackTest.res.mjs +0 -106
  37. package/tests/commandtopic/CommandTopicHelpersRejectionTest.res.mjs +0 -109
  38. package/tests/counter/CounterCallbackTest.res.mjs +0 -140
  39. package/tests/counter/CounterFixtures.res.mjs +0 -67
  40. package/tests/dcb/DcbDecodeTest.res.mjs +0 -194
  41. package/tests/dcb/DcbEventLogOperationsTest.res.mjs +0 -268
  42. package/tests/dcb/DcbFixtures.res.mjs +0 -534
  43. package/tests/dcb/DcbScopeInferenceTest.res.mjs +0 -480
  44. package/tests/dcb/DcbStateChangeSliceTest.res.mjs +0 -540
  45. package/tests/dcb/DcbTagTest.res.mjs +0 -867
  46. package/tests/dcb/DcbValidationTest.res.mjs +0 -476
  47. package/tests/eventlog/EventLogFixtures.res.mjs +0 -196
  48. package/tests/eventlog/EventLogOperationsTest.res.mjs +0 -192
  49. package/tests/eventlog/EventLogRetryTest.res.mjs +0 -195
  50. package/tests/eventmapper/EventMapperCallbackTest.res.mjs +0 -141
  51. package/tests/eventmapper/EventMapperFixtures.res.mjs +0 -440
  52. package/tests/eventmapper/EventMapperTest.res.mjs +0 -83
  53. package/tests/eventtopic/EventTopicFixtures.res.mjs +0 -65
  54. package/tests/eventtopic/EventTopicOperationsTest.res.mjs +0 -71
  55. package/tests/extensionpoint/ExtensionPointCallbackTest.res.mjs +0 -94
  56. package/tests/extensionpoint/ExtensionPointFixtures.res.mjs +0 -205
  57. package/tests/extensionpoint/ExtensionPointOperationsTest.res.mjs +0 -304
  58. package/tests/ftp/FTPTest.res.mjs +0 -88
  59. package/tests/logger/LogFormatTest.res.mjs +0 -309
  60. package/tests/logger/LoggerLazyTest.res.mjs +0 -40
  61. package/tests/message/MessageTest.res.mjs +0 -218
  62. package/tests/message/MetaEnvelopeTest.res.mjs +0 -188
  63. package/tests/plugin/ManifestVisibilityTest.res.mjs +0 -215
  64. package/tests/plugin/PluginSpecExperiment.res.mjs +0 -31
  65. package/tests/plugin/PluginStructureTest.res.mjs +0 -419
  66. package/tests/plugin/PluginVersionTest.res.mjs +0 -30
  67. package/tests/plugin/SchemaWalkerTest.res.mjs +0 -160
  68. package/tests/plugin/StateChangeSlice/PsPlaceOrder.res.mjs +0 -62
  69. package/tests/plugin/StateChangeSlice/PsShipOrder.res.mjs +0 -69
  70. package/tests/plugin/StateViewSlice/PsAnnotatedView.res.mjs +0 -95
  71. package/tests/plugin/StateViewSlice/PsAvailableProductsView.res.mjs +0 -69
  72. package/tests/plugin/StateViewSlice/PsCustomersView.res.mjs +0 -69
  73. package/tests/plugin/StateViewSlice/PsOrdersView.res.mjs +0 -81
  74. package/tests/poc/StructuralSubtypingPoc.res.mjs +0 -61
  75. package/tests/projection/ProjectionOptimizeTest.res.mjs +0 -75
  76. package/tests/querydb/QueryDbFixtures.res.mjs +0 -135
  77. package/tests/querydb/QueryDbOperationsTest.res.mjs +0 -168
  78. package/tests/sideeffecthandler/SideEffectHandlerCallbackTest.res.mjs +0 -77
  79. package/tests/sideeffecthandler/SideEffectHandlerFixtures.res.mjs +0 -139
  80. package/tests/util/CommandPublisherTest.res.mjs +0 -78
  81. package/tests/util/CsvStreamTest.res.mjs +0 -51
  82. package/tests/util/LruTest.res.mjs +0 -105
  83. 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 */