@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.
- package/CHANGELOG.md +16 -0
- package/lib/bs/.compiler.log +2 -2
- package/lib/bs/compiler-info.json +1 -1
- package/lib/bs/src/CatalogProduct/Aggregate/CatalogProduct-OrderingPlugin.cmi +0 -0
- package/lib/bs/src/CatalogProduct/Aggregate/CatalogProduct-OrderingPlugin.cmj +0 -0
- package/lib/bs/src/CatalogProduct/Aggregate/CatalogProduct-OrderingPlugin.cmt +0 -0
- package/lib/bs/src/CatalogProduct/Aggregate/CatalogProduct.ast +0 -0
- package/lib/bs/src/CatalogProduct/Aggregate/CatalogProduct.res.mjs +8 -0
- package/lib/bs/src/CatalogProduct/Aggregate/CatalogProduct_Behavior-OrderingPlugin.cmi +0 -0
- package/lib/bs/src/CatalogProduct/Aggregate/CatalogProduct_Behavior-OrderingPlugin.cmt +0 -0
- package/lib/bs/src/CatalogProduct/ReadModel/AvailableProducts-OrderingPlugin.cmi +0 -0
- package/lib/bs/src/CatalogProduct/ReadModel/AvailableProducts-OrderingPlugin.cmt +0 -0
- package/lib/bs/src/CatalogProduct/ReadModel/AvailableProducts_Projections-OrderingPlugin.cmi +0 -0
- package/lib/bs/src/CatalogProduct/ReadModel/AvailableProducts_Projections-OrderingPlugin.cmt +0 -0
- package/lib/bs/src/Customer/Aggregate/Customer-OrderingPlugin.cmi +0 -0
- package/lib/bs/src/Customer/Aggregate/Customer-OrderingPlugin.cmj +0 -0
- package/lib/bs/src/Customer/Aggregate/Customer-OrderingPlugin.cmt +0 -0
- package/lib/bs/src/Customer/Aggregate/Customer.ast +0 -0
- package/lib/bs/src/Customer/Aggregate/Customer.res.mjs +8 -0
- package/lib/bs/src/Customer/Aggregate/Customer_Behavior-OrderingPlugin.cmi +0 -0
- package/lib/bs/src/Customer/Aggregate/Customer_Behavior-OrderingPlugin.cmt +0 -0
- package/lib/bs/src/Customer/ReadModel/Customers-OrderingPlugin.cmi +0 -0
- package/lib/bs/src/Customer/ReadModel/Customers-OrderingPlugin.cmt +0 -0
- package/lib/bs/src/Customer/ReadModel/Customers_Projections-OrderingPlugin.cmi +0 -0
- package/lib/bs/src/Customer/ReadModel/Customers_Projections-OrderingPlugin.cmt +0 -0
- package/lib/bs/src/Extension/Products_Extension-OrderingPlugin.cmi +0 -0
- package/lib/bs/src/Extension/Products_Extension-OrderingPlugin.cmt +0 -0
- package/lib/bs/src/ExtensionPoint/Orders_ExtensionPointMapping-OrderingPlugin.cmi +0 -0
- package/lib/bs/src/ExtensionPoint/Orders_ExtensionPointMapping-OrderingPlugin.cmt +0 -0
- package/lib/bs/src/Order/Aggregate/Order-OrderingPlugin.cmi +0 -0
- package/lib/bs/src/Order/Aggregate/Order-OrderingPlugin.cmj +0 -0
- package/lib/bs/src/Order/Aggregate/Order-OrderingPlugin.cmt +0 -0
- package/lib/bs/src/Order/Aggregate/Order.ast +0 -0
- package/lib/bs/src/Order/Aggregate/Order.res +17 -3
- package/lib/bs/src/Order/Aggregate/Order.res.mjs +30 -31
- package/lib/bs/src/Order/Aggregate/Order_Behavior-OrderingPlugin.cmi +0 -0
- package/lib/bs/src/Order/Aggregate/Order_Behavior-OrderingPlugin.cmt +0 -0
- package/lib/bs/src/Order/Aggregate/Order_Mappings-OrderingPlugin.cmi +0 -0
- package/lib/bs/src/Order/Aggregate/Order_Mappings-OrderingPlugin.cmt +0 -0
- package/lib/bs/src/Order/ReadModel/Orders-OrderingPlugin.cmi +0 -0
- package/lib/bs/src/Order/ReadModel/Orders-OrderingPlugin.cmt +0 -0
- package/lib/bs/src/Order/ReadModel/Orders_Projections-OrderingPlugin.cmi +0 -0
- package/lib/bs/src/Order/ReadModel/Orders_Projections-OrderingPlugin.cmt +0 -0
- package/lib/bs/src/Order/SideEffect/Order_EmailNotification-OrderingPlugin.cmi +0 -0
- package/lib/bs/src/Order/SideEffect/Order_EmailNotification-OrderingPlugin.cmt +0 -0
- package/lib/bs/src/Plugin-OrderingPlugin.cmi +0 -0
- package/lib/bs/src/Plugin-OrderingPlugin.cmt +0 -0
- package/lib/bs/src/Plugin.res.mjs +18 -6
- package/lib/bs/src/Task/OrderNotifications-OrderingPlugin.cmi +0 -0
- package/lib/bs/src/Task/OrderNotifications-OrderingPlugin.cmt +0 -0
- package/lib/bs/tests/CatalogProduct/Aggregate/CatalogProduct_GWT-OrderingPlugin.cmi +0 -0
- package/lib/bs/tests/CatalogProduct/Aggregate/CatalogProduct_GWT-OrderingPlugin.cmt +0 -0
- package/lib/bs/tests/CatalogProduct/ReadModel/AvailableProducts_GWT-OrderingPlugin.cmi +0 -0
- package/lib/bs/tests/CatalogProduct/ReadModel/AvailableProducts_GWT-OrderingPlugin.cmt +0 -0
- package/lib/bs/tests/Customer/Aggregate/Customer_GWT-OrderingPlugin.cmi +0 -0
- package/lib/bs/tests/Customer/Aggregate/Customer_GWT-OrderingPlugin.cmt +0 -0
- package/lib/bs/tests/Customer/ReadModel/Customers_GWT-OrderingPlugin.cmi +0 -0
- package/lib/bs/tests/Customer/ReadModel/Customers_GWT-OrderingPlugin.cmt +0 -0
- package/lib/bs/tests/Extension/Products_Extension_GWT-OrderingPlugin.cmi +0 -0
- package/lib/bs/tests/Extension/Products_Extension_GWT-OrderingPlugin.cmt +0 -0
- package/lib/bs/tests/Extension/Products_Extension_GWT.res.mjs +3 -1
- package/lib/bs/tests/ExtensionPoint/Orders_ExtensionPointMapping_GWT-OrderingPlugin.cmi +0 -0
- package/lib/bs/tests/ExtensionPoint/Orders_ExtensionPointMapping_GWT-OrderingPlugin.cmt +0 -0
- package/lib/bs/tests/ExtensionPoint/Orders_ExtensionPointMapping_GWT.res.mjs +3 -1
- package/lib/bs/tests/Order/Aggregate/OrderMappings_GWT-OrderingPlugin.cmi +0 -0
- package/lib/bs/tests/Order/Aggregate/OrderMappings_GWT-OrderingPlugin.cmt +0 -0
- package/lib/bs/tests/Order/Aggregate/OrderMappings_GWT.res.mjs +12 -4
- package/lib/bs/tests/Order/Aggregate/Order_GWT-OrderingPlugin.cmi +0 -0
- package/lib/bs/tests/Order/Aggregate/Order_GWT-OrderingPlugin.cmt +0 -0
- package/lib/bs/tests/Order/ReadModel/Orders_GWT-OrderingPlugin.cmi +0 -0
- package/lib/bs/tests/Order/ReadModel/Orders_GWT-OrderingPlugin.cmt +0 -0
- package/lib/bs/tests/Order/SideEffect/EmailService_Mock-OrderingPlugin.cmi +0 -0
- package/lib/bs/tests/Order/SideEffect/EmailService_Mock-OrderingPlugin.cmt +0 -0
- package/lib/bs/tests/Order/SideEffect/Order_EmailNotification_GWT-OrderingPlugin.cmi +0 -0
- package/lib/bs/tests/Order/SideEffect/Order_EmailNotification_GWT-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/.compiler.log +2 -2
- package/lib/ocaml/AvailableProducts-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/AvailableProducts-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/AvailableProducts_GWT-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/AvailableProducts_GWT-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/AvailableProducts_Projections-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/AvailableProducts_Projections-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/CatalogProduct-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/CatalogProduct-OrderingPlugin.cmj +0 -0
- package/lib/ocaml/CatalogProduct-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/CatalogProduct.ast +0 -0
- package/lib/ocaml/CatalogProduct_Behavior-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/CatalogProduct_Behavior-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/CatalogProduct_GWT-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/CatalogProduct_GWT-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/Customer-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/Customer-OrderingPlugin.cmj +0 -0
- package/lib/ocaml/Customer-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/Customer.ast +0 -0
- package/lib/ocaml/Customer_Behavior-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/Customer_Behavior-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/Customer_GWT-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/Customer_GWT-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/Customers-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/Customers-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/Customers_GWT-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/Customers_GWT-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/Customers_Projections-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/Customers_Projections-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/EmailService_Mock-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/EmailService_Mock-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/Order-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/Order-OrderingPlugin.cmj +0 -0
- package/lib/ocaml/Order-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/Order.ast +0 -0
- package/lib/ocaml/Order.res +17 -3
- package/lib/ocaml/OrderMappings_GWT-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/OrderMappings_GWT-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/OrderNotifications-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/OrderNotifications-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/Order_Behavior-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/Order_Behavior-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/Order_EmailNotification-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/Order_EmailNotification-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/Order_EmailNotification_GWT-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/Order_EmailNotification_GWT-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/Order_GWT-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/Order_GWT-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/Order_Mappings-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/Order_Mappings-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/Orders-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/Orders-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/Orders_ExtensionPointMapping-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/Orders_ExtensionPointMapping-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/Orders_ExtensionPointMapping_GWT-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/Orders_ExtensionPointMapping_GWT-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/Orders_GWT-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/Orders_GWT-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/Orders_Projections-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/Orders_Projections-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/Plugin-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/Plugin-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/Products_Extension-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/Products_Extension-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/Products_Extension_GWT-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/Products_Extension_GWT-OrderingPlugin.cmt +0 -0
- package/package.json +8 -8
- package/src/CatalogProduct/Aggregate/CatalogProduct.res.mjs +8 -0
- package/src/Customer/Aggregate/Customer.res.mjs +8 -0
- package/src/Order/Aggregate/Order.res +17 -3
- package/src/Order/Aggregate/Order.res.mjs +30 -31
- package/src/Plugin.res.mjs +18 -6
- package/tests/Extension/Products_Extension_GWT.res.mjs +3 -1
- package/tests/ExtensionPoint/Orders_ExtensionPointMapping_GWT.res.mjs +3 -1
- 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
|
package/lib/bs/.compiler.log
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
#Start(
|
|
2
|
-
#Done(
|
|
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": "
|
|
7
|
+
"generated_at": "1788306938896"
|
|
8
8
|
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -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 */
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/lib/bs/src/CatalogProduct/ReadModel/AvailableProducts_Projections-OrderingPlugin.cmi
CHANGED
|
Binary file
|
package/lib/bs/src/CatalogProduct/ReadModel/AvailableProducts_Projections-OrderingPlugin.cmt
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -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 */
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
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
|
-
|
|
|
10
|
-
|
|
|
11
|
-
|
|
|
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
|
-
|
|
48
|
-
|
|
49
|
-
"Ship"
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
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
|
-
|
|
90
|
+
commandTransition,
|
|
93
91
|
moduleUrl,
|
|
94
92
|
commandAuthorization,
|
|
93
|
+
traits,
|
|
95
94
|
}
|
|
96
95
|
/* commandSchema Not a pure module */
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -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,
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -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,
|
|
Binary file
|
|
Binary file
|
|
@@ -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,
|
|
Binary file
|
|
Binary file
|
|
@@ -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,
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/lib/ocaml/.compiler.log
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
#Start(
|
|
2
|
-
#Done(
|
|
1
|
+
#Start(1788306932499)
|
|
2
|
+
#Done(1788306938882)
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/lib/ocaml/Customer.ast
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/lib/ocaml/Order.ast
CHANGED
|
Binary file
|
package/lib/ocaml/Order.res
CHANGED
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
@schema
|
|
7
7
|
type command =
|
|
8
8
|
| Place({customerId: string, @ref("AvailableProducts") @noDcbTag productIds: array<string>})
|
|
9
|
-
|
|
|
10
|
-
|
|
|
11
|
-
|
|
|
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
|
+
}
|