@reventlessdev/online-shop-hybrid-ordering 1.0.0-alpha.243 → 1.0.0-alpha.244

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 CHANGED
@@ -3,6 +3,19 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # 1.0.0-alpha.244 (2026-09-21)
7
+
8
+ * feat(spec)!: typed projection keys ([fc6a018](https://github.com/ReventlessDev/reventless-core/commit/fc6a01811ba788f3289e84a435a09f77fa627e1a))
9
+
10
+ ### BREAKING CHANGES
11
+
12
+ * a projection that keys a row by a payload `string`, or uses
13
+ the envelope id as a `string`, converts explicitly with
14
+ `Target.Id.makeFromString` / `Source.Id.toString`. `StateChangeSlice.Spec` no
15
+ longer requires `module Id`.
16
+
17
+
18
+
6
19
  # 1.0.0-alpha.243 (2026-09-21)
7
20
 
8
21
  **Note:** Version bump only for package @reventlessdev/online-shop-hybrid-ordering
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reventlessdev/online-shop-hybrid-ordering",
3
- "version": "1.0.0-alpha.243",
3
+ "version": "1.0.0-alpha.244",
4
4
  "description": "Online Shop Hybrid example — Ordering plugin (Customer aggregate + Order/CatalogProduct DCB)",
5
5
  "license": "Apache-2.0",
6
6
  "jest": {
@@ -21,20 +21,20 @@
21
21
  },
22
22
  "dependencies": {
23
23
  "sury": "11.0.0-rc.2",
24
- "@reventlessdev/online-shop-hybrid-catalog-spec": "1.0.0-alpha.135",
25
- "@reventlessdev/reventless-gwt": "1.0.0-alpha.213",
24
+ "@reventlessdev/online-shop-hybrid-catalog-spec": "1.0.0-alpha.136",
26
25
  "@reventlessdev/rescript-pulumi-pulumi": "2.3.0-alpha.21",
27
- "@reventlessdev/reventless-infra": "3.0.0-alpha.167",
28
- "@reventlessdev/online-shop-hybrid-ordering-spec": "1.0.0-alpha.135",
29
- "@reventlessdev/reventless-spec": "3.0.0-alpha.139",
30
- "@reventlessdev/reventless-local": "3.0.0-alpha.256",
31
- "@reventlessdev/trait-address-geocoding": "1.0.0-alpha.15",
32
- "@reventlessdev/trait-notification": "1.0.0-alpha.15"
26
+ "@reventlessdev/reventless-infra": "3.0.0-alpha.168",
27
+ "@reventlessdev/online-shop-hybrid-ordering-spec": "1.0.0-alpha.136",
28
+ "@reventlessdev/reventless-gwt": "1.0.0-alpha.214",
29
+ "@reventlessdev/reventless-local": "3.0.0-alpha.257",
30
+ "@reventlessdev/reventless-spec": "3.0.0-alpha.140",
31
+ "@reventlessdev/trait-address-geocoding": "1.0.0-alpha.16",
32
+ "@reventlessdev/trait-notification": "1.0.0-alpha.16"
33
33
  },
34
34
  "devDependencies": {
35
35
  "rescript": "12.3.0",
36
36
  "sury-ppx": "11.0.0-rc.2",
37
- "@reventlessdev/reventless-ppx": "1.0.0-alpha.80"
37
+ "@reventlessdev/reventless-ppx": "1.0.0-alpha.81"
38
38
  },
39
39
  "peerDependencies": {
40
40
  "rescript": "12.3.0"
@@ -64,6 +64,8 @@ let name = "AvailableProducts";
64
64
 
65
65
  let Id;
66
66
 
67
+ let Key;
68
+
67
69
  let subIdConfig;
68
70
 
69
71
  let moduleUrl = "@reventlessdev/online-shop-hybrid-ordering/src/CatalogProduct/StateViewStream/AvailableProducts.res.mjs";
@@ -77,6 +79,7 @@ export {
77
79
  Id,
78
80
  consumedEventSchema,
79
81
  config,
82
+ Key,
80
83
  subIdConfig,
81
84
  stateSchema$1 as stateSchema,
82
85
  moduleUrl,
@@ -31,7 +31,7 @@ module CustomerMapping = Mapping.Make(
31
31
  UpdateWithDefault(
32
32
  id,
33
33
  {
34
- Customers.customerId: id,
34
+ Customers.customerId: id->Customer.Id.toString,
35
35
  email,
36
36
  address,
37
37
  geolocation: Pending({requestedFor: address}),
@@ -74,7 +74,7 @@ module CustomerOrdersMapping = Mapping.Make(
74
74
  switch event {
75
75
  | OrderPlaced({customerId}) =>
76
76
  UpdateWithDefault(
77
- customerId,
77
+ Customers.Id.makeFromString(customerId),
78
78
  {
79
79
  Customers.customerId,
80
80
  email: "",
@@ -62,7 +62,7 @@ function project(param) {
62
62
  TAG: "UpdateWithDefault",
63
63
  _0: id,
64
64
  _1: {
65
- customerId: id,
65
+ customerId: Id$Reventless.$$String.toString(id),
66
66
  email: email,
67
67
  address: address,
68
68
  geolocation: {
@@ -182,7 +182,7 @@ function project$1(param) {
182
182
  let customerId = param.event.customerId;
183
183
  return {
184
184
  TAG: "UpdateWithDefault",
185
- _0: customerId,
185
+ _0: Id$Reventless.$$String.makeFromString(customerId),
186
186
  _1: {
187
187
  customerId: customerId,
188
188
  email: "",
@@ -114,6 +114,8 @@ let name = "NotificationDeliveries";
114
114
 
115
115
  let Id;
116
116
 
117
+ let Key;
118
+
117
119
  let subIdConfig;
118
120
 
119
121
  let moduleUrl = "@reventlessdev/online-shop-hybrid-ordering/src/Notification/StateViewStream/NotificationDeliveries.res.mjs";
@@ -128,6 +130,7 @@ export {
128
130
  outcomeSchema,
129
131
  consumedEventSchema,
130
132
  config,
133
+ Key,
131
134
  subIdConfig,
132
135
  stateSchema$1 as stateSchema,
133
136
  moduleUrl,
@@ -58,6 +58,8 @@ let name = "NotificationSubscriptions";
58
58
 
59
59
  let Id;
60
60
 
61
+ let Key;
62
+
61
63
  let subIdConfig;
62
64
 
63
65
  let moduleUrl = "@reventlessdev/online-shop-hybrid-ordering/src/Notification/StateViewStream/NotificationSubscriptions.res.mjs";
@@ -73,6 +75,7 @@ export {
73
75
  stateSchema$1 as stateSchema,
74
76
  consumedEventSchema,
75
77
  config,
78
+ Key,
76
79
  subIdConfig,
77
80
  moduleUrl,
78
81
  authorization,
@@ -123,6 +123,8 @@ let name = "Orders";
123
123
 
124
124
  let Id;
125
125
 
126
+ let Key;
127
+
126
128
  let subIdConfig;
127
129
 
128
130
  let moduleUrl = "@reventlessdev/online-shop-hybrid-ordering/src/Order/StateViewStream/Orders.res.mjs";
@@ -140,6 +142,7 @@ export {
140
142
  consumedEventSchema,
141
143
  lifecycleSchema,
142
144
  config,
145
+ Key,
143
146
  subIdConfig,
144
147
  stateSchema$2 as stateSchema,
145
148
  moduleUrl,
@@ -103,7 +103,6 @@ function Make(Platform) {
103
103
  let CancelOrderSlice = Platform.StateChangeSlice.Make({
104
104
  name: CancelOrder$OrderingPlugin.name,
105
105
  moduleUrl: CancelOrder$OrderingPlugin.moduleUrl,
106
- Id: Id$Reventless.$$String,
107
106
  consumedEventSchema: CancelOrder$OrderingPlugin.consumedEventSchema,
108
107
  errorSchema: CancelOrder$OrderingPlugin.errorSchema,
109
108
  eventSchema: CancelOrder$OrderingPlugin.eventSchema,
@@ -121,7 +120,6 @@ function Make(Platform) {
121
120
  let EmailVerificationChallengesSlice = Platform.StateChangeSlice.Make({
122
121
  name: EmailVerificationChallenges$OrderingPlugin.name,
123
122
  moduleUrl: EmailVerificationChallenges$OrderingPlugin.moduleUrl,
124
- Id: Id$Reventless.$$String,
125
123
  consumedEventSchema: EmailVerificationChallenges$OrderingPlugin.consumedEventSchema,
126
124
  errorSchema: EmailVerificationChallenges$OrderingPlugin.errorSchema,
127
125
  eventSchema: EmailVerificationChallenges$OrderingPlugin.eventSchema,
@@ -139,7 +137,6 @@ function Make(Platform) {
139
137
  let NotificationPreferencesSlice = Platform.StateChangeSlice.Make({
140
138
  name: NotificationPreferences$OrderingPlugin.name,
141
139
  moduleUrl: NotificationPreferences$OrderingPlugin.moduleUrl,
142
- Id: Id$Reventless.$$String,
143
140
  consumedEventSchema: NotificationPreferences$OrderingPlugin.consumedEventSchema,
144
141
  errorSchema: NotificationPreferences$OrderingPlugin.errorSchema,
145
142
  eventSchema: NotificationPreferences$OrderingPlugin.eventSchema,
@@ -157,7 +154,6 @@ function Make(Platform) {
157
154
  let NotificationSourceClaimsSlice = Platform.StateChangeSlice.Make({
158
155
  name: NotificationSourceClaims$OrderingPlugin.name,
159
156
  moduleUrl: NotificationSourceClaims$OrderingPlugin.moduleUrl,
160
- Id: Id$Reventless.$$String,
161
157
  consumedEventSchema: NotificationSourceClaims$OrderingPlugin.consumedEventSchema,
162
158
  errorSchema: NotificationSourceClaims$OrderingPlugin.errorSchema,
163
159
  eventSchema: NotificationSourceClaims$OrderingPlugin.eventSchema,
@@ -175,7 +171,6 @@ function Make(Platform) {
175
171
  let PlaceOrderSlice = Platform.StateChangeSlice.Make({
176
172
  name: PlaceOrder$OrderingPlugin.name,
177
173
  moduleUrl: PlaceOrder$OrderingPlugin.moduleUrl,
178
- Id: Id$Reventless.$$String,
179
174
  consumedEventSchema: PlaceOrder$OrderingPlugin.consumedEventSchema,
180
175
  errorSchema: PlaceOrder$OrderingPlugin.errorSchema,
181
176
  eventSchema: PlaceOrder$OrderingPlugin.eventSchema,
@@ -193,7 +188,6 @@ function Make(Platform) {
193
188
  let ShipOrderSlice = Platform.StateChangeSlice.Make({
194
189
  name: ShipOrder$OrderingPlugin.name,
195
190
  moduleUrl: ShipOrder$OrderingPlugin.moduleUrl,
196
- Id: Id$Reventless.$$String,
197
191
  consumedEventSchema: ShipOrder$OrderingPlugin.consumedEventSchema,
198
192
  errorSchema: ShipOrder$OrderingPlugin.errorSchema,
199
193
  eventSchema: ShipOrder$OrderingPlugin.eventSchema,
@@ -211,7 +205,6 @@ function Make(Platform) {
211
205
  let SyncCatalogProductSlice = Platform.StateChangeSlice.Make({
212
206
  name: SyncCatalogProduct$OrderingPlugin.name,
213
207
  moduleUrl: SyncCatalogProduct$OrderingPlugin.moduleUrl,
214
- Id: Id$Reventless.$$String,
215
208
  consumedEventSchema: SyncCatalogProduct$OrderingPlugin.consumedEventSchema,
216
209
  errorSchema: SyncCatalogProduct$OrderingPlugin.errorSchema,
217
210
  eventSchema: SyncCatalogProduct$OrderingPlugin.eventSchema,
@@ -230,6 +223,13 @@ function Make(Platform) {
230
223
  name: AvailableProducts$OrderingPlugin.name,
231
224
  moduleUrl: AvailableProducts$OrderingPlugin.moduleUrl,
232
225
  stateSchema: AvailableProducts$OrderingPlugin.stateSchema,
226
+ Key: {
227
+ schema: Id$Reventless.StringPure.schema,
228
+ make: prim => prim,
229
+ makeFromString: prim => prim,
230
+ toString: prim => prim,
231
+ cmp: Id$Reventless.StringPure.cmp
232
+ },
233
233
  consumedEventSchema: AvailableProducts$OrderingPlugin.consumedEventSchema,
234
234
  config: AvailableProducts$OrderingPlugin.config,
235
235
  subIdConfig: undefined,
@@ -243,6 +243,13 @@ function Make(Platform) {
243
243
  name: NotificationDeliveries$OrderingPlugin.name,
244
244
  moduleUrl: NotificationDeliveries$OrderingPlugin.moduleUrl,
245
245
  stateSchema: NotificationDeliveries$OrderingPlugin.stateSchema,
246
+ Key: {
247
+ schema: Id$Reventless.StringPure.schema,
248
+ make: prim => prim,
249
+ makeFromString: prim => prim,
250
+ toString: prim => prim,
251
+ cmp: Id$Reventless.StringPure.cmp
252
+ },
246
253
  consumedEventSchema: NotificationDeliveries$OrderingPlugin.consumedEventSchema,
247
254
  config: NotificationDeliveries$OrderingPlugin.config,
248
255
  subIdConfig: undefined,
@@ -256,6 +263,13 @@ function Make(Platform) {
256
263
  name: NotificationSubscriptions$OrderingPlugin.name,
257
264
  moduleUrl: NotificationSubscriptions$OrderingPlugin.moduleUrl,
258
265
  stateSchema: NotificationSubscriptions$OrderingPlugin.stateSchema,
266
+ Key: {
267
+ schema: Id$Reventless.StringPure.schema,
268
+ make: prim => prim,
269
+ makeFromString: prim => prim,
270
+ toString: prim => prim,
271
+ cmp: Id$Reventless.StringPure.cmp
272
+ },
259
273
  consumedEventSchema: NotificationSubscriptions$OrderingPlugin.consumedEventSchema,
260
274
  config: NotificationSubscriptions$OrderingPlugin.config,
261
275
  subIdConfig: undefined,
@@ -269,6 +283,13 @@ function Make(Platform) {
269
283
  name: Orders$OrderingPlugin.name,
270
284
  moduleUrl: Orders$OrderingPlugin.moduleUrl,
271
285
  stateSchema: Orders$OrderingPlugin.stateSchema,
286
+ Key: {
287
+ schema: Id$Reventless.StringPure.schema,
288
+ make: prim => prim,
289
+ makeFromString: prim => prim,
290
+ toString: prim => prim,
291
+ cmp: Id$Reventless.StringPure.cmp
292
+ },
272
293
  consumedEventSchema: Orders$OrderingPlugin.consumedEventSchema,
273
294
  config: Orders$OrderingPlugin.config,
274
295
  subIdConfig: undefined,
@@ -1,5 +1,6 @@
1
1
  // Generated by ReScript, PLEASE EDIT WITH CARE
2
2
 
3
+ import * as Id$Reventless from "@reventlessdev/reventless-spec/src/types/Id.res.mjs";
3
4
  import * as Money$Reventless from "@reventlessdev/reventless-spec/src/semantic/Money.res.mjs";
4
5
  import * as Projection_GWT$ReventlessGwt from "@reventlessdev/reventless-gwt/src/Projection_GWT.res.mjs";
5
6
  import * as AvailableProducts$OrderingPlugin from "../../../src/CatalogProduct/StateViewStream/AvailableProducts.res.mjs";
@@ -8,6 +9,13 @@ import * as AvailableProducts_Projection$OrderingPlugin from "../../../src/Catal
8
9
  let include = Projection_GWT$ReventlessGwt.Make({
9
10
  name: AvailableProducts$OrderingPlugin.name,
10
11
  stateSchema: AvailableProducts$OrderingPlugin.stateSchema,
12
+ Key: {
13
+ schema: Id$Reventless.StringPure.schema,
14
+ make: prim => prim,
15
+ makeFromString: prim => prim,
16
+ toString: prim => prim,
17
+ cmp: Id$Reventless.StringPure.cmp
18
+ },
11
19
  consumedEventSchema: AvailableProducts$OrderingPlugin.consumedEventSchema,
12
20
  subIdConfig: undefined
13
21
  })({
@@ -1,5 +1,6 @@
1
1
  // Generated by ReScript, PLEASE EDIT WITH CARE
2
2
 
3
+ import * as Id$Reventless from "@reventlessdev/reventless-spec/src/types/Id.res.mjs";
3
4
  import * as Stdlib_Result from "@rescript/runtime/lib/es6/Stdlib_Result.js";
4
5
  import * as Money$Reventless from "@reventlessdev/reventless-spec/src/semantic/Money.res.mjs";
5
6
  import * as DateRange$Reventless from "@reventlessdev/reventless-spec/src/semantic/DateRange.res.mjs";
@@ -137,6 +138,13 @@ let Ship = Flow_GWT$ReventlessGwt.CommandStep({
137
138
  let OrdersView = Flow_GWT$ReventlessGwt.ViewStep({
138
139
  name: Orders$OrderingPlugin.name,
139
140
  stateSchema: Orders$OrderingPlugin.stateSchema,
141
+ Key: {
142
+ schema: Id$Reventless.StringPure.schema,
143
+ make: prim => prim,
144
+ makeFromString: prim => prim,
145
+ toString: prim => prim,
146
+ cmp: Id$Reventless.StringPure.cmp
147
+ },
140
148
  consumedEventSchema: Orders$OrderingPlugin.consumedEventSchema,
141
149
  subIdConfig: undefined
142
150
  })({
@@ -1,5 +1,6 @@
1
1
  // Generated by ReScript, PLEASE EDIT WITH CARE
2
2
 
3
+ import * as Id$Reventless from "@reventlessdev/reventless-spec/src/types/Id.res.mjs";
3
4
  import * as Stdlib_Option from "@rescript/runtime/lib/es6/Stdlib_Option.js";
4
5
  import * as Projection_GWT$ReventlessGwt from "@reventlessdev/reventless-gwt/src/Projection_GWT.res.mjs";
5
6
  import * as Notification_Rule$TraitNotification from "@reventlessdev/trait-notification/src/Notification_Rule.res.mjs";
@@ -10,6 +11,13 @@ import * as NotificationDeliveries_Projection$OrderingPlugin from "../../../src/
10
11
  let include = Projection_GWT$ReventlessGwt.Make({
11
12
  name: NotificationDeliveries$OrderingPlugin.name,
12
13
  stateSchema: NotificationDeliveries$OrderingPlugin.stateSchema,
14
+ Key: {
15
+ schema: Id$Reventless.StringPure.schema,
16
+ make: prim => prim,
17
+ makeFromString: prim => prim,
18
+ toString: prim => prim,
19
+ cmp: Id$Reventless.StringPure.cmp
20
+ },
13
21
  consumedEventSchema: NotificationDeliveries$OrderingPlugin.consumedEventSchema,
14
22
  subIdConfig: undefined
15
23
  })({
@@ -1,5 +1,6 @@
1
1
  // Generated by ReScript, PLEASE EDIT WITH CARE
2
2
 
3
+ import * as Id$Reventless from "@reventlessdev/reventless-spec/src/types/Id.res.mjs";
3
4
  import * as Stdlib_Result from "@rescript/runtime/lib/es6/Stdlib_Result.js";
4
5
  import * as Money$Reventless from "@reventlessdev/reventless-spec/src/semantic/Money.res.mjs";
5
6
  import * as DateRange$Reventless from "@reventlessdev/reventless-spec/src/semantic/DateRange.res.mjs";
@@ -10,6 +11,13 @@ import * as Orders_Projection$OrderingPlugin from "../../../src/Order/StateViewS
10
11
  let include = Projection_GWT$ReventlessGwt.Make({
11
12
  name: Orders$OrderingPlugin.name,
12
13
  stateSchema: Orders$OrderingPlugin.stateSchema,
14
+ Key: {
15
+ schema: Id$Reventless.StringPure.schema,
16
+ make: prim => prim,
17
+ makeFromString: prim => prim,
18
+ toString: prim => prim,
19
+ cmp: Id$Reventless.StringPure.cmp
20
+ },
13
21
  consumedEventSchema: Orders$OrderingPlugin.consumedEventSchema,
14
22
  subIdConfig: undefined
15
23
  })({