@reventlessdev/online-shop-aggregates-ordering 3.0.0-alpha.229 → 3.0.0-alpha.231

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 (150) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/lib/bs/.compiler.log +2 -2
  3. package/lib/bs/compiler-info.json +1 -1
  4. package/lib/bs/src/CatalogProduct/Aggregate/CatalogProduct-OrderingPlugin.cmi +0 -0
  5. package/lib/bs/src/CatalogProduct/Aggregate/CatalogProduct-OrderingPlugin.cmj +0 -0
  6. package/lib/bs/src/CatalogProduct/Aggregate/CatalogProduct-OrderingPlugin.cmt +0 -0
  7. package/lib/bs/src/CatalogProduct/Aggregate/CatalogProduct.ast +0 -0
  8. package/lib/bs/src/CatalogProduct/Aggregate/CatalogProduct.res.mjs +8 -0
  9. package/lib/bs/src/CatalogProduct/Aggregate/CatalogProduct_Behavior-OrderingPlugin.cmi +0 -0
  10. package/lib/bs/src/CatalogProduct/Aggregate/CatalogProduct_Behavior-OrderingPlugin.cmt +0 -0
  11. package/lib/bs/src/CatalogProduct/ReadModel/AvailableProducts-OrderingPlugin.cmi +0 -0
  12. package/lib/bs/src/CatalogProduct/ReadModel/AvailableProducts-OrderingPlugin.cmt +0 -0
  13. package/lib/bs/src/CatalogProduct/ReadModel/AvailableProducts_Projections-OrderingPlugin.cmi +0 -0
  14. package/lib/bs/src/CatalogProduct/ReadModel/AvailableProducts_Projections-OrderingPlugin.cmt +0 -0
  15. package/lib/bs/src/Customer/Aggregate/Customer-OrderingPlugin.cmi +0 -0
  16. package/lib/bs/src/Customer/Aggregate/Customer-OrderingPlugin.cmj +0 -0
  17. package/lib/bs/src/Customer/Aggregate/Customer-OrderingPlugin.cmt +0 -0
  18. package/lib/bs/src/Customer/Aggregate/Customer.ast +0 -0
  19. package/lib/bs/src/Customer/Aggregate/Customer.res.mjs +8 -0
  20. package/lib/bs/src/Customer/Aggregate/Customer_Behavior-OrderingPlugin.cmi +0 -0
  21. package/lib/bs/src/Customer/Aggregate/Customer_Behavior-OrderingPlugin.cmt +0 -0
  22. package/lib/bs/src/Customer/ReadModel/Customers-OrderingPlugin.cmi +0 -0
  23. package/lib/bs/src/Customer/ReadModel/Customers-OrderingPlugin.cmt +0 -0
  24. package/lib/bs/src/Customer/ReadModel/Customers_Projections-OrderingPlugin.cmi +0 -0
  25. package/lib/bs/src/Customer/ReadModel/Customers_Projections-OrderingPlugin.cmt +0 -0
  26. package/lib/bs/src/Extension/Products_Extension-OrderingPlugin.cmi +0 -0
  27. package/lib/bs/src/Extension/Products_Extension-OrderingPlugin.cmt +0 -0
  28. package/lib/bs/src/ExtensionPoint/Orders_ExtensionPointMapping-OrderingPlugin.cmi +0 -0
  29. package/lib/bs/src/ExtensionPoint/Orders_ExtensionPointMapping-OrderingPlugin.cmt +0 -0
  30. package/lib/bs/src/Order/Aggregate/Order-OrderingPlugin.cmi +0 -0
  31. package/lib/bs/src/Order/Aggregate/Order-OrderingPlugin.cmj +0 -0
  32. package/lib/bs/src/Order/Aggregate/Order-OrderingPlugin.cmt +0 -0
  33. package/lib/bs/src/Order/Aggregate/Order.ast +0 -0
  34. package/lib/bs/src/Order/Aggregate/Order.res +17 -3
  35. package/lib/bs/src/Order/Aggregate/Order.res.mjs +30 -31
  36. package/lib/bs/src/Order/Aggregate/Order_Behavior-OrderingPlugin.cmi +0 -0
  37. package/lib/bs/src/Order/Aggregate/Order_Behavior-OrderingPlugin.cmt +0 -0
  38. package/lib/bs/src/Order/Aggregate/Order_Mappings-OrderingPlugin.cmi +0 -0
  39. package/lib/bs/src/Order/Aggregate/Order_Mappings-OrderingPlugin.cmt +0 -0
  40. package/lib/bs/src/Order/ReadModel/Orders-OrderingPlugin.cmi +0 -0
  41. package/lib/bs/src/Order/ReadModel/Orders-OrderingPlugin.cmt +0 -0
  42. package/lib/bs/src/Order/ReadModel/Orders_Projections-OrderingPlugin.cmi +0 -0
  43. package/lib/bs/src/Order/ReadModel/Orders_Projections-OrderingPlugin.cmt +0 -0
  44. package/lib/bs/src/Order/SideEffect/Order_EmailNotification-OrderingPlugin.cmi +0 -0
  45. package/lib/bs/src/Order/SideEffect/Order_EmailNotification-OrderingPlugin.cmt +0 -0
  46. package/lib/bs/src/Plugin-OrderingPlugin.cmi +0 -0
  47. package/lib/bs/src/Plugin-OrderingPlugin.cmt +0 -0
  48. package/lib/bs/src/Plugin.res.mjs +18 -6
  49. package/lib/bs/src/Task/OrderNotifications-OrderingPlugin.cmi +0 -0
  50. package/lib/bs/src/Task/OrderNotifications-OrderingPlugin.cmt +0 -0
  51. package/lib/bs/tests/CatalogProduct/Aggregate/CatalogProduct_GWT-OrderingPlugin.cmi +0 -0
  52. package/lib/bs/tests/CatalogProduct/Aggregate/CatalogProduct_GWT-OrderingPlugin.cmt +0 -0
  53. package/lib/bs/tests/CatalogProduct/ReadModel/AvailableProducts_GWT-OrderingPlugin.cmi +0 -0
  54. package/lib/bs/tests/CatalogProduct/ReadModel/AvailableProducts_GWT-OrderingPlugin.cmt +0 -0
  55. package/lib/bs/tests/Customer/Aggregate/Customer_GWT-OrderingPlugin.cmi +0 -0
  56. package/lib/bs/tests/Customer/Aggregate/Customer_GWT-OrderingPlugin.cmt +0 -0
  57. package/lib/bs/tests/Customer/ReadModel/Customers_GWT-OrderingPlugin.cmi +0 -0
  58. package/lib/bs/tests/Customer/ReadModel/Customers_GWT-OrderingPlugin.cmt +0 -0
  59. package/lib/bs/tests/Extension/Products_Extension_GWT-OrderingPlugin.cmi +0 -0
  60. package/lib/bs/tests/Extension/Products_Extension_GWT-OrderingPlugin.cmt +0 -0
  61. package/lib/bs/tests/Extension/Products_Extension_GWT.res.mjs +3 -1
  62. package/lib/bs/tests/ExtensionPoint/Orders_ExtensionPointMapping_GWT-OrderingPlugin.cmi +0 -0
  63. package/lib/bs/tests/ExtensionPoint/Orders_ExtensionPointMapping_GWT-OrderingPlugin.cmt +0 -0
  64. package/lib/bs/tests/ExtensionPoint/Orders_ExtensionPointMapping_GWT.res.mjs +3 -1
  65. package/lib/bs/tests/Order/Aggregate/OrderMappings_GWT-OrderingPlugin.cmi +0 -0
  66. package/lib/bs/tests/Order/Aggregate/OrderMappings_GWT-OrderingPlugin.cmt +0 -0
  67. package/lib/bs/tests/Order/Aggregate/OrderMappings_GWT.res.mjs +12 -4
  68. package/lib/bs/tests/Order/Aggregate/Order_GWT-OrderingPlugin.cmi +0 -0
  69. package/lib/bs/tests/Order/Aggregate/Order_GWT-OrderingPlugin.cmt +0 -0
  70. package/lib/bs/tests/Order/ReadModel/Orders_GWT-OrderingPlugin.cmi +0 -0
  71. package/lib/bs/tests/Order/ReadModel/Orders_GWT-OrderingPlugin.cmt +0 -0
  72. package/lib/bs/tests/Order/SideEffect/EmailService_Mock-OrderingPlugin.cmi +0 -0
  73. package/lib/bs/tests/Order/SideEffect/EmailService_Mock-OrderingPlugin.cmt +0 -0
  74. package/lib/bs/tests/Order/SideEffect/Order_EmailNotification_GWT-OrderingPlugin.cmi +0 -0
  75. package/lib/bs/tests/Order/SideEffect/Order_EmailNotification_GWT-OrderingPlugin.cmt +0 -0
  76. package/lib/ocaml/.compiler.log +2 -2
  77. package/lib/ocaml/AvailableProducts-OrderingPlugin.cmi +0 -0
  78. package/lib/ocaml/AvailableProducts-OrderingPlugin.cmt +0 -0
  79. package/lib/ocaml/AvailableProducts_GWT-OrderingPlugin.cmi +0 -0
  80. package/lib/ocaml/AvailableProducts_GWT-OrderingPlugin.cmt +0 -0
  81. package/lib/ocaml/AvailableProducts_Projections-OrderingPlugin.cmi +0 -0
  82. package/lib/ocaml/AvailableProducts_Projections-OrderingPlugin.cmt +0 -0
  83. package/lib/ocaml/CatalogProduct-OrderingPlugin.cmi +0 -0
  84. package/lib/ocaml/CatalogProduct-OrderingPlugin.cmj +0 -0
  85. package/lib/ocaml/CatalogProduct-OrderingPlugin.cmt +0 -0
  86. package/lib/ocaml/CatalogProduct.ast +0 -0
  87. package/lib/ocaml/CatalogProduct_Behavior-OrderingPlugin.cmi +0 -0
  88. package/lib/ocaml/CatalogProduct_Behavior-OrderingPlugin.cmt +0 -0
  89. package/lib/ocaml/CatalogProduct_GWT-OrderingPlugin.cmi +0 -0
  90. package/lib/ocaml/CatalogProduct_GWT-OrderingPlugin.cmt +0 -0
  91. package/lib/ocaml/Customer-OrderingPlugin.cmi +0 -0
  92. package/lib/ocaml/Customer-OrderingPlugin.cmj +0 -0
  93. package/lib/ocaml/Customer-OrderingPlugin.cmt +0 -0
  94. package/lib/ocaml/Customer.ast +0 -0
  95. package/lib/ocaml/Customer_Behavior-OrderingPlugin.cmi +0 -0
  96. package/lib/ocaml/Customer_Behavior-OrderingPlugin.cmt +0 -0
  97. package/lib/ocaml/Customer_GWT-OrderingPlugin.cmi +0 -0
  98. package/lib/ocaml/Customer_GWT-OrderingPlugin.cmt +0 -0
  99. package/lib/ocaml/Customers-OrderingPlugin.cmi +0 -0
  100. package/lib/ocaml/Customers-OrderingPlugin.cmt +0 -0
  101. package/lib/ocaml/Customers_GWT-OrderingPlugin.cmi +0 -0
  102. package/lib/ocaml/Customers_GWT-OrderingPlugin.cmt +0 -0
  103. package/lib/ocaml/Customers_Projections-OrderingPlugin.cmi +0 -0
  104. package/lib/ocaml/Customers_Projections-OrderingPlugin.cmt +0 -0
  105. package/lib/ocaml/EmailService_Mock-OrderingPlugin.cmi +0 -0
  106. package/lib/ocaml/EmailService_Mock-OrderingPlugin.cmt +0 -0
  107. package/lib/ocaml/Order-OrderingPlugin.cmi +0 -0
  108. package/lib/ocaml/Order-OrderingPlugin.cmj +0 -0
  109. package/lib/ocaml/Order-OrderingPlugin.cmt +0 -0
  110. package/lib/ocaml/Order.ast +0 -0
  111. package/lib/ocaml/Order.res +17 -3
  112. package/lib/ocaml/OrderMappings_GWT-OrderingPlugin.cmi +0 -0
  113. package/lib/ocaml/OrderMappings_GWT-OrderingPlugin.cmt +0 -0
  114. package/lib/ocaml/OrderNotifications-OrderingPlugin.cmi +0 -0
  115. package/lib/ocaml/OrderNotifications-OrderingPlugin.cmt +0 -0
  116. package/lib/ocaml/Order_Behavior-OrderingPlugin.cmi +0 -0
  117. package/lib/ocaml/Order_Behavior-OrderingPlugin.cmt +0 -0
  118. package/lib/ocaml/Order_EmailNotification-OrderingPlugin.cmi +0 -0
  119. package/lib/ocaml/Order_EmailNotification-OrderingPlugin.cmt +0 -0
  120. package/lib/ocaml/Order_EmailNotification_GWT-OrderingPlugin.cmi +0 -0
  121. package/lib/ocaml/Order_EmailNotification_GWT-OrderingPlugin.cmt +0 -0
  122. package/lib/ocaml/Order_GWT-OrderingPlugin.cmi +0 -0
  123. package/lib/ocaml/Order_GWT-OrderingPlugin.cmt +0 -0
  124. package/lib/ocaml/Order_Mappings-OrderingPlugin.cmi +0 -0
  125. package/lib/ocaml/Order_Mappings-OrderingPlugin.cmt +0 -0
  126. package/lib/ocaml/Orders-OrderingPlugin.cmi +0 -0
  127. package/lib/ocaml/Orders-OrderingPlugin.cmt +0 -0
  128. package/lib/ocaml/Orders_ExtensionPointMapping-OrderingPlugin.cmi +0 -0
  129. package/lib/ocaml/Orders_ExtensionPointMapping-OrderingPlugin.cmt +0 -0
  130. package/lib/ocaml/Orders_ExtensionPointMapping_GWT-OrderingPlugin.cmi +0 -0
  131. package/lib/ocaml/Orders_ExtensionPointMapping_GWT-OrderingPlugin.cmt +0 -0
  132. package/lib/ocaml/Orders_GWT-OrderingPlugin.cmi +0 -0
  133. package/lib/ocaml/Orders_GWT-OrderingPlugin.cmt +0 -0
  134. package/lib/ocaml/Orders_Projections-OrderingPlugin.cmi +0 -0
  135. package/lib/ocaml/Orders_Projections-OrderingPlugin.cmt +0 -0
  136. package/lib/ocaml/Plugin-OrderingPlugin.cmi +0 -0
  137. package/lib/ocaml/Plugin-OrderingPlugin.cmt +0 -0
  138. package/lib/ocaml/Products_Extension-OrderingPlugin.cmi +0 -0
  139. package/lib/ocaml/Products_Extension-OrderingPlugin.cmt +0 -0
  140. package/lib/ocaml/Products_Extension_GWT-OrderingPlugin.cmi +0 -0
  141. package/lib/ocaml/Products_Extension_GWT-OrderingPlugin.cmt +0 -0
  142. package/package.json +8 -8
  143. package/src/CatalogProduct/Aggregate/CatalogProduct.res.mjs +8 -0
  144. package/src/Customer/Aggregate/Customer.res.mjs +8 -0
  145. package/src/Order/Aggregate/Order.res +17 -3
  146. package/src/Order/Aggregate/Order.res.mjs +30 -31
  147. package/src/Plugin.res.mjs +18 -6
  148. package/tests/Extension/Products_Extension_GWT.res.mjs +3 -1
  149. package/tests/ExtensionPoint/Orders_ExtensionPointMapping_GWT.res.mjs +3 -1
  150. package/tests/Order/Aggregate/OrderMappings_GWT.res.mjs +12 -4
package/CHANGELOG.md CHANGED
@@ -3,6 +3,22 @@
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
+ # 3.0.0-alpha.231 (2026-09-01)
7
+
8
+ **Note:** Version bump only for package @reventlessdev/online-shop-aggregates-ordering
9
+
10
+
11
+
12
+
13
+
14
+ # 3.0.0-alpha.230 (2026-09-01)
15
+
16
+ ### Features
17
+
18
+ * **spec:** a command declares its lifecycle edge as a value ([40eee9f](https://github.com/ReventlessDev/reventless-core/commit/40eee9f7723dc05e418be680528f01967d074da4))
19
+ * **spec:** a graft leaves a trace the deployed plugin can read ([c08ff6c](https://github.com/ReventlessDev/reventless-core/commit/c08ff6c0f6177d58603e7ae1e5cec392d9bac16a))
20
+
21
+
6
22
  # 3.0.0-alpha.229 (2026-08-27)
7
23
 
8
24
  **Note:** Version bump only for package @reventlessdev/online-shop-aggregates-ordering
@@ -1,2 +1,2 @@
1
- #Start(1787841657084)
2
- #Done(1787841661491)
1
+ #Start(1788306932499)
2
+ #Done(1788306938882)
@@ -4,5 +4,5 @@
4
4
  "bsc_hash": "75e3a59c95cc953608fd3dd6ea6ed68141bba4414a20a52f114261b8a48385fa",
5
5
  "rescript_config_hash": "4c884bf958b93b21c77764e35498f269b81377cfcc324135f1ab7a1cc5b569cb",
6
6
  "runtime_path": "/home/runner/work/reventless-core/reventless-core/node_modules/@rescript/runtime",
7
- "generated_at": "1787841661503"
7
+ "generated_at": "1788306938896"
8
8
  }
@@ -32,6 +32,12 @@ function commandAuthorization(param) {
32
32
  return "AllowAuthenticated";
33
33
  }
34
34
 
35
+ function commandTransition(param) {
36
+ return "Unrestricted";
37
+ }
38
+
39
+ let traits = [];
40
+
35
41
  let name = "CatalogProduct";
36
42
 
37
43
  let Id;
@@ -46,5 +52,7 @@ export {
46
52
  errorSchema,
47
53
  moduleUrl,
48
54
  commandAuthorization,
55
+ commandTransition,
56
+ traits,
49
57
  }
50
58
  /* commandSchema Not a pure module */
@@ -47,6 +47,12 @@ function commandAuthorization(param) {
47
47
  return "AllowAuthenticated";
48
48
  }
49
49
 
50
+ function commandTransition(param) {
51
+ return "Unrestricted";
52
+ }
53
+
54
+ let traits = [];
55
+
50
56
  let name = "Customer";
51
57
 
52
58
  let Id;
@@ -61,5 +67,7 @@ export {
61
67
  errorSchema,
62
68
  moduleUrl,
63
69
  commandAuthorization,
70
+ commandTransition,
71
+ traits,
64
72
  }
65
73
  /* commandSchema Not a pure module */
@@ -6,9 +6,9 @@
6
6
  @schema
7
7
  type command =
8
8
  | Place({customerId: string, @ref("AvailableProducts") @noDcbTag productIds: array<string>})
9
- | @transition(([Orders.Placed]) => Orders.Shipped) Ship
10
- | @transition(([Orders.Placed]) => Orders.Cancelled) Cancel
11
- | @transition(([Orders.Cancelled]) => Orders.Refunded) Refund({reason: string})
9
+ | Ship
10
+ | Cancel
11
+ | Refund({reason: string})
12
12
 
13
13
  @schema
14
14
  type event =
@@ -25,3 +25,17 @@ type error =
25
25
  | OrderAlreadyCancelled
26
26
  | OrderNotCancelled
27
27
  | OrderAlreadyRefunded
28
+
29
+ // `Place` brings the row into existence, so it names no from-state; the read
30
+ // model derives the status it lands in.
31
+ type lifecycleState = Orders.lifecycle
32
+
33
+ let commandTransition = (command: command): Reventless.Transition.t<lifecycleState> => {
34
+ open Reventless.Transition
35
+ switch command {
36
+ | Place(_) => Unrestricted
37
+ | Ship => Moves([Orders.Placed], Orders.Shipped)
38
+ | Cancel => Moves([Orders.Placed], Orders.Cancelled)
39
+ | Refund(_) => Moves([Orders.Cancelled], Orders.Refunded)
40
+ }
41
+ }
@@ -1,7 +1,6 @@
1
1
  // Generated by ReScript, PLEASE EDIT WITH CARE
2
2
 
3
3
  import * as Sury from "sury";
4
- import * as Api$ReventlessInfra from "@reventlessdev/reventless-infra/src/components/Api.res.mjs";
5
4
  import * as Reference$Reventless from "@reventlessdev/reventless-spec/src/components/Reference.res.mjs";
6
5
 
7
6
  let commandSchema = Sury.union([
@@ -44,40 +43,38 @@ let errorSchema = Sury.union([
44
43
  Sury.literal("OrderAlreadyRefunded")
45
44
  ]);
46
45
 
47
- let commandSchema$1 = Api$ReventlessInfra.markAllowedStates(commandSchema, [
48
- [
49
- "Ship",
50
- ["Placed"]
51
- ],
52
- [
53
- "Cancel",
54
- ["Placed"]
55
- ],
56
- [
57
- "Refund",
58
- ["Cancelled"]
59
- ]
60
- ]);
61
-
62
- let commandSchema$2 = Api$ReventlessInfra.markTargetState(commandSchema$1, [
63
- [
64
- "Ship",
65
- "Shipped"
66
- ],
67
- [
68
- "Cancel",
69
- "Cancelled"
70
- ],
71
- [
72
- "Refund",
73
- "Refunded"
74
- ]
75
- ]);
46
+ function commandTransition(command) {
47
+ if (typeof command !== "object") {
48
+ if (command === "Ship") {
49
+ return {
50
+ TAG: "Moves",
51
+ _0: ["Placed"],
52
+ _1: "Shipped"
53
+ };
54
+ } else {
55
+ return {
56
+ TAG: "Moves",
57
+ _0: ["Placed"],
58
+ _1: "Cancelled"
59
+ };
60
+ }
61
+ } else if (command.TAG === "Place") {
62
+ return "Unrestricted";
63
+ } else {
64
+ return {
65
+ TAG: "Moves",
66
+ _0: ["Cancelled"],
67
+ _1: "Refunded"
68
+ };
69
+ }
70
+ }
76
71
 
77
72
  function commandAuthorization(param) {
78
73
  return "AllowAuthenticated";
79
74
  }
80
75
 
76
+ let traits = [];
77
+
81
78
  let name = "Order";
82
79
 
83
80
  let Id;
@@ -87,10 +84,12 @@ let moduleUrl = "@reventlessdev/online-shop-aggregates-ordering/src/Order/Aggreg
87
84
  export {
88
85
  name,
89
86
  Id,
87
+ commandSchema,
90
88
  eventSchema,
91
89
  errorSchema,
92
- commandSchema$2 as commandSchema,
90
+ commandTransition,
93
91
  moduleUrl,
94
92
  commandAuthorization,
93
+ traits,
95
94
  }
96
95
  /* commandSchema Not a pure module */
@@ -30,7 +30,9 @@ function Make(Platform) {
30
30
  errorSchema: CatalogProduct$OrderingPlugin.errorSchema,
31
31
  commandSchema: CatalogProduct$OrderingPlugin.commandSchema,
32
32
  moduleUrl: CatalogProduct$OrderingPlugin.moduleUrl,
33
- commandAuthorization: CatalogProduct$OrderingPlugin.commandAuthorization
33
+ commandAuthorization: CatalogProduct$OrderingPlugin.commandAuthorization,
34
+ commandTransition: CatalogProduct$OrderingPlugin.commandTransition,
35
+ traits: CatalogProduct$OrderingPlugin.traits
34
36
  })({
35
37
  initialState: CatalogProduct_Behavior$OrderingPlugin.initialState,
36
38
  evolve: CatalogProduct_Behavior$OrderingPlugin.evolve,
@@ -49,7 +51,9 @@ function Make(Platform) {
49
51
  errorSchema: Customer$OrderingPlugin.errorSchema,
50
52
  commandSchema: Customer$OrderingPlugin.commandSchema,
51
53
  moduleUrl: Customer$OrderingPlugin.moduleUrl,
52
- commandAuthorization: Customer$OrderingPlugin.commandAuthorization
54
+ commandAuthorization: Customer$OrderingPlugin.commandAuthorization,
55
+ commandTransition: Customer$OrderingPlugin.commandTransition,
56
+ traits: Customer$OrderingPlugin.traits
53
57
  })({
54
58
  initialState: Customer_Behavior$OrderingPlugin.initialState,
55
59
  evolve: Customer_Behavior$OrderingPlugin.evolve,
@@ -68,7 +72,9 @@ function Make(Platform) {
68
72
  errorSchema: Order$OrderingPlugin.errorSchema,
69
73
  commandSchema: Order$OrderingPlugin.commandSchema,
70
74
  moduleUrl: Order$OrderingPlugin.moduleUrl,
71
- commandAuthorization: Order$OrderingPlugin.commandAuthorization
75
+ commandAuthorization: Order$OrderingPlugin.commandAuthorization,
76
+ commandTransition: Order$OrderingPlugin.commandTransition,
77
+ traits: Order$OrderingPlugin.traits
72
78
  })({
73
79
  initialState: Order_Behavior$OrderingPlugin.initialState,
74
80
  evolve: Order_Behavior$OrderingPlugin.evolve,
@@ -139,7 +145,9 @@ function Make(Platform) {
139
145
  errorSchema: Order$OrderingPlugin.errorSchema,
140
146
  commandSchema: Order$OrderingPlugin.commandSchema,
141
147
  moduleUrl: Order$OrderingPlugin.moduleUrl,
142
- commandAuthorization: Order$OrderingPlugin.commandAuthorization
148
+ commandAuthorization: Order$OrderingPlugin.commandAuthorization,
149
+ commandTransition: Order$OrderingPlugin.commandTransition,
150
+ traits: Order$OrderingPlugin.traits
143
151
  },
144
152
  moduleUrl: Orders_ExtensionPointMapping$OrderingPlugin.moduleUrl,
145
153
  mapIncomingCommand: Orders_ExtensionPointMapping$OrderingPlugin.mapIncomingCommand,
@@ -162,7 +170,9 @@ function Make(Platform) {
162
170
  errorSchema: CatalogProduct$OrderingPlugin.errorSchema,
163
171
  commandSchema: CatalogProduct$OrderingPlugin.commandSchema,
164
172
  moduleUrl: CatalogProduct$OrderingPlugin.moduleUrl,
165
- commandAuthorization: CatalogProduct$OrderingPlugin.commandAuthorization
173
+ commandAuthorization: CatalogProduct$OrderingPlugin.commandAuthorization,
174
+ commandTransition: CatalogProduct$OrderingPlugin.commandTransition,
175
+ traits: CatalogProduct$OrderingPlugin.traits
166
176
  },
167
177
  moduleUrl: Products_Extension$OrderingPlugin.Mapping.moduleUrl,
168
178
  delegateModuleUrl: Products_Extension$OrderingPlugin.Mapping.delegateModuleUrl,
@@ -194,7 +204,9 @@ function Make(Platform) {
194
204
  errorSchema: Order$OrderingPlugin.errorSchema,
195
205
  commandSchema: Order$OrderingPlugin.commandSchema,
196
206
  moduleUrl: Order$OrderingPlugin.moduleUrl,
197
- commandAuthorization: Order$OrderingPlugin.commandAuthorization
207
+ commandAuthorization: Order$OrderingPlugin.commandAuthorization,
208
+ commandTransition: Order$OrderingPlugin.commandTransition,
209
+ traits: Order$OrderingPlugin.traits
198
210
  },
199
211
  moduleUrl: Orders_ExtensionPointMapping$OrderingPlugin.moduleUrl,
200
212
  mapIncomingCommand: Orders_ExtensionPointMapping$OrderingPlugin.mapIncomingCommand,
@@ -21,7 +21,9 @@ let include = Delegate_GWT$ReventlessGwt.FromExtension({
21
21
  errorSchema: CatalogProduct$OrderingPlugin.errorSchema,
22
22
  commandSchema: CatalogProduct$OrderingPlugin.commandSchema,
23
23
  moduleUrl: CatalogProduct$OrderingPlugin.moduleUrl,
24
- commandAuthorization: CatalogProduct$OrderingPlugin.commandAuthorization
24
+ commandAuthorization: CatalogProduct$OrderingPlugin.commandAuthorization,
25
+ commandTransition: CatalogProduct$OrderingPlugin.commandTransition,
26
+ traits: CatalogProduct$OrderingPlugin.traits
25
27
  },
26
28
  moduleUrl: Products_Extension$OrderingPlugin.Mapping.moduleUrl,
27
29
  delegateModuleUrl: Products_Extension$OrderingPlugin.Mapping.delegateModuleUrl,
@@ -21,7 +21,9 @@ let include = Delegate_GWT$ReventlessGwt.FromExtensionPoint({
21
21
  errorSchema: Order$OrderingPlugin.errorSchema,
22
22
  commandSchema: Order$OrderingPlugin.commandSchema,
23
23
  moduleUrl: Order$OrderingPlugin.moduleUrl,
24
- commandAuthorization: Order$OrderingPlugin.commandAuthorization
24
+ commandAuthorization: Order$OrderingPlugin.commandAuthorization,
25
+ commandTransition: Order$OrderingPlugin.commandTransition,
26
+ traits: Order$OrderingPlugin.traits
25
27
  },
26
28
  moduleUrl: Orders_ExtensionPointMapping$OrderingPlugin.moduleUrl,
27
29
  mapIncomingCommand: Orders_ExtensionPointMapping$OrderingPlugin.mapIncomingCommand,
@@ -13,7 +13,9 @@ let OrderSource = Mapping_GWT$ReventlessGwt.FromBehavior({
13
13
  errorSchema: Order$OrderingPlugin.errorSchema,
14
14
  commandSchema: Order$OrderingPlugin.commandSchema,
15
15
  moduleUrl: Order$OrderingPlugin.moduleUrl,
16
- commandAuthorization: Order$OrderingPlugin.commandAuthorization
16
+ commandAuthorization: Order$OrderingPlugin.commandAuthorization,
17
+ commandTransition: Order$OrderingPlugin.commandTransition,
18
+ traits: Order$OrderingPlugin.traits
17
19
  })({
18
20
  Spec: {
19
21
  Id: Id$Reventless.$$String,
@@ -22,7 +24,9 @@ let OrderSource = Mapping_GWT$ReventlessGwt.FromBehavior({
22
24
  errorSchema: Order$OrderingPlugin.errorSchema,
23
25
  commandSchema: Order$OrderingPlugin.commandSchema,
24
26
  moduleUrl: Order$OrderingPlugin.moduleUrl,
25
- commandAuthorization: Order$OrderingPlugin.commandAuthorization
27
+ commandAuthorization: Order$OrderingPlugin.commandAuthorization,
28
+ commandTransition: Order$OrderingPlugin.commandTransition,
29
+ traits: Order$OrderingPlugin.traits
26
30
  },
27
31
  initialState: Order_Behavior$OrderingPlugin.initialState,
28
32
  evolve: Order_Behavior$OrderingPlugin.evolve,
@@ -38,7 +42,9 @@ let OrderTarget = Mapping_GWT$ReventlessGwt.FromBehavior({
38
42
  errorSchema: Order$OrderingPlugin.errorSchema,
39
43
  commandSchema: Order$OrderingPlugin.commandSchema,
40
44
  moduleUrl: Order$OrderingPlugin.moduleUrl,
41
- commandAuthorization: Order$OrderingPlugin.commandAuthorization
45
+ commandAuthorization: Order$OrderingPlugin.commandAuthorization,
46
+ commandTransition: Order$OrderingPlugin.commandTransition,
47
+ traits: Order$OrderingPlugin.traits
42
48
  })({
43
49
  Spec: {
44
50
  Id: Id$Reventless.$$String,
@@ -47,7 +53,9 @@ let OrderTarget = Mapping_GWT$ReventlessGwt.FromBehavior({
47
53
  errorSchema: Order$OrderingPlugin.errorSchema,
48
54
  commandSchema: Order$OrderingPlugin.commandSchema,
49
55
  moduleUrl: Order$OrderingPlugin.moduleUrl,
50
- commandAuthorization: Order$OrderingPlugin.commandAuthorization
56
+ commandAuthorization: Order$OrderingPlugin.commandAuthorization,
57
+ commandTransition: Order$OrderingPlugin.commandTransition,
58
+ traits: Order$OrderingPlugin.traits
51
59
  },
52
60
  initialState: Order_Behavior$OrderingPlugin.initialState,
53
61
  evolve: Order_Behavior$OrderingPlugin.evolve,
@@ -1,2 +1,2 @@
1
- #Start(1787841657084)
2
- #Done(1787841661491)
1
+ #Start(1788306932499)
2
+ #Done(1788306938882)
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -6,9 +6,9 @@
6
6
  @schema
7
7
  type command =
8
8
  | Place({customerId: string, @ref("AvailableProducts") @noDcbTag productIds: array<string>})
9
- | @transition(([Orders.Placed]) => Orders.Shipped) Ship
10
- | @transition(([Orders.Placed]) => Orders.Cancelled) Cancel
11
- | @transition(([Orders.Cancelled]) => Orders.Refunded) Refund({reason: string})
9
+ | Ship
10
+ | Cancel
11
+ | Refund({reason: string})
12
12
 
13
13
  @schema
14
14
  type event =
@@ -25,3 +25,17 @@ type error =
25
25
  | OrderAlreadyCancelled
26
26
  | OrderNotCancelled
27
27
  | OrderAlreadyRefunded
28
+
29
+ // `Place` brings the row into existence, so it names no from-state; the read
30
+ // model derives the status it lands in.
31
+ type lifecycleState = Orders.lifecycle
32
+
33
+ let commandTransition = (command: command): Reventless.Transition.t<lifecycleState> => {
34
+ open Reventless.Transition
35
+ switch command {
36
+ | Place(_) => Unrestricted
37
+ | Ship => Moves([Orders.Placed], Orders.Shipped)
38
+ | Cancel => Moves([Orders.Placed], Orders.Cancelled)
39
+ | Refund(_) => Moves([Orders.Cancelled], Orders.Refunded)
40
+ }
41
+ }