@reventlessdev/reventless-local 3.0.0-alpha.227 → 3.0.0-alpha.229
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.
- package/CHANGELOG.md +20 -0
- package/package.json +10 -10
- package/src/LocalPlatformRegistry.res +2 -2
- package/src/LocalPlatformRegistry.res.mjs +14 -13
- package/src/Platform.res +10 -10
- package/src/Platform.res.mjs +17 -16
- package/src/adapter/Auth/LocalAuth.res +3 -3
- package/src/adapter/Auth/LocalAuth.res.mjs +3 -2
- package/src/adapter/Auth/UserStore.res +1 -1
- package/src/adapter/Auth/UserStore.res.mjs +7 -6
- package/src/adapter/CommandGenerator/CommandGeneratorResolvers_GraphQL.res +1 -1
- package/src/adapter/CommandGenerator/CommandGeneratorResolvers_GraphQL.res.mjs +1 -1
- package/src/adapter/CommandTopic/LocalCommandTopicRemoteChannel.res +1 -1
- package/src/adapter/CommandTopic/LocalCommandTopicRemoteChannel.res.mjs +3 -3
- package/src/adapter/DcbEventLog/DcbEventLogStorage_Sqlite.res +2 -2
- package/src/adapter/DcbEventLog/DcbEventLogStorage_Sqlite.res.mjs +4 -4
- package/src/adapter/DomainGraphQL_Server.res +2 -2
- package/src/adapter/DomainGraphQL_Server.res.mjs +3 -3
- package/src/adapter/DomainMCP_Server.res +1 -1
- package/src/adapter/MCP_ServerInstance.res +1 -1
- package/tests/BakedManifestFilesTest.res +0 -1
- package/tests/PluginEventDecodeTest.res +3 -3
- package/tests/PluginEventDecodeTest.res.mjs +4 -4
- package/tests/ShellConfigTest.res +0 -1
- package/tests/adapter/CommandAuthorizationTest.res.mjs +7 -7
- package/tests/adapter/GraphQL_SchemaInspectorTest.res.mjs +59 -59
- package/tests/adapter/LocalAuthHttpTest.res +1 -1
- package/tests/adapter/LocalAuthHttpTest.res.mjs +2 -2
- package/tests/adapter/QueryDbListResolverTest.res.mjs +5 -5
- package/tests/components/aggregate/AggregateFixtures.res.mjs +6 -6
- package/tests/components/automationslice/AutomationSliceFixtures.res +4 -4
- package/tests/components/automationslice/AutomationSliceFixtures.res.mjs +20 -19
- package/tests/components/automationslice/AutomationSliceSelfDeadlockFixtures.res +2 -2
- package/tests/components/automationslice/AutomationSliceSelfDeadlockFixtures.res.mjs +23 -22
- package/tests/components/automationslice/MixedSourceAutomationSliceFixtures.res +4 -4
- package/tests/components/automationslice/MixedSourceAutomationSliceFixtures.res.mjs +21 -20
- package/tests/components/commandgenerator/CommandGeneratorFixtures.res +0 -1
- package/tests/components/commandgenerator/CommandGeneratorFixtures.res.mjs +6 -8
- package/tests/components/commandgenerator/CommandGeneratorTest.res +1 -1
- package/tests/components/commandgenerator/CommandGeneratorTest.res.mjs +2 -2
- package/tests/components/commandtopic/CommandTopicFixtures.res.mjs +9 -9
- package/tests/components/commandtopic/CommandTopicStreamFixtures.res.mjs +9 -9
- package/tests/components/dcb/DcbCrossPartitionFixtures.res +3 -3
- package/tests/components/dcb/DcbCrossPartitionFixtures.res.mjs +22 -21
- package/tests/components/dcb/DcbEventLogAppendStreamTest.res +1 -1
- package/tests/components/dcb/DcbEventLogAppendStreamTest.res.mjs +2 -2
- package/tests/components/dcb/DcbFixtures.res +2 -2
- package/tests/components/dcb/DcbFixtures.res.mjs +12 -11
- package/tests/components/eventlog/EventLogFixtures.res.mjs +6 -6
- package/tests/components/eventlog/EventLogProvisioningSeamTest.res.mjs +3 -3
- package/tests/components/eventtopic/EventTopicFixtures.res.mjs +6 -6
- package/tests/components/eventtopic/EventTopicStreamFixtures.res.mjs +6 -6
- package/tests/components/extensionpoint/ExtensionPointFixtures.res +0 -1
- package/tests/components/extensionpoint/ExtensionPointFixtures.res.mjs +11 -13
- package/tests/components/extensionpoint/ExtensionPointTest.res +3 -3
- package/tests/components/extensionpoint/ExtensionPointTest.res.mjs +4 -4
- package/tests/components/inboundtranslationslice/InboundTranslationSliceCallbackTest.res.mjs +10 -10
- package/tests/components/inboundtranslationslice/InboundTranslationSliceFixtures.res.mjs +9 -9
- package/tests/components/outboundtranslationslice/OutboundTranslationSliceFixtures.res.mjs +23 -21
- package/tests/components/outboundtranslationslice/OutboundTranslationSlicePlatformFixtures.res +2 -2
- package/tests/components/outboundtranslationslice/OutboundTranslationSlicePlatformFixtures.res.mjs +17 -14
- package/tests/components/querydb/QueryDbFixtures.res.mjs +4 -4
- package/tests/components/querydb/QueryDbSubIdFixtures.res.mjs +6 -6
- package/tests/components/readmodel/DcbReadModelE2EFixtures.res +3 -3
- package/tests/components/readmodel/DcbReadModelE2EFixtures.res.mjs +17 -16
- package/tests/components/readmodel/DcbReadModelTypoFailFastTest.res.mjs +7 -7
- package/tests/components/readmodel/MixedSourceReadModelFixtures.res +5 -5
- package/tests/components/readmodel/MixedSourceReadModelFixtures.res.mjs +20 -19
- package/tests/components/readmodel/ReadModelFixtures.res +3 -3
- package/tests/components/readmodel/ReadModelFixtures.res.mjs +9 -8
- package/tests/components/sideeffecthandler/SideEffectHandlerFixtures.res +2 -3
- package/tests/components/sideeffecthandler/SideEffectHandlerFixtures.res.mjs +7 -8
- package/tests/components/stateviewslice/StateViewSliceFixtures.res +2 -2
- package/tests/components/stateviewslice/StateViewSliceFixtures.res.mjs +22 -21
- package/tests/components/stateviewslice/StateViewSliceSubIdFixtures.res +2 -2
- package/tests/components/stateviewslice/StateViewSliceSubIdFixtures.res.mjs +27 -26
- package/tests/components/task/TaskFixtures.res +0 -1
- package/tests/components/task/TaskFixtures.res.mjs +0 -3
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Generated by ReScript, PLEASE EDIT WITH CARE
|
|
2
2
|
|
|
3
|
-
import * as
|
|
3
|
+
import * as Sury from "sury";
|
|
4
4
|
import * as Stream from "@reventlessdev/rescript-effect/src/Stream.res.mjs";
|
|
5
5
|
import * as Id$Reventless from "@reventlessdev/reventless-spec/src/types/Id.res.mjs";
|
|
6
6
|
import * as Stdlib_Option from "@rescript/runtime/lib/es6/Stdlib_Option.js";
|
|
@@ -10,6 +10,7 @@ import * as Pulumi from "@pulumi/pulumi";
|
|
|
10
10
|
import * as DcbTag$Reventless from "@reventlessdev/reventless-spec/src/components/DcbTag.res.mjs";
|
|
11
11
|
import * as Message$Reventless from "@reventlessdev/reventless-spec/src/types/Message.res.mjs";
|
|
12
12
|
import * as ReadModel$Reventless from "@reventlessdev/reventless-spec/src/components/ReadModel.res.mjs";
|
|
13
|
+
import * as Util_Sury$Reventless from "@reventlessdev/reventless-spec/src/util/Util_Sury.res.mjs";
|
|
13
14
|
import * as Projection$Reventless from "@reventlessdev/reventless-spec/src/types/Projection.res.mjs";
|
|
14
15
|
import * as LocalBus$ReventlessLocal from "../../../src/adapter/LocalBus.res.mjs";
|
|
15
16
|
import * as Component$ReventlessInfra from "@reventlessdev/reventless-infra/src/components/Component.res.mjs";
|
|
@@ -24,21 +25,21 @@ let name = "AddProduct";
|
|
|
24
25
|
|
|
25
26
|
let moduleUrl = import.meta.url;
|
|
26
27
|
|
|
27
|
-
let eventSchema =
|
|
28
|
+
let eventSchema = Sury.$schema(s => ({
|
|
28
29
|
TAG: "ProductAdded",
|
|
29
30
|
productId: s.m(DcbTag$Reventless.string),
|
|
30
|
-
name: s.m(
|
|
31
|
+
name: s.m(Sury.string)
|
|
31
32
|
}));
|
|
32
33
|
|
|
33
|
-
let consumedEventSchema =
|
|
34
|
+
let consumedEventSchema = Sury.literal("ProductAdded");
|
|
34
35
|
|
|
35
|
-
let commandSchema =
|
|
36
|
+
let commandSchema = Sury.$schema(s => ({
|
|
36
37
|
TAG: "AddProduct",
|
|
37
38
|
productId: s.m(DcbTag$Reventless.string),
|
|
38
|
-
name: s.m(
|
|
39
|
+
name: s.m(Sury.string)
|
|
39
40
|
}));
|
|
40
41
|
|
|
41
|
-
let errorSchema =
|
|
42
|
+
let errorSchema = Sury.literal("ProductAlreadyExists");
|
|
42
43
|
|
|
43
44
|
function commandAuthorization(param) {
|
|
44
45
|
return "AllowAuthenticated";
|
|
@@ -90,10 +91,10 @@ let AddProductBehavior = {
|
|
|
90
91
|
|
|
91
92
|
let name$1 = "ProductCatalogDcbEventLog";
|
|
92
93
|
|
|
93
|
-
let eventSchema$1 =
|
|
94
|
+
let eventSchema$1 = Sury.$schema(s => ({
|
|
94
95
|
TAG: "ProductAdded",
|
|
95
|
-
productId: s.m(
|
|
96
|
-
name: s.m(
|
|
96
|
+
productId: s.m(Sury.string),
|
|
97
|
+
name: s.m(Sury.string)
|
|
97
98
|
}));
|
|
98
99
|
|
|
99
100
|
let ProductCatalogDcbSource = {
|
|
@@ -106,9 +107,9 @@ let name$2 = "TestProductsReadModel";
|
|
|
106
107
|
|
|
107
108
|
let moduleUrl$2 = import.meta.url;
|
|
108
109
|
|
|
109
|
-
let stateSchema =
|
|
110
|
-
productId: s.m(
|
|
111
|
-
name: s.m(
|
|
110
|
+
let stateSchema = Sury.$schema(s => ({
|
|
111
|
+
productId: s.m(Sury.string),
|
|
112
|
+
name: s.m(Sury.string)
|
|
112
113
|
}));
|
|
113
114
|
|
|
114
115
|
let config = ReadModel$Reventless.config(undefined, undefined, undefined);
|
|
@@ -212,7 +213,7 @@ async function publishJsons(cmdJsons) {
|
|
|
212
213
|
],
|
|
213
214
|
[
|
|
214
215
|
"meta",
|
|
215
|
-
|
|
216
|
+
Util_Sury$Reventless.toJson(cmdJson.meta, Message$Reventless.metaSchema)
|
|
216
217
|
],
|
|
217
218
|
[
|
|
218
219
|
"command",
|
|
@@ -266,7 +267,7 @@ async function dispatch(commandJson, id) {
|
|
|
266
267
|
}
|
|
267
268
|
|
|
268
269
|
function addProductCmd(productId, name) {
|
|
269
|
-
return
|
|
270
|
+
return Util_Sury$Reventless.toJson({
|
|
270
271
|
TAG: "AddProduct",
|
|
271
272
|
productId: productId,
|
|
272
273
|
name: name
|
|
@@ -279,7 +280,7 @@ async function loadState(productId) {
|
|
|
279
280
|
return [];
|
|
280
281
|
}
|
|
281
282
|
let states = await Effect.runPromise(Effect.catchAll(Stream.runCollect(ops.loadStream(productId)), param => Effect.succeed([])));
|
|
282
|
-
return states.map(json =>
|
|
283
|
+
return states.map(json => Util_Sury$Reventless.fromJson(json, stateSchema));
|
|
283
284
|
}
|
|
284
285
|
|
|
285
286
|
export {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Generated by ReScript, PLEASE EDIT WITH CARE
|
|
2
2
|
|
|
3
|
-
import * as
|
|
3
|
+
import * as Sury from "sury";
|
|
4
4
|
import * as Stdlib_JsExn from "@rescript/runtime/lib/es6/Stdlib_JsExn.js";
|
|
5
5
|
import * as Id$Reventless from "@reventlessdev/reventless-spec/src/types/Id.res.mjs";
|
|
6
6
|
import * as Stdlib_Option from "@rescript/runtime/lib/es6/Stdlib_Option.js";
|
|
@@ -19,10 +19,10 @@ TestRunner$ReventlessLocal.setup();
|
|
|
19
19
|
|
|
20
20
|
let name = "MissingDcb";
|
|
21
21
|
|
|
22
|
-
let eventSchema =
|
|
22
|
+
let eventSchema = Sury.$schema(s => ({
|
|
23
23
|
TAG: "ProductAdded",
|
|
24
|
-
productId: s.m(
|
|
25
|
-
name: s.m(
|
|
24
|
+
productId: s.m(Sury.string),
|
|
25
|
+
name: s.m(Sury.string)
|
|
26
26
|
}));
|
|
27
27
|
|
|
28
28
|
let TypoSource = {
|
|
@@ -35,9 +35,9 @@ let name$1 = "TypoCheckReadModel";
|
|
|
35
35
|
|
|
36
36
|
let moduleUrl = import.meta.url;
|
|
37
37
|
|
|
38
|
-
let stateSchema =
|
|
39
|
-
productId: s.m(
|
|
40
|
-
name: s.m(
|
|
38
|
+
let stateSchema = Sury.$schema(s => ({
|
|
39
|
+
productId: s.m(Sury.string),
|
|
40
|
+
name: s.m(Sury.string)
|
|
41
41
|
}));
|
|
42
42
|
|
|
43
43
|
let config = ReadModel$Reventless.config(undefined, undefined, undefined);
|
|
@@ -148,8 +148,8 @@ let publishAggregateEvent = async (id, event: AggregateSource.event) => {
|
|
|
148
148
|
let eventJson = JSON.Encode.object(
|
|
149
149
|
Dict.fromArray([
|
|
150
150
|
("id", id->JSON.Encode.string),
|
|
151
|
-
("meta", meta->
|
|
152
|
-
("event", event->
|
|
151
|
+
("meta", meta->Reventless.Util_Sury.toJson(Message.metaSchema)),
|
|
152
|
+
("event", event->Reventless.Util_Sury.toJson(AggregateSource.eventSchema)),
|
|
153
153
|
]),
|
|
154
154
|
)
|
|
155
155
|
await Bus.publishEvent(aggregateTopicName, "test", meta, eventJson)
|
|
@@ -160,8 +160,8 @@ let publishDcbEvent = async (id, event: DcbSource.event) => {
|
|
|
160
160
|
let eventJson = JSON.Encode.object(
|
|
161
161
|
Dict.fromArray([
|
|
162
162
|
("id", id->JSON.Encode.string),
|
|
163
|
-
("meta", meta->
|
|
164
|
-
("event", event->
|
|
163
|
+
("meta", meta->Reventless.Util_Sury.toJson(Message.metaSchema)),
|
|
164
|
+
("event", event->Reventless.Util_Sury.toJson(DcbSource.eventSchema)),
|
|
165
165
|
]),
|
|
166
166
|
)
|
|
167
167
|
await Bus.publishEvent(dcbTopicName, "test", meta, eventJson)
|
|
@@ -176,6 +176,6 @@ let loadState = async id => {
|
|
|
176
176
|
->Stream.runCollect
|
|
177
177
|
->Effect.catchAll(_ => Effect.succeed([]))
|
|
178
178
|
->Effect.runPromise
|
|
179
|
-
states->Array.map(json => json->
|
|
179
|
+
states->Array.map(json => json->Reventless.Util_Sury.fromJson(MixedReadModelSpec.stateSchema))
|
|
180
180
|
}
|
|
181
181
|
}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
// Generated by ReScript, PLEASE EDIT WITH CARE
|
|
2
2
|
|
|
3
|
-
import * as
|
|
3
|
+
import * as Sury from "sury";
|
|
4
4
|
import * as Stream from "@reventlessdev/rescript-effect/src/Stream.res.mjs";
|
|
5
5
|
import * as Id$Reventless from "@reventlessdev/reventless-spec/src/types/Id.res.mjs";
|
|
6
6
|
import * as Effect from "effect/Effect";
|
|
7
7
|
import * as Pulumi from "@pulumi/pulumi";
|
|
8
8
|
import * as Message$Reventless from "@reventlessdev/reventless-spec/src/types/Message.res.mjs";
|
|
9
9
|
import * as ReadModel$Reventless from "@reventlessdev/reventless-spec/src/components/ReadModel.res.mjs";
|
|
10
|
+
import * as Util_Sury$Reventless from "@reventlessdev/reventless-spec/src/util/Util_Sury.res.mjs";
|
|
10
11
|
import * as Projection$Reventless from "@reventlessdev/reventless-spec/src/types/Projection.res.mjs";
|
|
11
12
|
import * as Adapter$ReventlessInfra from "@reventlessdev/reventless-infra/src/adapter/Adapter.res.mjs";
|
|
12
13
|
import * as LocalBus$ReventlessLocal from "../../../src/adapter/LocalBus.res.mjs";
|
|
@@ -18,9 +19,9 @@ let name = "TestMixedReadModel";
|
|
|
18
19
|
|
|
19
20
|
let moduleUrl = import.meta.url;
|
|
20
21
|
|
|
21
|
-
let stateSchema =
|
|
22
|
-
name: s.m(
|
|
23
|
-
source: s.m(
|
|
22
|
+
let stateSchema = Sury.$schema(s => ({
|
|
23
|
+
name: s.m(Sury.string),
|
|
24
|
+
source: s.m(Sury.string)
|
|
24
25
|
}));
|
|
25
26
|
|
|
26
27
|
let config = ReadModel$Reventless.config(undefined, undefined, undefined);
|
|
@@ -38,14 +39,14 @@ let MixedReadModelSpec = {
|
|
|
38
39
|
|
|
39
40
|
let name$1 = "TestAggregateEventTopic";
|
|
40
41
|
|
|
41
|
-
let eventSchema =
|
|
42
|
-
|
|
42
|
+
let eventSchema = Sury.union([
|
|
43
|
+
Sury.$schema(s => ({
|
|
43
44
|
TAG: "AggregateItemCreated",
|
|
44
|
-
name: s.m(
|
|
45
|
+
name: s.m(Sury.string)
|
|
45
46
|
})),
|
|
46
|
-
|
|
47
|
+
Sury.$schema(s => ({
|
|
47
48
|
TAG: "AggregateItemRenamed",
|
|
48
|
-
name: s.m(
|
|
49
|
+
name: s.m(Sury.string)
|
|
49
50
|
}))
|
|
50
51
|
]);
|
|
51
52
|
|
|
@@ -57,14 +58,14 @@ let AggregateSource = {
|
|
|
57
58
|
|
|
58
59
|
let name$2 = "TestDcbEventTopic";
|
|
59
60
|
|
|
60
|
-
let eventSchema$1 =
|
|
61
|
-
|
|
61
|
+
let eventSchema$1 = Sury.union([
|
|
62
|
+
Sury.$schema(s => ({
|
|
62
63
|
TAG: "DcbItemAdded",
|
|
63
|
-
name: s.m(
|
|
64
|
+
name: s.m(Sury.string)
|
|
64
65
|
})),
|
|
65
|
-
|
|
66
|
+
Sury.$schema(s => ({
|
|
66
67
|
TAG: "DcbItemNameChanged",
|
|
67
|
-
name: s.m(
|
|
68
|
+
name: s.m(Sury.string)
|
|
68
69
|
}))
|
|
69
70
|
]);
|
|
70
71
|
|
|
@@ -216,11 +217,11 @@ async function publishAggregateEvent(id, event) {
|
|
|
216
217
|
],
|
|
217
218
|
[
|
|
218
219
|
"meta",
|
|
219
|
-
|
|
220
|
+
Util_Sury$Reventless.toJson(meta, Message$Reventless.metaSchema)
|
|
220
221
|
],
|
|
221
222
|
[
|
|
222
223
|
"event",
|
|
223
|
-
|
|
224
|
+
Util_Sury$Reventless.toJson(event, eventSchema)
|
|
224
225
|
]
|
|
225
226
|
]);
|
|
226
227
|
return await Bus.publishEvent(aggregateTopicName, "test", meta, eventJson);
|
|
@@ -235,11 +236,11 @@ async function publishDcbEvent(id, event) {
|
|
|
235
236
|
],
|
|
236
237
|
[
|
|
237
238
|
"meta",
|
|
238
|
-
|
|
239
|
+
Util_Sury$Reventless.toJson(meta, Message$Reventless.metaSchema)
|
|
239
240
|
],
|
|
240
241
|
[
|
|
241
242
|
"event",
|
|
242
|
-
|
|
243
|
+
Util_Sury$Reventless.toJson(event, eventSchema$1)
|
|
243
244
|
]
|
|
244
245
|
]);
|
|
245
246
|
return await Bus.publishEvent(dcbTopicName, "test", meta, eventJson);
|
|
@@ -251,7 +252,7 @@ async function loadState(id) {
|
|
|
251
252
|
return [];
|
|
252
253
|
}
|
|
253
254
|
let states = await Effect.runPromise(Effect.catchAll(Stream.runCollect(ops.loadStream(id)), param => Effect.succeed([])));
|
|
254
|
-
return states.map(json =>
|
|
255
|
+
return states.map(json => Util_Sury$Reventless.fromJson(json, stateSchema));
|
|
255
256
|
}
|
|
256
257
|
|
|
257
258
|
export {
|
|
@@ -111,11 +111,11 @@ let publishItemCreated = async (id, name) => {
|
|
|
111
111
|
let eventJson = JSON.Encode.object(
|
|
112
112
|
Dict.fromArray([
|
|
113
113
|
("id", id->JSON.Encode.string),
|
|
114
|
-
("meta", testMeta->
|
|
114
|
+
("meta", testMeta->Reventless.Util_Sury.toJson(Message.metaSchema)),
|
|
115
115
|
(
|
|
116
116
|
"event",
|
|
117
117
|
ItemEventSource.ItemCreated({name: name})
|
|
118
|
-
->
|
|
118
|
+
->Reventless.Util_Sury.toJson(ItemEventSource.eventSchema),
|
|
119
119
|
),
|
|
120
120
|
]),
|
|
121
121
|
)
|
|
@@ -133,6 +133,6 @@ let loadState = async id => {
|
|
|
133
133
|
->Stream.runCollect
|
|
134
134
|
->Effect.catchAll(_ => Effect.succeed([]))
|
|
135
135
|
->Effect.runPromise
|
|
136
|
-
states->Array.map(json => json->
|
|
136
|
+
states->Array.map(json => json->Reventless.Util_Sury.fromJson(ItemReadModelSpec.stateSchema))
|
|
137
137
|
}
|
|
138
138
|
}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
// Generated by ReScript, PLEASE EDIT WITH CARE
|
|
2
2
|
|
|
3
|
-
import * as
|
|
3
|
+
import * as Sury from "sury";
|
|
4
4
|
import * as Stream from "@reventlessdev/rescript-effect/src/Stream.res.mjs";
|
|
5
5
|
import * as Id$Reventless from "@reventlessdev/reventless-spec/src/types/Id.res.mjs";
|
|
6
6
|
import * as Effect from "effect/Effect";
|
|
7
7
|
import * as Pulumi from "@pulumi/pulumi";
|
|
8
8
|
import * as Message$Reventless from "@reventlessdev/reventless-spec/src/types/Message.res.mjs";
|
|
9
9
|
import * as ReadModel$Reventless from "@reventlessdev/reventless-spec/src/components/ReadModel.res.mjs";
|
|
10
|
+
import * as Util_Sury$Reventless from "@reventlessdev/reventless-spec/src/util/Util_Sury.res.mjs";
|
|
10
11
|
import * as Projection$Reventless from "@reventlessdev/reventless-spec/src/types/Projection.res.mjs";
|
|
11
12
|
import * as Adapter$ReventlessInfra from "@reventlessdev/reventless-infra/src/adapter/Adapter.res.mjs";
|
|
12
13
|
import * as LocalBus$ReventlessLocal from "../../../src/adapter/LocalBus.res.mjs";
|
|
@@ -18,8 +19,8 @@ let name = "TestItemReadModel";
|
|
|
18
19
|
|
|
19
20
|
let moduleUrl = import.meta.url;
|
|
20
21
|
|
|
21
|
-
let stateSchema =
|
|
22
|
-
name: s.m(
|
|
22
|
+
let stateSchema = Sury.$schema(s => ({
|
|
23
|
+
name: s.m(Sury.string)
|
|
23
24
|
}));
|
|
24
25
|
|
|
25
26
|
let config = ReadModel$Reventless.config(undefined, undefined, undefined);
|
|
@@ -37,9 +38,9 @@ let ItemReadModelSpec = {
|
|
|
37
38
|
|
|
38
39
|
let name$1 = "TestItemEventTopic";
|
|
39
40
|
|
|
40
|
-
let eventSchema =
|
|
41
|
+
let eventSchema = Sury.$schema(s => ({
|
|
41
42
|
TAG: "ItemCreated",
|
|
42
|
-
name: s.m(
|
|
43
|
+
name: s.m(Sury.string)
|
|
43
44
|
}));
|
|
44
45
|
|
|
45
46
|
let ItemEventSource = {
|
|
@@ -128,11 +129,11 @@ async function publishItemCreated(id, name) {
|
|
|
128
129
|
],
|
|
129
130
|
[
|
|
130
131
|
"meta",
|
|
131
|
-
|
|
132
|
+
Util_Sury$Reventless.toJson(testMeta, Message$Reventless.metaSchema)
|
|
132
133
|
],
|
|
133
134
|
[
|
|
134
135
|
"event",
|
|
135
|
-
|
|
136
|
+
Util_Sury$Reventless.toJson({
|
|
136
137
|
TAG: "ItemCreated",
|
|
137
138
|
name: name
|
|
138
139
|
}, eventSchema)
|
|
@@ -147,7 +148,7 @@ async function loadState(id) {
|
|
|
147
148
|
return [];
|
|
148
149
|
}
|
|
149
150
|
let states = await Effect.runPromise(Effect.catchAll(Stream.runCollect(ops.loadStream(id)), param => Effect.succeed([])));
|
|
150
|
-
return states.map(json =>
|
|
151
|
+
return states.map(json => Util_Sury$Reventless.fromJson(json, stateSchema));
|
|
151
152
|
}
|
|
152
153
|
|
|
153
154
|
export {
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
|
|
4
4
|
open TestFixtures
|
|
5
5
|
|
|
6
|
-
S.enableJson()
|
|
7
6
|
|
|
8
7
|
// ─────────────────────────────────────────────────────────────
|
|
9
8
|
// Isolated bus + Pulumi mock mode
|
|
@@ -117,11 +116,11 @@ let publishOrderPlaced = async (id, orderId) => {
|
|
|
117
116
|
let eventJson = JSON.Encode.object(
|
|
118
117
|
Dict.fromArray([
|
|
119
118
|
("id", id->JSON.Encode.string),
|
|
120
|
-
("meta", testMeta->
|
|
119
|
+
("meta", testMeta->Reventless.Util_Sury.toJson(Reventless.Message.metaSchema)),
|
|
121
120
|
(
|
|
122
121
|
"event",
|
|
123
122
|
TestSEHSource.OrderPlaced({orderId: orderId})
|
|
124
|
-
->
|
|
123
|
+
->Reventless.Util_Sury.toJson(TestSEHSource.eventSchema),
|
|
125
124
|
),
|
|
126
125
|
]),
|
|
127
126
|
)
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
// Generated by ReScript, PLEASE EDIT WITH CARE
|
|
2
2
|
|
|
3
|
-
import * as
|
|
3
|
+
import * as Sury from "sury";
|
|
4
4
|
import * as Id$Reventless from "@reventlessdev/reventless-spec/src/types/Id.res.mjs";
|
|
5
5
|
import * as Pulumi from "@pulumi/pulumi";
|
|
6
6
|
import * as Message$Reventless from "@reventlessdev/reventless-spec/src/types/Message.res.mjs";
|
|
7
|
+
import * as Util_Sury$Reventless from "@reventlessdev/reventless-spec/src/util/Util_Sury.res.mjs";
|
|
7
8
|
import * as Adapter$ReventlessInfra from "@reventlessdev/reventless-infra/src/adapter/Adapter.res.mjs";
|
|
8
9
|
import * as LocalBus$ReventlessLocal from "../../../src/adapter/LocalBus.res.mjs";
|
|
9
10
|
import * as TestRunner$ReventlessLocal from "../../../src/test/TestRunner.res.mjs";
|
|
@@ -14,17 +15,15 @@ import * as SideEffectHandler_Builder$ReventlessCore from "@reventlessdev/revent
|
|
|
14
15
|
import * as LocalEventCollectorChannel$ReventlessLocal from "../../../src/adapter/EventCollector/LocalEventCollectorChannel.res.mjs";
|
|
15
16
|
import * as LocalEventCollectorRuntime_Builder$ReventlessLocal from "../../../src/adapter/Runtime/LocalEventCollectorRuntime_Builder.res.mjs";
|
|
16
17
|
|
|
17
|
-
S.enableJson();
|
|
18
|
-
|
|
19
18
|
let Bus = LocalBus$ReventlessLocal.Make({});
|
|
20
19
|
|
|
21
20
|
TestRunner$ReventlessLocal.setup();
|
|
22
21
|
|
|
23
22
|
let name = "TestSEHSource";
|
|
24
23
|
|
|
25
|
-
let eventSchema =
|
|
24
|
+
let eventSchema = Sury.$schema(s => ({
|
|
26
25
|
TAG: "OrderPlaced",
|
|
27
|
-
orderId: s.m(
|
|
26
|
+
orderId: s.m(Sury.string)
|
|
28
27
|
}));
|
|
29
28
|
|
|
30
29
|
let TestSEHSource = {
|
|
@@ -117,11 +116,11 @@ async function publishOrderPlaced(id, orderId) {
|
|
|
117
116
|
],
|
|
118
117
|
[
|
|
119
118
|
"meta",
|
|
120
|
-
|
|
119
|
+
Util_Sury$Reventless.toJson(testMeta, Message$Reventless.metaSchema)
|
|
121
120
|
],
|
|
122
121
|
[
|
|
123
122
|
"event",
|
|
124
|
-
|
|
123
|
+
Util_Sury$Reventless.toJson({
|
|
125
124
|
TAG: "OrderPlaced",
|
|
126
125
|
orderId: orderId
|
|
127
126
|
}, eventSchema)
|
|
@@ -152,4 +151,4 @@ export {
|
|
|
152
151
|
publishOrderPlaced,
|
|
153
152
|
resetMocks,
|
|
154
153
|
}
|
|
155
|
-
/*
|
|
154
|
+
/* Bus Not a pure module */
|
|
@@ -88,7 +88,7 @@ let dcbEventTopicResource =
|
|
|
88
88
|
|
|
89
89
|
// Encode a typed event into a raw event for appending to the DcbEventLog
|
|
90
90
|
let encodeEvent = (event: ItemEventLog.event): ReventlessInfra.DcbEventLog.rawEvent => {
|
|
91
|
-
let json = event->
|
|
91
|
+
let json = event->Reventless.Util_Sury.toJson(ItemEventLog.eventSchema)
|
|
92
92
|
let (eventType, data) = json->ReventlessCore.Message.splitMessage
|
|
93
93
|
let tags = Reventless.DcbTag.extractTags(ItemEventLog.eventSchema, event)
|
|
94
94
|
let meta = ReventlessCore.Message.generateMeta(~service="test")
|
|
@@ -112,6 +112,6 @@ let loadState = async id => {
|
|
|
112
112
|
->Stream.runCollect
|
|
113
113
|
->Effect.catchAll(_ => Effect.succeed([]))
|
|
114
114
|
->Effect.runPromise
|
|
115
|
-
states->Array.map(json => json->
|
|
115
|
+
states->Array.map(json => json->Reventless.Util_Sury.fromJson(ItemsViewSpec.stateSchema))
|
|
116
116
|
}
|
|
117
117
|
}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
// Generated by ReScript, PLEASE EDIT WITH CARE
|
|
2
2
|
|
|
3
|
-
import * as
|
|
3
|
+
import * as Sury from "sury";
|
|
4
4
|
import * as Stream from "@reventlessdev/rescript-effect/src/Stream.res.mjs";
|
|
5
5
|
import * as Effect from "effect/Effect";
|
|
6
6
|
import * as DcbTag$Reventless from "@reventlessdev/reventless-spec/src/components/DcbTag.res.mjs";
|
|
7
7
|
import * as ReadModel$Reventless from "@reventlessdev/reventless-spec/src/components/ReadModel.res.mjs";
|
|
8
|
+
import * as Util_Sury$Reventless from "@reventlessdev/reventless-spec/src/util/Util_Sury.res.mjs";
|
|
8
9
|
import * as Message$ReventlessCore from "@reventlessdev/reventless-core/src/Message.res.mjs";
|
|
9
10
|
import * as Component$ReventlessCore from "@reventlessdev/reventless-core/src/components/Component.res.mjs";
|
|
10
11
|
import * as LocalBus$ReventlessLocal from "../../../src/adapter/LocalBus.res.mjs";
|
|
@@ -12,18 +13,18 @@ import * as TestRunner$ReventlessLocal from "../../../src/test/TestRunner.res.mj
|
|
|
12
13
|
import * as DcbEventLog_Builder$ReventlessLocal from "../../../src/components/DcbEventLog_Builder.res.mjs";
|
|
13
14
|
import * as StateViewSlice_Builder$ReventlessLocal from "../../../src/components/StateViewSlice_Builder.res.mjs";
|
|
14
15
|
|
|
15
|
-
let eventSchema =
|
|
16
|
-
|
|
16
|
+
let eventSchema = Sury.union([
|
|
17
|
+
Sury.$schema(s => ({
|
|
17
18
|
TAG: "ItemAdded",
|
|
18
19
|
id: s.m(DcbTag$Reventless.string),
|
|
19
|
-
name: s.m(
|
|
20
|
+
name: s.m(Sury.string)
|
|
20
21
|
})),
|
|
21
|
-
|
|
22
|
+
Sury.$schema(s => ({
|
|
22
23
|
TAG: "ItemRenamed",
|
|
23
24
|
id: s.m(DcbTag$Reventless.string),
|
|
24
|
-
name: s.m(
|
|
25
|
+
name: s.m(Sury.string)
|
|
25
26
|
})),
|
|
26
|
-
|
|
27
|
+
Sury.$schema(s => ({
|
|
27
28
|
TAG: "ItemRemoved",
|
|
28
29
|
id: s.m(DcbTag$Reventless.string)
|
|
29
30
|
}))
|
|
@@ -37,26 +38,26 @@ let name = "ItemsView";
|
|
|
37
38
|
|
|
38
39
|
let moduleUrl = import.meta.url;
|
|
39
40
|
|
|
40
|
-
let consumedEventSchema =
|
|
41
|
-
|
|
41
|
+
let consumedEventSchema = Sury.union([
|
|
42
|
+
Sury.$schema(s => ({
|
|
42
43
|
TAG: "ItemAdded",
|
|
43
|
-
id: s.m(
|
|
44
|
-
name: s.m(
|
|
44
|
+
id: s.m(Sury.string),
|
|
45
|
+
name: s.m(Sury.string)
|
|
45
46
|
})),
|
|
46
|
-
|
|
47
|
+
Sury.$schema(s => ({
|
|
47
48
|
TAG: "ItemRenamed",
|
|
48
|
-
id: s.m(
|
|
49
|
-
name: s.m(
|
|
49
|
+
id: s.m(Sury.string),
|
|
50
|
+
name: s.m(Sury.string)
|
|
50
51
|
})),
|
|
51
|
-
|
|
52
|
+
Sury.$schema(s => ({
|
|
52
53
|
TAG: "ItemRemoved",
|
|
53
|
-
id: s.m(
|
|
54
|
+
id: s.m(Sury.string)
|
|
54
55
|
}))
|
|
55
56
|
]);
|
|
56
57
|
|
|
57
|
-
let stateSchema =
|
|
58
|
-
id: s.m(
|
|
59
|
-
name: s.m(
|
|
58
|
+
let stateSchema = Sury.$schema(s => ({
|
|
59
|
+
id: s.m(Sury.string),
|
|
60
|
+
name: s.m(Sury.string)
|
|
60
61
|
}));
|
|
61
62
|
|
|
62
63
|
let config = ReadModel$Reventless.config(undefined, undefined, undefined);
|
|
@@ -145,7 +146,7 @@ let sv = ItemsViewMaker.make(eventLog, undefined, undefined);
|
|
|
145
146
|
let dcbEventTopicResource = Component$ReventlessCore.outputs(eventLog).eventTopic.resources[0];
|
|
146
147
|
|
|
147
148
|
function encodeEvent(event) {
|
|
148
|
-
let json =
|
|
149
|
+
let json = Util_Sury$Reventless.toJson(event, eventSchema);
|
|
149
150
|
let match = Message$ReventlessCore.splitMessage(json);
|
|
150
151
|
let tags = DcbTag$Reventless.extractTags(eventSchema, event);
|
|
151
152
|
let meta = Message$ReventlessCore.generateMeta("test", undefined, undefined, undefined, undefined, undefined, undefined, undefined);
|
|
@@ -168,7 +169,7 @@ async function loadState(id) {
|
|
|
168
169
|
return [];
|
|
169
170
|
}
|
|
170
171
|
let states = await Effect.runPromise(Effect.catchAll(Stream.runCollect(ops.loadStream(id)), param => Effect.succeed([])));
|
|
171
|
-
return states.map(json =>
|
|
172
|
+
return states.map(json => Util_Sury$Reventless.fromJson(json, stateSchema));
|
|
172
173
|
}
|
|
173
174
|
|
|
174
175
|
export {
|
|
@@ -91,7 +91,7 @@ let dcbEventTopicResource =
|
|
|
91
91
|
// ─────────────────────────────────────────────────────────────
|
|
92
92
|
|
|
93
93
|
let encodeEvent = (event: ScoreEventLog.event): ReventlessInfra.DcbEventLog.rawEvent => {
|
|
94
|
-
let json = event->
|
|
94
|
+
let json = event->Reventless.Util_Sury.toJson(ScoreEventLog.eventSchema)
|
|
95
95
|
let (eventType, data) = json->ReventlessCore.Message.splitMessage
|
|
96
96
|
let tags = Reventless.DcbTag.extractTags(ScoreEventLog.eventSchema, event)
|
|
97
97
|
let meta = ReventlessCore.Message.generateMeta(~service="test")
|
|
@@ -112,6 +112,6 @@ let loadScores = async id => {
|
|
|
112
112
|
->Stream.runCollect
|
|
113
113
|
->Effect.catchAll(_ => Effect.succeed([]))
|
|
114
114
|
->Effect.runPromise
|
|
115
|
-
states->Array.map(json => json->
|
|
115
|
+
states->Array.map(json => json->Reventless.Util_Sury.fromJson(ScoresViewSpec.stateSchema))
|
|
116
116
|
}
|
|
117
117
|
}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
// Generated by ReScript, PLEASE EDIT WITH CARE
|
|
2
2
|
|
|
3
|
-
import * as
|
|
3
|
+
import * as Sury from "sury";
|
|
4
4
|
import * as Stream from "@reventlessdev/rescript-effect/src/Stream.res.mjs";
|
|
5
5
|
import * as Effect from "effect/Effect";
|
|
6
6
|
import * as DcbTag$Reventless from "@reventlessdev/reventless-spec/src/components/DcbTag.res.mjs";
|
|
7
7
|
import * as ReadModel$Reventless from "@reventlessdev/reventless-spec/src/components/ReadModel.res.mjs";
|
|
8
|
+
import * as Util_Sury$Reventless from "@reventlessdev/reventless-spec/src/util/Util_Sury.res.mjs";
|
|
8
9
|
import * as Message$ReventlessCore from "@reventlessdev/reventless-core/src/Message.res.mjs";
|
|
9
10
|
import * as Component$ReventlessCore from "@reventlessdev/reventless-core/src/components/Component.res.mjs";
|
|
10
11
|
import * as LocalBus$ReventlessLocal from "../../../src/adapter/LocalBus.res.mjs";
|
|
@@ -12,19 +13,19 @@ import * as TestRunner$ReventlessLocal from "../../../src/test/TestRunner.res.mj
|
|
|
12
13
|
import * as DcbEventLog_Builder$ReventlessLocal from "../../../src/components/DcbEventLog_Builder.res.mjs";
|
|
13
14
|
import * as StateViewSlice_Builder$ReventlessLocal from "../../../src/components/StateViewSlice_Builder.res.mjs";
|
|
14
15
|
|
|
15
|
-
let eventSchema =
|
|
16
|
-
|
|
16
|
+
let eventSchema = Sury.union([
|
|
17
|
+
Sury.$schema(s => ({
|
|
17
18
|
TAG: "ScoreRecorded",
|
|
18
19
|
id: s.m(DcbTag$Reventless.string),
|
|
19
|
-
category: s.m(
|
|
20
|
-
date: s.m(
|
|
21
|
-
score: s.m(
|
|
20
|
+
category: s.m(Sury.string),
|
|
21
|
+
date: s.m(Sury.string),
|
|
22
|
+
score: s.m(Sury.int)
|
|
22
23
|
})),
|
|
23
|
-
|
|
24
|
+
Sury.$schema(s => ({
|
|
24
25
|
TAG: "ScoreRemoved",
|
|
25
26
|
id: s.m(DcbTag$Reventless.string),
|
|
26
|
-
category: s.m(
|
|
27
|
-
date: s.m(
|
|
27
|
+
category: s.m(Sury.string),
|
|
28
|
+
date: s.m(Sury.string)
|
|
28
29
|
}))
|
|
29
30
|
]);
|
|
30
31
|
|
|
@@ -36,27 +37,27 @@ let name = "ScoresView";
|
|
|
36
37
|
|
|
37
38
|
let moduleUrl = import.meta.url;
|
|
38
39
|
|
|
39
|
-
let consumedEventSchema =
|
|
40
|
-
|
|
40
|
+
let consumedEventSchema = Sury.union([
|
|
41
|
+
Sury.$schema(s => ({
|
|
41
42
|
TAG: "ScoreRecorded",
|
|
42
|
-
id: s.m(
|
|
43
|
-
category: s.m(
|
|
44
|
-
date: s.m(
|
|
45
|
-
score: s.m(
|
|
43
|
+
id: s.m(Sury.string),
|
|
44
|
+
category: s.m(Sury.string),
|
|
45
|
+
date: s.m(Sury.string),
|
|
46
|
+
score: s.m(Sury.int)
|
|
46
47
|
})),
|
|
47
|
-
|
|
48
|
+
Sury.$schema(s => ({
|
|
48
49
|
TAG: "ScoreRemoved",
|
|
49
|
-
id: s.m(
|
|
50
|
-
category: s.m(
|
|
51
|
-
date: s.m(
|
|
50
|
+
id: s.m(Sury.string),
|
|
51
|
+
category: s.m(Sury.string),
|
|
52
|
+
date: s.m(Sury.string)
|
|
52
53
|
}))
|
|
53
54
|
]);
|
|
54
55
|
|
|
55
|
-
let stateSchema =
|
|
56
|
-
id: s.m(
|
|
57
|
-
category: s.m(
|
|
58
|
-
date: s.m(
|
|
59
|
-
score: s.m(
|
|
56
|
+
let stateSchema = Sury.$schema(s => ({
|
|
57
|
+
id: s.m(Sury.string),
|
|
58
|
+
category: s.m(Sury.string),
|
|
59
|
+
date: s.m(Sury.string),
|
|
60
|
+
score: s.m(Sury.int)
|
|
60
61
|
}));
|
|
61
62
|
|
|
62
63
|
let config = ReadModel$Reventless.config(undefined, undefined, undefined);
|
|
@@ -140,7 +141,7 @@ let sv = ScoresViewMaker.make(eventLog, undefined, undefined);
|
|
|
140
141
|
let dcbEventTopicResource = Component$ReventlessCore.outputs(eventLog).eventTopic.resources[0];
|
|
141
142
|
|
|
142
143
|
function encodeEvent(event) {
|
|
143
|
-
let json =
|
|
144
|
+
let json = Util_Sury$Reventless.toJson(event, eventSchema);
|
|
144
145
|
let match = Message$ReventlessCore.splitMessage(json);
|
|
145
146
|
let tags = DcbTag$Reventless.extractTags(eventSchema, event);
|
|
146
147
|
let meta = Message$ReventlessCore.generateMeta("test", undefined, undefined, undefined, undefined, undefined, undefined, undefined);
|
|
@@ -163,7 +164,7 @@ async function loadScores(id) {
|
|
|
163
164
|
return [];
|
|
164
165
|
}
|
|
165
166
|
let states = await Effect.runPromise(Effect.catchAll(Stream.runCollect(ops.loadStream(id)), param => Effect.succeed([])));
|
|
166
|
-
return states.map(json =>
|
|
167
|
+
return states.map(json => Util_Sury$Reventless.fromJson(json, stateSchema));
|
|
167
168
|
}
|
|
168
169
|
|
|
169
170
|
export {
|