@reventlessdev/online-shop-dcb-catalog 1.0.0-alpha.104
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 +868 -0
- package/LICENSE +202 -0
- package/__mocks__/emptyModule.js +1 -0
- package/lib/bs/.compiler.log +2 -0
- package/lib/bs/CatalogPlugin.cmi +0 -0
- package/lib/bs/CatalogPlugin.cmj +0 -0
- package/lib/bs/CatalogPlugin.cmt +0 -0
- package/lib/bs/CatalogPlugin.mlmap +46 -0
- package/lib/bs/build.ninja +0 -0
- package/lib/bs/compiler-info.json +8 -0
- package/lib/bs/src/Category/StateChangeSlice/AddCategory-CatalogPlugin.cmi +0 -0
- package/lib/bs/src/Category/StateChangeSlice/AddCategory-CatalogPlugin.cmj +0 -0
- package/lib/bs/src/Category/StateChangeSlice/AddCategory-CatalogPlugin.cmt +0 -0
- package/lib/bs/src/Category/StateChangeSlice/AddCategory.ast +0 -0
- package/lib/bs/src/Category/StateChangeSlice/AddCategory.res +17 -0
- package/lib/bs/src/Category/StateChangeSlice/AddCategory.res.mjs +48 -0
- package/lib/bs/src/Category/StateChangeSlice/AddCategory_Behavior-CatalogPlugin.cmi +0 -0
- package/lib/bs/src/Category/StateChangeSlice/AddCategory_Behavior-CatalogPlugin.cmj +0 -0
- package/lib/bs/src/Category/StateChangeSlice/AddCategory_Behavior-CatalogPlugin.cmt +0 -0
- package/lib/bs/src/Category/StateChangeSlice/AddCategory_Behavior.ast +0 -0
- package/lib/bs/src/Category/StateChangeSlice/AddCategory_Behavior.res +21 -0
- package/lib/bs/src/Category/StateChangeSlice/AddCategory_Behavior.res.mjs +52 -0
- package/lib/bs/src/Category/StateChangeSlice/ArchiveCategory-CatalogPlugin.cmi +0 -0
- package/lib/bs/src/Category/StateChangeSlice/ArchiveCategory-CatalogPlugin.cmj +0 -0
- package/lib/bs/src/Category/StateChangeSlice/ArchiveCategory-CatalogPlugin.cmt +0 -0
- package/lib/bs/src/Category/StateChangeSlice/ArchiveCategory.ast +0 -0
- package/lib/bs/src/Category/StateChangeSlice/ArchiveCategory.res +18 -0
- package/lib/bs/src/Category/StateChangeSlice/ArchiveCategory.res.mjs +49 -0
- package/lib/bs/src/Category/StateChangeSlice/ArchiveCategory_Behavior-CatalogPlugin.cmi +0 -0
- package/lib/bs/src/Category/StateChangeSlice/ArchiveCategory_Behavior-CatalogPlugin.cmj +0 -0
- package/lib/bs/src/Category/StateChangeSlice/ArchiveCategory_Behavior-CatalogPlugin.cmt +0 -0
- package/lib/bs/src/Category/StateChangeSlice/ArchiveCategory_Behavior.ast +0 -0
- package/lib/bs/src/Category/StateChangeSlice/ArchiveCategory_Behavior.res +23 -0
- package/lib/bs/src/Category/StateChangeSlice/ArchiveCategory_Behavior.res.mjs +58 -0
- package/lib/bs/src/Category/StateChangeSlice/RenameCategory-CatalogPlugin.cmi +0 -0
- package/lib/bs/src/Category/StateChangeSlice/RenameCategory-CatalogPlugin.cmj +0 -0
- package/lib/bs/src/Category/StateChangeSlice/RenameCategory-CatalogPlugin.cmt +0 -0
- package/lib/bs/src/Category/StateChangeSlice/RenameCategory.ast +0 -0
- package/lib/bs/src/Category/StateChangeSlice/RenameCategory.res +23 -0
- package/lib/bs/src/Category/StateChangeSlice/RenameCategory.res.mjs +58 -0
- package/lib/bs/src/Category/StateChangeSlice/RenameCategory_Behavior-CatalogPlugin.cmi +0 -0
- package/lib/bs/src/Category/StateChangeSlice/RenameCategory_Behavior-CatalogPlugin.cmj +0 -0
- package/lib/bs/src/Category/StateChangeSlice/RenameCategory_Behavior-CatalogPlugin.cmt +0 -0
- package/lib/bs/src/Category/StateChangeSlice/RenameCategory_Behavior.ast +0 -0
- package/lib/bs/src/Category/StateChangeSlice/RenameCategory_Behavior.res +26 -0
- package/lib/bs/src/Category/StateChangeSlice/RenameCategory_Behavior.res.mjs +74 -0
- package/lib/bs/src/Category/StateViewSlice/Categories-CatalogPlugin.cmi +0 -0
- package/lib/bs/src/Category/StateViewSlice/Categories-CatalogPlugin.cmj +0 -0
- package/lib/bs/src/Category/StateViewSlice/Categories-CatalogPlugin.cmt +0 -0
- package/lib/bs/src/Category/StateViewSlice/Categories.ast +0 -0
- package/lib/bs/src/Category/StateViewSlice/Categories.res +12 -0
- package/lib/bs/src/Category/StateViewSlice/Categories.res.mjs +55 -0
- package/lib/bs/src/Category/StateViewSlice/Categories_Projection-CatalogPlugin.cmi +0 -0
- package/lib/bs/src/Category/StateViewSlice/Categories_Projection-CatalogPlugin.cmj +0 -0
- package/lib/bs/src/Category/StateViewSlice/Categories_Projection-CatalogPlugin.cmt +0 -0
- package/lib/bs/src/Category/StateViewSlice/Categories_Projection.ast +0 -0
- package/lib/bs/src/Category/StateViewSlice/Categories_Projection.res +10 -0
- package/lib/bs/src/Category/StateViewSlice/Categories_Projection.res.mjs +50 -0
- package/lib/bs/src/CategoryActivity/ReadModel/CategoryActivity-CatalogPlugin.cmi +0 -0
- package/lib/bs/src/CategoryActivity/ReadModel/CategoryActivity-CatalogPlugin.cmj +0 -0
- package/lib/bs/src/CategoryActivity/ReadModel/CategoryActivity-CatalogPlugin.cmt +0 -0
- package/lib/bs/src/CategoryActivity/ReadModel/CategoryActivity.ast +0 -0
- package/lib/bs/src/CategoryActivity/ReadModel/CategoryActivity.res +25 -0
- package/lib/bs/src/CategoryActivity/ReadModel/CategoryActivity.res.mjs +49 -0
- package/lib/bs/src/CategoryActivity/ReadModel/CategoryActivity_Projections-CatalogPlugin.cmi +0 -0
- package/lib/bs/src/CategoryActivity/ReadModel/CategoryActivity_Projections-CatalogPlugin.cmj +0 -0
- package/lib/bs/src/CategoryActivity/ReadModel/CategoryActivity_Projections-CatalogPlugin.cmt +0 -0
- package/lib/bs/src/CategoryActivity/ReadModel/CategoryActivity_Projections.ast +0 -0
- package/lib/bs/src/CategoryActivity/ReadModel/CategoryActivity_Projections.res +92 -0
- package/lib/bs/src/CategoryActivity/ReadModel/CategoryActivity_Projections.res.mjs +171 -0
- package/lib/bs/src/Extension/Orders_Extension-CatalogPlugin.cmi +0 -0
- package/lib/bs/src/Extension/Orders_Extension-CatalogPlugin.cmj +0 -0
- package/lib/bs/src/Extension/Orders_Extension-CatalogPlugin.cmt +0 -0
- package/lib/bs/src/Extension/Orders_Extension.ast +0 -0
- package/lib/bs/src/Extension/Orders_Extension.res +23 -0
- package/lib/bs/src/Extension/Orders_Extension.res.mjs +42 -0
- package/lib/bs/src/ExtensionPoint/Products_ExtensionPointMapping-CatalogPlugin.cmi +0 -0
- package/lib/bs/src/ExtensionPoint/Products_ExtensionPointMapping-CatalogPlugin.cmj +0 -0
- package/lib/bs/src/ExtensionPoint/Products_ExtensionPointMapping-CatalogPlugin.cmt +0 -0
- package/lib/bs/src/ExtensionPoint/Products_ExtensionPointMapping.ast +0 -0
- package/lib/bs/src/ExtensionPoint/Products_ExtensionPointMapping.res +33 -0
- package/lib/bs/src/ExtensionPoint/Products_ExtensionPointMapping.res.mjs +82 -0
- package/lib/bs/src/Plugin-CatalogPlugin.cmi +0 -0
- package/lib/bs/src/Plugin-CatalogPlugin.cmj +0 -0
- package/lib/bs/src/Plugin-CatalogPlugin.cmt +0 -0
- package/lib/bs/src/Plugin.ast +0 -0
- package/lib/bs/src/Plugin.res +68 -0
- package/lib/bs/src/Plugin.res.mjs +350 -0
- package/lib/bs/src/Product/InboundTranslationSlice/ImportProduct-CatalogPlugin.cmi +0 -0
- package/lib/bs/src/Product/InboundTranslationSlice/ImportProduct-CatalogPlugin.cmj +0 -0
- package/lib/bs/src/Product/InboundTranslationSlice/ImportProduct-CatalogPlugin.cmt +0 -0
- package/lib/bs/src/Product/InboundTranslationSlice/ImportProduct.ast +0 -0
- package/lib/bs/src/Product/InboundTranslationSlice/ImportProduct.res +23 -0
- package/lib/bs/src/Product/InboundTranslationSlice/ImportProduct.res.mjs +43 -0
- package/lib/bs/src/Product/InboundTranslationSlice/ImportProduct_Translation-CatalogPlugin.cmi +0 -0
- package/lib/bs/src/Product/InboundTranslationSlice/ImportProduct_Translation-CatalogPlugin.cmj +0 -0
- package/lib/bs/src/Product/InboundTranslationSlice/ImportProduct_Translation-CatalogPlugin.cmt +0 -0
- package/lib/bs/src/Product/InboundTranslationSlice/ImportProduct_Translation.ast +0 -0
- package/lib/bs/src/Product/InboundTranslationSlice/ImportProduct_Translation.res +20 -0
- package/lib/bs/src/Product/InboundTranslationSlice/ImportProduct_Translation.res.mjs +46 -0
- package/lib/bs/src/Product/StateChangeSlice/AddProduct-CatalogPlugin.cmi +0 -0
- package/lib/bs/src/Product/StateChangeSlice/AddProduct-CatalogPlugin.cmj +0 -0
- package/lib/bs/src/Product/StateChangeSlice/AddProduct-CatalogPlugin.cmt +0 -0
- package/lib/bs/src/Product/StateChangeSlice/AddProduct.ast +0 -0
- package/lib/bs/src/Product/StateChangeSlice/AddProduct.res +28 -0
- package/lib/bs/src/Product/StateChangeSlice/AddProduct.res.mjs +49 -0
- package/lib/bs/src/Product/StateChangeSlice/AddProduct_Behavior-CatalogPlugin.cmi +0 -0
- package/lib/bs/src/Product/StateChangeSlice/AddProduct_Behavior-CatalogPlugin.cmj +0 -0
- package/lib/bs/src/Product/StateChangeSlice/AddProduct_Behavior-CatalogPlugin.cmt +0 -0
- package/lib/bs/src/Product/StateChangeSlice/AddProduct_Behavior.ast +0 -0
- package/lib/bs/src/Product/StateChangeSlice/AddProduct_Behavior.res +20 -0
- package/lib/bs/src/Product/StateChangeSlice/AddProduct_Behavior.res.mjs +45 -0
- package/lib/bs/src/Product/StateChangeSlice/ChangeProductDescription-CatalogPlugin.cmi +0 -0
- package/lib/bs/src/Product/StateChangeSlice/ChangeProductDescription-CatalogPlugin.cmj +0 -0
- package/lib/bs/src/Product/StateChangeSlice/ChangeProductDescription-CatalogPlugin.cmt +0 -0
- package/lib/bs/src/Product/StateChangeSlice/ChangeProductDescription.ast +0 -0
- package/lib/bs/src/Product/StateChangeSlice/ChangeProductDescription.res +22 -0
- package/lib/bs/src/Product/StateChangeSlice/ChangeProductDescription.res.mjs +54 -0
- package/lib/bs/src/Product/StateChangeSlice/ChangeProductDescription_Behavior-CatalogPlugin.cmi +0 -0
- package/lib/bs/src/Product/StateChangeSlice/ChangeProductDescription_Behavior-CatalogPlugin.cmj +0 -0
- package/lib/bs/src/Product/StateChangeSlice/ChangeProductDescription_Behavior-CatalogPlugin.cmt +0 -0
- package/lib/bs/src/Product/StateChangeSlice/ChangeProductDescription_Behavior.ast +0 -0
- package/lib/bs/src/Product/StateChangeSlice/ChangeProductDescription_Behavior.res +26 -0
- package/lib/bs/src/Product/StateChangeSlice/ChangeProductDescription_Behavior.res.mjs +59 -0
- package/lib/bs/src/Product/StateChangeSlice/ChangeProductName-CatalogPlugin.cmi +0 -0
- package/lib/bs/src/Product/StateChangeSlice/ChangeProductName-CatalogPlugin.cmj +0 -0
- package/lib/bs/src/Product/StateChangeSlice/ChangeProductName-CatalogPlugin.cmt +0 -0
- package/lib/bs/src/Product/StateChangeSlice/ChangeProductName.ast +0 -0
- package/lib/bs/src/Product/StateChangeSlice/ChangeProductName.res +17 -0
- package/lib/bs/src/Product/StateChangeSlice/ChangeProductName.res.mjs +54 -0
- package/lib/bs/src/Product/StateChangeSlice/ChangeProductName_Behavior-CatalogPlugin.cmi +0 -0
- package/lib/bs/src/Product/StateChangeSlice/ChangeProductName_Behavior-CatalogPlugin.cmj +0 -0
- package/lib/bs/src/Product/StateChangeSlice/ChangeProductName_Behavior-CatalogPlugin.cmt +0 -0
- package/lib/bs/src/Product/StateChangeSlice/ChangeProductName_Behavior.ast +0 -0
- package/lib/bs/src/Product/StateChangeSlice/ChangeProductName_Behavior.res +23 -0
- package/lib/bs/src/Product/StateChangeSlice/ChangeProductName_Behavior.res.mjs +59 -0
- package/lib/bs/src/Product/StateChangeSlice/ChangeProductPrice-CatalogPlugin.cmi +0 -0
- package/lib/bs/src/Product/StateChangeSlice/ChangeProductPrice-CatalogPlugin.cmj +0 -0
- package/lib/bs/src/Product/StateChangeSlice/ChangeProductPrice-CatalogPlugin.cmt +0 -0
- package/lib/bs/src/Product/StateChangeSlice/ChangeProductPrice.ast +0 -0
- package/lib/bs/src/Product/StateChangeSlice/ChangeProductPrice.res +17 -0
- package/lib/bs/src/Product/StateChangeSlice/ChangeProductPrice.res.mjs +54 -0
- package/lib/bs/src/Product/StateChangeSlice/ChangeProductPrice_Behavior-CatalogPlugin.cmi +0 -0
- package/lib/bs/src/Product/StateChangeSlice/ChangeProductPrice_Behavior-CatalogPlugin.cmj +0 -0
- package/lib/bs/src/Product/StateChangeSlice/ChangeProductPrice_Behavior-CatalogPlugin.cmt +0 -0
- package/lib/bs/src/Product/StateChangeSlice/ChangeProductPrice_Behavior.ast +0 -0
- package/lib/bs/src/Product/StateChangeSlice/ChangeProductPrice_Behavior.res +23 -0
- package/lib/bs/src/Product/StateChangeSlice/ChangeProductPrice_Behavior.res.mjs +59 -0
- package/lib/bs/src/Product/StateChangeSlice/RecordProductDemand-CatalogPlugin.cmi +0 -0
- package/lib/bs/src/Product/StateChangeSlice/RecordProductDemand-CatalogPlugin.cmj +0 -0
- package/lib/bs/src/Product/StateChangeSlice/RecordProductDemand-CatalogPlugin.cmt +0 -0
- package/lib/bs/src/Product/StateChangeSlice/RecordProductDemand.ast +0 -0
- package/lib/bs/src/Product/StateChangeSlice/RecordProductDemand.res +30 -0
- package/lib/bs/src/Product/StateChangeSlice/RecordProductDemand.res.mjs +71 -0
- package/lib/bs/src/Product/StateChangeSlice/RecordProductDemand_Behavior-CatalogPlugin.cmi +0 -0
- package/lib/bs/src/Product/StateChangeSlice/RecordProductDemand_Behavior-CatalogPlugin.cmj +0 -0
- package/lib/bs/src/Product/StateChangeSlice/RecordProductDemand_Behavior-CatalogPlugin.cmt +0 -0
- package/lib/bs/src/Product/StateChangeSlice/RecordProductDemand_Behavior.ast +0 -0
- package/lib/bs/src/Product/StateChangeSlice/RecordProductDemand_Behavior.res +30 -0
- package/lib/bs/src/Product/StateChangeSlice/RecordProductDemand_Behavior.res.mjs +68 -0
- package/lib/bs/src/Product/StateViewSlice/ProductDemand-CatalogPlugin.cmi +0 -0
- package/lib/bs/src/Product/StateViewSlice/ProductDemand-CatalogPlugin.cmj +0 -0
- package/lib/bs/src/Product/StateViewSlice/ProductDemand-CatalogPlugin.cmt +0 -0
- package/lib/bs/src/Product/StateViewSlice/ProductDemand.ast +0 -0
- package/lib/bs/src/Product/StateViewSlice/ProductDemand.res +12 -0
- package/lib/bs/src/Product/StateViewSlice/ProductDemand.res.mjs +54 -0
- package/lib/bs/src/Product/StateViewSlice/ProductDemand_Projection-CatalogPlugin.cmi +0 -0
- package/lib/bs/src/Product/StateViewSlice/ProductDemand_Projection-CatalogPlugin.cmj +0 -0
- package/lib/bs/src/Product/StateViewSlice/ProductDemand_Projection-CatalogPlugin.cmt +0 -0
- package/lib/bs/src/Product/StateViewSlice/ProductDemand_Projection.ast +0 -0
- package/lib/bs/src/Product/StateViewSlice/ProductDemand_Projection.res +11 -0
- package/lib/bs/src/Product/StateViewSlice/ProductDemand_Projection.res.mjs +56 -0
- package/lib/bs/src/Product/StateViewSlice/Products-CatalogPlugin.cmi +0 -0
- package/lib/bs/src/Product/StateViewSlice/Products-CatalogPlugin.cmj +0 -0
- package/lib/bs/src/Product/StateViewSlice/Products-CatalogPlugin.cmt +0 -0
- package/lib/bs/src/Product/StateViewSlice/Products.ast +0 -0
- package/lib/bs/src/Product/StateViewSlice/Products.res +13 -0
- package/lib/bs/src/Product/StateViewSlice/Products.res.mjs +64 -0
- package/lib/bs/src/Product/StateViewSlice/Products_Projection-CatalogPlugin.cmi +0 -0
- package/lib/bs/src/Product/StateViewSlice/Products_Projection-CatalogPlugin.cmj +0 -0
- package/lib/bs/src/Product/StateViewSlice/Products_Projection-CatalogPlugin.cmt +0 -0
- package/lib/bs/src/Product/StateViewSlice/Products_Projection.ast +0 -0
- package/lib/bs/src/Product/StateViewSlice/Products_Projection.res +13 -0
- package/lib/bs/src/Product/StateViewSlice/Products_Projection.res.mjs +66 -0
- package/lib/bs/src/Task/ImportProducts-CatalogPlugin.cmi +0 -0
- package/lib/bs/src/Task/ImportProducts-CatalogPlugin.cmj +0 -0
- package/lib/bs/src/Task/ImportProducts-CatalogPlugin.cmt +0 -0
- package/lib/bs/src/Task/ImportProducts.ast +0 -0
- package/lib/bs/src/Task/ImportProducts.res +57 -0
- package/lib/bs/src/Task/ImportProducts.res.mjs +61 -0
- package/lib/bs/tests/Category/StateChangeSlice/AddCategory_GWT-CatalogPlugin.cmi +0 -0
- package/lib/bs/tests/Category/StateChangeSlice/AddCategory_GWT-CatalogPlugin.cmj +0 -0
- package/lib/bs/tests/Category/StateChangeSlice/AddCategory_GWT-CatalogPlugin.cmt +0 -0
- package/lib/bs/tests/Category/StateChangeSlice/AddCategory_GWT.ast +0 -0
- package/lib/bs/tests/Category/StateChangeSlice/AddCategory_GWT.res +21 -0
- package/lib/bs/tests/Category/StateChangeSlice/AddCategory_GWT.res.mjs +88 -0
- package/lib/bs/tests/Category/StateChangeSlice/ArchiveCategory_GWT-CatalogPlugin.cmi +0 -0
- package/lib/bs/tests/Category/StateChangeSlice/ArchiveCategory_GWT-CatalogPlugin.cmj +0 -0
- package/lib/bs/tests/Category/StateChangeSlice/ArchiveCategory_GWT-CatalogPlugin.cmt +0 -0
- package/lib/bs/tests/Category/StateChangeSlice/ArchiveCategory_GWT.ast +0 -0
- package/lib/bs/tests/Category/StateChangeSlice/ArchiveCategory_GWT.res +21 -0
- package/lib/bs/tests/Category/StateChangeSlice/ArchiveCategory_GWT.res.mjs +84 -0
- package/lib/bs/tests/Category/StateChangeSlice/RenameCategory_GWT-CatalogPlugin.cmi +0 -0
- package/lib/bs/tests/Category/StateChangeSlice/RenameCategory_GWT-CatalogPlugin.cmj +0 -0
- package/lib/bs/tests/Category/StateChangeSlice/RenameCategory_GWT-CatalogPlugin.cmt +0 -0
- package/lib/bs/tests/Category/StateChangeSlice/RenameCategory_GWT.ast +0 -0
- package/lib/bs/tests/Category/StateChangeSlice/RenameCategory_GWT.res +27 -0
- package/lib/bs/tests/Category/StateChangeSlice/RenameCategory_GWT.res.mjs +102 -0
- package/lib/bs/tests/Category/StateViewSlice/Categories_GWT-CatalogPlugin.cmi +0 -0
- package/lib/bs/tests/Category/StateViewSlice/Categories_GWT-CatalogPlugin.cmj +0 -0
- package/lib/bs/tests/Category/StateViewSlice/Categories_GWT-CatalogPlugin.cmt +0 -0
- package/lib/bs/tests/Category/StateViewSlice/Categories_GWT.ast +0 -0
- package/lib/bs/tests/Category/StateViewSlice/Categories_GWT.res +21 -0
- package/lib/bs/tests/Category/StateViewSlice/Categories_GWT.res.mjs +103 -0
- package/lib/bs/tests/CategoryActivity/ReadModel/CategoryActivity_GWT-CatalogPlugin.cmi +0 -0
- package/lib/bs/tests/CategoryActivity/ReadModel/CategoryActivity_GWT-CatalogPlugin.cmj +0 -0
- package/lib/bs/tests/CategoryActivity/ReadModel/CategoryActivity_GWT-CatalogPlugin.cmt +0 -0
- package/lib/bs/tests/CategoryActivity/ReadModel/CategoryActivity_GWT.ast +0 -0
- package/lib/bs/tests/CategoryActivity/ReadModel/CategoryActivity_GWT.res +100 -0
- package/lib/bs/tests/CategoryActivity/ReadModel/CategoryActivity_GWT.res.mjs +80 -0
- package/lib/bs/tests/Extension/Orders_Extension_GWT-CatalogPlugin.cmi +0 -0
- package/lib/bs/tests/Extension/Orders_Extension_GWT-CatalogPlugin.cmj +0 -0
- package/lib/bs/tests/Extension/Orders_Extension_GWT-CatalogPlugin.cmt +0 -0
- package/lib/bs/tests/Extension/Orders_Extension_GWT.ast +0 -0
- package/lib/bs/tests/Extension/Orders_Extension_GWT.res +21 -0
- package/lib/bs/tests/Extension/Orders_Extension_GWT.res.mjs +107 -0
- package/lib/bs/tests/ExtensionPoint/Products_ExtensionPointMapping_GWT-CatalogPlugin.cmi +0 -0
- package/lib/bs/tests/ExtensionPoint/Products_ExtensionPointMapping_GWT-CatalogPlugin.cmj +0 -0
- package/lib/bs/tests/ExtensionPoint/Products_ExtensionPointMapping_GWT-CatalogPlugin.cmt +0 -0
- package/lib/bs/tests/ExtensionPoint/Products_ExtensionPointMapping_GWT.ast +0 -0
- package/lib/bs/tests/ExtensionPoint/Products_ExtensionPointMapping_GWT.res +21 -0
- package/lib/bs/tests/ExtensionPoint/Products_ExtensionPointMapping_GWT.res.mjs +107 -0
- package/lib/bs/tests/Product/InboundTranslationSlice/ImportProduct_GWT-CatalogPlugin.cmi +0 -0
- package/lib/bs/tests/Product/InboundTranslationSlice/ImportProduct_GWT-CatalogPlugin.cmj +0 -0
- package/lib/bs/tests/Product/InboundTranslationSlice/ImportProduct_GWT-CatalogPlugin.cmt +0 -0
- package/lib/bs/tests/Product/InboundTranslationSlice/ImportProduct_GWT.ast +0 -0
- package/lib/bs/tests/Product/InboundTranslationSlice/ImportProduct_GWT.res +42 -0
- package/lib/bs/tests/Product/InboundTranslationSlice/ImportProduct_GWT.res.mjs +89 -0
- package/lib/bs/tests/Product/StateChangeSlice/AddProduct_GWT-CatalogPlugin.cmi +0 -0
- package/lib/bs/tests/Product/StateChangeSlice/AddProduct_GWT-CatalogPlugin.cmj +0 -0
- package/lib/bs/tests/Product/StateChangeSlice/AddProduct_GWT-CatalogPlugin.cmt +0 -0
- package/lib/bs/tests/Product/StateChangeSlice/AddProduct_GWT.ast +0 -0
- package/lib/bs/tests/Product/StateChangeSlice/AddProduct_GWT.res +15 -0
- package/lib/bs/tests/Product/StateChangeSlice/AddProduct_GWT.res.mjs +86 -0
- package/lib/bs/tests/Product/StateChangeSlice/ChangeProductDescription_GWT-CatalogPlugin.cmi +0 -0
- package/lib/bs/tests/Product/StateChangeSlice/ChangeProductDescription_GWT-CatalogPlugin.cmj +0 -0
- package/lib/bs/tests/Product/StateChangeSlice/ChangeProductDescription_GWT-CatalogPlugin.cmt +0 -0
- package/lib/bs/tests/Product/StateChangeSlice/ChangeProductDescription_GWT.ast +0 -0
- package/lib/bs/tests/Product/StateChangeSlice/ChangeProductDescription_GWT.res +21 -0
- package/lib/bs/tests/Product/StateChangeSlice/ChangeProductDescription_GWT.res.mjs +91 -0
- package/lib/bs/tests/Product/StateChangeSlice/ChangeProductName_GWT-CatalogPlugin.cmi +0 -0
- package/lib/bs/tests/Product/StateChangeSlice/ChangeProductName_GWT-CatalogPlugin.cmj +0 -0
- package/lib/bs/tests/Product/StateChangeSlice/ChangeProductName_GWT-CatalogPlugin.cmt +0 -0
- package/lib/bs/tests/Product/StateChangeSlice/ChangeProductName_GWT.ast +0 -0
- package/lib/bs/tests/Product/StateChangeSlice/ChangeProductName_GWT.res +21 -0
- package/lib/bs/tests/Product/StateChangeSlice/ChangeProductName_GWT.res.mjs +91 -0
- package/lib/bs/tests/Product/StateChangeSlice/ChangeProductPrice_GWT-CatalogPlugin.cmi +0 -0
- package/lib/bs/tests/Product/StateChangeSlice/ChangeProductPrice_GWT-CatalogPlugin.cmj +0 -0
- package/lib/bs/tests/Product/StateChangeSlice/ChangeProductPrice_GWT-CatalogPlugin.cmt +0 -0
- package/lib/bs/tests/Product/StateChangeSlice/ChangeProductPrice_GWT.ast +0 -0
- package/lib/bs/tests/Product/StateChangeSlice/ChangeProductPrice_GWT.res +21 -0
- package/lib/bs/tests/Product/StateChangeSlice/ChangeProductPrice_GWT.res.mjs +91 -0
- package/lib/bs/tests/Product/StateChangeSlice/RecordProductDemand_GWT-CatalogPlugin.cmi +0 -0
- package/lib/bs/tests/Product/StateChangeSlice/RecordProductDemand_GWT-CatalogPlugin.cmj +0 -0
- package/lib/bs/tests/Product/StateChangeSlice/RecordProductDemand_GWT-CatalogPlugin.cmt +0 -0
- package/lib/bs/tests/Product/StateChangeSlice/RecordProductDemand_GWT.ast +0 -0
- package/lib/bs/tests/Product/StateChangeSlice/RecordProductDemand_GWT.res +39 -0
- package/lib/bs/tests/Product/StateChangeSlice/RecordProductDemand_GWT.res.mjs +120 -0
- package/lib/bs/tests/Product/StateViewSlice/ProductDemand_GWT-CatalogPlugin.cmi +0 -0
- package/lib/bs/tests/Product/StateViewSlice/ProductDemand_GWT-CatalogPlugin.cmj +0 -0
- package/lib/bs/tests/Product/StateViewSlice/ProductDemand_GWT-CatalogPlugin.cmt +0 -0
- package/lib/bs/tests/Product/StateViewSlice/ProductDemand_GWT.ast +0 -0
- package/lib/bs/tests/Product/StateViewSlice/ProductDemand_GWT.res +31 -0
- package/lib/bs/tests/Product/StateViewSlice/ProductDemand_GWT.res.mjs +124 -0
- package/lib/bs/tests/Product/StateViewSlice/Products_GWT-CatalogPlugin.cmi +0 -0
- package/lib/bs/tests/Product/StateViewSlice/Products_GWT-CatalogPlugin.cmj +0 -0
- package/lib/bs/tests/Product/StateViewSlice/Products_GWT-CatalogPlugin.cmt +0 -0
- package/lib/bs/tests/Product/StateViewSlice/Products_GWT.ast +0 -0
- package/lib/bs/tests/Product/StateViewSlice/Products_GWT.res +39 -0
- package/lib/bs/tests/Product/StateViewSlice/Products_GWT.res.mjs +129 -0
- package/lib/ocaml/.compiler.log +2 -0
- package/lib/ocaml/AddCategory-CatalogPlugin.cmi +0 -0
- package/lib/ocaml/AddCategory-CatalogPlugin.cmj +0 -0
- package/lib/ocaml/AddCategory-CatalogPlugin.cmt +0 -0
- package/lib/ocaml/AddCategory.ast +0 -0
- package/lib/ocaml/AddCategory.res +17 -0
- package/lib/ocaml/AddCategory_Behavior-CatalogPlugin.cmi +0 -0
- package/lib/ocaml/AddCategory_Behavior-CatalogPlugin.cmj +0 -0
- package/lib/ocaml/AddCategory_Behavior-CatalogPlugin.cmt +0 -0
- package/lib/ocaml/AddCategory_Behavior.ast +0 -0
- package/lib/ocaml/AddCategory_Behavior.res +21 -0
- package/lib/ocaml/AddCategory_GWT-CatalogPlugin.cmi +0 -0
- package/lib/ocaml/AddCategory_GWT-CatalogPlugin.cmj +0 -0
- package/lib/ocaml/AddCategory_GWT-CatalogPlugin.cmt +0 -0
- package/lib/ocaml/AddCategory_GWT.ast +0 -0
- package/lib/ocaml/AddCategory_GWT.res +21 -0
- package/lib/ocaml/AddProduct-CatalogPlugin.cmi +0 -0
- package/lib/ocaml/AddProduct-CatalogPlugin.cmj +0 -0
- package/lib/ocaml/AddProduct-CatalogPlugin.cmt +0 -0
- package/lib/ocaml/AddProduct.ast +0 -0
- package/lib/ocaml/AddProduct.res +28 -0
- package/lib/ocaml/AddProduct_Behavior-CatalogPlugin.cmi +0 -0
- package/lib/ocaml/AddProduct_Behavior-CatalogPlugin.cmj +0 -0
- package/lib/ocaml/AddProduct_Behavior-CatalogPlugin.cmt +0 -0
- package/lib/ocaml/AddProduct_Behavior.ast +0 -0
- package/lib/ocaml/AddProduct_Behavior.res +20 -0
- package/lib/ocaml/AddProduct_GWT-CatalogPlugin.cmi +0 -0
- package/lib/ocaml/AddProduct_GWT-CatalogPlugin.cmj +0 -0
- package/lib/ocaml/AddProduct_GWT-CatalogPlugin.cmt +0 -0
- package/lib/ocaml/AddProduct_GWT.ast +0 -0
- package/lib/ocaml/AddProduct_GWT.res +15 -0
- package/lib/ocaml/ArchiveCategory-CatalogPlugin.cmi +0 -0
- package/lib/ocaml/ArchiveCategory-CatalogPlugin.cmj +0 -0
- package/lib/ocaml/ArchiveCategory-CatalogPlugin.cmt +0 -0
- package/lib/ocaml/ArchiveCategory.ast +0 -0
- package/lib/ocaml/ArchiveCategory.res +18 -0
- package/lib/ocaml/ArchiveCategory_Behavior-CatalogPlugin.cmi +0 -0
- package/lib/ocaml/ArchiveCategory_Behavior-CatalogPlugin.cmj +0 -0
- package/lib/ocaml/ArchiveCategory_Behavior-CatalogPlugin.cmt +0 -0
- package/lib/ocaml/ArchiveCategory_Behavior.ast +0 -0
- package/lib/ocaml/ArchiveCategory_Behavior.res +23 -0
- package/lib/ocaml/ArchiveCategory_GWT-CatalogPlugin.cmi +0 -0
- package/lib/ocaml/ArchiveCategory_GWT-CatalogPlugin.cmj +0 -0
- package/lib/ocaml/ArchiveCategory_GWT-CatalogPlugin.cmt +0 -0
- package/lib/ocaml/ArchiveCategory_GWT.ast +0 -0
- package/lib/ocaml/ArchiveCategory_GWT.res +21 -0
- package/lib/ocaml/CatalogPlugin.cmi +0 -0
- package/lib/ocaml/CatalogPlugin.cmj +0 -0
- package/lib/ocaml/CatalogPlugin.cmt +0 -0
- package/lib/ocaml/CatalogPlugin.mlmap +46 -0
- package/lib/ocaml/Categories-CatalogPlugin.cmi +0 -0
- package/lib/ocaml/Categories-CatalogPlugin.cmj +0 -0
- package/lib/ocaml/Categories-CatalogPlugin.cmt +0 -0
- package/lib/ocaml/Categories.ast +0 -0
- package/lib/ocaml/Categories.res +12 -0
- package/lib/ocaml/Categories_GWT-CatalogPlugin.cmi +0 -0
- package/lib/ocaml/Categories_GWT-CatalogPlugin.cmj +0 -0
- package/lib/ocaml/Categories_GWT-CatalogPlugin.cmt +0 -0
- package/lib/ocaml/Categories_GWT.ast +0 -0
- package/lib/ocaml/Categories_GWT.res +21 -0
- package/lib/ocaml/Categories_Projection-CatalogPlugin.cmi +0 -0
- package/lib/ocaml/Categories_Projection-CatalogPlugin.cmj +0 -0
- package/lib/ocaml/Categories_Projection-CatalogPlugin.cmt +0 -0
- package/lib/ocaml/Categories_Projection.ast +0 -0
- package/lib/ocaml/Categories_Projection.res +10 -0
- package/lib/ocaml/CategoryActivity-CatalogPlugin.cmi +0 -0
- package/lib/ocaml/CategoryActivity-CatalogPlugin.cmj +0 -0
- package/lib/ocaml/CategoryActivity-CatalogPlugin.cmt +0 -0
- package/lib/ocaml/CategoryActivity.ast +0 -0
- package/lib/ocaml/CategoryActivity.res +25 -0
- package/lib/ocaml/CategoryActivity_GWT-CatalogPlugin.cmi +0 -0
- package/lib/ocaml/CategoryActivity_GWT-CatalogPlugin.cmj +0 -0
- package/lib/ocaml/CategoryActivity_GWT-CatalogPlugin.cmt +0 -0
- package/lib/ocaml/CategoryActivity_GWT.ast +0 -0
- package/lib/ocaml/CategoryActivity_GWT.res +100 -0
- package/lib/ocaml/CategoryActivity_Projections-CatalogPlugin.cmi +0 -0
- package/lib/ocaml/CategoryActivity_Projections-CatalogPlugin.cmj +0 -0
- package/lib/ocaml/CategoryActivity_Projections-CatalogPlugin.cmt +0 -0
- package/lib/ocaml/CategoryActivity_Projections.ast +0 -0
- package/lib/ocaml/CategoryActivity_Projections.res +92 -0
- package/lib/ocaml/ChangeProductDescription-CatalogPlugin.cmi +0 -0
- package/lib/ocaml/ChangeProductDescription-CatalogPlugin.cmj +0 -0
- package/lib/ocaml/ChangeProductDescription-CatalogPlugin.cmt +0 -0
- package/lib/ocaml/ChangeProductDescription.ast +0 -0
- package/lib/ocaml/ChangeProductDescription.res +22 -0
- package/lib/ocaml/ChangeProductDescription_Behavior-CatalogPlugin.cmi +0 -0
- package/lib/ocaml/ChangeProductDescription_Behavior-CatalogPlugin.cmj +0 -0
- package/lib/ocaml/ChangeProductDescription_Behavior-CatalogPlugin.cmt +0 -0
- package/lib/ocaml/ChangeProductDescription_Behavior.ast +0 -0
- package/lib/ocaml/ChangeProductDescription_Behavior.res +26 -0
- package/lib/ocaml/ChangeProductDescription_GWT-CatalogPlugin.cmi +0 -0
- package/lib/ocaml/ChangeProductDescription_GWT-CatalogPlugin.cmj +0 -0
- package/lib/ocaml/ChangeProductDescription_GWT-CatalogPlugin.cmt +0 -0
- package/lib/ocaml/ChangeProductDescription_GWT.ast +0 -0
- package/lib/ocaml/ChangeProductDescription_GWT.res +21 -0
- package/lib/ocaml/ChangeProductName-CatalogPlugin.cmi +0 -0
- package/lib/ocaml/ChangeProductName-CatalogPlugin.cmj +0 -0
- package/lib/ocaml/ChangeProductName-CatalogPlugin.cmt +0 -0
- package/lib/ocaml/ChangeProductName.ast +0 -0
- package/lib/ocaml/ChangeProductName.res +17 -0
- package/lib/ocaml/ChangeProductName_Behavior-CatalogPlugin.cmi +0 -0
- package/lib/ocaml/ChangeProductName_Behavior-CatalogPlugin.cmj +0 -0
- package/lib/ocaml/ChangeProductName_Behavior-CatalogPlugin.cmt +0 -0
- package/lib/ocaml/ChangeProductName_Behavior.ast +0 -0
- package/lib/ocaml/ChangeProductName_Behavior.res +23 -0
- package/lib/ocaml/ChangeProductName_GWT-CatalogPlugin.cmi +0 -0
- package/lib/ocaml/ChangeProductName_GWT-CatalogPlugin.cmj +0 -0
- package/lib/ocaml/ChangeProductName_GWT-CatalogPlugin.cmt +0 -0
- package/lib/ocaml/ChangeProductName_GWT.ast +0 -0
- package/lib/ocaml/ChangeProductName_GWT.res +21 -0
- package/lib/ocaml/ChangeProductPrice-CatalogPlugin.cmi +0 -0
- package/lib/ocaml/ChangeProductPrice-CatalogPlugin.cmj +0 -0
- package/lib/ocaml/ChangeProductPrice-CatalogPlugin.cmt +0 -0
- package/lib/ocaml/ChangeProductPrice.ast +0 -0
- package/lib/ocaml/ChangeProductPrice.res +17 -0
- package/lib/ocaml/ChangeProductPrice_Behavior-CatalogPlugin.cmi +0 -0
- package/lib/ocaml/ChangeProductPrice_Behavior-CatalogPlugin.cmj +0 -0
- package/lib/ocaml/ChangeProductPrice_Behavior-CatalogPlugin.cmt +0 -0
- package/lib/ocaml/ChangeProductPrice_Behavior.ast +0 -0
- package/lib/ocaml/ChangeProductPrice_Behavior.res +23 -0
- package/lib/ocaml/ChangeProductPrice_GWT-CatalogPlugin.cmi +0 -0
- package/lib/ocaml/ChangeProductPrice_GWT-CatalogPlugin.cmj +0 -0
- package/lib/ocaml/ChangeProductPrice_GWT-CatalogPlugin.cmt +0 -0
- package/lib/ocaml/ChangeProductPrice_GWT.ast +0 -0
- package/lib/ocaml/ChangeProductPrice_GWT.res +21 -0
- package/lib/ocaml/ImportProduct-CatalogPlugin.cmi +0 -0
- package/lib/ocaml/ImportProduct-CatalogPlugin.cmj +0 -0
- package/lib/ocaml/ImportProduct-CatalogPlugin.cmt +0 -0
- package/lib/ocaml/ImportProduct.ast +0 -0
- package/lib/ocaml/ImportProduct.res +23 -0
- package/lib/ocaml/ImportProduct_GWT-CatalogPlugin.cmi +0 -0
- package/lib/ocaml/ImportProduct_GWT-CatalogPlugin.cmj +0 -0
- package/lib/ocaml/ImportProduct_GWT-CatalogPlugin.cmt +0 -0
- package/lib/ocaml/ImportProduct_GWT.ast +0 -0
- package/lib/ocaml/ImportProduct_GWT.res +42 -0
- package/lib/ocaml/ImportProduct_Translation-CatalogPlugin.cmi +0 -0
- package/lib/ocaml/ImportProduct_Translation-CatalogPlugin.cmj +0 -0
- package/lib/ocaml/ImportProduct_Translation-CatalogPlugin.cmt +0 -0
- package/lib/ocaml/ImportProduct_Translation.ast +0 -0
- package/lib/ocaml/ImportProduct_Translation.res +20 -0
- package/lib/ocaml/ImportProducts-CatalogPlugin.cmi +0 -0
- package/lib/ocaml/ImportProducts-CatalogPlugin.cmj +0 -0
- package/lib/ocaml/ImportProducts-CatalogPlugin.cmt +0 -0
- package/lib/ocaml/ImportProducts.ast +0 -0
- package/lib/ocaml/ImportProducts.res +57 -0
- package/lib/ocaml/Orders_Extension-CatalogPlugin.cmi +0 -0
- package/lib/ocaml/Orders_Extension-CatalogPlugin.cmj +0 -0
- package/lib/ocaml/Orders_Extension-CatalogPlugin.cmt +0 -0
- package/lib/ocaml/Orders_Extension.ast +0 -0
- package/lib/ocaml/Orders_Extension.res +23 -0
- package/lib/ocaml/Orders_Extension_GWT-CatalogPlugin.cmi +0 -0
- package/lib/ocaml/Orders_Extension_GWT-CatalogPlugin.cmj +0 -0
- package/lib/ocaml/Orders_Extension_GWT-CatalogPlugin.cmt +0 -0
- package/lib/ocaml/Orders_Extension_GWT.ast +0 -0
- package/lib/ocaml/Orders_Extension_GWT.res +21 -0
- package/lib/ocaml/Plugin-CatalogPlugin.cmi +0 -0
- package/lib/ocaml/Plugin-CatalogPlugin.cmj +0 -0
- package/lib/ocaml/Plugin-CatalogPlugin.cmt +0 -0
- package/lib/ocaml/Plugin.ast +0 -0
- package/lib/ocaml/Plugin.res +68 -0
- package/lib/ocaml/ProductDemand-CatalogPlugin.cmi +0 -0
- package/lib/ocaml/ProductDemand-CatalogPlugin.cmj +0 -0
- package/lib/ocaml/ProductDemand-CatalogPlugin.cmt +0 -0
- package/lib/ocaml/ProductDemand.ast +0 -0
- package/lib/ocaml/ProductDemand.res +12 -0
- package/lib/ocaml/ProductDemand_GWT-CatalogPlugin.cmi +0 -0
- package/lib/ocaml/ProductDemand_GWT-CatalogPlugin.cmj +0 -0
- package/lib/ocaml/ProductDemand_GWT-CatalogPlugin.cmt +0 -0
- package/lib/ocaml/ProductDemand_GWT.ast +0 -0
- package/lib/ocaml/ProductDemand_GWT.res +31 -0
- package/lib/ocaml/ProductDemand_Projection-CatalogPlugin.cmi +0 -0
- package/lib/ocaml/ProductDemand_Projection-CatalogPlugin.cmj +0 -0
- package/lib/ocaml/ProductDemand_Projection-CatalogPlugin.cmt +0 -0
- package/lib/ocaml/ProductDemand_Projection.ast +0 -0
- package/lib/ocaml/ProductDemand_Projection.res +11 -0
- package/lib/ocaml/Products-CatalogPlugin.cmi +0 -0
- package/lib/ocaml/Products-CatalogPlugin.cmj +0 -0
- package/lib/ocaml/Products-CatalogPlugin.cmt +0 -0
- package/lib/ocaml/Products.ast +0 -0
- package/lib/ocaml/Products.res +13 -0
- package/lib/ocaml/Products_ExtensionPointMapping-CatalogPlugin.cmi +0 -0
- package/lib/ocaml/Products_ExtensionPointMapping-CatalogPlugin.cmj +0 -0
- package/lib/ocaml/Products_ExtensionPointMapping-CatalogPlugin.cmt +0 -0
- package/lib/ocaml/Products_ExtensionPointMapping.ast +0 -0
- package/lib/ocaml/Products_ExtensionPointMapping.res +33 -0
- package/lib/ocaml/Products_ExtensionPointMapping_GWT-CatalogPlugin.cmi +0 -0
- package/lib/ocaml/Products_ExtensionPointMapping_GWT-CatalogPlugin.cmj +0 -0
- package/lib/ocaml/Products_ExtensionPointMapping_GWT-CatalogPlugin.cmt +0 -0
- package/lib/ocaml/Products_ExtensionPointMapping_GWT.ast +0 -0
- package/lib/ocaml/Products_ExtensionPointMapping_GWT.res +21 -0
- package/lib/ocaml/Products_GWT-CatalogPlugin.cmi +0 -0
- package/lib/ocaml/Products_GWT-CatalogPlugin.cmj +0 -0
- package/lib/ocaml/Products_GWT-CatalogPlugin.cmt +0 -0
- package/lib/ocaml/Products_GWT.ast +0 -0
- package/lib/ocaml/Products_GWT.res +39 -0
- package/lib/ocaml/Products_Projection-CatalogPlugin.cmi +0 -0
- package/lib/ocaml/Products_Projection-CatalogPlugin.cmj +0 -0
- package/lib/ocaml/Products_Projection-CatalogPlugin.cmt +0 -0
- package/lib/ocaml/Products_Projection.ast +0 -0
- package/lib/ocaml/Products_Projection.res +13 -0
- package/lib/ocaml/RecordProductDemand-CatalogPlugin.cmi +0 -0
- package/lib/ocaml/RecordProductDemand-CatalogPlugin.cmj +0 -0
- package/lib/ocaml/RecordProductDemand-CatalogPlugin.cmt +0 -0
- package/lib/ocaml/RecordProductDemand.ast +0 -0
- package/lib/ocaml/RecordProductDemand.res +30 -0
- package/lib/ocaml/RecordProductDemand_Behavior-CatalogPlugin.cmi +0 -0
- package/lib/ocaml/RecordProductDemand_Behavior-CatalogPlugin.cmj +0 -0
- package/lib/ocaml/RecordProductDemand_Behavior-CatalogPlugin.cmt +0 -0
- package/lib/ocaml/RecordProductDemand_Behavior.ast +0 -0
- package/lib/ocaml/RecordProductDemand_Behavior.res +30 -0
- package/lib/ocaml/RecordProductDemand_GWT-CatalogPlugin.cmi +0 -0
- package/lib/ocaml/RecordProductDemand_GWT-CatalogPlugin.cmj +0 -0
- package/lib/ocaml/RecordProductDemand_GWT-CatalogPlugin.cmt +0 -0
- package/lib/ocaml/RecordProductDemand_GWT.ast +0 -0
- package/lib/ocaml/RecordProductDemand_GWT.res +39 -0
- package/lib/ocaml/RenameCategory-CatalogPlugin.cmi +0 -0
- package/lib/ocaml/RenameCategory-CatalogPlugin.cmj +0 -0
- package/lib/ocaml/RenameCategory-CatalogPlugin.cmt +0 -0
- package/lib/ocaml/RenameCategory.ast +0 -0
- package/lib/ocaml/RenameCategory.res +23 -0
- package/lib/ocaml/RenameCategory_Behavior-CatalogPlugin.cmi +0 -0
- package/lib/ocaml/RenameCategory_Behavior-CatalogPlugin.cmj +0 -0
- package/lib/ocaml/RenameCategory_Behavior-CatalogPlugin.cmt +0 -0
- package/lib/ocaml/RenameCategory_Behavior.ast +0 -0
- package/lib/ocaml/RenameCategory_Behavior.res +26 -0
- package/lib/ocaml/RenameCategory_GWT-CatalogPlugin.cmi +0 -0
- package/lib/ocaml/RenameCategory_GWT-CatalogPlugin.cmj +0 -0
- package/lib/ocaml/RenameCategory_GWT-CatalogPlugin.cmt +0 -0
- package/lib/ocaml/RenameCategory_GWT.ast +0 -0
- package/lib/ocaml/RenameCategory_GWT.res +27 -0
- package/package.json +52 -0
- package/rescript.json +37 -0
- package/src/Category/StateChangeSlice/AddCategory.res +17 -0
- package/src/Category/StateChangeSlice/AddCategory.res.mjs +48 -0
- package/src/Category/StateChangeSlice/AddCategory_Behavior.res +21 -0
- package/src/Category/StateChangeSlice/AddCategory_Behavior.res.mjs +52 -0
- package/src/Category/StateChangeSlice/ArchiveCategory.res +18 -0
- package/src/Category/StateChangeSlice/ArchiveCategory.res.mjs +49 -0
- package/src/Category/StateChangeSlice/ArchiveCategory_Behavior.res +23 -0
- package/src/Category/StateChangeSlice/ArchiveCategory_Behavior.res.mjs +58 -0
- package/src/Category/StateChangeSlice/RenameCategory.res +23 -0
- package/src/Category/StateChangeSlice/RenameCategory.res.mjs +58 -0
- package/src/Category/StateChangeSlice/RenameCategory_Behavior.res +26 -0
- package/src/Category/StateChangeSlice/RenameCategory_Behavior.res.mjs +74 -0
- package/src/Category/StateViewSlice/Categories.res +12 -0
- package/src/Category/StateViewSlice/Categories.res.mjs +55 -0
- package/src/Category/StateViewSlice/Categories_Projection.res +10 -0
- package/src/Category/StateViewSlice/Categories_Projection.res.mjs +50 -0
- package/src/CategoryActivity/ReadModel/CategoryActivity.res +25 -0
- package/src/CategoryActivity/ReadModel/CategoryActivity.res.mjs +49 -0
- package/src/CategoryActivity/ReadModel/CategoryActivity_Projections.res +92 -0
- package/src/CategoryActivity/ReadModel/CategoryActivity_Projections.res.mjs +171 -0
- package/src/Extension/Orders_Extension.res +23 -0
- package/src/Extension/Orders_Extension.res.mjs +42 -0
- package/src/ExtensionPoint/Products_ExtensionPointMapping.res +33 -0
- package/src/ExtensionPoint/Products_ExtensionPointMapping.res.mjs +82 -0
- package/src/Plugin.res +68 -0
- package/src/Plugin.res.mjs +350 -0
- package/src/Product/InboundTranslationSlice/ImportProduct.res +23 -0
- package/src/Product/InboundTranslationSlice/ImportProduct.res.mjs +43 -0
- package/src/Product/InboundTranslationSlice/ImportProduct_Translation.res +20 -0
- package/src/Product/InboundTranslationSlice/ImportProduct_Translation.res.mjs +46 -0
- package/src/Product/StateChangeSlice/AddProduct.res +28 -0
- package/src/Product/StateChangeSlice/AddProduct.res.mjs +49 -0
- package/src/Product/StateChangeSlice/AddProduct_Behavior.res +20 -0
- package/src/Product/StateChangeSlice/AddProduct_Behavior.res.mjs +45 -0
- package/src/Product/StateChangeSlice/ChangeProductDescription.res +22 -0
- package/src/Product/StateChangeSlice/ChangeProductDescription.res.mjs +54 -0
- package/src/Product/StateChangeSlice/ChangeProductDescription_Behavior.res +26 -0
- package/src/Product/StateChangeSlice/ChangeProductDescription_Behavior.res.mjs +59 -0
- package/src/Product/StateChangeSlice/ChangeProductName.res +17 -0
- package/src/Product/StateChangeSlice/ChangeProductName.res.mjs +54 -0
- package/src/Product/StateChangeSlice/ChangeProductName_Behavior.res +23 -0
- package/src/Product/StateChangeSlice/ChangeProductName_Behavior.res.mjs +59 -0
- package/src/Product/StateChangeSlice/ChangeProductPrice.res +17 -0
- package/src/Product/StateChangeSlice/ChangeProductPrice.res.mjs +54 -0
- package/src/Product/StateChangeSlice/ChangeProductPrice_Behavior.res +23 -0
- package/src/Product/StateChangeSlice/ChangeProductPrice_Behavior.res.mjs +59 -0
- package/src/Product/StateChangeSlice/RecordProductDemand.res +30 -0
- package/src/Product/StateChangeSlice/RecordProductDemand.res.mjs +71 -0
- package/src/Product/StateChangeSlice/RecordProductDemand_Behavior.res +30 -0
- package/src/Product/StateChangeSlice/RecordProductDemand_Behavior.res.mjs +68 -0
- package/src/Product/StateViewSlice/ProductDemand.res +12 -0
- package/src/Product/StateViewSlice/ProductDemand.res.mjs +54 -0
- package/src/Product/StateViewSlice/ProductDemand_Projection.res +11 -0
- package/src/Product/StateViewSlice/ProductDemand_Projection.res.mjs +56 -0
- package/src/Product/StateViewSlice/Products.res +13 -0
- package/src/Product/StateViewSlice/Products.res.mjs +64 -0
- package/src/Product/StateViewSlice/Products_Projection.res +13 -0
- package/src/Product/StateViewSlice/Products_Projection.res.mjs +66 -0
- package/src/Task/ImportProducts.res +57 -0
- package/src/Task/ImportProducts.res.mjs +61 -0
- package/src/plugin.json +1 -0
- package/tests/Category/StateChangeSlice/AddCategory_GWT.res +21 -0
- package/tests/Category/StateChangeSlice/AddCategory_GWT.res.mjs +88 -0
- package/tests/Category/StateChangeSlice/ArchiveCategory_GWT.res +21 -0
- package/tests/Category/StateChangeSlice/ArchiveCategory_GWT.res.mjs +84 -0
- package/tests/Category/StateChangeSlice/RenameCategory_GWT.res +27 -0
- package/tests/Category/StateChangeSlice/RenameCategory_GWT.res.mjs +102 -0
- package/tests/Category/StateViewSlice/Categories_GWT.res +21 -0
- package/tests/Category/StateViewSlice/Categories_GWT.res.mjs +103 -0
- package/tests/CategoryActivity/ReadModel/CategoryActivity_GWT.res +100 -0
- package/tests/CategoryActivity/ReadModel/CategoryActivity_GWT.res.mjs +80 -0
- package/tests/Extension/Orders_Extension_GWT.res +21 -0
- package/tests/Extension/Orders_Extension_GWT.res.mjs +107 -0
- package/tests/ExtensionPoint/Products_ExtensionPointMapping_GWT.res +21 -0
- package/tests/ExtensionPoint/Products_ExtensionPointMapping_GWT.res.mjs +107 -0
- package/tests/Product/InboundTranslationSlice/ImportProduct_GWT.res +42 -0
- package/tests/Product/InboundTranslationSlice/ImportProduct_GWT.res.mjs +89 -0
- package/tests/Product/StateChangeSlice/AddProduct_GWT.res +15 -0
- package/tests/Product/StateChangeSlice/AddProduct_GWT.res.mjs +86 -0
- package/tests/Product/StateChangeSlice/ChangeProductDescription_GWT.res +21 -0
- package/tests/Product/StateChangeSlice/ChangeProductDescription_GWT.res.mjs +91 -0
- package/tests/Product/StateChangeSlice/ChangeProductName_GWT.res +21 -0
- package/tests/Product/StateChangeSlice/ChangeProductName_GWT.res.mjs +91 -0
- package/tests/Product/StateChangeSlice/ChangeProductPrice_GWT.res +21 -0
- package/tests/Product/StateChangeSlice/ChangeProductPrice_GWT.res.mjs +91 -0
- package/tests/Product/StateChangeSlice/RecordProductDemand_GWT.res +39 -0
- package/tests/Product/StateChangeSlice/RecordProductDemand_GWT.res.mjs +120 -0
- package/tests/Product/StateViewSlice/ProductDemand_GWT.res +31 -0
- package/tests/Product/StateViewSlice/ProductDemand_GWT.res.mjs +124 -0
- package/tests/Product/StateViewSlice/Products_GWT.res +39 -0
- package/tests/Product/StateViewSlice/Products_GWT.res.mjs +129 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// ArchiveCategory StateChangeSlice.
|
|
2
|
+
// Requires category to exist; idempotent if already archived.
|
|
3
|
+
@@reventless.spec
|
|
4
|
+
|
|
5
|
+
@schema
|
|
6
|
+
type consumedEvent =
|
|
7
|
+
| CategoryAdded
|
|
8
|
+
| CategoryArchived
|
|
9
|
+
|
|
10
|
+
@schema
|
|
11
|
+
type command =
|
|
12
|
+
| @authorize(AllowGroups(["Admin"])) ArchiveCategory({categoryId: string})
|
|
13
|
+
|
|
14
|
+
@schema
|
|
15
|
+
type error = CategoryNotFound
|
|
16
|
+
|
|
17
|
+
@schema
|
|
18
|
+
type event = CategoryArchived({categoryId: string})
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
@@reventless.behavior
|
|
2
|
+
|
|
3
|
+
type state = {exists: bool, archived: bool}
|
|
4
|
+
|
|
5
|
+
let initialState = {exists: false, archived: false}
|
|
6
|
+
|
|
7
|
+
let evolve = (state, event) =>
|
|
8
|
+
switch event {
|
|
9
|
+
| CategoryAdded => {exists: true, archived: false}
|
|
10
|
+
| CategoryArchived => {...state, archived: true}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
let decide = (state, command) =>
|
|
14
|
+
switch command {
|
|
15
|
+
| ArchiveCategory({categoryId: theId}) =>
|
|
16
|
+
if !state.exists {
|
|
17
|
+
Error(CategoryNotFound)
|
|
18
|
+
} else if state.archived {
|
|
19
|
+
Ok([]) // idempotent — already archived
|
|
20
|
+
} else {
|
|
21
|
+
Ok([CategoryArchived({categoryId: theId})])
|
|
22
|
+
}
|
|
23
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
@@reventless.gwt
|
|
2
|
+
|
|
3
|
+
describe("ArchiveCategory StateChangeSlice", () => {
|
|
4
|
+
test("non-existent category returns CategoryNotFound", () =>
|
|
5
|
+
givenEvents([])
|
|
6
|
+
->whenCmd(ArchiveCategory({categoryId: "c1"}))
|
|
7
|
+
->thenError(CategoryNotFound)
|
|
8
|
+
)
|
|
9
|
+
|
|
10
|
+
test("existing active category produces CategoryArchived", () =>
|
|
11
|
+
givenEvents([CategoryAdded])
|
|
12
|
+
->whenCmd(ArchiveCategory({categoryId: "c1"}))
|
|
13
|
+
->thenEvent(CategoryArchived({categoryId: "c1"}))
|
|
14
|
+
)
|
|
15
|
+
|
|
16
|
+
test("already archived category produces no events (idempotent)", () =>
|
|
17
|
+
givenEvents([CategoryAdded, CategoryArchived])
|
|
18
|
+
->whenCmd(ArchiveCategory({categoryId: "c1"}))
|
|
19
|
+
->thenNoEvent
|
|
20
|
+
)
|
|
21
|
+
})
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
randjbuildsystem
|
|
2
|
+
AddCategory
|
|
3
|
+
AddCategory_Behavior
|
|
4
|
+
AddCategory_GWT
|
|
5
|
+
AddProduct
|
|
6
|
+
AddProduct_Behavior
|
|
7
|
+
AddProduct_GWT
|
|
8
|
+
ArchiveCategory
|
|
9
|
+
ArchiveCategory_Behavior
|
|
10
|
+
ArchiveCategory_GWT
|
|
11
|
+
Categories
|
|
12
|
+
Categories_GWT
|
|
13
|
+
Categories_Projection
|
|
14
|
+
CategoryActivity
|
|
15
|
+
CategoryActivity_GWT
|
|
16
|
+
CategoryActivity_Projections
|
|
17
|
+
ChangeProductDescription
|
|
18
|
+
ChangeProductDescription_Behavior
|
|
19
|
+
ChangeProductDescription_GWT
|
|
20
|
+
ChangeProductName
|
|
21
|
+
ChangeProductName_Behavior
|
|
22
|
+
ChangeProductName_GWT
|
|
23
|
+
ChangeProductPrice
|
|
24
|
+
ChangeProductPrice_Behavior
|
|
25
|
+
ChangeProductPrice_GWT
|
|
26
|
+
ImportProduct
|
|
27
|
+
ImportProduct_GWT
|
|
28
|
+
ImportProduct_Translation
|
|
29
|
+
ImportProducts
|
|
30
|
+
Orders_Extension
|
|
31
|
+
Orders_Extension_GWT
|
|
32
|
+
Plugin
|
|
33
|
+
ProductDemand
|
|
34
|
+
ProductDemand_GWT
|
|
35
|
+
ProductDemand_Projection
|
|
36
|
+
Products
|
|
37
|
+
Products_ExtensionPointMapping
|
|
38
|
+
Products_ExtensionPointMapping_GWT
|
|
39
|
+
Products_GWT
|
|
40
|
+
Products_Projection
|
|
41
|
+
RecordProductDemand
|
|
42
|
+
RecordProductDemand_Behavior
|
|
43
|
+
RecordProductDemand_GWT
|
|
44
|
+
RenameCategory
|
|
45
|
+
RenameCategory_Behavior
|
|
46
|
+
RenameCategory_GWT
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// Categories StateViewSlice.
|
|
2
|
+
// Projects category events from the shared catalog event log into a Categories read model.
|
|
3
|
+
@@reventless.spec
|
|
4
|
+
|
|
5
|
+
@schema
|
|
6
|
+
type state = {categoryId: string, name: string, archived: bool}
|
|
7
|
+
|
|
8
|
+
@schema
|
|
9
|
+
type consumedEvent =
|
|
10
|
+
| CategoryAdded({categoryId: string, name: string})
|
|
11
|
+
| CategoryRenamed({categoryId: string, name: string})
|
|
12
|
+
| CategoryArchived({categoryId: string})
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
@@reventless.gwt
|
|
2
|
+
|
|
3
|
+
describe("Categories StateViewSlice", () => {
|
|
4
|
+
test("CategoryAdded creates a row", () =>
|
|
5
|
+
givenEvents([])
|
|
6
|
+
->whenEvent(CategoryAdded({categoryId: "c1", name: "Electronics"}))
|
|
7
|
+
->thenStateWithId("c1", {categoryId: "c1", name: "Electronics", archived: false})
|
|
8
|
+
)
|
|
9
|
+
|
|
10
|
+
test("CategoryRenamed updates the name", () =>
|
|
11
|
+
givenEvents([CategoryAdded({categoryId: "c1", name: "Electronics"})])
|
|
12
|
+
->whenEvent(CategoryRenamed({categoryId: "c1", name: "Consumer Electronics"}))
|
|
13
|
+
->thenStateWithId("c1", {categoryId: "c1", name: "Consumer Electronics", archived: false})
|
|
14
|
+
)
|
|
15
|
+
|
|
16
|
+
test("CategoryArchived sets archived flag", () =>
|
|
17
|
+
givenEvents([CategoryAdded({categoryId: "c1", name: "Electronics"})])
|
|
18
|
+
->whenEvent(CategoryArchived({categoryId: "c1"}))
|
|
19
|
+
->thenStateWithId("c1", {categoryId: "c1", name: "Electronics", archived: true})
|
|
20
|
+
)
|
|
21
|
+
})
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
@@reventless.projection
|
|
2
|
+
|
|
3
|
+
let project = event =>
|
|
4
|
+
switch event {
|
|
5
|
+
| CategoryAdded({categoryId, name}) => [
|
|
6
|
+
Set(categoryId, {categoryId, name, archived: false}),
|
|
7
|
+
]
|
|
8
|
+
| CategoryRenamed({categoryId, name}) => [Update(categoryId, state => {...state, name})]
|
|
9
|
+
| CategoryArchived({categoryId}) => [Update(categoryId, state => {...state, archived: true})]
|
|
10
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// Catalog activity read model — a denormalised audit row per entity (category
|
|
2
|
+
// or product) that has changed in the catalog. Populated from TWO views of the
|
|
3
|
+
// shared catalog DCB EventLog: Category-side events and Product-side events.
|
|
4
|
+
// See `CategoryActivity_Projections.res` for the multi-source mapping. The
|
|
5
|
+
// example stays DCB-pure: both sources resolve to the same DCB EventLog name.
|
|
6
|
+
|
|
7
|
+
@@reventless.spec
|
|
8
|
+
|
|
9
|
+
@schema
|
|
10
|
+
type kind =
|
|
11
|
+
| Category
|
|
12
|
+
| Product
|
|
13
|
+
|
|
14
|
+
@schema
|
|
15
|
+
type change =
|
|
16
|
+
| Added
|
|
17
|
+
| Renamed
|
|
18
|
+
| Archived
|
|
19
|
+
|
|
20
|
+
@schema
|
|
21
|
+
type state = {
|
|
22
|
+
name: string,
|
|
23
|
+
kind: kind,
|
|
24
|
+
lastChange: change,
|
|
25
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
// Multi-source ReadModel: one `_GWT` instance per source mapping. The
|
|
2
|
+
// `MultiSourceProjection_GWT.Make` functor is single-source — wire one GWT
|
|
3
|
+
// module per Source view and let each describe its own slice of behaviour.
|
|
4
|
+
|
|
5
|
+
module CategoryGwt = ReventlessGwt.MultiSourceProjection_GWT.Make(
|
|
6
|
+
CategoryActivity_Projections.CategoryActivityMapping,
|
|
7
|
+
)
|
|
8
|
+
module ProductGwt = ReventlessGwt.MultiSourceProjection_GWT.Make(
|
|
9
|
+
CategoryActivity_Projections.ProductActivityMapping,
|
|
10
|
+
)
|
|
11
|
+
|
|
12
|
+
CategoryGwt.describe("CategoryActivity ReadModel ← Category DCB events", () => {
|
|
13
|
+
CategoryGwt.test("CategoryAdded sets name + kind=Category lastChange=Added", () =>
|
|
14
|
+
CategoryGwt.givenEvents([])
|
|
15
|
+
->CategoryGwt.whenEvent(
|
|
16
|
+
CategoryActivity_Projections.CategoryEvents.CategoryAdded({
|
|
17
|
+
categoryId: "c1",
|
|
18
|
+
name: "Electronics",
|
|
19
|
+
}),
|
|
20
|
+
)
|
|
21
|
+
->CategoryGwt.thenStateWithId(
|
|
22
|
+
"c1",
|
|
23
|
+
{CategoryActivity.name: "Electronics", kind: Category, lastChange: Added},
|
|
24
|
+
)
|
|
25
|
+
)
|
|
26
|
+
|
|
27
|
+
CategoryGwt.test("CategoryRenamed updates name + lastChange=Renamed", () =>
|
|
28
|
+
CategoryGwt.givenEvents([
|
|
29
|
+
CategoryActivity_Projections.CategoryEvents.CategoryAdded({
|
|
30
|
+
categoryId: "c1",
|
|
31
|
+
name: "Electronics",
|
|
32
|
+
}),
|
|
33
|
+
])
|
|
34
|
+
->CategoryGwt.whenEvent(
|
|
35
|
+
CategoryActivity_Projections.CategoryEvents.CategoryRenamed({
|
|
36
|
+
categoryId: "c1",
|
|
37
|
+
name: "Consumer Electronics",
|
|
38
|
+
}),
|
|
39
|
+
)
|
|
40
|
+
->CategoryGwt.thenStateWithId(
|
|
41
|
+
"c1",
|
|
42
|
+
{CategoryActivity.name: "Consumer Electronics", kind: Category, lastChange: Renamed},
|
|
43
|
+
)
|
|
44
|
+
)
|
|
45
|
+
|
|
46
|
+
CategoryGwt.test("CategoryArchived keeps name and sets lastChange=Archived", () =>
|
|
47
|
+
CategoryGwt.givenEvents([
|
|
48
|
+
CategoryActivity_Projections.CategoryEvents.CategoryAdded({
|
|
49
|
+
categoryId: "c1",
|
|
50
|
+
name: "Electronics",
|
|
51
|
+
}),
|
|
52
|
+
])
|
|
53
|
+
->CategoryGwt.whenEvent(
|
|
54
|
+
CategoryActivity_Projections.CategoryEvents.CategoryArchived({categoryId: "c1"}),
|
|
55
|
+
)
|
|
56
|
+
->CategoryGwt.thenStateWithId(
|
|
57
|
+
"c1",
|
|
58
|
+
{CategoryActivity.name: "Electronics", kind: Category, lastChange: Archived},
|
|
59
|
+
)
|
|
60
|
+
)
|
|
61
|
+
})
|
|
62
|
+
|
|
63
|
+
ProductGwt.describe("CategoryActivity ReadModel ← Product DCB events", () => {
|
|
64
|
+
ProductGwt.test("ProductAdded sets name + kind=Product lastChange=Added", () =>
|
|
65
|
+
ProductGwt.givenEvents([])
|
|
66
|
+
->ProductGwt.whenEvent(
|
|
67
|
+
CategoryActivity_Projections.ProductEvents.ProductAdded({
|
|
68
|
+
productId: "p1",
|
|
69
|
+
name: "Laptop",
|
|
70
|
+
description: "x",
|
|
71
|
+
price: 1.0,
|
|
72
|
+
}),
|
|
73
|
+
)
|
|
74
|
+
->ProductGwt.thenStateWithId(
|
|
75
|
+
"p1",
|
|
76
|
+
{CategoryActivity.name: "Laptop", kind: Product, lastChange: Added},
|
|
77
|
+
)
|
|
78
|
+
)
|
|
79
|
+
|
|
80
|
+
ProductGwt.test("ProductNameChanged updates name + lastChange=Renamed", () =>
|
|
81
|
+
ProductGwt.givenEvents([
|
|
82
|
+
CategoryActivity_Projections.ProductEvents.ProductAdded({
|
|
83
|
+
productId: "p1",
|
|
84
|
+
name: "Laptop",
|
|
85
|
+
description: "x",
|
|
86
|
+
price: 1.0,
|
|
87
|
+
}),
|
|
88
|
+
])
|
|
89
|
+
->ProductGwt.whenEvent(
|
|
90
|
+
CategoryActivity_Projections.ProductEvents.ProductNameChanged({
|
|
91
|
+
productId: "p1",
|
|
92
|
+
name: "Gaming Laptop",
|
|
93
|
+
}),
|
|
94
|
+
)
|
|
95
|
+
->ProductGwt.thenStateWithId(
|
|
96
|
+
"p1",
|
|
97
|
+
{CategoryActivity.name: "Gaming Laptop", kind: Product, lastChange: Renamed},
|
|
98
|
+
)
|
|
99
|
+
)
|
|
100
|
+
})
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
// CategoryActivity mappings: a single ReadModel fed by TWO DCB source views of
|
|
2
|
+
// the catalog plugin's shared DCB EventLog.
|
|
3
|
+
//
|
|
4
|
+
// `Mapping.sourceName` MUST equal `<pluginName>DcbEventLog` for both sources
|
|
5
|
+
// (this is the key under which `Plugin_Builder` registers the catalog plugin's
|
|
6
|
+
// DCB EventTopic AND the `meta.service` value DcbEventLog stamps on every
|
|
7
|
+
// published event). Multiple Mappings with the same `sourceName` is the
|
|
8
|
+
// canonical DCB-pure multi-source pattern: each Mapping carves a typed subset
|
|
9
|
+
// of the full DCB event union and projects into a different shape of the
|
|
10
|
+
// shared ReadModel state.
|
|
11
|
+
|
|
12
|
+
@@reventless.mappings
|
|
13
|
+
|
|
14
|
+
// ─────────────────────────────────────────────────────────────
|
|
15
|
+
// DCB source view 1 — Category-side events
|
|
16
|
+
// ─────────────────────────────────────────────────────────────
|
|
17
|
+
|
|
18
|
+
module CategoryEvents = {
|
|
19
|
+
let name = "CatalogDcbEventLog"
|
|
20
|
+
|
|
21
|
+
@schema
|
|
22
|
+
type event =
|
|
23
|
+
| CategoryAdded({categoryId: string, name: string})
|
|
24
|
+
| CategoryRenamed({categoryId: string, name: string})
|
|
25
|
+
| CategoryArchived({categoryId: string})
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
// ─────────────────────────────────────────────────────────────
|
|
29
|
+
// DCB source view 2 — Product-side events
|
|
30
|
+
// ─────────────────────────────────────────────────────────────
|
|
31
|
+
|
|
32
|
+
module ProductEvents = {
|
|
33
|
+
let name = "CatalogDcbEventLog"
|
|
34
|
+
|
|
35
|
+
@schema
|
|
36
|
+
type event =
|
|
37
|
+
| ProductAdded({productId: string, name: string, description: string, price: float})
|
|
38
|
+
| ProductNameChanged({productId: string, name: string})
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// ─────────────────────────────────────────────────────────────
|
|
42
|
+
// Mapping 1 — Category source view
|
|
43
|
+
// ─────────────────────────────────────────────────────────────
|
|
44
|
+
|
|
45
|
+
module CategoryActivityMapping = Mapping.Make(
|
|
46
|
+
CategoryEvents,
|
|
47
|
+
CategoryActivity,
|
|
48
|
+
{
|
|
49
|
+
open CategoryEvents
|
|
50
|
+
let project = ({event, _}) =>
|
|
51
|
+
switch event {
|
|
52
|
+
| CategoryAdded({categoryId, name}) =>
|
|
53
|
+
Set(
|
|
54
|
+
categoryId,
|
|
55
|
+
{
|
|
56
|
+
CategoryActivity.name: name,
|
|
57
|
+
kind: Category,
|
|
58
|
+
lastChange: (Added: CategoryActivity.change),
|
|
59
|
+
},
|
|
60
|
+
)
|
|
61
|
+
| CategoryRenamed({categoryId, name}) =>
|
|
62
|
+
Update(categoryId, state => {
|
|
63
|
+
...state,
|
|
64
|
+
name,
|
|
65
|
+
lastChange: (Renamed: CategoryActivity.change),
|
|
66
|
+
})
|
|
67
|
+
| CategoryArchived({categoryId}) =>
|
|
68
|
+
Update(categoryId, state => {...state, lastChange: (Archived: CategoryActivity.change)})
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
)
|
|
72
|
+
|
|
73
|
+
// ─────────────────────────────────────────────────────────────
|
|
74
|
+
// Mapping 2 — Product source view
|
|
75
|
+
// ─────────────────────────────────────────────────────────────
|
|
76
|
+
|
|
77
|
+
module ProductActivityMapping = Mapping.Make(
|
|
78
|
+
ProductEvents,
|
|
79
|
+
CategoryActivity,
|
|
80
|
+
{
|
|
81
|
+
open ProductEvents
|
|
82
|
+
let project = ({event, _}) =>
|
|
83
|
+
switch event {
|
|
84
|
+
| ProductAdded({productId, name}) =>
|
|
85
|
+
Set(productId, {CategoryActivity.name: name, kind: Product, lastChange: Added})
|
|
86
|
+
| ProductNameChanged({productId, name}) =>
|
|
87
|
+
Update(productId, state => {...state, name, lastChange: Renamed})
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
)
|
|
91
|
+
|
|
92
|
+
let mappings: array<module(Mapping)> = [module(CategoryActivityMapping), module(ProductActivityMapping)]
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// ChangeProductDescription StateChangeSlice.
|
|
2
|
+
// Requires product to exist; idempotent when description is unchanged.
|
|
3
|
+
@@reventless.spec
|
|
4
|
+
|
|
5
|
+
@schema
|
|
6
|
+
type consumedEvent =
|
|
7
|
+
| ProductAdded({description: string})
|
|
8
|
+
| ProductDescriptionChanged({description: string})
|
|
9
|
+
|
|
10
|
+
@schema
|
|
11
|
+
type command =
|
|
12
|
+
| ChangeProductDescription({productId: string, description: string})
|
|
13
|
+
|
|
14
|
+
@schema
|
|
15
|
+
type error = ProductNotFound
|
|
16
|
+
|
|
17
|
+
@schema
|
|
18
|
+
type event =
|
|
19
|
+
| ProductDescriptionChanged({
|
|
20
|
+
productId: string,
|
|
21
|
+
description: string,
|
|
22
|
+
})
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
@@reventless.behavior
|
|
2
|
+
|
|
3
|
+
type state = {exists: bool, currentDescription: string}
|
|
4
|
+
|
|
5
|
+
let initialState = {exists: false, currentDescription: ""}
|
|
6
|
+
|
|
7
|
+
let evolve = (state, event) =>
|
|
8
|
+
switch event {
|
|
9
|
+
| ProductAdded({description}) => {exists: true, currentDescription: description}
|
|
10
|
+
| ProductDescriptionChanged({description}) => {
|
|
11
|
+
...state,
|
|
12
|
+
currentDescription: description,
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
let decide = (state, command) =>
|
|
17
|
+
switch command {
|
|
18
|
+
| ChangeProductDescription({productId, description}) =>
|
|
19
|
+
if !state.exists {
|
|
20
|
+
Error(ProductNotFound)
|
|
21
|
+
} else if description == state.currentDescription {
|
|
22
|
+
Ok([]) // idempotent — description unchanged
|
|
23
|
+
} else {
|
|
24
|
+
Ok([ProductDescriptionChanged({productId, description})])
|
|
25
|
+
}
|
|
26
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
@@reventless.gwt
|
|
2
|
+
|
|
3
|
+
describe("ChangeProductDescription StateChangeSlice", () => {
|
|
4
|
+
test("non-existent product returns ProductNotFound", () =>
|
|
5
|
+
givenEvents([])
|
|
6
|
+
->whenCmd(ChangeProductDescription({productId: "p1", description: "high-end"}))
|
|
7
|
+
->thenError(ProductNotFound)
|
|
8
|
+
)
|
|
9
|
+
|
|
10
|
+
test("existing product produces ProductDescriptionChanged", () =>
|
|
11
|
+
givenEvents([ProductAdded({description: "A laptop"})])
|
|
12
|
+
->whenCmd(ChangeProductDescription({productId: "p1", description: "high-end laptop"}))
|
|
13
|
+
->thenEvent(ProductDescriptionChanged({productId: "p1", description: "high-end laptop"}))
|
|
14
|
+
)
|
|
15
|
+
|
|
16
|
+
test("same description produces no events (idempotent)", () =>
|
|
17
|
+
givenEvents([ProductAdded({description: "A laptop"})])
|
|
18
|
+
->whenCmd(ChangeProductDescription({productId: "p1", description: "A laptop"}))
|
|
19
|
+
->thenNoEvent
|
|
20
|
+
)
|
|
21
|
+
})
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// ChangeProductName StateChangeSlice.
|
|
2
|
+
// Requires product to exist; idempotent when name is unchanged.
|
|
3
|
+
@@reventless.spec
|
|
4
|
+
|
|
5
|
+
@schema
|
|
6
|
+
type consumedEvent =
|
|
7
|
+
| ProductAdded({name: string})
|
|
8
|
+
| ProductNameChanged({name: string})
|
|
9
|
+
|
|
10
|
+
@schema
|
|
11
|
+
type command = ChangeProductName({productId: string, name: string})
|
|
12
|
+
|
|
13
|
+
@schema
|
|
14
|
+
type error = ProductNotFound
|
|
15
|
+
|
|
16
|
+
@schema
|
|
17
|
+
type event = ProductNameChanged({productId: string, name: string})
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
@@reventless.behavior
|
|
2
|
+
|
|
3
|
+
type state = {exists: bool, currentName: string}
|
|
4
|
+
|
|
5
|
+
let initialState = {exists: false, currentName: ""}
|
|
6
|
+
|
|
7
|
+
let evolve = (state, event) =>
|
|
8
|
+
switch event {
|
|
9
|
+
| ProductAdded({name}) => {exists: true, currentName: name}
|
|
10
|
+
| ProductNameChanged({name}) => {...state, currentName: name}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
let decide = (state, command) =>
|
|
14
|
+
switch command {
|
|
15
|
+
| ChangeProductName({productId, name}) =>
|
|
16
|
+
if !state.exists {
|
|
17
|
+
Error(ProductNotFound)
|
|
18
|
+
} else if name == state.currentName {
|
|
19
|
+
Ok([]) // idempotent — name unchanged
|
|
20
|
+
} else {
|
|
21
|
+
Ok([ProductNameChanged({productId, name})])
|
|
22
|
+
}
|
|
23
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|