@reventlessdev/online-shop-aggregates-ordering 3.0.0-alpha.244 → 3.0.0-alpha.246

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 (277) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/lib/bs/.compiler.log +2 -2
  3. package/lib/bs/OrderingPlugin.cmi +0 -0
  4. package/lib/bs/OrderingPlugin.cmt +0 -0
  5. package/lib/bs/OrderingPlugin.mlmap +2 -0
  6. package/lib/bs/compiler-info.json +1 -1
  7. package/lib/bs/src/CatalogProduct/Aggregate/CatalogProduct-OrderingPlugin.cmi +0 -0
  8. package/lib/bs/src/CatalogProduct/Aggregate/CatalogProduct-OrderingPlugin.cmt +0 -0
  9. package/lib/bs/src/CatalogProduct/Aggregate/CatalogProduct.ast +0 -0
  10. package/lib/bs/src/CatalogProduct/Aggregate/CatalogProduct.res +2 -0
  11. package/lib/bs/src/CatalogProduct/Aggregate/CatalogProduct_Behavior-OrderingPlugin.cmi +0 -0
  12. package/lib/bs/src/CatalogProduct/Aggregate/CatalogProduct_Behavior-OrderingPlugin.cmt +0 -0
  13. package/lib/bs/src/CatalogProduct/ReadModel/AvailableProducts-OrderingPlugin.cmi +0 -0
  14. package/lib/bs/src/CatalogProduct/ReadModel/AvailableProducts-OrderingPlugin.cmt +0 -0
  15. package/lib/bs/src/CatalogProduct/ReadModel/AvailableProducts.ast +0 -0
  16. package/lib/bs/src/CatalogProduct/ReadModel/AvailableProducts.res +2 -0
  17. package/lib/bs/src/CatalogProduct/ReadModel/AvailableProducts_Projections-OrderingPlugin.cmi +0 -0
  18. package/lib/bs/src/CatalogProduct/ReadModel/AvailableProducts_Projections-OrderingPlugin.cmt +0 -0
  19. package/lib/bs/src/CatalogProduct/ReadModel/AvailableProducts_Projections.res.mjs +4 -4
  20. package/lib/bs/src/Customer/Aggregate/Customer-OrderingPlugin.cmi +0 -0
  21. package/lib/bs/src/Customer/Aggregate/Customer-OrderingPlugin.cmt +0 -0
  22. package/lib/bs/src/Customer/Aggregate/Customer.ast +0 -0
  23. package/lib/bs/src/Customer/Aggregate/Customer.res +2 -0
  24. package/lib/bs/src/Customer/Aggregate/Customer_Behavior-OrderingPlugin.cmi +0 -0
  25. package/lib/bs/src/Customer/Aggregate/Customer_Behavior-OrderingPlugin.cmt +0 -0
  26. package/lib/bs/src/Customer/CustomerId-OrderingPlugin.cmi +0 -0
  27. package/lib/bs/src/Customer/CustomerId-OrderingPlugin.cmj +0 -0
  28. package/lib/bs/src/Customer/CustomerId-OrderingPlugin.cmt +0 -0
  29. package/lib/bs/src/Customer/CustomerId.ast +0 -0
  30. package/lib/bs/src/Customer/CustomerId.res +4 -0
  31. package/lib/bs/src/Customer/CustomerId.res.mjs +29 -0
  32. package/lib/bs/src/Customer/ReadModel/Customers-OrderingPlugin.cmi +0 -0
  33. package/lib/bs/src/Customer/ReadModel/Customers-OrderingPlugin.cmt +0 -0
  34. package/lib/bs/src/Customer/ReadModel/Customers.ast +0 -0
  35. package/lib/bs/src/Customer/ReadModel/Customers.res +2 -0
  36. package/lib/bs/src/Customer/ReadModel/Customers_Projections-OrderingPlugin.cmi +0 -0
  37. package/lib/bs/src/Customer/ReadModel/Customers_Projections-OrderingPlugin.cmt +0 -0
  38. package/lib/bs/src/Customer/ReadModel/Customers_Projections.res.mjs +4 -4
  39. package/lib/bs/src/Extension/Products_Extension-OrderingPlugin.cmi +0 -0
  40. package/lib/bs/src/Extension/Products_Extension-OrderingPlugin.cmt +0 -0
  41. package/lib/bs/src/Extension/Products_Extension.ast +0 -0
  42. package/lib/bs/src/Extension/Products_Extension.res +6 -2
  43. package/lib/bs/src/Extension/Products_Extension.res.mjs +4 -3
  44. package/lib/bs/src/ExtensionPoint/Orders_ExtensionPointMapping-OrderingPlugin.cmi +0 -0
  45. package/lib/bs/src/ExtensionPoint/Orders_ExtensionPointMapping-OrderingPlugin.cmj +0 -0
  46. package/lib/bs/src/ExtensionPoint/Orders_ExtensionPointMapping-OrderingPlugin.cmt +0 -0
  47. package/lib/bs/src/ExtensionPoint/Orders_ExtensionPointMapping.ast +0 -0
  48. package/lib/bs/src/ExtensionPoint/Orders_ExtensionPointMapping.res +23 -8
  49. package/lib/bs/src/ExtensionPoint/Orders_ExtensionPointMapping.res.mjs +28 -20
  50. package/lib/bs/src/LifecycleModel-OrderingPlugin.cmi +0 -0
  51. package/lib/bs/src/LifecycleModel-OrderingPlugin.cmt +0 -0
  52. package/lib/bs/src/Order/Aggregate/Order-OrderingPlugin.cmi +0 -0
  53. package/lib/bs/src/Order/Aggregate/Order-OrderingPlugin.cmt +0 -0
  54. package/lib/bs/src/Order/Aggregate/Order.ast +0 -0
  55. package/lib/bs/src/Order/Aggregate/Order.res +7 -3
  56. package/lib/bs/src/Order/Aggregate/Order.res.mjs +7 -6
  57. package/lib/bs/src/Order/Aggregate/Order_Behavior-OrderingPlugin.cmi +0 -0
  58. package/lib/bs/src/Order/Aggregate/Order_Behavior-OrderingPlugin.cmt +0 -0
  59. package/lib/bs/src/Order/Aggregate/Order_Behavior.ast +0 -0
  60. package/lib/bs/src/Order/Aggregate/Order_Behavior.res +1 -1
  61. package/lib/bs/src/Order/Aggregate/Order_Behavior.res.mjs +4 -2
  62. package/lib/bs/src/Order/Aggregate/Order_Mappings-OrderingPlugin.cmi +0 -0
  63. package/lib/bs/src/Order/Aggregate/Order_Mappings-OrderingPlugin.cmt +0 -0
  64. package/lib/bs/src/Order/Aggregate/Order_Mappings.res.mjs +3 -3
  65. package/lib/bs/src/Order/OrderId-OrderingPlugin.cmi +0 -0
  66. package/lib/bs/src/Order/OrderId-OrderingPlugin.cmj +0 -0
  67. package/lib/bs/src/Order/OrderId-OrderingPlugin.cmt +0 -0
  68. package/lib/bs/src/Order/OrderId.ast +0 -0
  69. package/lib/bs/src/Order/OrderId.res +4 -0
  70. package/lib/bs/src/Order/OrderId.res.mjs +29 -0
  71. package/lib/bs/src/Order/ReadModel/Orders-OrderingPlugin.cmi +0 -0
  72. package/lib/bs/src/Order/ReadModel/Orders-OrderingPlugin.cmt +0 -0
  73. package/lib/bs/src/Order/ReadModel/Orders.ast +0 -0
  74. package/lib/bs/src/Order/ReadModel/Orders.res +4 -2
  75. package/lib/bs/src/Order/ReadModel/Orders.res.mjs +4 -2
  76. package/lib/bs/src/Order/ReadModel/Orders_Projections-OrderingPlugin.cmi +0 -0
  77. package/lib/bs/src/Order/ReadModel/Orders_Projections-OrderingPlugin.cmt +0 -0
  78. package/lib/bs/src/Order/ReadModel/Orders_Projections.res.mjs +4 -4
  79. package/lib/bs/src/Order/SideEffect/Order_EmailNotification-OrderingPlugin.cmi +0 -0
  80. package/lib/bs/src/Order/SideEffect/Order_EmailNotification-OrderingPlugin.cmt +0 -0
  81. package/lib/bs/src/Order/SideEffect/Order_EmailNotification.ast +0 -0
  82. package/lib/bs/src/Order/SideEffect/Order_EmailNotification.res +4 -1
  83. package/lib/bs/src/Order/SideEffect/Order_EmailNotification.res.mjs +4 -3
  84. package/lib/bs/src/Plugin-OrderingPlugin.cmi +0 -0
  85. package/lib/bs/src/Plugin-OrderingPlugin.cmt +0 -0
  86. package/lib/bs/src/Plugin.res.mjs +15 -13
  87. package/lib/bs/src/Task/OrderNotifications-OrderingPlugin.cmi +0 -0
  88. package/lib/bs/src/Task/OrderNotifications-OrderingPlugin.cmt +0 -0
  89. package/lib/bs/src/Task/OrderNotifications.res.mjs +3 -3
  90. package/lib/bs/tests/CatalogProduct/Aggregate/CatalogProduct_GWT-OrderingPlugin.cmi +0 -0
  91. package/lib/bs/tests/CatalogProduct/Aggregate/CatalogProduct_GWT-OrderingPlugin.cmt +0 -0
  92. package/lib/bs/tests/CatalogProduct/ReadModel/AvailableProducts_GWT-OrderingPlugin.cmi +0 -0
  93. package/lib/bs/tests/CatalogProduct/ReadModel/AvailableProducts_GWT-OrderingPlugin.cmt +0 -0
  94. package/lib/bs/tests/Customer/Aggregate/Customer_GWT-OrderingPlugin.cmi +0 -0
  95. package/lib/bs/tests/Customer/Aggregate/Customer_GWT-OrderingPlugin.cmt +0 -0
  96. package/lib/bs/tests/Customer/ReadModel/Customers_GWT-OrderingPlugin.cmi +0 -0
  97. package/lib/bs/tests/Customer/ReadModel/Customers_GWT-OrderingPlugin.cmt +0 -0
  98. package/lib/bs/tests/Extension/Products_Extension_GWT-OrderingPlugin.cmi +0 -0
  99. package/lib/bs/tests/Extension/Products_Extension_GWT-OrderingPlugin.cmt +0 -0
  100. package/lib/bs/tests/Extension/Products_Extension_GWT.ast +0 -0
  101. package/lib/bs/tests/Extension/Products_Extension_GWT.res +4 -2
  102. package/lib/bs/tests/Extension/Products_Extension_GWT.res.mjs +7 -4
  103. package/lib/bs/tests/ExtensionPoint/Orders_ExtensionPointMapping_GWT-OrderingPlugin.cmi +0 -0
  104. package/lib/bs/tests/ExtensionPoint/Orders_ExtensionPointMapping_GWT-OrderingPlugin.cmt +0 -0
  105. package/lib/bs/tests/ExtensionPoint/Orders_ExtensionPointMapping_GWT.ast +0 -0
  106. package/lib/bs/tests/ExtensionPoint/Orders_ExtensionPointMapping_GWT.res +6 -2
  107. package/lib/bs/tests/ExtensionPoint/Orders_ExtensionPointMapping_GWT.res.mjs +18 -7
  108. package/lib/bs/tests/Order/Aggregate/OrderMappings_GWT-OrderingPlugin.cmi +0 -0
  109. package/lib/bs/tests/Order/Aggregate/OrderMappings_GWT-OrderingPlugin.cmj +0 -0
  110. package/lib/bs/tests/Order/Aggregate/OrderMappings_GWT-OrderingPlugin.cmt +0 -0
  111. package/lib/bs/tests/Order/Aggregate/OrderMappings_GWT.ast +0 -0
  112. package/lib/bs/tests/Order/Aggregate/OrderMappings_GWT.res +6 -4
  113. package/lib/bs/tests/Order/Aggregate/OrderMappings_GWT.res.mjs +19 -11
  114. package/lib/bs/tests/Order/Aggregate/Order_GWT-OrderingPlugin.cmi +0 -0
  115. package/lib/bs/tests/Order/Aggregate/Order_GWT-OrderingPlugin.cmt +0 -0
  116. package/lib/bs/tests/Order/Aggregate/Order_GWT.ast +0 -0
  117. package/lib/bs/tests/Order/Aggregate/Order_GWT.res +29 -24
  118. package/lib/bs/tests/Order/Aggregate/Order_GWT.res.mjs +55 -44
  119. package/lib/bs/tests/Order/ReadModel/Orders_GWT-OrderingPlugin.cmi +0 -0
  120. package/lib/bs/tests/Order/ReadModel/Orders_GWT-OrderingPlugin.cmt +0 -0
  121. package/lib/bs/tests/Order/ReadModel/Orders_GWT.ast +0 -0
  122. package/lib/bs/tests/Order/ReadModel/Orders_GWT.res +19 -14
  123. package/lib/bs/tests/Order/ReadModel/Orders_GWT.res.mjs +31 -20
  124. package/lib/bs/tests/Order/SideEffect/EmailService_Mock-OrderingPlugin.cmi +0 -0
  125. package/lib/bs/tests/Order/SideEffect/EmailService_Mock-OrderingPlugin.cmt +0 -0
  126. package/lib/bs/tests/Order/SideEffect/Order_EmailNotification_GWT-OrderingPlugin.cmi +0 -0
  127. package/lib/bs/tests/Order/SideEffect/Order_EmailNotification_GWT-OrderingPlugin.cmt +0 -0
  128. package/lib/bs/tests/Order/SideEffect/Order_EmailNotification_GWT.ast +0 -0
  129. package/lib/bs/tests/Order/SideEffect/Order_EmailNotification_GWT.res +5 -2
  130. package/lib/bs/tests/Order/SideEffect/Order_EmailNotification_GWT.res.mjs +8 -6
  131. package/lib/ocaml/.compiler.log +2 -2
  132. package/lib/ocaml/AvailableProducts-OrderingPlugin.cmi +0 -0
  133. package/lib/ocaml/AvailableProducts-OrderingPlugin.cmt +0 -0
  134. package/lib/ocaml/AvailableProducts.ast +0 -0
  135. package/lib/ocaml/AvailableProducts.res +2 -0
  136. package/lib/ocaml/AvailableProducts_GWT-OrderingPlugin.cmi +0 -0
  137. package/lib/ocaml/AvailableProducts_GWT-OrderingPlugin.cmt +0 -0
  138. package/lib/ocaml/AvailableProducts_Projections-OrderingPlugin.cmi +0 -0
  139. package/lib/ocaml/AvailableProducts_Projections-OrderingPlugin.cmt +0 -0
  140. package/lib/ocaml/CatalogProduct-OrderingPlugin.cmi +0 -0
  141. package/lib/ocaml/CatalogProduct-OrderingPlugin.cmt +0 -0
  142. package/lib/ocaml/CatalogProduct.ast +0 -0
  143. package/lib/ocaml/CatalogProduct.res +2 -0
  144. package/lib/ocaml/CatalogProduct_Behavior-OrderingPlugin.cmi +0 -0
  145. package/lib/ocaml/CatalogProduct_Behavior-OrderingPlugin.cmt +0 -0
  146. package/lib/ocaml/CatalogProduct_GWT-OrderingPlugin.cmi +0 -0
  147. package/lib/ocaml/CatalogProduct_GWT-OrderingPlugin.cmt +0 -0
  148. package/lib/ocaml/Customer-OrderingPlugin.cmi +0 -0
  149. package/lib/ocaml/Customer-OrderingPlugin.cmt +0 -0
  150. package/lib/ocaml/Customer.ast +0 -0
  151. package/lib/ocaml/Customer.res +2 -0
  152. package/lib/ocaml/CustomerId-OrderingPlugin.cmi +0 -0
  153. package/lib/ocaml/CustomerId-OrderingPlugin.cmj +0 -0
  154. package/lib/ocaml/CustomerId-OrderingPlugin.cmt +0 -0
  155. package/lib/ocaml/CustomerId.ast +0 -0
  156. package/lib/ocaml/CustomerId.res +4 -0
  157. package/lib/ocaml/Customer_Behavior-OrderingPlugin.cmi +0 -0
  158. package/lib/ocaml/Customer_Behavior-OrderingPlugin.cmt +0 -0
  159. package/lib/ocaml/Customer_GWT-OrderingPlugin.cmi +0 -0
  160. package/lib/ocaml/Customer_GWT-OrderingPlugin.cmt +0 -0
  161. package/lib/ocaml/Customers-OrderingPlugin.cmi +0 -0
  162. package/lib/ocaml/Customers-OrderingPlugin.cmt +0 -0
  163. package/lib/ocaml/Customers.ast +0 -0
  164. package/lib/ocaml/Customers.res +2 -0
  165. package/lib/ocaml/Customers_GWT-OrderingPlugin.cmi +0 -0
  166. package/lib/ocaml/Customers_GWT-OrderingPlugin.cmt +0 -0
  167. package/lib/ocaml/Customers_Projections-OrderingPlugin.cmi +0 -0
  168. package/lib/ocaml/Customers_Projections-OrderingPlugin.cmt +0 -0
  169. package/lib/ocaml/EmailService_Mock-OrderingPlugin.cmi +0 -0
  170. package/lib/ocaml/EmailService_Mock-OrderingPlugin.cmt +0 -0
  171. package/lib/ocaml/LifecycleModel-OrderingPlugin.cmi +0 -0
  172. package/lib/ocaml/LifecycleModel-OrderingPlugin.cmt +0 -0
  173. package/lib/ocaml/Order-OrderingPlugin.cmi +0 -0
  174. package/lib/ocaml/Order-OrderingPlugin.cmt +0 -0
  175. package/lib/ocaml/Order.ast +0 -0
  176. package/lib/ocaml/Order.res +7 -3
  177. package/lib/ocaml/OrderId-OrderingPlugin.cmi +0 -0
  178. package/lib/ocaml/OrderId-OrderingPlugin.cmj +0 -0
  179. package/lib/ocaml/OrderId-OrderingPlugin.cmt +0 -0
  180. package/lib/ocaml/OrderId.ast +0 -0
  181. package/lib/ocaml/OrderId.res +4 -0
  182. package/lib/ocaml/OrderMappings_GWT-OrderingPlugin.cmi +0 -0
  183. package/lib/ocaml/OrderMappings_GWT-OrderingPlugin.cmj +0 -0
  184. package/lib/ocaml/OrderMappings_GWT-OrderingPlugin.cmt +0 -0
  185. package/lib/ocaml/OrderMappings_GWT.ast +0 -0
  186. package/lib/ocaml/OrderMappings_GWT.res +6 -4
  187. package/lib/ocaml/OrderNotifications-OrderingPlugin.cmi +0 -0
  188. package/lib/ocaml/OrderNotifications-OrderingPlugin.cmt +0 -0
  189. package/lib/ocaml/Order_Behavior-OrderingPlugin.cmi +0 -0
  190. package/lib/ocaml/Order_Behavior-OrderingPlugin.cmt +0 -0
  191. package/lib/ocaml/Order_Behavior.ast +0 -0
  192. package/lib/ocaml/Order_Behavior.res +1 -1
  193. package/lib/ocaml/Order_EmailNotification-OrderingPlugin.cmi +0 -0
  194. package/lib/ocaml/Order_EmailNotification-OrderingPlugin.cmt +0 -0
  195. package/lib/ocaml/Order_EmailNotification.ast +0 -0
  196. package/lib/ocaml/Order_EmailNotification.res +4 -1
  197. package/lib/ocaml/Order_EmailNotification_GWT-OrderingPlugin.cmi +0 -0
  198. package/lib/ocaml/Order_EmailNotification_GWT-OrderingPlugin.cmt +0 -0
  199. package/lib/ocaml/Order_EmailNotification_GWT.ast +0 -0
  200. package/lib/ocaml/Order_EmailNotification_GWT.res +5 -2
  201. package/lib/ocaml/Order_GWT-OrderingPlugin.cmi +0 -0
  202. package/lib/ocaml/Order_GWT-OrderingPlugin.cmt +0 -0
  203. package/lib/ocaml/Order_GWT.ast +0 -0
  204. package/lib/ocaml/Order_GWT.res +29 -24
  205. package/lib/ocaml/Order_Mappings-OrderingPlugin.cmi +0 -0
  206. package/lib/ocaml/Order_Mappings-OrderingPlugin.cmt +0 -0
  207. package/lib/ocaml/OrderingPlugin.cmi +0 -0
  208. package/lib/ocaml/OrderingPlugin.cmt +0 -0
  209. package/lib/ocaml/OrderingPlugin.mlmap +2 -0
  210. package/lib/ocaml/Orders-OrderingPlugin.cmi +0 -0
  211. package/lib/ocaml/Orders-OrderingPlugin.cmt +0 -0
  212. package/lib/ocaml/Orders.ast +0 -0
  213. package/lib/ocaml/Orders.res +4 -2
  214. package/lib/ocaml/Orders_ExtensionPointMapping-OrderingPlugin.cmi +0 -0
  215. package/lib/ocaml/Orders_ExtensionPointMapping-OrderingPlugin.cmj +0 -0
  216. package/lib/ocaml/Orders_ExtensionPointMapping-OrderingPlugin.cmt +0 -0
  217. package/lib/ocaml/Orders_ExtensionPointMapping.ast +0 -0
  218. package/lib/ocaml/Orders_ExtensionPointMapping.res +23 -8
  219. package/lib/ocaml/Orders_ExtensionPointMapping_GWT-OrderingPlugin.cmi +0 -0
  220. package/lib/ocaml/Orders_ExtensionPointMapping_GWT-OrderingPlugin.cmt +0 -0
  221. package/lib/ocaml/Orders_ExtensionPointMapping_GWT.ast +0 -0
  222. package/lib/ocaml/Orders_ExtensionPointMapping_GWT.res +6 -2
  223. package/lib/ocaml/Orders_GWT-OrderingPlugin.cmi +0 -0
  224. package/lib/ocaml/Orders_GWT-OrderingPlugin.cmt +0 -0
  225. package/lib/ocaml/Orders_GWT.ast +0 -0
  226. package/lib/ocaml/Orders_GWT.res +19 -14
  227. package/lib/ocaml/Orders_Projections-OrderingPlugin.cmi +0 -0
  228. package/lib/ocaml/Orders_Projections-OrderingPlugin.cmt +0 -0
  229. package/lib/ocaml/Plugin-OrderingPlugin.cmi +0 -0
  230. package/lib/ocaml/Plugin-OrderingPlugin.cmt +0 -0
  231. package/lib/ocaml/Products_Extension-OrderingPlugin.cmi +0 -0
  232. package/lib/ocaml/Products_Extension-OrderingPlugin.cmt +0 -0
  233. package/lib/ocaml/Products_Extension.ast +0 -0
  234. package/lib/ocaml/Products_Extension.res +6 -2
  235. package/lib/ocaml/Products_Extension_GWT-OrderingPlugin.cmi +0 -0
  236. package/lib/ocaml/Products_Extension_GWT-OrderingPlugin.cmt +0 -0
  237. package/lib/ocaml/Products_Extension_GWT.ast +0 -0
  238. package/lib/ocaml/Products_Extension_GWT.res +4 -2
  239. package/package.json +8 -8
  240. package/src/CatalogProduct/Aggregate/CatalogProduct.res +2 -0
  241. package/src/CatalogProduct/ReadModel/AvailableProducts.res +2 -0
  242. package/src/CatalogProduct/ReadModel/AvailableProducts_Projections.res.mjs +4 -4
  243. package/src/Customer/Aggregate/Customer.res +2 -0
  244. package/src/Customer/CustomerId.res +4 -0
  245. package/src/Customer/CustomerId.res.mjs +29 -0
  246. package/src/Customer/ReadModel/Customers.res +2 -0
  247. package/src/Customer/ReadModel/Customers_Projections.res.mjs +4 -4
  248. package/src/Extension/Products_Extension.res +6 -2
  249. package/src/Extension/Products_Extension.res.mjs +4 -3
  250. package/src/ExtensionPoint/Orders_ExtensionPointMapping.res +23 -8
  251. package/src/ExtensionPoint/Orders_ExtensionPointMapping.res.mjs +28 -20
  252. package/src/Order/Aggregate/Order.res +7 -3
  253. package/src/Order/Aggregate/Order.res.mjs +7 -6
  254. package/src/Order/Aggregate/Order_Behavior.res +1 -1
  255. package/src/Order/Aggregate/Order_Behavior.res.mjs +4 -2
  256. package/src/Order/Aggregate/Order_Mappings.res.mjs +3 -3
  257. package/src/Order/OrderId.res +4 -0
  258. package/src/Order/OrderId.res.mjs +29 -0
  259. package/src/Order/ReadModel/Orders.res +4 -2
  260. package/src/Order/ReadModel/Orders.res.mjs +4 -2
  261. package/src/Order/ReadModel/Orders_Projections.res.mjs +4 -4
  262. package/src/Order/SideEffect/Order_EmailNotification.res +4 -1
  263. package/src/Order/SideEffect/Order_EmailNotification.res.mjs +4 -3
  264. package/src/Plugin.res.mjs +15 -13
  265. package/src/Task/OrderNotifications.res.mjs +3 -3
  266. package/tests/Extension/Products_Extension_GWT.res +4 -2
  267. package/tests/Extension/Products_Extension_GWT.res.mjs +7 -4
  268. package/tests/ExtensionPoint/Orders_ExtensionPointMapping_GWT.res +6 -2
  269. package/tests/ExtensionPoint/Orders_ExtensionPointMapping_GWT.res.mjs +18 -7
  270. package/tests/Order/Aggregate/OrderMappings_GWT.res +6 -4
  271. package/tests/Order/Aggregate/OrderMappings_GWT.res.mjs +19 -11
  272. package/tests/Order/Aggregate/Order_GWT.res +29 -24
  273. package/tests/Order/Aggregate/Order_GWT.res.mjs +55 -44
  274. package/tests/Order/ReadModel/Orders_GWT.res +19 -14
  275. package/tests/Order/ReadModel/Orders_GWT.res.mjs +31 -20
  276. package/tests/Order/SideEffect/Order_EmailNotification_GWT.res +5 -2
  277. package/tests/Order/SideEffect/Order_EmailNotification_GWT.res.mjs +8 -6
@@ -12,11 +12,15 @@ module Mapping = {
12
12
 
13
13
  let mapIncomingEvent = (_id, event, _meta, _pluginDef, _queryEngine) =>
14
14
  switch event {
15
+ // The contract carries the catalog's typed id; routing is by string.
15
16
  | ProductBecameAvailable({productId, name, price}) => [
16
- PublishAggregateCommand(productId, Sync({name, price})),
17
+ PublishAggregateCommand(productId->CatalogSpec.ProductId.toString, Sync({name, price})),
17
18
  ]
18
19
  | ProductPriceChanged({productId, price}) => [
19
- PublishAggregateCommand(productId, UpdatePrice({price: price})),
20
+ PublishAggregateCommand(
21
+ productId->CatalogSpec.ProductId.toString,
22
+ UpdatePrice({price: price}),
23
+ ),
20
24
  ]
21
25
  }
22
26
 
@@ -6,16 +6,18 @@
6
6
  // it surfaces the extension point's events and the delegate's commands.
7
7
  open Mapping
8
8
 
9
+ let p1 = CatalogSpec.ProductId.make("p1")
10
+
9
11
  describe("Products Extension delegate", () => {
10
12
  test("ProductBecameAvailable issues Sync", () =>
11
13
  whenIncomingEvent(
12
- ExtensionPoint.ProductBecameAvailable({productId: "p1", name: "Book", price: 9.99}),
14
+ ExtensionPoint.ProductBecameAvailable({productId: p1, name: "Book", price: 9.99}),
13
15
  )->thenPublishesAggregateCommand("p1", Delegate.Sync({name: "Book", price: 9.99}))
14
16
  )
15
17
 
16
18
  test("ProductPriceChanged issues UpdatePrice", () =>
17
19
  whenIncomingEvent(
18
- ExtensionPoint.ProductPriceChanged({productId: "p1", price: 7.5}),
20
+ ExtensionPoint.ProductPriceChanged({productId: p1, price: 7.5}),
19
21
  )->thenPublishesAggregateCommand("p1", Delegate.UpdatePrice({price: 7.5}))
20
22
  )
21
23
  })
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reventlessdev/online-shop-aggregates-ordering",
3
- "version": "3.0.0-alpha.244",
3
+ "version": "3.0.0-alpha.246",
4
4
  "description": "Online Shop example — Ordering plugin (Customer & Order aggregates)",
5
5
  "license": "Apache-2.0",
6
6
  "jest": {
@@ -21,18 +21,18 @@
21
21
  },
22
22
  "dependencies": {
23
23
  "sury": "11.0.0-rc.2",
24
- "@reventlessdev/online-shop-aggregates-catalog-spec": "3.0.0-alpha.137",
24
+ "@reventlessdev/online-shop-aggregates-catalog-spec": "3.0.0-alpha.139",
25
25
  "@reventlessdev/rescript-pulumi-pulumi": "2.3.0-alpha.21",
26
- "@reventlessdev/online-shop-aggregates-ordering-spec": "3.0.0-alpha.137",
27
- "@reventlessdev/reventless-infra": "3.0.0-alpha.166",
28
- "@reventlessdev/reventless-gwt": "1.0.0-alpha.212",
29
- "@reventlessdev/reventless-spec": "3.0.0-alpha.138",
30
- "@reventlessdev/reventless-local": "3.0.0-alpha.255"
26
+ "@reventlessdev/reventless-gwt": "1.0.0-alpha.214",
27
+ "@reventlessdev/online-shop-aggregates-ordering-spec": "3.0.0-alpha.139",
28
+ "@reventlessdev/reventless-infra": "3.0.0-alpha.168",
29
+ "@reventlessdev/reventless-local": "3.0.0-alpha.257",
30
+ "@reventlessdev/reventless-spec": "3.0.0-alpha.140"
31
31
  },
32
32
  "devDependencies": {
33
33
  "rescript": "12.3.0",
34
34
  "sury-ppx": "11.0.0-rc.2",
35
- "@reventlessdev/reventless-ppx": "1.0.0-alpha.80"
35
+ "@reventlessdev/reventless-ppx": "1.0.0-alpha.81"
36
36
  },
37
37
  "peerDependencies": {
38
38
  "rescript": "12.3.0"
@@ -4,6 +4,8 @@
4
4
 
5
5
  @@reventless.spec
6
6
 
7
+ module Id = CatalogSpec.ProductId
8
+
7
9
  @schema
8
10
  type command =
9
11
  | Sync({name: string, price: float})
@@ -8,5 +8,7 @@
8
8
  @@reventless.spec
9
9
  @@reventless.visibility(Internal)
10
10
 
11
+ module Id = CatalogSpec.ProductId
12
+
11
13
  @schema
12
14
  type state = {name: string, price: float}
@@ -1,12 +1,12 @@
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
+ import * as ProductId$CatalogSpec from "@reventlessdev/online-shop-aggregates-catalog-spec/src/ProductId.res.mjs";
4
4
  import * as Projection$Reventless from "@reventlessdev/reventless-spec/src/types/Projection.res.mjs";
5
5
  import * as CatalogProduct$OrderingPlugin from "../Aggregate/CatalogProduct.res.mjs";
6
6
  import * as AvailableProducts$OrderingPlugin from "./AvailableProducts.res.mjs";
7
7
 
8
8
  let M = Projection$Reventless.Mappings.Make({
9
- Id: Id$Reventless.$$String,
9
+ Id: ProductId$CatalogSpec,
10
10
  name: AvailableProducts$OrderingPlugin.name,
11
11
  stateSchema: AvailableProducts$OrderingPlugin.stateSchema,
12
12
  subIdConfig: undefined
@@ -37,11 +37,11 @@ function project(param) {
37
37
  }
38
38
 
39
39
  let CatalogProductMapping = Projection$Reventless.Mapping.Make({
40
- Id: Id$Reventless.$$String,
40
+ Id: ProductId$CatalogSpec,
41
41
  name: CatalogProduct$OrderingPlugin.name,
42
42
  eventSchema: CatalogProduct$OrderingPlugin.eventSchema
43
43
  })({
44
- Id: Id$Reventless.$$String,
44
+ Id: ProductId$CatalogSpec,
45
45
  name: AvailableProducts$OrderingPlugin.name,
46
46
  stateSchema: AvailableProducts$OrderingPlugin.stateSchema,
47
47
  subIdConfig: undefined
@@ -3,6 +3,8 @@
3
3
 
4
4
  @@reventless.spec
5
5
 
6
+ module Id = CustomerId
7
+
6
8
  // The command is where an address is first accepted, so it is where the type
7
9
  // belongs — a value that reaches the log is already permanent. The events below
8
10
  // stay plain `string`: they record what was accepted, and re-validating history
@@ -0,0 +1,4 @@
1
+ // A customer's id: the Customer stream, the Customers rows, and an order's buyer.
2
+ include Reventless.Id.Make({
3
+ let key = "customerId"
4
+ })
@@ -0,0 +1,29 @@
1
+ // Generated by ReScript, PLEASE EDIT WITH CARE
2
+
3
+ import * as Id$Reventless from "@reventlessdev/reventless-spec/src/types/Id.res.mjs";
4
+
5
+ let include = Id$Reventless.Make({
6
+ key: "customerId"
7
+ });
8
+
9
+ let schema = include.schema;
10
+
11
+ let make = include.make;
12
+
13
+ let makeFromString = include.makeFromString;
14
+
15
+ let toString = include.toString;
16
+
17
+ let cmp = include.cmp;
18
+
19
+ let key = include.key;
20
+
21
+ export {
22
+ schema,
23
+ make,
24
+ makeFromString,
25
+ toString,
26
+ cmp,
27
+ key,
28
+ }
29
+ /* include Not a pure module */
@@ -3,6 +3,8 @@
3
3
 
4
4
  @@reventless.spec
5
5
 
6
+ module Id = CustomerId
7
+
6
8
  // Marked on the query side too, where it is what makes the field render as a
7
9
  // mailto link instead of a text box: the AutoUI reads the semantic off this
8
10
  // state schema, not off the command's.
@@ -1,12 +1,12 @@
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";
4
3
  import * as Projection$Reventless from "@reventlessdev/reventless-spec/src/types/Projection.res.mjs";
5
4
  import * as Customer$OrderingPlugin from "../Aggregate/Customer.res.mjs";
6
5
  import * as Customers$OrderingPlugin from "./Customers.res.mjs";
6
+ import * as CustomerId$OrderingPlugin from "../CustomerId.res.mjs";
7
7
 
8
8
  let M = Projection$Reventless.Mappings.Make({
9
- Id: Id$Reventless.$$String,
9
+ Id: CustomerId$OrderingPlugin,
10
10
  name: Customers$OrderingPlugin.name,
11
11
  stateSchema: Customers$OrderingPlugin.stateSchema,
12
12
  subIdConfig: undefined
@@ -63,11 +63,11 @@ function project(param) {
63
63
  }
64
64
 
65
65
  let CustomerMapping = Projection$Reventless.Mapping.Make({
66
- Id: Id$Reventless.$$String,
66
+ Id: CustomerId$OrderingPlugin,
67
67
  name: Customer$OrderingPlugin.name,
68
68
  eventSchema: Customer$OrderingPlugin.eventSchema
69
69
  })({
70
- Id: Id$Reventless.$$String,
70
+ Id: CustomerId$OrderingPlugin,
71
71
  name: Customers$OrderingPlugin.name,
72
72
  stateSchema: Customers$OrderingPlugin.stateSchema,
73
73
  subIdConfig: undefined
@@ -12,11 +12,15 @@ module Mapping = {
12
12
 
13
13
  let mapIncomingEvent = (_id, event, _meta, _pluginDef, _queryEngine) =>
14
14
  switch event {
15
+ // The contract carries the catalog's typed id; routing is by string.
15
16
  | ProductBecameAvailable({productId, name, price}) => [
16
- PublishAggregateCommand(productId, Sync({name, price})),
17
+ PublishAggregateCommand(productId->CatalogSpec.ProductId.toString, Sync({name, price})),
17
18
  ]
18
19
  | ProductPriceChanged({productId, price}) => [
19
- PublishAggregateCommand(productId, UpdatePrice({price: price})),
20
+ PublishAggregateCommand(
21
+ productId->CatalogSpec.ProductId.toString,
22
+ UpdatePrice({price: price}),
23
+ ),
20
24
  ]
21
25
  }
22
26
 
@@ -1,12 +1,13 @@
1
1
  // Generated by ReScript, PLEASE EDIT WITH CARE
2
2
 
3
+ import * as ProductId$CatalogSpec from "@reventlessdev/online-shop-aggregates-catalog-spec/src/ProductId.res.mjs";
3
4
  import * as CatalogProduct$OrderingPlugin from "../CatalogProduct/Aggregate/CatalogProduct.res.mjs";
4
5
 
5
6
  function mapIncomingEvent(_id, event, _meta, _pluginDef, _queryEngine) {
6
7
  if (event.TAG === "ProductBecameAvailable") {
7
8
  return [{
8
9
  TAG: "PublishAggregateCommand",
9
- _0: event.productId,
10
+ _0: ProductId$CatalogSpec.toString(event.productId),
10
11
  _1: {
11
12
  TAG: "Sync",
12
13
  name: event.name,
@@ -16,7 +17,7 @@ function mapIncomingEvent(_id, event, _meta, _pluginDef, _queryEngine) {
16
17
  } else {
17
18
  return [{
18
19
  TAG: "PublishAggregateCommand",
19
- _0: event.productId,
20
+ _0: ProductId$CatalogSpec.toString(event.productId),
20
21
  _1: {
21
22
  TAG: "UpdatePrice",
22
23
  price: event.price
@@ -55,4 +56,4 @@ export {
55
56
  Mapping,
56
57
  moduleUrl,
57
58
  }
58
- /* CatalogProduct-OrderingPlugin Not a pure module */
59
+ /* ProductId-CatalogSpec Not a pure module */
@@ -10,16 +10,31 @@ let mapIncomingCommand = (_id, _command, _meta) => []
10
10
  let mapOutgoingEvent = Some(
11
11
  (_id, event, _meta, _queryEngine) =>
12
12
  switch event {
13
+ // The published contract carries plain strings: a consumer outside this
14
+ // plugin has no OrderId or CustomerId type to hold them in.
13
15
  | Order.Placed({customerId, productIds}) =>
14
- productIds->Array.map(productId => PublishEvent(
15
- productId,
16
- OrderingSpec.Orders_ExtensionPoint.ItemOrdered({productId, orderId: _id, customerId}),
17
- ))
16
+ productIds->Array.map(productId => {
17
+ let productId = productId->CatalogSpec.ProductId.toString
18
+ PublishEvent(
19
+ productId,
20
+ OrderingSpec.Orders_ExtensionPoint.ItemOrdered({
21
+ productId,
22
+ orderId: _id,
23
+ customerId: customerId->CustomerId.toString,
24
+ }),
25
+ )
26
+ })
18
27
  | Order.Cancelled({productIds}) =>
19
- productIds->Array.map(productId => PublishEvent(
20
- productId,
21
- OrderingSpec.Orders_ExtensionPoint.ItemOrderCancelled({productId, orderId: _id}),
22
- ))
28
+ productIds->Array.map(productId => {
29
+ let productId = productId->CatalogSpec.ProductId.toString
30
+ PublishEvent(
31
+ productId,
32
+ OrderingSpec.Orders_ExtensionPoint.ItemOrderCancelled({
33
+ productId,
34
+ orderId: _id,
35
+ }),
36
+ )
37
+ })
23
38
  | _ => []
24
39
  },
25
40
  )
@@ -1,5 +1,7 @@
1
1
  // Generated by ReScript, PLEASE EDIT WITH CARE
2
2
 
3
+ import * as ProductId$CatalogSpec from "@reventlessdev/online-shop-aggregates-catalog-spec/src/ProductId.res.mjs";
4
+ import * as CustomerId$OrderingPlugin from "../Customer/CustomerId.res.mjs";
3
5
 
4
6
  function mapIncomingCommand(_id, _command, _meta) {
5
7
  return [];
@@ -12,26 +14,32 @@ let mapOutgoingEvent = (_id, event, _meta, _queryEngine) => {
12
14
  switch (event.TAG) {
13
15
  case "Placed" :
14
16
  let customerId = event.customerId;
15
- return event.productIds.map(productId => ({
16
- TAG: "PublishEvent",
17
- _0: productId,
18
- _1: {
19
- TAG: "ItemOrdered",
20
- productId: productId,
21
- orderId: _id,
22
- customerId: customerId
23
- }
24
- }));
17
+ return event.productIds.map(productId => {
18
+ let productId$1 = ProductId$CatalogSpec.toString(productId);
19
+ return {
20
+ TAG: "PublishEvent",
21
+ _0: productId$1,
22
+ _1: {
23
+ TAG: "ItemOrdered",
24
+ productId: productId$1,
25
+ orderId: _id,
26
+ customerId: CustomerId$OrderingPlugin.toString(customerId)
27
+ }
28
+ };
29
+ });
25
30
  case "Cancelled" :
26
- return event.productIds.map(productId => ({
27
- TAG: "PublishEvent",
28
- _0: productId,
29
- _1: {
30
- TAG: "ItemOrderCancelled",
31
- productId: productId,
32
- orderId: _id
33
- }
34
- }));
31
+ return event.productIds.map(productId => {
32
+ let productId$1 = ProductId$CatalogSpec.toString(productId);
33
+ return {
34
+ TAG: "PublishEvent",
35
+ _0: productId$1,
36
+ _1: {
37
+ TAG: "ItemOrderCancelled",
38
+ productId: productId$1,
39
+ orderId: _id
40
+ }
41
+ };
42
+ });
35
43
  case "Refunded" :
36
44
  return [];
37
45
  }
@@ -71,4 +79,4 @@ export {
71
79
  publishedEvents,
72
80
  acceptedCommands,
73
81
  }
74
- /* No side effect */
82
+ /* ProductId-CatalogSpec Not a pure module */
@@ -3,18 +3,22 @@
3
3
 
4
4
  @@reventless.spec
5
5
 
6
+ module Id = OrderId
7
+
6
8
  @schema
7
9
  type command =
8
- | Place({customerId: string, @ref("AvailableProducts") @noDcbTag productIds: array<string>})
10
+ // Both references are derived from the types: AvailableProducts is the one view
11
+ // here keyed by ProductId, and Customers the one keyed by CustomerId.
12
+ | Place({customerId: CustomerId.t, productIds: array<CatalogSpec.ProductId.t>})
9
13
  | Ship
10
14
  | Cancel
11
15
  | Refund({reason: string})
12
16
 
13
17
  @schema
14
18
  type event =
15
- | Placed({customerId: string, productIds: array<string>})
19
+ | Placed({customerId: CustomerId.t, productIds: array<CatalogSpec.ProductId.t>})
16
20
  | Shipped
17
- | Cancelled({productIds: array<string>})
21
+ | Cancelled({productIds: array<CatalogSpec.ProductId.t>})
18
22
  | Refunded({reason: string})
19
23
 
20
24
  @schema
@@ -1,13 +1,14 @@
1
1
  // Generated by ReScript, PLEASE EDIT WITH CARE
2
2
 
3
3
  import * as Sury from "sury";
4
- import * as Reference$Reventless from "@reventlessdev/reventless-spec/src/components/Reference.res.mjs";
4
+ import * as ProductId$CatalogSpec from "@reventlessdev/online-shop-aggregates-catalog-spec/src/ProductId.res.mjs";
5
+ import * as CustomerId$OrderingPlugin from "../../Customer/CustomerId.res.mjs";
5
6
 
6
7
  let commandSchema = Sury.union([
7
8
  Sury.$schema(s => ({
8
9
  TAG: "Place",
9
- customerId: s.m(Sury.string),
10
- productIds: s.m(Sury.array(Reference$Reventless.toWithoutDcbTag(undefined, "AvailableProducts")))
10
+ customerId: s.m(CustomerId$OrderingPlugin.schema),
11
+ productIds: s.m(Sury.array(ProductId$CatalogSpec.schema))
11
12
  })),
12
13
  Sury.literal("Ship"),
13
14
  Sury.literal("Cancel"),
@@ -20,13 +21,13 @@ let commandSchema = Sury.union([
20
21
  let eventSchema = Sury.union([
21
22
  Sury.$schema(s => ({
22
23
  TAG: "Placed",
23
- customerId: s.m(Sury.string),
24
- productIds: s.m(Sury.array(Sury.string))
24
+ customerId: s.m(CustomerId$OrderingPlugin.schema),
25
+ productIds: s.m(Sury.array(ProductId$CatalogSpec.schema))
25
26
  })),
26
27
  Sury.literal("Shipped"),
27
28
  Sury.$schema(s => ({
28
29
  TAG: "Cancelled",
29
- productIds: s.m(Sury.array(Sury.string))
30
+ productIds: s.m(Sury.array(ProductId$CatalogSpec.schema))
30
31
  })),
31
32
  Sury.$schema(s => ({
32
33
  TAG: "Refunded",
@@ -6,7 +6,7 @@
6
6
  @schema
7
7
  type state =
8
8
  | NotCreated
9
- | Placed({customerId: string, productIds: array<string>})
9
+ | Placed({customerId: CustomerId.t, productIds: array<CatalogSpec.ProductId.t>})
10
10
  | Shipped
11
11
  | Cancelled
12
12
  | Refunded
@@ -1,13 +1,15 @@
1
1
  // Generated by ReScript, PLEASE EDIT WITH CARE
2
2
 
3
3
  import * as Sury from "sury";
4
+ import * as ProductId$CatalogSpec from "@reventlessdev/online-shop-aggregates-catalog-spec/src/ProductId.res.mjs";
5
+ import * as CustomerId$OrderingPlugin from "../../Customer/CustomerId.res.mjs";
4
6
 
5
7
  let stateSchema = Sury.union([
6
8
  Sury.literal("NotCreated"),
7
9
  Sury.$schema(s => ({
8
10
  TAG: "Placed",
9
- customerId: s.m(Sury.string),
10
- productIds: s.m(Sury.array(Sury.string))
11
+ customerId: s.m(CustomerId$OrderingPlugin.schema),
12
+ productIds: s.m(Sury.array(ProductId$CatalogSpec.schema))
11
13
  })),
12
14
  Sury.literal("Shipped"),
13
15
  Sury.literal("Cancelled"),
@@ -1,12 +1,12 @@
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";
4
3
  import * as Order$OrderingPlugin from "./Order.res.mjs";
4
+ import * as OrderId$OrderingPlugin from "../OrderId.res.mjs";
5
5
  import * as EventMapping$Reventless from "@reventlessdev/reventless-spec/src/types/EventMapping.res.mjs";
6
6
 
7
7
  let M = EventMapping$Reventless.Mappings.Make({
8
8
  name: Order$OrderingPlugin.name,
9
- Id: Id$Reventless.$$String,
9
+ Id: OrderId$OrderingPlugin,
10
10
  commandSchema: Order$OrderingPlugin.commandSchema
11
11
  });
12
12
 
@@ -32,7 +32,7 @@ let AutoShipMapping = {
32
32
  let mappings = [{
33
33
  Source: {
34
34
  name: Order$OrderingPlugin.name,
35
- Id: Id$Reventless.$$String,
35
+ Id: OrderId$OrderingPlugin,
36
36
  eventSchema: Order$OrderingPlugin.eventSchema
37
37
  },
38
38
  map: map
@@ -0,0 +1,4 @@
1
+ // An order's id: the Order stream and the Orders rows are keyed by it.
2
+ include Reventless.Id.Make({
3
+ let key = "orderId"
4
+ })
@@ -0,0 +1,29 @@
1
+ // Generated by ReScript, PLEASE EDIT WITH CARE
2
+
3
+ import * as Id$Reventless from "@reventlessdev/reventless-spec/src/types/Id.res.mjs";
4
+
5
+ let include = Id$Reventless.Make({
6
+ key: "orderId"
7
+ });
8
+
9
+ let schema = include.schema;
10
+
11
+ let make = include.make;
12
+
13
+ let makeFromString = include.makeFromString;
14
+
15
+ let toString = include.toString;
16
+
17
+ let cmp = include.cmp;
18
+
19
+ let key = include.key;
20
+
21
+ export {
22
+ schema,
23
+ make,
24
+ makeFromString,
25
+ toString,
26
+ cmp,
27
+ key,
28
+ }
29
+ /* include Not a pure module */
@@ -3,6 +3,8 @@
3
3
 
4
4
  @@reventless.spec
5
5
 
6
+ module Id = OrderId
7
+
6
8
  @schema
7
9
  type lifecycle =
8
10
  | Placed
@@ -12,8 +14,8 @@ type lifecycle =
12
14
 
13
15
  @schema
14
16
  type state = {
15
- customerId: string,
16
- productIds: array<string>,
17
+ customerId: CustomerId.t,
18
+ productIds: array<CatalogSpec.ProductId.t>,
17
19
  // No annotation: the field name is the declaration. `@lifecycle` exists for
18
20
  // records whose lifecycle field is honestly called something else.
19
21
  lifecycle: lifecycle,
@@ -2,6 +2,8 @@
2
2
 
3
3
  import * as Sury from "sury";
4
4
  import * as ReadModel$Reventless from "@reventlessdev/reventless-spec/src/components/ReadModel.res.mjs";
5
+ import * as ProductId$CatalogSpec from "@reventlessdev/online-shop-aggregates-catalog-spec/src/ProductId.res.mjs";
6
+ import * as CustomerId$OrderingPlugin from "../../Customer/CustomerId.res.mjs";
5
7
 
6
8
  let lifecycleSchema = Sury.union([
7
9
  Sury.literal("Placed"),
@@ -11,8 +13,8 @@ let lifecycleSchema = Sury.union([
11
13
  ]);
12
14
 
13
15
  let stateSchema = Sury.$schema(s => ({
14
- customerId: s.m(Sury.string),
15
- productIds: s.m(Sury.array(Sury.string)),
16
+ customerId: s.m(CustomerId$OrderingPlugin.schema),
17
+ productIds: s.m(Sury.array(ProductId$CatalogSpec.schema)),
16
18
  lifecycle: s.m(lifecycleSchema)
17
19
  }));
18
20
 
@@ -1,12 +1,12 @@
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";
4
3
  import * as Order$OrderingPlugin from "../Aggregate/Order.res.mjs";
5
4
  import * as Orders$OrderingPlugin from "./Orders.res.mjs";
6
5
  import * as Projection$Reventless from "@reventlessdev/reventless-spec/src/types/Projection.res.mjs";
6
+ import * as OrderId$OrderingPlugin from "../OrderId.res.mjs";
7
7
 
8
8
  let M = Projection$Reventless.Mappings.Make({
9
- Id: Id$Reventless.$$String,
9
+ Id: OrderId$OrderingPlugin,
10
10
  name: Orders$OrderingPlugin.name,
11
11
  stateSchema: Orders$OrderingPlugin.stateSchema,
12
12
  subIdConfig: undefined
@@ -61,11 +61,11 @@ function project(param) {
61
61
  }
62
62
 
63
63
  let OrderMapping = Projection$Reventless.Mapping.Make({
64
- Id: Id$Reventless.$$String,
64
+ Id: OrderId$OrderingPlugin,
65
65
  name: Order$OrderingPlugin.name,
66
66
  eventSchema: Order$OrderingPlugin.eventSchema
67
67
  })({
68
- Id: Id$Reventless.$$String,
68
+ Id: OrderId$OrderingPlugin,
69
69
  name: Orders$OrderingPlugin.name,
70
70
  stateSchema: Orders$OrderingPlugin.stateSchema,
71
71
  subIdConfig: undefined
@@ -10,6 +10,9 @@ module Source = {
10
10
  let execute = async (orderId, _meta, event, _queryEngine) =>
11
11
  switch event {
12
12
  | Order.Placed({customerId}) =>
13
- await EmailService.sendOrderConfirmation(~email=customerId, ~orderId=orderId->Order.Id.toString)
13
+ await EmailService.sendOrderConfirmation(
14
+ ~email=customerId->CustomerId.toString,
15
+ ~orderId=orderId->Order.Id.toString,
16
+ )
14
17
  | _ => ()
15
18
  }
@@ -1,7 +1,8 @@
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";
4
3
  import * as Order$OrderingPlugin from "../Aggregate/Order.res.mjs";
4
+ import * as OrderId$OrderingPlugin from "../OrderId.res.mjs";
5
+ import * as CustomerId$OrderingPlugin from "../../Customer/CustomerId.res.mjs";
5
6
  import * as EmailService$OrderingPlugin from "../../Service/EmailService.res.mjs";
6
7
 
7
8
  let Source = {
@@ -14,7 +15,7 @@ async function execute(orderId, _meta, event, _queryEngine) {
14
15
  if (typeof event !== "object" || event.TAG !== "Placed") {
15
16
  return;
16
17
  } else {
17
- return await EmailService$OrderingPlugin.sendOrderConfirmation(event.customerId, Id$Reventless.$$String.toString(orderId));
18
+ return await EmailService$OrderingPlugin.sendOrderConfirmation(CustomerId$OrderingPlugin.toString(event.customerId), OrderId$OrderingPlugin.toString(orderId));
18
19
  }
19
20
  }
20
21
 
@@ -31,4 +32,4 @@ export {
31
32
  execute,
32
33
  moduleUrl,
33
34
  }
34
- /* Id-Reventless Not a pure module */
35
+ /* Order-OrderingPlugin Not a pure module */