@reventlessdev/reventless-local 3.0.0-alpha.114 → 3.0.0-alpha.116

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 (65) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/package.json +8 -8
  3. package/src/Platform.res +116 -67
  4. package/src/Platform.res.mjs +114 -190
  5. package/src/adapter/DcbEventLog/DcbEventLogStorage_InMemory.res +102 -17
  6. package/src/adapter/DcbEventLog/DcbEventLogStorage_InMemory.res.mjs +105 -22
  7. package/src/adapter/DcbEventLog/DcbEventLogStorage_Sqlite.res +123 -40
  8. package/src/adapter/DcbEventLog/DcbEventLogStorage_Sqlite.res.mjs +96 -24
  9. package/src/adapter/EventCollector/LocalEventCollectorChannel.res +33 -0
  10. package/src/adapter/EventCollector/LocalEventCollectorChannel.res.mjs +44 -0
  11. package/src/adapter/EventLog/EventLogStorage_InMemory.res +24 -3
  12. package/src/adapter/EventLog/EventLogStorage_InMemory.res.mjs +21 -4
  13. package/src/adapter/EventLog/EventLogStorage_Sqlite.res +148 -27
  14. package/src/adapter/EventLog/EventLogStorage_Sqlite.res.mjs +144 -34
  15. package/src/adapter/LocalBus.res +85 -3
  16. package/src/adapter/LocalBus.res.mjs +220 -66
  17. package/src/adapter/ProjectionCheckpoint.res +350 -0
  18. package/src/adapter/ProjectionCheckpoint.res.mjs +327 -0
  19. package/src/adapter/ProjectionPending.res +60 -0
  20. package/src/adapter/ProjectionPending.res.mjs +64 -0
  21. package/src/adapter/QueryDb/QueryDbListQuery.res +261 -0
  22. package/src/adapter/QueryDb/QueryDbListQuery.res.mjs +212 -0
  23. package/src/adapter/QueryDb/QueryDbResolvers_GraphQL.res +54 -286
  24. package/src/adapter/QueryDb/QueryDbResolvers_GraphQL.res.mjs +28 -190
  25. package/src/adapter/QueryDb/QueryDbStorage_InMemory.res +128 -10
  26. package/src/adapter/QueryDb/QueryDbStorage_InMemory.res.mjs +123 -23
  27. package/src/adapter/QueryDb/QueryDbStorage_Sqlite.res +187 -12
  28. package/src/adapter/QueryDb/QueryDbStorage_Sqlite.res.mjs +120 -7
  29. package/src/adapter/SqliteDriver.res +17 -2
  30. package/src/adapter/SqliteDriver.res.mjs +10 -2
  31. package/src/components/DcbEventLog_Builder.res +7 -1
  32. package/src/components/DcbEventLog_Builder.res.mjs +3 -3
  33. package/src/components/ReadModel_Builder.res +3 -1
  34. package/src/components/ReadModel_Builder.res.mjs +13 -4
  35. package/src/components/StateViewSlice_Builder.res +4 -1
  36. package/src/components/StateViewSlice_Builder.res.mjs +9 -3
  37. package/src/test/Mocks/MockEventLogStorage.res +20 -3
  38. package/src/test/Mocks/MockEventLogStorage.res.mjs +25 -3
  39. package/tests/PluginEventDecodeTest.res +51 -0
  40. package/tests/PluginEventDecodeTest.res.mjs +63 -0
  41. package/tests/adapter/BackendParityTest.res +64 -0
  42. package/tests/adapter/BackendParityTest.res.mjs +45 -0
  43. package/tests/adapter/DcbEventLogStorageSqliteTest.res +73 -0
  44. package/tests/adapter/DcbEventLogStorageSqliteTest.res.mjs +86 -0
  45. package/tests/adapter/DcbEventLogStorageTest.res +46 -0
  46. package/tests/adapter/DcbEventLogStorageTest.res.mjs +63 -0
  47. package/tests/adapter/EventLogSnapshotParityTest.res +81 -0
  48. package/tests/adapter/EventLogSnapshotParityTest.res.mjs +141 -0
  49. package/tests/adapter/EventLogStorageSqliteTest.res +132 -2
  50. package/tests/adapter/EventLogStorageSqliteTest.res.mjs +195 -1
  51. package/tests/adapter/LocalBusPubSubTest.res +31 -0
  52. package/tests/adapter/LocalBusPubSubTest.res.mjs +28 -0
  53. package/tests/adapter/ProjectionCheckpointTest.res +422 -0
  54. package/tests/adapter/ProjectionCheckpointTest.res.mjs +401 -0
  55. package/tests/adapter/QueryDbGsiTtlTest.res +78 -0
  56. package/tests/adapter/QueryDbGsiTtlTest.res.mjs +77 -0
  57. package/tests/adapter/QueryDbListPushdownParityTest.res +197 -0
  58. package/tests/adapter/QueryDbListPushdownParityTest.res.mjs +292 -0
  59. package/tests/adapter/QueryDbListResolverTest.res +76 -0
  60. package/tests/adapter/QueryDbListResolverTest.res.mjs +84 -0
  61. package/tests/components/aggregate/AggregateFixtures.res +4 -0
  62. package/tests/components/aggregate/AggregateFixtures.res.mjs +1 -0
  63. package/tests/components/eventlog/EventLogAppendStreamTest.res.mjs +4 -4
  64. package/tests/components/eventlog/EventLogStreamTest.res.mjs +8 -8
  65. package/tests/plugin/PluginBehavior_GWT.res.mjs +1 -0
@@ -52,7 +52,7 @@ globalThis.describe("EventLog.appendStream (in-memory adapter)", () => {
52
52
  }
53
53
  ]);
54
54
  await Effect.runPromise(ops.appendStream(0, "as-order-1", stream));
55
- let replayed = await Effect.runPromise(Stream.runCollect(ops.replayStream("as-order-1")));
55
+ let replayed = await Effect.runPromise(Stream.runCollect(ops.replayStream("as-order-1", undefined)));
56
56
  let first = replayed[0];
57
57
  globalThis.expect(first).toEqual({
58
58
  TAG: "ItemCreated",
@@ -87,7 +87,7 @@ globalThis.describe("EventLog.appendStream (in-memory adapter)", () => {
87
87
  id: "b"
88
88
  })
89
89
  ]);
90
- let sourceStream = ops.replayStream("as-src-1");
90
+ let sourceStream = ops.replayStream("as-src-1", undefined);
91
91
  await Effect.runPromise(ops.appendStream(0, "as-dst-1", sourceStream));
92
92
  let destEvents = await ops.replay("as-dst-1");
93
93
  globalThis.expect(destEvents.length).toBe(2);
@@ -98,9 +98,9 @@ globalThis.describe("EventLog.appendStream (in-memory adapter)", () => {
98
98
  TAG: "ItemCreated",
99
99
  name: "copied"
100
100
  })]);
101
- let sourceStream = ops.replayStream("as-src-2");
101
+ let sourceStream = ops.replayStream("as-src-2", undefined);
102
102
  await Effect.runPromise(ops.appendStream(0, "as-dst-2", sourceStream));
103
- let destEvents = await Effect.runPromise(Stream.runCollect(ops.replayStream("as-dst-2")));
103
+ let destEvents = await Effect.runPromise(Stream.runCollect(ops.replayStream("as-dst-2", undefined)));
104
104
  let first = destEvents[0];
105
105
  globalThis.expect(first).toEqual({
106
106
  TAG: "ItemCreated",
@@ -23,12 +23,12 @@ globalThis.describe("EventLog.replayStream (in-memory adapter)", () => {
23
23
  TAG: "ItemDeleted",
24
24
  id: "stream-1"
25
25
  })]);
26
- let count = await Effect.runPromise(Stream$1.runFold(ops.replayStream("stream-1"), 0, (n, param) => n + 1 | 0));
26
+ let count = await Effect.runPromise(Stream$1.runFold(ops.replayStream("stream-1", undefined), 0, (n, param) => n + 1 | 0));
27
27
  globalThis.expect(count).toBe(2);
28
28
  });
29
29
  globalThis.test("replayStream for unknown id returns empty stream", async () => {
30
30
  let ops = await TestRunner$ReventlessLocal.resolve(Component$ReventlessCore.operations(EventLogFixtures$ReventlessLocal.eventLog));
31
- let count = await Effect.runPromise(Stream$1.runFold(ops.replayStream("no-such-id"), 0, (n, param) => n + 1 | 0));
31
+ let count = await Effect.runPromise(Stream$1.runFold(ops.replayStream("no-such-id", undefined), 0, (n, param) => n + 1 | 0));
32
32
  globalThis.expect(count).toBe(0);
33
33
  });
34
34
  globalThis.test("replayStream emits events in append order", async () => {
@@ -41,7 +41,7 @@ globalThis.describe("EventLog.replayStream (in-memory adapter)", () => {
41
41
  TAG: "ItemDeleted",
42
42
  id: "stream-2"
43
43
  })]);
44
- let events = await Effect.runPromise(Stream.runCollect(ops.replayStream("stream-2")));
44
+ let events = await Effect.runPromise(Stream.runCollect(ops.replayStream("stream-2", undefined)));
45
45
  globalThis.expect(events.length).toBe(2);
46
46
  let first = events[0];
47
47
  globalThis.expect(first).toEqual({
@@ -65,8 +65,8 @@ globalThis.describe("EventLog.replayStream (in-memory adapter)", () => {
65
65
  id: "agg-Y"
66
66
  })
67
67
  ]);
68
- let countX = await Effect.runPromise(Stream$1.runFold(ops.replayStream("agg-X"), 0, (n, param) => n + 1 | 0));
69
- let countY = await Effect.runPromise(Stream$1.runFold(ops.replayStream("agg-Y"), 0, (n, param) => n + 1 | 0));
68
+ let countX = await Effect.runPromise(Stream$1.runFold(ops.replayStream("agg-X", undefined), 0, (n, param) => n + 1 | 0));
69
+ let countY = await Effect.runPromise(Stream$1.runFold(ops.replayStream("agg-Y", undefined), 0, (n, param) => n + 1 | 0));
70
70
  globalThis.expect(countX).toBe(1);
71
71
  globalThis.expect(countY).toBe(2);
72
72
  });
@@ -94,7 +94,7 @@ globalThis.describe("EventLog.replayStream (in-memory adapter)", () => {
94
94
  name: "e5"
95
95
  })
96
96
  ]);
97
- let first2 = await Effect.runPromise(Stream.runCollect(Stream$1.take(ops.replayStream("stream-3"), 2)));
97
+ let first2 = await Effect.runPromise(Stream.runCollect(Stream$1.take(ops.replayStream("stream-3", undefined), 2)));
98
98
  globalThis.expect(first2.length).toBe(2);
99
99
  });
100
100
  });
@@ -115,7 +115,7 @@ globalThis.describe("EventLog.replayStream (in-memory adapter)", () => {
115
115
  TAG: "ItemCreated",
116
116
  name: "e3"
117
117
  })]);
118
- let match = await Effect.runPromise(Stream$1.runFold(ops.replayStream("fold-1"), [
118
+ let match = await Effect.runPromise(Stream$1.runFold(ops.replayStream("fold-1", undefined), [
119
119
  undefined,
120
120
  0
121
121
  ], (param, _ev) => [
@@ -126,7 +126,7 @@ globalThis.describe("EventLog.replayStream (in-memory adapter)", () => {
126
126
  });
127
127
  globalThis.test("runFold on empty stream returns initial accumulator", async () => {
128
128
  let ops = await TestRunner$ReventlessLocal.resolve(Component$ReventlessCore.operations(EventLogFixtures$ReventlessLocal.eventLog));
129
- let match = await Effect.runPromise(Stream$1.runFold(ops.replayStream("unknown-fold"), [
129
+ let match = await Effect.runPromise(Stream$1.runFold(ops.replayStream("unknown-fold", undefined), [
130
130
  undefined,
131
131
  0
132
132
  ], (param, _ev) => [
@@ -20,6 +20,7 @@ let PluginTest = Behavior_GWT$ReventlessGwt.MakeFromAggregate({
20
20
  initialState: PluginBehavior$ReventlessCore.initialState,
21
21
  evolve: PluginBehavior$ReventlessCore.evolve,
22
22
  decide: PluginBehavior$ReventlessCore.decide,
23
+ snapshot: undefined,
23
24
  moduleUrl: PluginBehavior$ReventlessCore.moduleUrl
24
25
  });
25
26