@reventlessdev/reventless-core 3.0.0-alpha.179 → 3.0.0-alpha.181

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 (118) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/package.json +8 -8
  3. package/src/Message.res +2 -1
  4. package/src/Message.res.mjs +5 -1
  5. package/src/adapter/Monitoring/Monitoring.res +14 -2
  6. package/src/adapter/Monitoring/Monitoring.res.mjs +4 -2
  7. package/src/admin/Platform_Admin_Structure.res +2 -0
  8. package/src/admin/Platform_Admin_Structure.res.mjs +2 -0
  9. package/src/admin/Platform_ComponentDefinitionsApi.res +2 -1
  10. package/src/admin/Platform_ComponentDefinitionsApi.res.mjs +5 -1
  11. package/src/admin/UiFragmentRegistry/StateViewSlice/UiFragments_Projection.res +1 -1
  12. package/src/admin/UiFragmentRegistry/StateViewSlice/UiFragments_Projection.res.mjs +2 -1
  13. package/src/components/Api/ApiTargetStateHelpers.res +20 -0
  14. package/src/components/Api/ApiTargetStateHelpers.res.mjs +16 -0
  15. package/src/components/Api/GraphQL_FragmentGenerator.res +1 -0
  16. package/src/components/Api/GraphQL_FragmentGenerator.res.mjs +1 -0
  17. package/src/components/Api/SchemaType.res +3 -0
  18. package/src/components/Api/SchemaType.res.mjs +10 -2
  19. package/src/components/Api/SuryToJsonSchema.res +16 -0
  20. package/src/components/Api/SuryToJsonSchema.res.mjs +28 -0
  21. package/src/components/Dcb/Dcb_Builder.res +4 -5
  22. package/src/components/Dcb/Dcb_Builder.res.mjs +3 -5
  23. package/src/components/DcbEventLog/DcbEventLog_Operations.res +6 -1
  24. package/src/components/DcbEventLog/DcbEventLog_Operations.res.mjs +2 -1
  25. package/src/components/InboundTranslationSlice/InboundTranslationSlice.res +25 -0
  26. package/src/components/InboundTranslationSlice/InboundTranslationSlice.res.mjs +31 -0
  27. package/src/components/InboundTranslationSlice/InboundTranslationSlice_Callback.res +8 -8
  28. package/src/components/InboundTranslationSlice/InboundTranslationSlice_Callback.res.mjs +26 -6
  29. package/src/components/OutboundTranslationSlice/OutboundTranslationSlice_Builder.res +44 -37
  30. package/src/components/OutboundTranslationSlice/OutboundTranslationSlice_Builder.res.mjs +17 -25
  31. package/src/components/StateChangeSlice/StateChangeSlice_Callback.res +27 -2
  32. package/src/components/StateChangeSlice/StateChangeSlice_Callback.res.mjs +4 -0
  33. package/src/components/StateViewSlice/StateViewSlice_Builder.res +20 -6
  34. package/src/components/StateViewSlice/StateViewSlice_Builder.res.mjs +23 -5
  35. package/src/components/StateViewSlice/StateViewSlice_Callback.res +1 -1
  36. package/src/components/StateViewSlice/StateViewSlice_Callback.res.mjs +5 -1
  37. package/src/plugin/component/Plugin_Helpers.res +4 -1
  38. package/src/plugin/component/Plugin_Structure.res +15 -1
  39. package/src/plugin/component/Plugin_Structure.res.mjs +4 -1
  40. package/src/plugin/lifecycle/PluginsReadModelSpec.res.mjs +2 -0
  41. package/tests/IdentityTest.res.mjs +174 -0
  42. package/tests/ResourceAttributionTest.res.mjs +75 -0
  43. package/tests/adapter/MonitoringTest.res +32 -2
  44. package/tests/adapter/MonitoringTest.res.mjs +116 -0
  45. package/tests/admin/Platform_ComponentDefinitionsApiTest.res +10 -0
  46. package/tests/admin/Platform_ComponentDefinitionsApiTest.res.mjs +365 -0
  47. package/tests/admin/Platform_UIFragmentsApiTest.res.mjs +101 -0
  48. package/tests/aggregate/AggregateCacheTest.res.mjs +433 -0
  49. package/tests/aggregate/AggregateCallbackTest.res.mjs +143 -0
  50. package/tests/aggregate/AggregateCausationTest.res.mjs +47 -0
  51. package/tests/aggregate/AggregateConflictTest.res.mjs +386 -0
  52. package/tests/aggregate/AggregateFixtures.res.mjs +308 -0
  53. package/tests/aggregate/AggregateRejectionTest.res.mjs +166 -0
  54. package/tests/aggregate/AggregateSnapshotTest.res.mjs +645 -0
  55. package/tests/api/ApiNoApiTest.res.mjs +90 -0
  56. package/tests/api/GraphQL_StitcherTest.res.mjs +112 -0
  57. package/tests/api/SimpleTest.res.mjs +10 -0
  58. package/tests/api/SuryToJsonSchemaTest.res +68 -0
  59. package/tests/api/SuryToJsonSchemaTest.res.mjs +843 -0
  60. package/tests/commandgenerator/CommandGeneratorCallbackTest.res.mjs +160 -0
  61. package/tests/commandgenerator/CommandGeneratorFixtures.res.mjs +197 -0
  62. package/tests/commandtopic/CommandTopicCallbackFixtures.res.mjs +152 -0
  63. package/tests/commandtopic/CommandTopicCallbackTest.res.mjs +106 -0
  64. package/tests/commandtopic/CommandTopicHelpersRejectionTest.res.mjs +109 -0
  65. package/tests/counter/CounterCallbackTest.res.mjs +140 -0
  66. package/tests/counter/CounterFixtures.res.mjs +67 -0
  67. package/tests/dcb/DcbDecodeTest.res.mjs +194 -0
  68. package/tests/dcb/DcbEventLogOperationsTest.res.mjs +268 -0
  69. package/tests/dcb/DcbFixtures.res.mjs +534 -0
  70. package/tests/dcb/DcbScopeInferenceTest.res.mjs +480 -0
  71. package/tests/dcb/DcbStateChangeSliceTest.res.mjs +540 -0
  72. package/tests/dcb/DcbTagTest.res.mjs +867 -0
  73. package/tests/dcb/DcbValidationTest.res.mjs +476 -0
  74. package/tests/eventlog/EventLogFixtures.res.mjs +196 -0
  75. package/tests/eventlog/EventLogOperationsTest.res.mjs +192 -0
  76. package/tests/eventlog/EventLogRetryTest.res.mjs +195 -0
  77. package/tests/eventmapper/EventMapperCallbackTest.res.mjs +141 -0
  78. package/tests/eventmapper/EventMapperFixtures.res.mjs +440 -0
  79. package/tests/eventmapper/EventMapperTest.res.mjs +83 -0
  80. package/tests/eventtopic/EventTopicFixtures.res.mjs +65 -0
  81. package/tests/eventtopic/EventTopicOperationsTest.res.mjs +71 -0
  82. package/tests/extensionpoint/ExtensionPointCallbackTest.res.mjs +94 -0
  83. package/tests/extensionpoint/ExtensionPointFixtures.res.mjs +205 -0
  84. package/tests/extensionpoint/ExtensionPointOperationsTest.res.mjs +304 -0
  85. package/tests/extensionpoint/PluginDisconnectScheduleTest.res.mjs +92 -0
  86. package/tests/ftp/FTPTest.res.mjs +88 -0
  87. package/tests/logger/LogFormatTest.res.mjs +329 -0
  88. package/tests/logger/LoggerLazyTest.res.mjs +40 -0
  89. package/tests/message/MessageTest.res.mjs +218 -0
  90. package/tests/message/MetaEnvelopeTest.res.mjs +188 -0
  91. package/tests/plugin/HeartbeatDisconnectGraceTest.res.mjs +91 -0
  92. package/tests/plugin/ManifestVisibilityTest.res.mjs +215 -0
  93. package/tests/plugin/PluginSpecExperiment.res.mjs +31 -0
  94. package/tests/plugin/PluginStructureTest.res +55 -0
  95. package/tests/plugin/PluginStructureTest.res.mjs +467 -0
  96. package/tests/plugin/PluginVersionTest.res.mjs +30 -0
  97. package/tests/plugin/SchemaWalkerTest.res.mjs +160 -0
  98. package/tests/plugin/StateChangeSlice/PsPlaceOrder.res.mjs +62 -0
  99. package/tests/plugin/StateChangeSlice/PsShipOrder.res +4 -1
  100. package/tests/plugin/StateChangeSlice/PsShipOrder.res.mjs +77 -0
  101. package/tests/plugin/StateViewSlice/PsAnnotatedView.res +5 -4
  102. package/tests/plugin/StateViewSlice/PsAnnotatedView.res.mjs +110 -0
  103. package/tests/plugin/StateViewSlice/PsAvailableProductsView.res +1 -1
  104. package/tests/plugin/StateViewSlice/PsAvailableProductsView.res.mjs +70 -0
  105. package/tests/plugin/StateViewSlice/PsCustomersView.res +1 -1
  106. package/tests/plugin/StateViewSlice/PsCustomersView.res.mjs +70 -0
  107. package/tests/plugin/StateViewSlice/PsOrdersView.res +1 -1
  108. package/tests/plugin/StateViewSlice/PsOrdersView.res.mjs +82 -0
  109. package/tests/poc/StructuralSubtypingPoc.res.mjs +61 -0
  110. package/tests/projection/ProjectionOptimizeTest.res.mjs +75 -0
  111. package/tests/querydb/QueryDbFixtures.res.mjs +135 -0
  112. package/tests/querydb/QueryDbOperationsTest.res.mjs +168 -0
  113. package/tests/sideeffecthandler/SideEffectHandlerCallbackTest.res.mjs +77 -0
  114. package/tests/sideeffecthandler/SideEffectHandlerFixtures.res.mjs +139 -0
  115. package/tests/util/CommandPublisherTest.res.mjs +78 -0
  116. package/tests/util/CsvStreamTest.res.mjs +51 -0
  117. package/tests/util/LruTest.res.mjs +105 -0
  118. package/tests/util/MetricsTest.res.mjs +53 -0
@@ -0,0 +1,166 @@
1
+ // Generated by ReScript, PLEASE EDIT WITH CARE
2
+
3
+ import * as Effect from "effect/Effect";
4
+ import * as Stream from "effect/Stream";
5
+ import * as AggregateFixtures$ReventlessCore from "./AggregateFixtures.res.mjs";
6
+ import * as CommandTopic_Helpers$ReventlessCore from "../../src/components/CommandTopic/CommandTopic_Helpers.res.mjs";
7
+
8
+ globalThis.beforeEach(() => {
9
+ AggregateFixtures$ReventlessCore.mock.reset();
10
+ AggregateFixtures$ReventlessCore.TestHandler.resetCache();
11
+ });
12
+
13
+ let capturedRejections = {
14
+ contents: []
15
+ };
16
+
17
+ let capturedAccepts = {
18
+ contents: []
19
+ };
20
+
21
+ function installChannels() {
22
+ capturedRejections.contents = [];
23
+ capturedAccepts.contents = [];
24
+ CommandTopic_Helpers$ReventlessCore.rejectedResultChannel.contents = (ref, info) => {
25
+ capturedRejections.contents = capturedRejections.contents.concat([[
26
+ ref,
27
+ info
28
+ ]]);
29
+ };
30
+ CommandTopic_Helpers$ReventlessCore.acceptedResultChannel.contents = (ref, info) => {
31
+ capturedAccepts.contents = capturedAccepts.contents.concat([[
32
+ ref,
33
+ info
34
+ ]]);
35
+ };
36
+ }
37
+
38
+ function uninstallChannels() {
39
+ CommandTopic_Helpers$ReventlessCore.rejectedResultChannel.contents = undefined;
40
+ CommandTopic_Helpers$ReventlessCore.acceptedResultChannel.contents = undefined;
41
+ }
42
+
43
+ globalThis.describe("Aggregate decide-rejection propagation:", () => {
44
+ globalThis.describe("single rejected command", () => {
45
+ globalThis.test("Create on existing aggregate reports Rejected with errorCode", async () => {
46
+ await Effect.runPromise(AggregateFixtures$ReventlessCore.TestHandler.handleCommands(Stream.fromIterable([AggregateFixtures$ReventlessCore.makeTopicItem(undefined, "ref-seed", {
47
+ TAG: "Create",
48
+ name: "Widget"
49
+ })])));
50
+ installChannels();
51
+ let results = await Effect.runPromise(AggregateFixtures$ReventlessCore.TestHandler.handleCommands(Stream.fromIterable([AggregateFixtures$ReventlessCore.makeTopicItem(undefined, "ref-1", {
52
+ TAG: "Create",
53
+ name: "Widget"
54
+ })])));
55
+ uninstallChannels();
56
+ globalThis.expect(results).toEqual([{
57
+ TAG: "Ok",
58
+ _0: "ref-1"
59
+ }]);
60
+ globalThis.expect(capturedRejections.contents.length).toBe(1);
61
+ let match = capturedRejections.contents[0];
62
+ globalThis.expect(match[0]).toEqual("ref-1");
63
+ globalThis.expect(match[1].errorCode).toEqual("AlreadyExists");
64
+ globalThis.expect(AggregateFixtures$ReventlessCore.mock.getAll().length).toBe(1);
65
+ });
66
+ });
67
+ globalThis.describe("mixed batch", () => {
68
+ globalThis.test("rejected command does not cancel surviving commands", async () => {
69
+ await Effect.runPromise(AggregateFixtures$ReventlessCore.TestHandler.handleCommands(Stream.fromIterable([AggregateFixtures$ReventlessCore.makeTopicItem("agg-1", "ref-seed", {
70
+ TAG: "Create",
71
+ name: "Widget"
72
+ })])));
73
+ installChannels();
74
+ let results = await Effect.runPromise(AggregateFixtures$ReventlessCore.TestHandler.handleCommands(Stream.fromIterable([
75
+ AggregateFixtures$ReventlessCore.makeTopicItem("agg-1", "ref-1", {
76
+ TAG: "Rename",
77
+ newName: "First"
78
+ }),
79
+ AggregateFixtures$ReventlessCore.makeTopicItem("agg-1", "ref-2", {
80
+ TAG: "Create",
81
+ name: "Boom"
82
+ }),
83
+ AggregateFixtures$ReventlessCore.makeTopicItem("agg-1", "ref-3", {
84
+ TAG: "Rename",
85
+ newName: "Last"
86
+ })
87
+ ])));
88
+ uninstallChannels();
89
+ globalThis.expect(results.length).toBe(3);
90
+ results.forEach(r => {
91
+ if (r.TAG === "Ok") {
92
+ return;
93
+ }
94
+ globalThis.expect("expected all Ok").toEqual("got Error");
95
+ });
96
+ globalThis.expect(AggregateFixtures$ReventlessCore.mock.getAll().length).toBe(3);
97
+ let rejected = capturedRejections.contents;
98
+ globalThis.expect(rejected.length).toBe(1);
99
+ let match = rejected[0];
100
+ globalThis.expect(match[0]).toEqual("ref-2");
101
+ globalThis.expect(match[1].errorCode).toEqual("AlreadyExists");
102
+ let accepted = capturedAccepts.contents;
103
+ globalThis.expect(accepted.length).toBe(2);
104
+ });
105
+ });
106
+ globalThis.describe("all-reject batch", () => {
107
+ globalThis.test("3 rejecting commands → no append, all reported Rejected, no Accepted", async () => {
108
+ installChannels();
109
+ let results = await Effect.runPromise(AggregateFixtures$ReventlessCore.TestHandler.handleCommands(Stream.fromIterable([
110
+ AggregateFixtures$ReventlessCore.makeTopicItem("agg-x", "ref-1", {
111
+ TAG: "Rename",
112
+ newName: "A"
113
+ }),
114
+ AggregateFixtures$ReventlessCore.makeTopicItem("agg-x", "ref-2", {
115
+ TAG: "Rename",
116
+ newName: "B"
117
+ }),
118
+ AggregateFixtures$ReventlessCore.makeTopicItem("agg-x", "ref-3", {
119
+ TAG: "Rename",
120
+ newName: "C"
121
+ })
122
+ ])));
123
+ uninstallChannels();
124
+ globalThis.expect(results).toEqual([
125
+ {
126
+ TAG: "Ok",
127
+ _0: "ref-1"
128
+ },
129
+ {
130
+ TAG: "Ok",
131
+ _0: "ref-2"
132
+ },
133
+ {
134
+ TAG: "Ok",
135
+ _0: "ref-3"
136
+ }
137
+ ]);
138
+ globalThis.expect(AggregateFixtures$ReventlessCore.mock.getAll().length).toBe(0);
139
+ globalThis.expect(capturedRejections.contents.length).toBe(3);
140
+ capturedRejections.contents.forEach(param => {
141
+ globalThis.expect(param[1].errorCode).toEqual("NotFound");
142
+ });
143
+ globalThis.expect(capturedAccepts.contents.length).toBe(0);
144
+ });
145
+ });
146
+ globalThis.describe("payload-less variant errors", () => {
147
+ globalThis.test("errorDetail is empty string for unit-payload variants", async () => {
148
+ installChannels();
149
+ await Effect.runPromise(AggregateFixtures$ReventlessCore.TestHandler.handleCommands(Stream.fromIterable([AggregateFixtures$ReventlessCore.makeTopicItem(undefined, "ref-1", {
150
+ TAG: "Rename",
151
+ newName: "X"
152
+ })])));
153
+ uninstallChannels();
154
+ let match = capturedRejections.contents[0];
155
+ globalThis.expect(match[1].errorDetail).toEqual("");
156
+ });
157
+ });
158
+ });
159
+
160
+ export {
161
+ capturedRejections,
162
+ capturedAccepts,
163
+ installChannels,
164
+ uninstallChannels,
165
+ }
166
+ /* Not a pure module */