@evershop/evershop 1.2.0 → 1.2.2

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 (1577) hide show
  1. package/README.md +116 -109
  2. package/bin/build/client/index.js +25 -25
  3. package/bin/build/complie.js +30 -30
  4. package/bin/build/index.js +70 -70
  5. package/bin/build/server/index.js +25 -25
  6. package/bin/build/server/useDDL.js +279 -279
  7. package/bin/build/server/useVendorChunk.js +89 -89
  8. package/bin/dev/index.js +9 -9
  9. package/bin/evershop +38 -38
  10. package/bin/extension/index.js +49 -49
  11. package/bin/install/createMigrationTable.js +17 -17
  12. package/bin/install/index.js +292 -292
  13. package/bin/install/templates/config.json +17 -17
  14. package/bin/lib/addDefaultMiddlewareFuncs.js +341 -341
  15. package/bin/lib/app.js +92 -92
  16. package/bin/lib/bootstrap/bootstrap.js +11 -11
  17. package/bin/lib/bootstrap/migrate.js +95 -95
  18. package/bin/lib/buildEntry.js +140 -137
  19. package/bin/lib/createComponents.js +93 -93
  20. package/bin/lib/cronjob.js +49 -0
  21. package/bin/lib/loadModules.js +90 -90
  22. package/bin/lib/normalizePort.js +19 -19
  23. package/bin/lib/onError.js +28 -28
  24. package/bin/lib/onListening.js +22 -22
  25. package/bin/lib/prepare.js +68 -68
  26. package/bin/lib/startUp.js +116 -99
  27. package/bin/lib/watch/broadcash.js +18 -18
  28. package/bin/lib/watch/refreshable.js +19 -19
  29. package/bin/lib/watch/watch.js +31 -31
  30. package/bin/lib/watch/watchComponents.js +26 -26
  31. package/bin/lib/watch/watchMF.js +37 -37
  32. package/bin/lib/watch/watchMR.js +102 -102
  33. package/bin/lib/watch/watchPage.js +15 -15
  34. package/bin/lib/watch/watchSchema.js +24 -24
  35. package/bin/start/index.js +8 -8
  36. package/bin/user/changePassword.js +69 -69
  37. package/bin/user/create.js +78 -78
  38. package/package.json +138 -136
  39. package/src/components/admin/auth/AuthContext.jsx +26 -26
  40. package/src/components/admin/catalog/attributeGrid/headers/GroupHeader.jsx +80 -80
  41. package/src/components/admin/catalog/attributeGrid/rows/AttributeName.jsx +19 -19
  42. package/src/components/admin/catalog/attributeGrid/rows/GroupRow.jsx +101 -101
  43. package/src/components/admin/catalog/categoryGrid/rows/CategoryName.jsx +25 -25
  44. package/src/components/admin/catalog/collection/collectionEdit/AddProducts.jsx +51 -51
  45. package/src/components/admin/catalog/collectionGrid/rows/CollectionNameRow.jsx +19 -19
  46. package/src/components/admin/catalog/productEdit/category/CategoryItem.jsx +128 -128
  47. package/src/components/admin/catalog/productEdit/category/CategoryTree.jsx +99 -99
  48. package/src/components/admin/catalog/productEdit/category/CategoryTree.scss +14 -14
  49. package/src/components/admin/catalog/productEdit/media/ProductMediaManager.jsx +264 -264
  50. package/src/components/admin/catalog/productEdit/media/ProductMediaManager.scss +76 -76
  51. package/src/components/admin/catalog/productEdit/variants/CreateVariant.jsx +100 -100
  52. package/src/components/admin/catalog/productEdit/variants/CreateVariantGroup.jsx +141 -141
  53. package/src/components/admin/catalog/productEdit/variants/EditVariant.jsx +115 -115
  54. package/src/components/admin/catalog/productEdit/variants/New.jsx +62 -62
  55. package/src/components/admin/catalog/productEdit/variants/Search.jsx +51 -51
  56. package/src/components/admin/catalog/productEdit/variants/SearchModal.jsx +191 -191
  57. package/src/components/admin/catalog/productEdit/variants/SubmitButton.jsx +137 -137
  58. package/src/components/admin/catalog/productEdit/variants/Variant.jsx +73 -73
  59. package/src/components/admin/catalog/productEdit/variants/VariantModal.jsx +201 -201
  60. package/src/components/admin/catalog/productEdit/variants/VariantType.jsx +20 -20
  61. package/src/components/admin/catalog/productEdit/variants/Variants.jsx +180 -180
  62. package/src/components/admin/catalog/productEdit/variants/Variants.scss +50 -50
  63. package/src/components/admin/catalog/productGrid/rows/PriceRow.jsx +24 -24
  64. package/src/components/admin/catalog/productGrid/rows/ProductName.jsx +19 -19
  65. package/src/components/admin/catalog/productGrid/rows/QtyRow.jsx +16 -16
  66. package/src/components/admin/catalog/productGrid/rows/ThumbnailRow.jsx +37 -37
  67. package/src/components/admin/checkout/shippingSetting/Method.jsx +149 -130
  68. package/src/components/admin/checkout/shippingSetting/MethodForm.jsx +370 -366
  69. package/src/components/admin/checkout/shippingSetting/Methods.jsx +74 -70
  70. package/src/components/admin/checkout/shippingSetting/PriceBasedPrice.jsx +101 -101
  71. package/src/components/admin/checkout/shippingSetting/WeightBasedPrice.jsx +101 -101
  72. package/src/components/admin/checkout/shippingSetting/Zone.jsx +147 -147
  73. package/src/components/admin/checkout/shippingSetting/ZoneForm.jsx +146 -146
  74. package/src/components/admin/checkout/shippingSetting/Zones.jsx +57 -44
  75. package/src/components/admin/cms/Card.jsx +132 -132
  76. package/src/components/admin/cms/Card.scss +38 -38
  77. package/src/components/admin/cms/Dot.jsx +18 -18
  78. package/src/components/admin/cms/NavigationItem.jsx +39 -39
  79. package/src/components/admin/cms/NavigationItem.scss +10 -10
  80. package/src/components/admin/cms/NavigationItemGroup.jsx +67 -67
  81. package/src/components/admin/cms/NavigationItemGroup.scss +32 -32
  82. package/src/components/admin/cms/PageHeading.jsx +94 -94
  83. package/src/components/admin/cms/PageHeading.scss +19 -19
  84. package/src/components/admin/cms/Title.jsx +10 -10
  85. package/src/components/admin/cms/cmsPageGrid/rows/NameRow.jsx +22 -22
  86. package/src/components/admin/cms/cmsPageGrid/rows/PageName.jsx +19 -19
  87. package/src/components/admin/cms/navigation/DashboardMenuItem.jsx +12 -12
  88. package/src/components/admin/cms/navigation/PagesMenuItem.jsx +12 -12
  89. package/src/components/admin/cms/widget/WidgetTypes.jsx +28 -28
  90. package/src/components/admin/cms/widget/grid/WidgetTypeRow.jsx +29 -29
  91. package/src/components/admin/customer/customerGrid/rows/CreateAt.jsx +16 -16
  92. package/src/components/admin/customer/customerGrid/rows/CustomerName.jsx +19 -19
  93. package/src/components/admin/oms/orderEdit/Shipment.jsx +243 -243
  94. package/src/components/admin/oms/orderEdit/items/ItemOptions.jsx +53 -53
  95. package/src/components/admin/oms/orderEdit/items/ItemVariantOptions.jsx +37 -37
  96. package/src/components/admin/oms/orderEdit/items/Name.jsx +45 -45
  97. package/src/components/admin/oms/orderEdit/items/Price.jsx +21 -21
  98. package/src/components/admin/oms/orderEdit/items/Thumbnail.jsx +40 -40
  99. package/src/components/admin/oms/orderEdit/payment/Discount.jsx +24 -24
  100. package/src/components/admin/oms/orderEdit/payment/Shipping.jsx +19 -19
  101. package/src/components/admin/oms/orderEdit/payment/SubTotal.jsx +19 -19
  102. package/src/components/admin/oms/orderEdit/payment/Tax.jsx +20 -20
  103. package/src/components/admin/oms/orderEdit/payment/Total.jsx +18 -18
  104. package/src/components/admin/oms/orderGrid/headers/OrderDateColumnHeader.jsx +81 -81
  105. package/src/components/admin/oms/orderGrid/headers/PaymentStatusColumnHeader.jsx +63 -63
  106. package/src/components/admin/oms/orderGrid/headers/ShipmentStatusColumnHeader.jsx +63 -63
  107. package/src/components/admin/oms/orderGrid/rows/OrderNumberRow.jsx +19 -19
  108. package/src/components/admin/oms/orderGrid/rows/PaymentStatus.jsx +23 -19
  109. package/src/components/admin/oms/orderGrid/rows/ShipmentStatus.jsx +23 -19
  110. package/src/components/admin/oms/orderGrid/rows/TotalRow.jsx +10 -10
  111. package/src/components/admin/promotion/couponEdit/AttributeGroupConditionSelector.jsx +95 -92
  112. package/src/components/admin/promotion/couponEdit/AttributeGroupSelector.jsx +196 -196
  113. package/src/components/admin/promotion/couponEdit/BuyXGetY.jsx +275 -275
  114. package/src/components/admin/promotion/couponEdit/CategoryConditionSelector.jsx +91 -89
  115. package/src/components/admin/promotion/couponEdit/CategorySelector.jsx +183 -173
  116. package/src/components/admin/promotion/couponEdit/CollectionConditionSelector.jsx +95 -92
  117. package/src/components/admin/promotion/couponEdit/CollectionSelector.jsx +173 -173
  118. package/src/components/admin/promotion/couponEdit/CompareKeyList.jsx +22 -22
  119. package/src/components/admin/promotion/couponEdit/CompareOperatorList.jsx +42 -42
  120. package/src/components/admin/promotion/couponEdit/PriceConditionSelector.jsx +50 -46
  121. package/src/components/admin/promotion/couponEdit/ProductSkuSelector.jsx +238 -238
  122. package/src/components/admin/promotion/couponEdit/RequireProducts.jsx +442 -443
  123. package/src/components/admin/promotion/couponEdit/Setting.jsx +82 -82
  124. package/src/components/admin/promotion/couponEdit/SkuConditionSelector.jsx +104 -101
  125. package/src/components/admin/promotion/couponEdit/TargetProducts.jsx +511 -505
  126. package/src/components/admin/promotion/couponGrid/rows/CouponName.jsx +19 -19
  127. package/src/components/admin/setting/SettingMenu.jsx +14 -14
  128. package/src/components/admin/setting/SettingMenu.scss +8 -8
  129. package/src/components/admin/tax/taxSetting/Rate.jsx +84 -79
  130. package/src/components/admin/tax/taxSetting/RateForm.jsx +175 -175
  131. package/src/components/admin/tax/taxSetting/Rates.jsx +77 -75
  132. package/src/components/admin/tax/taxSetting/TaxClass.jsx +48 -48
  133. package/src/components/admin/tax/taxSetting/TaxClassForm.jsx +58 -58
  134. package/src/components/admin/tax/taxSetting/TaxClasses.jsx +52 -51
  135. package/src/components/admin/widgets/BasicMenuSetting.jsx +614 -614
  136. package/src/components/admin/widgets/BasicMenuSetting.scss +19 -19
  137. package/src/components/admin/widgets/CollectionProductsSetting.jsx +203 -203
  138. package/src/components/admin/widgets/TextBlockSetting.jsx +70 -70
  139. package/src/components/common/Area.jsx +132 -132
  140. package/src/components/common/Badge.jsx +51 -51
  141. package/src/components/common/Badge.scss +111 -111
  142. package/src/components/common/Body.jsx +10 -10
  143. package/src/components/common/BundleCss.jsx +13 -13
  144. package/src/components/common/BundleJs.jsx +9 -9
  145. package/src/components/common/CKEditor.jsx +20 -20
  146. package/src/components/common/CKEditor.scss +460 -460
  147. package/src/components/common/Circle.jsx +36 -36
  148. package/src/components/common/Circle.scss +90 -90
  149. package/src/components/common/Dot.jsx +40 -40
  150. package/src/components/common/Dot.scss +32 -32
  151. package/src/components/common/Editor.jsx +193 -191
  152. package/src/components/common/Link.jsx +19 -19
  153. package/src/components/common/LoadingBar.jsx +41 -41
  154. package/src/components/common/LoadingBar.scss +14 -14
  155. package/src/components/common/Meta.jsx +29 -29
  156. package/src/components/common/Notification.jsx +37 -37
  157. package/src/components/common/Notification.scss +536 -536
  158. package/src/components/common/Off.jsx +10 -10
  159. package/src/components/common/Off.scss +26 -26
  160. package/src/components/common/On.jsx +10 -10
  161. package/src/components/common/On.scss +26 -26
  162. package/src/components/common/ProductNoThumbnail.jsx +39 -39
  163. package/src/components/common/RenderIfTrue.jsx +10 -0
  164. package/src/components/common/Script.jsx +15 -15
  165. package/src/components/common/SimplePagination.jsx +60 -60
  166. package/src/components/common/Spinner.jsx +42 -42
  167. package/src/components/common/Title.jsx +10 -10
  168. package/src/components/common/context/app.jsx +62 -62
  169. package/src/components/common/context/checkout.jsx +87 -94
  170. package/src/components/common/context/checkoutSteps.jsx +109 -103
  171. package/src/components/common/customer/address/AddressSummary.jsx +73 -73
  172. package/src/components/common/form/Button.jsx +96 -96
  173. package/src/components/common/form/Button.scss +66 -66
  174. package/src/components/common/form/Field.jsx +143 -135
  175. package/src/components/common/form/Field.scss +201 -203
  176. package/src/components/common/form/Form.jsx +254 -254
  177. package/src/components/common/form/fields/Checkbox.jsx +81 -81
  178. package/src/components/common/form/fields/Checkbox.scss +1 -1
  179. package/src/components/common/form/fields/Ckeditor.jsx +514 -514
  180. package/src/components/common/form/fields/Ckeditor.scss +53 -53
  181. package/src/components/common/form/fields/Date.jsx +78 -78
  182. package/src/components/common/form/fields/Date.scss +1 -1
  183. package/src/components/common/form/fields/DateTime.jsx +78 -78
  184. package/src/components/common/form/fields/DateTime.scss +1 -1
  185. package/src/components/common/form/fields/Editor.jsx +343 -326
  186. package/src/components/common/form/fields/Editor.scss +33 -29
  187. package/src/components/common/form/fields/Error.jsx +24 -24
  188. package/src/components/common/form/fields/Flatpickr.jsx +4 -4
  189. package/src/components/common/form/fields/Flatpickr.scss +789 -789
  190. package/src/components/common/form/fields/Hidden.jsx +30 -30
  191. package/src/components/common/form/fields/Input.jsx +79 -76
  192. package/src/components/common/form/fields/Input.scss +1 -1
  193. package/src/components/common/form/fields/MultiSelect.jsx +97 -97
  194. package/src/components/common/form/fields/MultiSelect.scss +1 -1
  195. package/src/components/common/form/fields/Password.jsx +74 -74
  196. package/src/components/common/form/fields/Radio.jsx +83 -83
  197. package/src/components/common/form/fields/Radio.scss +1 -1
  198. package/src/components/common/form/fields/Select.jsx +109 -109
  199. package/src/components/common/form/fields/Select.scss +1 -1
  200. package/src/components/common/form/fields/Textarea.jsx +68 -68
  201. package/src/components/common/form/fields/Textarea.scss +1 -1
  202. package/src/components/common/form/fields/Toggle.jsx +110 -110
  203. package/src/components/common/form/fields/Toggle.scss +26 -26
  204. package/src/components/common/form/fields/editor/FileBrowser.jsx +419 -419
  205. package/src/components/common/form/fields/editor/FileBrowser.scss +36 -36
  206. package/src/components/common/form/fields/editor/GetColumnClasses.jsx +14 -14
  207. package/src/components/common/form/fields/editor/GetRowClasses.jsx +18 -18
  208. package/src/components/common/form/fields/editor/RowTemplates.jsx +155 -154
  209. package/src/components/common/form/validator.js +59 -59
  210. package/src/components/common/grid/Pagination.jsx +170 -170
  211. package/src/components/common/grid/Pagination.scss +25 -25
  212. package/src/components/common/grid/headers/Action.jsx +34 -34
  213. package/src/components/common/grid/headers/Dropdown.jsx +65 -65
  214. package/src/components/common/grid/headers/Dummy.jsx +18 -18
  215. package/src/components/common/grid/headers/FromTo.jsx +73 -73
  216. package/src/components/common/grid/headers/Sortable.jsx +147 -148
  217. package/src/components/common/grid/headers/Status.jsx +52 -52
  218. package/src/components/common/grid/rows/ActionRow.jsx +41 -41
  219. package/src/components/common/grid/rows/BasicRow.jsx +15 -15
  220. package/src/components/common/grid/rows/DateRow.jsx +34 -34
  221. package/src/components/common/grid/rows/PriceRow.jsx +28 -28
  222. package/src/components/common/grid/rows/StatusRow.jsx +27 -27
  223. package/src/components/common/grid/rows/TextRow.jsx +10 -10
  224. package/src/components/common/grid/rows/ThumbnailRow.jsx +43 -43
  225. package/src/components/common/grid/rows/YesNoRow.jsx +23 -24
  226. package/src/components/common/list/Filter.jsx +83 -83
  227. package/src/components/common/list/Filter.scss +38 -38
  228. package/src/components/common/locale/CountryOption.jsx +277 -277
  229. package/src/components/common/locale/CurrencyOption.jsx +196 -196
  230. package/src/components/common/locale/LanguageOption.jsx +218 -218
  231. package/src/components/common/locale/ProvinceOption.jsx +3690 -3690
  232. package/src/components/common/locale/TimezoneOption.jsx +1266 -1266
  233. package/src/components/common/modal/Alert.jsx +145 -145
  234. package/src/components/common/modal/Alert.scss +84 -84
  235. package/src/components/common/modal/Modal.jsx +64 -64
  236. package/src/components/common/modal/useModal.js +51 -51
  237. package/src/components/common/react/Head.jsx +10 -10
  238. package/src/components/common/react/client/Client.jsx +32 -32
  239. package/src/components/common/react/client/HotReload.jsx +47 -47
  240. package/src/components/common/react/client/Hydrate.jsx +25 -25
  241. package/src/components/common/react/client/HydrateAdmin.jsx +11 -11
  242. package/src/components/common/react/client/HydrateFrontStore.jsx +11 -11
  243. package/src/components/common/react/client/Index.jsx +22 -22
  244. package/src/components/common/react/getComponents.js +19 -19
  245. package/src/components/common/react/server/Server.jsx +38 -38
  246. package/src/components/common/react/server/render.jsx +18 -18
  247. package/src/components/frontStore/catalog/categoryView/filter/AttributeFilter.jsx +153 -153
  248. package/src/components/frontStore/catalog/categoryView/filter/CategoryFilter.jsx +142 -142
  249. package/src/components/frontStore/catalog/categoryView/filter/CategoryFilter.scss +5 -5
  250. package/src/components/frontStore/catalog/categoryView/filter/PriceFilter.jsx +211 -211
  251. package/src/components/frontStore/catalog/categoryView/filter/PriceFilter.scss +25 -25
  252. package/src/components/frontStore/catalog/product/list/List.jsx +92 -92
  253. package/src/components/frontStore/catalog/product/list/Pagination.jsx +156 -156
  254. package/src/components/frontStore/catalog/product/list/Pagination.scss +21 -21
  255. package/src/components/frontStore/catalog/product/list/SortOptions.jsx +8 -8
  256. package/src/components/frontStore/catalog/product/list/Sorting.jsx +118 -118
  257. package/src/components/frontStore/catalog/product/list/item/Name.jsx +24 -24
  258. package/src/components/frontStore/catalog/product/list/item/Name.scss +3 -3
  259. package/src/components/frontStore/catalog/product/list/item/Price.jsx +35 -35
  260. package/src/components/frontStore/catalog/product/list/item/Thumbnail.jsx +35 -35
  261. package/src/components/frontStore/catalog/product/list/item/Thumbnail.scss +9 -9
  262. package/src/components/frontStore/catalog/product/single/Name.jsx +10 -10
  263. package/src/components/frontStore/catalog/product/single/NoThumbnail.jsx +39 -39
  264. package/src/components/frontStore/catalog/product/single/Price.jsx +31 -31
  265. package/src/components/frontStore/catalog/product/single/Sku.jsx +16 -16
  266. package/src/components/frontStore/checkout/cart/Empty.jsx +50 -50
  267. package/src/components/frontStore/checkout/cart/items/ItemOptions.jsx +58 -58
  268. package/src/components/frontStore/checkout/cart/items/ItemVariantOptions.jsx +35 -35
  269. package/src/components/frontStore/checkout/cart/items/Items.jsx +190 -190
  270. package/src/components/frontStore/checkout/cart/items/Items.scss +96 -96
  271. package/src/components/frontStore/checkout/cart/items/Quantity.jsx +154 -154
  272. package/src/components/frontStore/checkout/checkout/CheckoutButton.jsx +28 -28
  273. package/src/components/frontStore/checkout/checkout/StepTitle.jsx +52 -52
  274. package/src/components/frontStore/checkout/checkout/payment/paymentMethods/Methods.jsx +17 -17
  275. package/src/components/frontStore/checkout/checkout/payment/paymentStep/BillingAddress.jsx +30 -30
  276. package/src/components/frontStore/checkout/checkout/payment/paymentStep/StepContent.jsx +228 -207
  277. package/src/components/frontStore/checkout/checkout/shipment/StepContent.jsx +192 -117
  278. package/src/components/frontStore/checkout/checkout/summary/Cart.jsx +89 -89
  279. package/src/components/frontStore/checkout/checkout/summary/Items.jsx +108 -108
  280. package/src/components/frontStore/checkout/checkout/summary/Items.scss +53 -53
  281. package/src/components/frontStore/checkout/checkout/summary/cart/Discount.jsx +29 -29
  282. package/src/components/frontStore/checkout/checkout/summary/cart/Shipping.jsx +29 -29
  283. package/src/components/frontStore/checkout/checkout/summary/cart/Subtotal.jsx +20 -20
  284. package/src/components/frontStore/checkout/checkout/summary/cart/Tax.jsx +23 -23
  285. package/src/components/frontStore/checkout/checkout/summary/cart/Total.jsx +38 -38
  286. package/src/components/frontStore/checkout/success/summary/items/ItemOptions.jsx +58 -58
  287. package/src/components/frontStore/checkout/success/summary/items/Items.jsx +71 -72
  288. package/src/components/frontStore/checkout/success/summary/items/Items.scss +53 -53
  289. package/src/components/frontStore/checkout/success/summary/order/Discount.jsx +29 -29
  290. package/src/components/frontStore/checkout/success/summary/order/OrderSummary.jsx +98 -96
  291. package/src/components/frontStore/checkout/success/summary/order/Shipping.jsx +29 -29
  292. package/src/components/frontStore/checkout/success/summary/order/Subtotal.jsx +20 -20
  293. package/src/components/frontStore/checkout/success/summary/order/Tax.jsx +23 -23
  294. package/src/components/frontStore/checkout/success/summary/order/Total.jsx +34 -34
  295. package/src/components/frontStore/cms/Button.jsx +4 -4
  296. package/src/components/frontStore/cms/Button.scss +67 -67
  297. package/src/components/frontStore/cms/MetaDescription.jsx +10 -10
  298. package/src/components/frontStore/cms/MetaTitle.jsx +10 -10
  299. package/src/components/frontStore/cod/CODLogo.jsx +24 -24
  300. package/src/components/frontStore/customer/address/addressForm/AddressForm.jsx +179 -173
  301. package/src/components/frontStore/customer/address/addressForm/AddressFormLoadingSkeleton.jsx +20 -20
  302. package/src/components/frontStore/customer/address/addressForm/AddressFormLoadingSkeleton.scss +26 -26
  303. package/src/components/frontStore/customer/address/addressForm/Country.jsx +52 -46
  304. package/src/components/frontStore/customer/address/addressForm/Index.jsx +77 -76
  305. package/src/components/frontStore/customer/address/addressForm/NameAndTelephone.jsx +72 -72
  306. package/src/components/frontStore/customer/address/addressForm/Province.jsx +61 -61
  307. package/src/components/frontStore/customer/address/addressForm/ProvinceAndPostcode.jsx +75 -75
  308. package/src/components/frontStore/customer/checkout/Edit.jsx +99 -94
  309. package/src/components/frontStore/customer/detail/Order.jsx +78 -78
  310. package/src/components/frontStore/paypal/PaypalLogo.jsx +24 -24
  311. package/src/components/frontStore/stripe/StripeLogo.jsx +24 -24
  312. package/src/components/frontStore/stripe/checkout/CheckoutForm.jsx +209 -221
  313. package/src/components/frontStore/stripe/checkout/CheckoutForm.scss +24 -29
  314. package/src/components/frontStore/stripe/checkout/TestCards.jsx +96 -96
  315. package/src/components/frontStore/widgets/BasicMenu.jsx +129 -129
  316. package/src/components/frontStore/widgets/CollectionProducts.jsx +92 -94
  317. package/src/components/frontStore/widgets/TextBlock.jsx +46 -46
  318. package/src/lib/babel/config.js +16 -16
  319. package/src/lib/babel/index.js +3 -3
  320. package/src/lib/bundlee.js +256 -256
  321. package/src/lib/componee/getComponentsByRoute.js +34 -34
  322. package/src/lib/componee/scanForComponents.js +98 -98
  323. package/src/lib/componee/tests/unit/scanRouteComponents.test.js +136 -136
  324. package/src/lib/event/callSubscibers.js +22 -22
  325. package/src/lib/event/emitter.js +11 -11
  326. package/src/lib/event/event-manager.js +113 -113
  327. package/src/lib/event/loadSubscribers.js +54 -54
  328. package/src/lib/helpers.js +17 -17
  329. package/src/lib/locale/countries.js +248 -248
  330. package/src/lib/locale/currencies.js +170 -170
  331. package/src/lib/locale/provinces.js +3595 -3595
  332. package/src/lib/locale/timezones.js +1085 -1085
  333. package/src/lib/locale/translate/index.js +10 -10
  334. package/src/lib/locale/translate/translate.js +30 -30
  335. package/src/lib/log/CustomColorize.js +22 -22
  336. package/src/lib/log/logger.js +158 -158
  337. package/src/lib/middleware/Handler.js +145 -145
  338. package/src/lib/middleware/addMiddleware.js +14 -14
  339. package/src/lib/middleware/async.js +43 -43
  340. package/src/lib/middleware/buildMiddlewareFunction.js +82 -82
  341. package/src/lib/middleware/delegate.js +22 -22
  342. package/src/lib/middleware/eNext.js +16 -16
  343. package/src/lib/middleware/findDublicatedMiddleware.js +22 -22
  344. package/src/lib/middleware/getRouteFromPath.js +48 -48
  345. package/src/lib/middleware/index.js +102 -102
  346. package/src/lib/middleware/isErrorHandlerTriggered.js +7 -7
  347. package/src/lib/middleware/isNextRequired.js +6 -6
  348. package/src/lib/middleware/noDuplicateId.js +23 -23
  349. package/src/lib/middleware/parseFromFile.js +79 -79
  350. package/src/lib/middleware/scanForMiddlewareFunctions.js +31 -31
  351. package/src/lib/middleware/sort.js +49 -49
  352. package/src/lib/middleware/sync.js +42 -42
  353. package/src/lib/middleware/tests/app/app.js +96 -96
  354. package/src/lib/middleware/tests/app/modules/404page/pages/frontStore/product/[loadProduct]loadCategory.js +3 -3
  355. package/src/lib/middleware/tests/app/modules/404page/pages/frontStore/product/[loadProduct]loadProductImage.js +5 -5
  356. package/src/lib/middleware/tests/app/modules/404page/pages/frontStore/product/loadProduct.js +10 -10
  357. package/src/lib/middleware/tests/app/modules/404page/pages/frontStore/product/route.json +5 -5
  358. package/src/lib/middleware/tests/app/modules/api/api/createA/index.js +3 -3
  359. package/src/lib/middleware/tests/app/modules/api/api/createA/route.json +4 -4
  360. package/src/lib/middleware/tests/app/modules/api/api/global/apiGlobal.js +3 -3
  361. package/src/lib/middleware/tests/app/modules/authcopy/api/createA/[index]afterIndex.js +3 -3
  362. package/src/lib/middleware/tests/app/modules/authcopy/api/global/[context]auth.js +3 -3
  363. package/src/lib/middleware/tests/app/modules/authcopy/api/global/apiAuthGlobal.js +3 -3
  364. package/src/lib/middleware/tests/app/modules/authcopy/pages/global/[context]auth.js +1 -1
  365. package/src/lib/middleware/tests/app/modules/basecopy/api/global/[apiResponse]apiErrorHandler.js +3 -3
  366. package/src/lib/middleware/tests/app/modules/basecopy/api/global/[auth]apiResponse[apiErrorHandler].js +3 -3
  367. package/src/lib/middleware/tests/app/modules/basecopy/api/global/[auth]payloadValidate.js +3 -3
  368. package/src/lib/middleware/tests/app/modules/basecopy/api/global/[payloadValidate]escapeHtml.js +3 -3
  369. package/src/lib/middleware/tests/app/modules/basecopy/api/global/context.js +38 -38
  370. package/src/lib/middleware/tests/app/modules/basecopy/pages/admin/adminStaticAsset/route.json +4 -4
  371. package/src/lib/middleware/tests/app/modules/basecopy/pages/admin/adminStaticAsset/staticAssets.js +3 -3
  372. package/src/lib/middleware/tests/app/modules/basecopy/pages/admin/all/adminTitle.js +1 -1
  373. package/src/lib/middleware/tests/app/modules/basecopy/pages/frontStore/all/title.js +1 -1
  374. package/src/lib/middleware/tests/app/modules/basecopy/pages/frontStore/notFound/route.json +4 -4
  375. package/src/lib/middleware/tests/app/modules/basecopy/pages/frontStore/staticAsset/[context]staticAssets[auth].js +3 -3
  376. package/src/lib/middleware/tests/app/modules/basecopy/pages/frontStore/staticAsset/route.json +4 -4
  377. package/src/lib/middleware/tests/app/modules/basecopy/pages/global/{[notification]notFound[response].js → [auth]notFound[response].js} +4 -4
  378. package/src/lib/middleware/tests/app/modules/basecopy/pages/global/[notFound]dummy[response].js +3 -3
  379. package/src/lib/middleware/tests/app/modules/basecopy/pages/global/[response]errorHandler.js +4 -4
  380. package/src/lib/middleware/tests/app/modules/basecopy/pages/global/context.js +37 -37
  381. package/src/lib/middleware/tests/app/modules/basecopy/pages/global/response[errorHandler].js +4 -4
  382. package/src/lib/middleware/tests/app/modules/delegate/pages/frontStore/delegateTest/asyncWithNext[collection].js +8 -8
  383. package/src/lib/middleware/tests/app/modules/delegate/pages/frontStore/delegateTest/async[collection].js +7 -7
  384. package/src/lib/middleware/tests/app/modules/delegate/pages/frontStore/delegateTest/collection.js +9 -9
  385. package/src/lib/middleware/tests/app/modules/delegate/pages/frontStore/delegateTest/returnOne[returnTwo].js +3 -3
  386. package/src/lib/middleware/tests/app/modules/delegate/pages/frontStore/delegateTest/returnThree[collection].js +3 -3
  387. package/src/lib/middleware/tests/app/modules/delegate/pages/frontStore/delegateTest/returnTwo[returnThree].js +5 -5
  388. package/src/lib/middleware/tests/app/modules/delegate/pages/frontStore/delegateTest/route.json +4 -4
  389. package/src/lib/middleware/tests/app/modules/delegate/pages/frontStore/delegateTest/syncWithNext[collection].js +5 -5
  390. package/src/lib/middleware/tests/app/modules/delegate/pages/frontStore/delegateTest/sync[collection].js +5 -5
  391. package/src/lib/middleware/tests/app/modules/error/pages/frontStore/errorHandlerTest/errorInAsync.js +5 -5
  392. package/src/lib/middleware/tests/app/modules/error/pages/frontStore/errorHandlerTest/errorInAsyncWithNext.js +12 -12
  393. package/src/lib/middleware/tests/app/modules/error/pages/frontStore/errorHandlerTest/errorInSync.js +5 -5
  394. package/src/lib/middleware/tests/app/modules/error/pages/frontStore/errorHandlerTest/errorInSyncWithNext.js +5 -5
  395. package/src/lib/middleware/tests/app/modules/error/pages/frontStore/errorHandlerTest/route.json +4 -4
  396. package/src/lib/middleware/tests/app/modules/graphqlcopy/pages/global/[bodyParser]buildQuery[graphql].js +1 -1
  397. package/src/lib/middleware/tests/app/modules/graphqlcopy/pages/global/{[buildQuery]graphql[notification].js → [buildQuery]graphql[notFound].js} +1 -1
  398. package/src/lib/middleware/tests/app/modules/graphqlcopy/pages/global/bodyParser[buildQuery].js +7 -7
  399. package/src/lib/middleware/tests/app/modules/handler/pages/admin/productEdit/[loadProduct]loadCategory.js +3 -3
  400. package/src/lib/middleware/tests/app/modules/handler/pages/admin/productEdit/[loadProduct]loadProductImage.js +5 -5
  401. package/src/lib/middleware/tests/app/modules/handler/pages/admin/productEdit/loadProduct.js +10 -10
  402. package/src/lib/middleware/tests/app/modules/handler/pages/admin/productEdit/route.json +4 -4
  403. package/src/lib/middleware/tests/app/modules/handler/pages/frontStore/middleware/[loadAttribute]loadOptions.js +3 -3
  404. package/src/lib/middleware/tests/app/modules/handler/pages/frontStore/middleware/[loadProductImage]loadAttribute.js +5 -5
  405. package/src/lib/middleware/tests/app/modules/handler/pages/frontStore/middleware/[loadProduct]loadCategory.js +3 -3
  406. package/src/lib/middleware/tests/app/modules/handler/pages/frontStore/middleware/[loadProduct]loadProductImage.js +5 -5
  407. package/src/lib/middleware/tests/app/modules/handler/pages/frontStore/middleware/loadProduct.js +5 -5
  408. package/src/lib/middleware/tests/app/modules/handler/pages/frontStore/middleware/route.json +4 -4
  409. package/src/lib/middleware/tests/unit/404page.handling.test.js +59 -59
  410. package/src/lib/middleware/tests/unit/500error.handling.test.js +36 -36
  411. package/src/lib/middleware/tests/unit/apiHandler.middleware.test.js +38 -38
  412. package/src/lib/middleware/tests/unit/delegate.test.js +34 -34
  413. package/src/lib/middleware/tests/unit/handler.getMiddlewaresByRoute.test.js +70 -70
  414. package/src/lib/middleware/tests/unit/handler.middleware.test.js +39 -39
  415. package/src/lib/middleware/tests/unit/middleware.buildMiddlewareFunction.test.js +107 -107
  416. package/src/lib/middleware/tests/unit/middleware.getRouteFromPath.test.js +145 -145
  417. package/src/lib/middleware/tests/unit/middleware.noDublicateId.test.js +159 -159
  418. package/src/lib/middleware/tests/unit/middleware.scanForMiddlewareFunctions.test.js +123 -123
  419. package/src/lib/middlewares/bodyJson.js +5 -5
  420. package/src/lib/middlewares/multerNone.js +7 -7
  421. package/src/lib/middlewares/publicStatic.js +27 -27
  422. package/src/lib/middlewares/static.js +43 -43
  423. package/src/lib/middlewares/themePublicStatic.js +35 -35
  424. package/src/lib/pathToRegexp.js +215 -215
  425. package/src/lib/postgres/connection.js +70 -70
  426. package/src/lib/response/render.js +117 -112
  427. package/src/lib/router/Router.js +40 -40
  428. package/src/lib/router/buildAbsoluteUrl.js +24 -24
  429. package/src/lib/router/buildUrl.js +28 -28
  430. package/src/lib/router/loadModuleRoutes.js +64 -64
  431. package/src/lib/router/registerAdminRoute.js +34 -34
  432. package/src/lib/router/registerFrontStoreRoute.js +37 -37
  433. package/src/lib/router/scanForRoutes.js +88 -88
  434. package/src/lib/router/tests/unit/a/invalidMethod/routeOne/route.json +4 -4
  435. package/src/lib/router/tests/unit/a/invalidPath/routeTwo/route.json +4 -4
  436. package/src/lib/router/tests/unit/b/routeOne/route.json +4 -4
  437. package/src/lib/router/tests/unit/b/routeThree/route.json +4 -4
  438. package/src/lib/router/tests/unit/b/routeTwo/route.json +4 -4
  439. package/src/lib/router/tests/unit/unit.scanForRoutes.test.js +23 -23
  440. package/src/lib/router/tests/unit/unit.validateRoute.test.js +31 -31
  441. package/src/lib/router/validateRoute.js +26 -26
  442. package/src/lib/util/assign.js +39 -39
  443. package/src/lib/util/buildFilterFromUrl.js +46 -46
  444. package/src/lib/util/camelCase.js +17 -17
  445. package/src/lib/util/defaultPaginationFilters.js +104 -104
  446. package/src/lib/util/events.js +3 -3
  447. package/src/lib/util/filterOperationMapp.js +16 -16
  448. package/src/lib/util/formData.js +30 -30
  449. package/src/lib/util/formToJson.js +58 -58
  450. package/src/lib/util/get.js +27 -27
  451. package/src/lib/util/getConfig.js +17 -17
  452. package/src/lib/util/getEnabledWidgets.js +34 -28
  453. package/src/lib/util/getEnv.js +6 -6
  454. package/src/lib/util/hookable.js +109 -120
  455. package/src/lib/util/httpStatus.js +13 -13
  456. package/src/lib/util/isAjax.js +13 -13
  457. package/src/lib/util/isDevelopmentMode.js +1 -1
  458. package/src/lib/util/isProductionMode.js +1 -1
  459. package/src/lib/util/merge.js +82 -82
  460. package/src/lib/util/passwordHelper.js +59 -59
  461. package/src/lib/util/readCsvFile.js +25 -25
  462. package/src/lib/util/registry.js +243 -243
  463. package/src/lib/util/tests/unit/util.assign.test.js +42 -42
  464. package/src/lib/util/tests/unit/util.get.test.js +26 -26
  465. package/src/lib/util/tests/unit/util.getConfig.test.js +9 -9
  466. package/src/lib/util/tests/unit/util.hookable.test.js +188 -188
  467. package/src/lib/util/tests/unit/util.merge.test.js +55 -55
  468. package/src/lib/util/tests/unit/util.registry.test.js +202 -202
  469. package/src/lib/util/throwIf.js +7 -0
  470. package/src/lib/util/validateConfiguration.js +83 -83
  471. package/src/lib/webpack/createBaseConfig.js +189 -189
  472. package/src/lib/webpack/dev/createConfigClient.js +117 -111
  473. package/src/lib/webpack/getRouteBuildPath.js +8 -8
  474. package/src/lib/webpack/getRouteBuildSubPath.js +4 -4
  475. package/src/lib/webpack/isBuildRequired.js +7 -7
  476. package/src/lib/webpack/loaders/AreaLoader.js +63 -64
  477. package/src/lib/webpack/loaders/GraphQLAPILoader.js +15 -15
  478. package/src/lib/webpack/loaders/GraphqlLoader.js +14 -14
  479. package/src/lib/webpack/loaders/LayoutLoader.js +9 -9
  480. package/src/lib/webpack/loaders/StyleLoader.js +5 -5
  481. package/src/lib/webpack/loaders/TailwindLoader.js +53 -61
  482. package/src/lib/webpack/loaders/TranslationLoader.js +24 -24
  483. package/src/lib/webpack/loaders/loadTranslationFromCsv.js +47 -47
  484. package/src/lib/webpack/plugins/FileListPlugin.js +43 -43
  485. package/src/lib/webpack/plugins/GraphqlPlugin.js +29 -29
  486. package/src/lib/webpack/plugins/Tailwindcss.js +94 -96
  487. package/src/lib/webpack/prod/createConfigClient.js +101 -95
  488. package/src/lib/webpack/prod/createConfigServer.js +46 -46
  489. package/src/lib/webpack/resolveAlias.js +71 -71
  490. package/src/lib/webpack/tests/unit/resolveAlias.test.js +52 -52
  491. package/src/lib/webpack/util/getTailwindConfig.js +33 -33
  492. package/src/lib/webpack/util/keyGenerator.js +9 -0
  493. package/src/lib/webpack/util/parseGraphql.js +102 -101
  494. package/src/lib/webpack/util/parseGraphqlByFile.js +218 -218
  495. package/src/modules/auth/api/global/[context]getCurrentUser.js +58 -58
  496. package/src/modules/auth/api/global/[getCurrentUser]auth.js +52 -52
  497. package/src/modules/auth/api/global/[getCurrentUser]demoAccountBlocking[auth].js +28 -28
  498. package/src/modules/auth/bootstrap.js +24 -47
  499. package/src/modules/auth/graphql/types/AdminUser/AdminUser.admin.graphql +26 -26
  500. package/src/modules/auth/graphql/types/AdminUser/AdminUser.admin.resolvers.js +90 -90
  501. package/src/modules/auth/migration/Version-1.0.0.js +34 -34
  502. package/src/modules/auth/migration/Version-1.0.1.js +24 -24
  503. package/src/modules/auth/pages/admin/adminLogin/LoginForm.jsx +104 -104
  504. package/src/modules/auth/pages/admin/adminLogin/LoginForm.scss +53 -53
  505. package/src/modules/auth/pages/admin/adminLogin/index.js +19 -19
  506. package/src/modules/auth/pages/admin/adminLogin/route.json +4 -4
  507. package/src/modules/auth/pages/admin/adminLoginJson/[bodyParser]logIn.js +43 -43
  508. package/src/modules/auth/pages/admin/adminLoginJson/payloadSchema.json +20 -20
  509. package/src/modules/auth/pages/admin/adminLoginJson/route.json +6 -6
  510. package/src/modules/auth/pages/admin/adminLogoutJson/logout.js +35 -35
  511. package/src/modules/auth/pages/admin/adminLogoutJson/route.json +4 -4
  512. package/src/modules/auth/pages/admin/all/AdminUser.jsx +94 -90
  513. package/src/modules/auth/pages/admin/all/AdminUser.scss +20 -20
  514. package/src/modules/auth/pages/admin/all/[context]auth.js +34 -34
  515. package/src/modules/auth/services/getAdminSessionCookieName.js +4 -4
  516. package/src/modules/auth/services/getCookieSecret.js +3 -3
  517. package/src/modules/auth/services/getFrontStoreSessionCookieName.js +4 -4
  518. package/src/modules/auth/services/getSessionConfig.js +20 -20
  519. package/src/modules/auth/services/loginUserWithEmail.js +31 -0
  520. package/src/modules/auth/services/logoutUser.js +9 -0
  521. package/src/modules/base/api/global/[apiResponse]apiErrorHandler.js +38 -38
  522. package/src/modules/base/api/global/[auth]apiResponse[apiErrorHandler].js +34 -34
  523. package/src/modules/base/api/global/[auth]payloadValidate.js +47 -47
  524. package/src/modules/base/api/global/[payloadValidate]escapeHtml.js +12 -12
  525. package/src/modules/base/api/global/context.js +40 -40
  526. package/src/modules/base/bootstrap.js +107 -86
  527. package/src/modules/base/graphql/types/Country/Country.graphql +13 -13
  528. package/src/modules/base/graphql/types/Country/Country.resolvers.js +44 -44
  529. package/src/modules/base/graphql/types/Currency/Currency.graphql +11 -11
  530. package/src/modules/base/graphql/types/Currency/Currency.resolvers.js +7 -7
  531. package/src/modules/base/graphql/types/DateTime/DateTime.graphql +8 -8
  532. package/src/modules/base/graphql/types/DateTime/DateTime.resolvers.js +24 -24
  533. package/src/modules/base/graphql/types/Province/Province.graphql +12 -12
  534. package/src/modules/base/graphql/types/Province/Province.resolvers.js +38 -38
  535. package/src/modules/base/graphql/types/Route/Route.admin.graphql +15 -15
  536. package/src/modules/base/graphql/types/Route/Route.admin.resolvers.js +10 -10
  537. package/src/modules/base/graphql/types/Timezone/Timezone.graphql +11 -11
  538. package/src/modules/base/graphql/types/Timezone/Timezone.resolvers.js +7 -7
  539. package/src/modules/base/graphql/types/Url/Url.graphql +11 -11
  540. package/src/modules/base/graphql/types/Url/Url.resolvers.js +18 -18
  541. package/src/modules/base/graphql/types/Version/Version.graphql +3 -0
  542. package/src/modules/base/graphql/types/Version/Version.resolvers.js +7 -0
  543. package/src/modules/base/migration/Version-1.0.1.js +16 -16
  544. package/src/modules/base/pages/admin/all/[context]isAdmin[auth].js +4 -4
  545. package/src/modules/base/pages/global/{[notification]notFound[response].js → [auth]notFound[response].js} +16 -16
  546. package/src/modules/base/pages/global/[response]errorHandler.js +36 -36
  547. package/src/modules/base/pages/global/context.js +41 -41
  548. package/src/modules/base/pages/global/response[errorHandler].js +93 -90
  549. package/src/modules/base/services/escapePayload.js +34 -34
  550. package/src/modules/base/services/getAjv.js +19 -19
  551. package/src/modules/base/services/markSkipEscape.js +30 -30
  552. package/src/modules/base/services/notifications.js +25 -0
  553. package/src/modules/base/services/secret.js +4 -4
  554. package/src/modules/catalog/api/addProductToCategory/[context]bodyParser[auth].js +5 -5
  555. package/src/modules/catalog/api/addProductToCategory/addProducts.js +80 -80
  556. package/src/modules/catalog/api/addProductToCategory/payloadSchema.json +12 -12
  557. package/src/modules/catalog/api/addProductToCategory/route.json +5 -5
  558. package/src/modules/catalog/api/addProductToCollection/[context]bodyParser[auth].js +5 -5
  559. package/src/modules/catalog/api/addProductToCollection/addProducts.js +102 -102
  560. package/src/modules/catalog/api/addProductToCollection/payloadSchema.json +12 -12
  561. package/src/modules/catalog/api/addProductToCollection/route.json +5 -5
  562. package/src/modules/catalog/api/addVariantItem/[bodyParser]addItem.js +121 -121
  563. package/src/modules/catalog/api/addVariantItem/[context]bodyParser[auth].js +5 -5
  564. package/src/modules/catalog/api/addVariantItem/payloadSchema.json +10 -10
  565. package/src/modules/catalog/api/addVariantItem/route.json +5 -5
  566. package/src/modules/catalog/api/createAttribute/[context]bodyParser[auth].js +5 -5
  567. package/src/modules/catalog/api/createAttribute/createAttribute[finish].js +9 -9
  568. package/src/modules/catalog/api/createAttribute/finish[apiResponse].js +27 -27
  569. package/src/modules/catalog/api/createAttribute/payloadSchema.json +59 -59
  570. package/src/modules/catalog/api/createAttribute/route.json +5 -5
  571. package/src/modules/catalog/api/createAttributeGroup/[bodyParser]saveGroup.js +49 -49
  572. package/src/modules/catalog/api/createAttributeGroup/[context]bodyParser[auth].js +5 -5
  573. package/src/modules/catalog/api/createAttributeGroup/payloadSchema.json +10 -10
  574. package/src/modules/catalog/api/createAttributeGroup/route.json +5 -5
  575. package/src/modules/catalog/api/createCategory/[context]bodyParser[auth].js +5 -5
  576. package/src/modules/catalog/api/createCategory/createCategory[finish].js +9 -9
  577. package/src/modules/catalog/api/createCategory/finish[apiResponse].js +33 -33
  578. package/src/modules/catalog/api/createCategory/payloadSchema.json +10 -10
  579. package/src/modules/catalog/api/createCategory/route.json +5 -5
  580. package/src/modules/catalog/api/createCollection/[context]bodyParser[auth].js +5 -5
  581. package/src/modules/catalog/api/createCollection/createCollection[finish].js +9 -9
  582. package/src/modules/catalog/api/createCollection/finish[apiResponse].js +27 -27
  583. package/src/modules/catalog/api/createCollection/payloadSchema.json +10 -10
  584. package/src/modules/catalog/api/createCollection/route.json +5 -5
  585. package/src/modules/catalog/api/createProduct/[context]bodyParser[auth].js +5 -5
  586. package/src/modules/catalog/api/createProduct/createProduct[finish].js +9 -9
  587. package/src/modules/catalog/api/createProduct/finish[apiResponse].js +33 -33
  588. package/src/modules/catalog/api/createProduct/payloadSchema.json +10 -10
  589. package/src/modules/catalog/api/createProduct/route.json +5 -5
  590. package/src/modules/catalog/api/createVariantGroup/[bodyParser]saveGroup.js +138 -138
  591. package/src/modules/catalog/api/createVariantGroup/[context]bodyParser[auth].js +5 -5
  592. package/src/modules/catalog/api/createVariantGroup/payloadSchema.json +17 -17
  593. package/src/modules/catalog/api/createVariantGroup/route.json +5 -5
  594. package/src/modules/catalog/api/deleteAttribute/deleteAttribute.js +27 -27
  595. package/src/modules/catalog/api/deleteAttribute/route.json +5 -5
  596. package/src/modules/catalog/api/deleteAttributeGroup/deleteAttributeGroup.js +58 -58
  597. package/src/modules/catalog/api/deleteAttributeGroup/route.json +5 -5
  598. package/src/modules/catalog/api/deleteCategory/deleteCategory.js +27 -27
  599. package/src/modules/catalog/api/deleteCategory/route.json +5 -5
  600. package/src/modules/catalog/api/deleteCollection/deleteCollection.js +27 -27
  601. package/src/modules/catalog/api/deleteCollection/route.json +5 -5
  602. package/src/modules/catalog/api/deleteProduct/deleteProduct.js +27 -27
  603. package/src/modules/catalog/api/deleteProduct/route.json +5 -5
  604. package/src/modules/catalog/api/removeProductFromCategory/[context]bodyParser[auth].js +5 -5
  605. package/src/modules/catalog/api/removeProductFromCategory/removeProducts.js +59 -59
  606. package/src/modules/catalog/api/removeProductFromCategory/route.json +5 -5
  607. package/src/modules/catalog/api/removeProductFromCollection/[context]bodyParser[auth].js +5 -5
  608. package/src/modules/catalog/api/removeProductFromCollection/removeProducts.js +88 -88
  609. package/src/modules/catalog/api/removeProductFromCollection/route.json +5 -5
  610. package/src/modules/catalog/api/unlinkVariant/[context]multerNone[auth].js +7 -7
  611. package/src/modules/catalog/api/unlinkVariant/route.json +5 -5
  612. package/src/modules/catalog/api/unlinkVariant/unlinkVariants.js +29 -29
  613. package/src/modules/catalog/api/updateAttribute/[context]bodyParser[auth].js +5 -5
  614. package/src/modules/catalog/api/updateAttribute/finish[apiResponse].js +27 -27
  615. package/src/modules/catalog/api/updateAttribute/route.json +5 -5
  616. package/src/modules/catalog/api/updateAttribute/updateAttribute[finish].js +7 -7
  617. package/src/modules/catalog/api/updateAttributeGroup/[bodyParser]saveGroup.js +48 -48
  618. package/src/modules/catalog/api/updateAttributeGroup/[context]bodyParser[auth].js +5 -5
  619. package/src/modules/catalog/api/updateAttributeGroup/payloadSchema.json +10 -10
  620. package/src/modules/catalog/api/updateAttributeGroup/route.json +5 -5
  621. package/src/modules/catalog/api/updateCategory/[context]bodyParser[auth].js +5 -5
  622. package/src/modules/catalog/api/updateCategory/finish[apiResponse].js +33 -33
  623. package/src/modules/catalog/api/updateCategory/payloadSchema.json +10 -10
  624. package/src/modules/catalog/api/updateCategory/route.json +5 -5
  625. package/src/modules/catalog/api/updateCategory/updateCategory[finish].js +9 -9
  626. package/src/modules/catalog/api/updateCollection/[context]bodyParser[auth].js +5 -5
  627. package/src/modules/catalog/api/updateCollection/finish[apiResponse].js +27 -27
  628. package/src/modules/catalog/api/updateCollection/payloadSchema.json +10 -10
  629. package/src/modules/catalog/api/updateCollection/route.json +5 -5
  630. package/src/modules/catalog/api/updateCollection/updateCollection[finish].js +9 -9
  631. package/src/modules/catalog/api/updateProduct/[context]bodyParser[auth].js +5 -5
  632. package/src/modules/catalog/api/updateProduct/finish[apiResponse].js +33 -33
  633. package/src/modules/catalog/api/updateProduct/payloadSchema.json +10 -10
  634. package/src/modules/catalog/api/updateProduct/route.json +5 -5
  635. package/src/modules/catalog/api/updateProduct/updateProduct[finish].js +9 -9
  636. package/src/modules/catalog/api/variantSearch/loadVariants.js +88 -88
  637. package/src/modules/catalog/api/variantSearch/route.json +5 -5
  638. package/src/modules/catalog/bootstrap.js +216 -216
  639. package/src/modules/catalog/graphql/types/Attribute/Attribute.admin.graphql +42 -42
  640. package/src/modules/catalog/graphql/types/Attribute/Attribute.admin.resolvers.js +70 -70
  641. package/src/modules/catalog/graphql/types/Attribute/Attribute.graphql +28 -28
  642. package/src/modules/catalog/graphql/types/Attribute/Attribute.resolvers.js +28 -28
  643. package/src/modules/catalog/graphql/types/Category/Category.admin.graphql +9 -9
  644. package/src/modules/catalog/graphql/types/Category/Category.admin.resolvers.js +28 -28
  645. package/src/modules/catalog/graphql/types/Category/Category.graphql +105 -105
  646. package/src/modules/catalog/graphql/types/Category/Category.resolvers.js +196 -196
  647. package/src/modules/catalog/graphql/types/Collection/Collection.admin.graphql +10 -10
  648. package/src/modules/catalog/graphql/types/Collection/Collection.admin.resolvers.js +31 -31
  649. package/src/modules/catalog/graphql/types/Collection/Collection.graphql +30 -30
  650. package/src/modules/catalog/graphql/types/Collection/Collection.resolvers.js +85 -85
  651. package/src/modules/catalog/graphql/types/FeaturedProduct/FeaturedProduct.graphql +3 -3
  652. package/src/modules/catalog/graphql/types/FeaturedProduct/FeaturedProduct.resolvers.js +55 -55
  653. package/src/modules/catalog/graphql/types/Product/Attribute/ProductAttribute.graphql +15 -15
  654. package/src/modules/catalog/graphql/types/Product/Attribute/ProductAttribute.resolvers.js +42 -42
  655. package/src/modules/catalog/graphql/types/Product/CustomOption/CustomOption.graphql +23 -23
  656. package/src/modules/catalog/graphql/types/Product/CustomOption/CustomOption.resolvers.js +5 -5
  657. package/src/modules/catalog/graphql/types/Product/Image/ProductImage.graphql +18 -18
  658. package/src/modules/catalog/graphql/types/Product/Image/ProductImage.resolvers.js +38 -38
  659. package/src/modules/catalog/graphql/types/Product/Inventory/Inventory.admin.graphql +3 -3
  660. package/src/modules/catalog/graphql/types/Product/Inventory/Inventory.admin.resolvers.js +5 -5
  661. package/src/modules/catalog/graphql/types/Product/Inventory/Inventory.graphql +12 -12
  662. package/src/modules/catalog/graphql/types/Product/Inventory/Inventory.resolvers.js +11 -11
  663. package/src/modules/catalog/graphql/types/Product/Price/ProductPrice.graphql +11 -11
  664. package/src/modules/catalog/graphql/types/Product/Price/ProductPrice.resolvers.js +11 -11
  665. package/src/modules/catalog/graphql/types/Product/Product.admin.graphql +5 -5
  666. package/src/modules/catalog/graphql/types/Product/Product.admin.resolvers.js +9 -9
  667. package/src/modules/catalog/graphql/types/Product/Product.graphql +36 -36
  668. package/src/modules/catalog/graphql/types/Product/Product.resolvers.js +77 -77
  669. package/src/modules/catalog/graphql/types/Product/Variant/Variant.graphql +52 -52
  670. package/src/modules/catalog/graphql/types/Product/Variant/Variant.resolvers.js +153 -152
  671. package/src/modules/catalog/graphql/types/Widget/CollectionProductsWidget/CollectionProductsWidget.graphql +10 -10
  672. package/src/modules/catalog/graphql/types/Widget/CollectionProductsWidget/CollectionProductsWidget.resolvers.js +8 -8
  673. package/src/modules/catalog/migration/Version-1.0.0.js +685 -685
  674. package/src/modules/catalog/migration/Version-1.0.1.js +42 -42
  675. package/src/modules/catalog/migration/Version-1.0.2.js +270 -270
  676. package/src/modules/catalog/migration/Version-1.0.3.js +10 -10
  677. package/src/modules/catalog/migration/Version-1.0.4.js +211 -211
  678. package/src/modules/catalog/migration/Version-1.0.5.js +10 -10
  679. package/src/modules/catalog/migration/Version-1.0.6.js +69 -69
  680. package/src/modules/catalog/migration/Version-1.0.7.js +10 -10
  681. package/src/modules/catalog/pages/admin/all/CatalogMenuGroup.jsx +64 -64
  682. package/src/modules/catalog/pages/admin/all/NewProductQuickLink.jsx +23 -23
  683. package/src/modules/catalog/pages/admin/attributeEdit/AttributeEditForm.jsx +52 -52
  684. package/src/modules/catalog/pages/admin/attributeEdit/index.js +29 -29
  685. package/src/modules/catalog/pages/admin/attributeEdit/route.json +4 -4
  686. package/src/modules/catalog/pages/admin/attributeEdit+attributeNew/Avaibility.jsx +90 -90
  687. package/src/modules/catalog/pages/admin/attributeEdit+attributeNew/FormContent.jsx +58 -58
  688. package/src/modules/catalog/pages/admin/attributeEdit+attributeNew/FormContent.scss +7 -7
  689. package/src/modules/catalog/pages/admin/attributeEdit+attributeNew/General.jsx +341 -341
  690. package/src/modules/catalog/pages/admin/attributeEdit+attributeNew/PageHeading.jsx +41 -41
  691. package/src/modules/catalog/pages/admin/attributeGrid/Grid.jsx +394 -393
  692. package/src/modules/catalog/pages/admin/attributeGrid/Heading.jsx +11 -11
  693. package/src/modules/catalog/pages/admin/attributeGrid/NewAttributeButton.jsx +22 -22
  694. package/src/modules/catalog/pages/admin/attributeGrid/TypeRow.jsx +21 -21
  695. package/src/modules/catalog/pages/admin/attributeGrid/index.js +15 -15
  696. package/src/modules/catalog/pages/admin/attributeGrid/route.json +4 -4
  697. package/src/modules/catalog/pages/admin/attributeNew/AttributeNewForm.jsx +60 -60
  698. package/src/modules/catalog/pages/admin/attributeNew/index.js +11 -11
  699. package/src/modules/catalog/pages/admin/attributeNew/route.json +4 -4
  700. package/src/modules/catalog/pages/admin/categoryEdit/CategoryEditForm.jsx +52 -52
  701. package/src/modules/catalog/pages/admin/categoryEdit/Products.jsx +287 -287
  702. package/src/modules/catalog/pages/admin/categoryEdit/Products.scss +48 -48
  703. package/src/modules/catalog/pages/admin/categoryEdit/index.js +37 -37
  704. package/src/modules/catalog/pages/admin/categoryEdit/route.json +4 -4
  705. package/src/modules/catalog/pages/admin/categoryEdit+categoryNew/FormContent.jsx +58 -58
  706. package/src/modules/catalog/pages/admin/categoryEdit+categoryNew/FormContent.scss +7 -7
  707. package/src/modules/catalog/pages/admin/categoryEdit+categoryNew/General.jsx +231 -207
  708. package/src/modules/catalog/pages/admin/categoryEdit+categoryNew/Image.jsx +188 -188
  709. package/src/modules/catalog/pages/admin/categoryEdit+categoryNew/Image.scss +50 -50
  710. package/src/modules/catalog/pages/admin/categoryEdit+categoryNew/PageHeading.jsx +37 -37
  711. package/src/modules/catalog/pages/admin/categoryEdit+categoryNew/Seo.jsx +104 -104
  712. package/src/modules/catalog/pages/admin/categoryEdit+categoryNew/Status.jsx +75 -75
  713. package/src/modules/catalog/pages/admin/categoryGrid/Grid.jsx +335 -333
  714. package/src/modules/catalog/pages/admin/categoryGrid/Heading.jsx +11 -11
  715. package/src/modules/catalog/pages/admin/categoryGrid/NameRow.jsx +25 -25
  716. package/src/modules/catalog/pages/admin/categoryGrid/NewCategoryButton.jsx +22 -22
  717. package/src/modules/catalog/pages/admin/categoryGrid/index.js +15 -15
  718. package/src/modules/catalog/pages/admin/categoryGrid/route.json +4 -4
  719. package/src/modules/catalog/pages/admin/categoryNew/CategoryNewForm.jsx +60 -60
  720. package/src/modules/catalog/pages/admin/categoryNew/index.js +11 -11
  721. package/src/modules/catalog/pages/admin/categoryNew/route.json +4 -4
  722. package/src/modules/catalog/pages/admin/collectionEdit/CollectionEditForm.jsx +52 -52
  723. package/src/modules/catalog/pages/admin/collectionEdit/Products.jsx +289 -289
  724. package/src/modules/catalog/pages/admin/collectionEdit/Products.scss +48 -48
  725. package/src/modules/catalog/pages/admin/collectionEdit/index.js +28 -28
  726. package/src/modules/catalog/pages/admin/collectionEdit/route.json +4 -4
  727. package/src/modules/catalog/pages/admin/collectionEdit+collectionNew/FormContent.jsx +53 -53
  728. package/src/modules/catalog/pages/admin/collectionEdit+collectionNew/FormContent.scss +7 -7
  729. package/src/modules/catalog/pages/admin/collectionEdit+collectionNew/General.jsx +129 -116
  730. package/src/modules/catalog/pages/admin/collectionEdit+collectionNew/PageHeading.jsx +39 -39
  731. package/src/modules/catalog/pages/admin/collectionGrid/Grid.jsx +335 -329
  732. package/src/modules/catalog/pages/admin/collectionGrid/Heading.jsx +13 -13
  733. package/src/modules/catalog/pages/admin/collectionGrid/NameRow.jsx +25 -25
  734. package/src/modules/catalog/pages/admin/collectionGrid/NewCollectionButton.jsx +22 -22
  735. package/src/modules/catalog/pages/admin/collectionGrid/index.js +15 -15
  736. package/src/modules/catalog/pages/admin/collectionGrid/route.json +4 -4
  737. package/src/modules/catalog/pages/admin/collectionNew/CollectionNewForm.jsx +60 -60
  738. package/src/modules/catalog/pages/admin/collectionNew/index.js +11 -11
  739. package/src/modules/catalog/pages/admin/collectionNew/route.json +4 -4
  740. package/src/modules/catalog/pages/admin/productEdit/Collection.jsx +62 -56
  741. package/src/modules/catalog/pages/admin/productEdit/ProductEditForm.jsx +63 -63
  742. package/src/modules/catalog/pages/admin/productEdit/VariantGroup.jsx +93 -93
  743. package/src/modules/catalog/pages/admin/productEdit/index.js +36 -36
  744. package/src/modules/catalog/pages/admin/productEdit/route.json +4 -4
  745. package/src/modules/catalog/pages/admin/productEdit+productNew/Attributes.jsx +292 -287
  746. package/src/modules/catalog/pages/admin/productEdit+productNew/CustomOptions.jsss +164 -164
  747. package/src/modules/catalog/pages/admin/productEdit+productNew/FormContent.jsx +58 -58
  748. package/src/modules/catalog/pages/admin/productEdit+productNew/FormContent.scss +7 -7
  749. package/src/modules/catalog/pages/admin/productEdit+productNew/General.jsx +421 -339
  750. package/src/modules/catalog/pages/admin/productEdit+productNew/Inventory.jsx +92 -92
  751. package/src/modules/catalog/pages/admin/productEdit+productNew/Media.jsx +67 -66
  752. package/src/modules/catalog/pages/admin/productEdit+productNew/PageHeading.jsx +37 -37
  753. package/src/modules/catalog/pages/admin/productEdit+productNew/Seo.jsx +104 -104
  754. package/src/modules/catalog/pages/admin/productEdit+productNew/Status.jsx +69 -69
  755. package/src/modules/catalog/pages/admin/productGrid/Grid.jsx +578 -573
  756. package/src/modules/catalog/pages/admin/productGrid/Heading.jsx +11 -11
  757. package/src/modules/catalog/pages/admin/productGrid/NewProductButton.jsx +22 -22
  758. package/src/modules/catalog/pages/admin/productGrid/index.js +15 -15
  759. package/src/modules/catalog/pages/admin/productGrid/route.json +4 -4
  760. package/src/modules/catalog/pages/admin/productNew/ProductNewForm.jsx +67 -67
  761. package/src/modules/catalog/pages/admin/productNew/index.js +11 -11
  762. package/src/modules/catalog/pages/admin/productNew/route.json +4 -4
  763. package/src/modules/catalog/pages/frontStore/all/SearchBox.jsx +118 -112
  764. package/src/modules/catalog/pages/frontStore/all/SearchBox.scss +40 -40
  765. package/src/modules/catalog/pages/frontStore/catalogSearch/General.jsx +32 -32
  766. package/src/modules/catalog/pages/frontStore/catalogSearch/General.scss +5 -5
  767. package/src/modules/catalog/pages/frontStore/catalogSearch/Pagination.jsx +52 -52
  768. package/src/modules/catalog/pages/frontStore/catalogSearch/Products.jsx +88 -88
  769. package/src/modules/catalog/pages/frontStore/catalogSearch/SearchPage.jsx +15 -15
  770. package/src/modules/catalog/pages/frontStore/catalogSearch/Sorting.jsx +11 -11
  771. package/src/modules/catalog/pages/frontStore/catalogSearch/[index]filters.js +11 -11
  772. package/src/modules/catalog/pages/frontStore/catalogSearch/index.js +23 -23
  773. package/src/modules/catalog/pages/frontStore/catalogSearch/route.json +5 -5
  774. package/src/modules/catalog/pages/frontStore/categoryView/CategoryView.jsx +33 -33
  775. package/src/modules/catalog/pages/frontStore/categoryView/Filter.jsx +256 -256
  776. package/src/modules/catalog/pages/frontStore/categoryView/Filter.scss +142 -142
  777. package/src/modules/catalog/pages/frontStore/categoryView/General.jsx +65 -52
  778. package/src/modules/catalog/pages/frontStore/categoryView/General.scss +24 -24
  779. package/src/modules/catalog/pages/frontStore/categoryView/Pagination.jsx +65 -65
  780. package/src/modules/catalog/pages/frontStore/categoryView/Products.jsx +106 -106
  781. package/src/modules/catalog/pages/frontStore/categoryView/Sorting.jsx +11 -11
  782. package/src/modules/catalog/pages/frontStore/categoryView/[index]filters.js +11 -11
  783. package/src/modules/catalog/pages/frontStore/categoryView/index.js +36 -36
  784. package/src/modules/catalog/pages/frontStore/categoryView/route.json +5 -5
  785. package/src/modules/catalog/pages/frontStore/productView/Attributes.jsx +51 -51
  786. package/src/modules/catalog/pages/frontStore/productView/Description.jsx +43 -32
  787. package/src/modules/catalog/pages/frontStore/productView/Form.jsx +236 -232
  788. package/src/modules/catalog/pages/frontStore/productView/Form.scss +71 -71
  789. package/src/modules/catalog/pages/frontStore/productView/GeneralInfo.jsx +83 -83
  790. package/src/modules/catalog/pages/frontStore/productView/GeneralInfo.scss +3 -3
  791. package/src/modules/catalog/pages/frontStore/productView/Images.jsx +114 -110
  792. package/src/modules/catalog/pages/frontStore/productView/Layout.jsx +22 -22
  793. package/src/modules/catalog/pages/frontStore/productView/Options.jsx +110 -106
  794. package/src/modules/catalog/pages/frontStore/productView/Variants.jsx +272 -272
  795. package/src/modules/catalog/pages/frontStore/productView/Variants.scss +23 -23
  796. package/src/modules/catalog/pages/frontStore/productView/index.js +159 -159
  797. package/src/modules/catalog/pages/frontStore/productView/route.json +5 -5
  798. package/src/modules/catalog/services/AttributeCollection.js +59 -59
  799. package/src/modules/catalog/services/AttributeGroupCollection.js +100 -100
  800. package/src/modules/catalog/services/CategoryCollection.js +66 -66
  801. package/src/modules/catalog/services/CollectionCollection.js +60 -60
  802. package/src/modules/catalog/services/ProductCollection.js +143 -143
  803. package/src/modules/catalog/services/attribute/attributeDataSchema.json +60 -60
  804. package/src/modules/catalog/services/attribute/createProductAttribute.js +150 -150
  805. package/src/modules/catalog/services/attribute/deleteProductAttribute.js +67 -67
  806. package/src/modules/catalog/services/attribute/updateProductAttribute.js +227 -227
  807. package/src/modules/catalog/services/category/categoryDataSchema.json +59 -59
  808. package/src/modules/catalog/services/category/createCategory.js +95 -95
  809. package/src/modules/catalog/services/category/deleteCategory.js +59 -59
  810. package/src/modules/catalog/services/category/updateCategory.js +110 -110
  811. package/src/modules/catalog/services/collection/collectionDataSchema.json +20 -20
  812. package/src/modules/catalog/services/collection/createCollection.js +74 -74
  813. package/src/modules/catalog/services/collection/deleteCollection.js +51 -51
  814. package/src/modules/catalog/services/collection/updateCollection.js +102 -102
  815. package/src/modules/catalog/services/getAttributeGroupsBaseQuery.js +3 -3
  816. package/src/modules/catalog/services/getAttributesBaseQuery.js +3 -3
  817. package/src/modules/catalog/services/getCategoriesBaseQuery.js +14 -14
  818. package/src/modules/catalog/services/getCollectionsBaseQuery.js +6 -6
  819. package/src/modules/catalog/services/getFilterableAttributes.js +77 -77
  820. package/src/modules/catalog/services/getProductsBaseQuery.js +26 -26
  821. package/src/modules/catalog/services/getProductsByCategoryBaseQuery.js +30 -30
  822. package/src/modules/catalog/services/getProductsByCollectionBaseQuery.js +12 -12
  823. package/src/modules/catalog/services/product/createProduct.js +232 -232
  824. package/src/modules/catalog/services/product/deleteProduct.js +74 -74
  825. package/src/modules/catalog/services/product/productDataSchema.json +150 -149
  826. package/src/modules/catalog/services/product/updateProduct.js +393 -393
  827. package/src/modules/catalog/services/registerCartItemProductUrlField.js +35 -35
  828. package/src/modules/catalog/services/registerCartItemVariantOptionsField.js +51 -51
  829. package/src/modules/catalog/services/registerDefaultAttributeCollectionFilters.js +149 -149
  830. package/src/modules/catalog/services/registerDefaultCategoryCollectionFilters.js +101 -101
  831. package/src/modules/catalog/services/registerDefaultCollectionCollectionFilters.js +65 -65
  832. package/src/modules/catalog/services/registerDefaultProductCollectionFilters.js +219 -219
  833. package/src/modules/catalog/subscribers/category_created/buildUrlRewrite.js +58 -58
  834. package/src/modules/catalog/subscribers/category_deleted/deleteUrlRewrite.js +32 -32
  835. package/src/modules/catalog/subscribers/category_updated/builUrlRewrite.js +71 -71
  836. package/src/modules/catalog/subscribers/product_created/builUrlRewrite.js +61 -61
  837. package/src/modules/catalog/subscribers/product_deleted/deleteUrlRewrite.js +12 -12
  838. package/src/modules/catalog/subscribers/product_image_added/localGenerateProductImageVariant.js +62 -62
  839. package/src/modules/catalog/subscribers/product_updated/buildUrlRewrite.js +56 -56
  840. package/src/modules/catalog/tests/intergration/productView.test.js +21 -21
  841. package/src/modules/checkout/api/addCartAddress/[context]bodyParser[auth].js +5 -5
  842. package/src/modules/checkout/api/addCartAddress/payloadSchema.json +23 -23
  843. package/src/modules/checkout/api/addCartAddress/route.json +5 -5
  844. package/src/modules/checkout/api/addCartAddress/saveAddress.js +95 -95
  845. package/src/modules/checkout/api/addCartContactInfo/[context]bodyParser[auth].js +5 -5
  846. package/src/modules/checkout/api/addCartContactInfo/payloadSchema.json +17 -17
  847. package/src/modules/checkout/api/addCartContactInfo/route.json +5 -5
  848. package/src/modules/checkout/api/addCartContactInfo/saveContactInfo.js +43 -43
  849. package/src/modules/checkout/api/addCartItem/[context]bodyParser[auth].js +5 -5
  850. package/src/modules/checkout/api/addCartItem/addItemToCart.js +71 -71
  851. package/src/modules/checkout/api/addCartItem/payloadSchema.json +20 -20
  852. package/src/modules/checkout/api/addCartItem/route.json +5 -5
  853. package/src/modules/checkout/api/addCartPaymentMethod/[context]bodyParser[auth].js +5 -5
  854. package/src/modules/checkout/api/addCartPaymentMethod/payloadSchema.json +20 -20
  855. package/src/modules/checkout/api/addCartPaymentMethod/route.json +5 -5
  856. package/src/modules/checkout/api/addCartPaymentMethod/savePaymentMethod.js +50 -50
  857. package/src/modules/checkout/api/addCartShippingMethod/[context]bodyParser[auth].js +5 -5
  858. package/src/modules/checkout/api/addCartShippingMethod/payloadSchema.json +15 -15
  859. package/src/modules/checkout/api/addCartShippingMethod/route.json +5 -5
  860. package/src/modules/checkout/api/addCartShippingMethod/saveShippingMethod.js +53 -53
  861. package/src/modules/checkout/api/addMineCartItem/[context]bodyParser[auth].js +5 -5
  862. package/src/modules/checkout/api/addMineCartItem/[detectCurrentCart]addItemToCart.js +78 -74
  863. package/src/modules/checkout/api/addMineCartItem/[getCurrentCustomer]detectCurrentCart.js +32 -32
  864. package/src/modules/checkout/api/addMineCartItem/payloadSchema.json +20 -20
  865. package/src/modules/checkout/api/addMineCartItem/route.json +5 -5
  866. package/src/modules/checkout/api/addShippingNote/[context]bodyParser[auth].js +5 -5
  867. package/src/modules/checkout/api/addShippingNote/payloadSchema.json +15 -15
  868. package/src/modules/checkout/api/addShippingNote/route.json +5 -5
  869. package/src/modules/checkout/api/addShippingNote/saveShippingNote.js +50 -50
  870. package/src/modules/checkout/api/addShippingZoneMethod/[context]borderParser[auth].js +5 -5
  871. package/src/modules/checkout/api/addShippingZoneMethod/{addShippingZoneMethod.js → [validateMethod]addShippingZoneMethod.js} +111 -117
  872. package/src/modules/checkout/api/addShippingZoneMethod/payloadSchema.json +82 -40
  873. package/src/modules/checkout/api/addShippingZoneMethod/route.json +5 -5
  874. package/src/modules/checkout/api/addShippingZoneMethod/validateMethod.js +35 -0
  875. package/src/modules/checkout/api/createCart/[context]bodyParser[auth].js +5 -5
  876. package/src/modules/checkout/api/createCart/createNewCart.js +117 -119
  877. package/src/modules/checkout/api/createCart/payloadSchema.json +44 -44
  878. package/src/modules/checkout/api/createCart/route.json +5 -5
  879. package/src/modules/checkout/api/createOrder/[context]bodyParser[auth].js +5 -5
  880. package/src/modules/checkout/api/createOrder/payloadSchema.json +15 -15
  881. package/src/modules/checkout/api/createOrder/placeOrder.js +89 -87
  882. package/src/modules/checkout/api/createOrder/route.json +5 -5
  883. package/src/modules/checkout/api/createShippingMethod/[context]borderParser[auth].js +5 -5
  884. package/src/modules/checkout/api/createShippingMethod/createShippingMethod.js +60 -60
  885. package/src/modules/checkout/api/createShippingMethod/payloadSchema.json +12 -12
  886. package/src/modules/checkout/api/createShippingMethod/route.json +5 -5
  887. package/src/modules/checkout/api/createShippingZone/[context]borderParser[auth].js +5 -5
  888. package/src/modules/checkout/api/createShippingZone/createShippingZone.js +55 -55
  889. package/src/modules/checkout/api/createShippingZone/payloadSchema.json +22 -22
  890. package/src/modules/checkout/api/createShippingZone/route.json +5 -5
  891. package/src/modules/checkout/api/deleteShippingZone/deleteShippingZone.js +58 -58
  892. package/src/modules/checkout/api/deleteShippingZone/route.json +5 -5
  893. package/src/modules/checkout/api/deleteShippingZoneMethod/deleteShippingZoneMethod.js +85 -85
  894. package/src/modules/checkout/api/deleteShippingZoneMethod/route.json +5 -5
  895. package/src/modules/checkout/api/getPaymentMethods/route.json +5 -5
  896. package/src/modules/checkout/api/getPaymentMethods/sendMethods.js +45 -45
  897. package/src/modules/checkout/api/getShippingMethods/route.json +5 -5
  898. package/src/modules/checkout/api/getShippingMethods/sendMethods.js +201 -201
  899. package/src/modules/checkout/api/removeCartItem/removeItem.js +43 -43
  900. package/src/modules/checkout/api/removeCartItem/route.json +5 -5
  901. package/src/modules/checkout/api/removeMineCartItem/[detectCurrentCart]removeItem.js +47 -47
  902. package/src/modules/checkout/api/removeMineCartItem/[getCurrentCustomer]detectCurrentCart.js +3 -3
  903. package/src/modules/checkout/api/removeMineCartItem/route.json +5 -5
  904. package/src/modules/checkout/api/updateCartItemQty/[bodyParser]updateQty.js +49 -49
  905. package/src/modules/checkout/api/updateCartItemQty/[context]bodyParser[auth].js +5 -5
  906. package/src/modules/checkout/api/updateCartItemQty/payloadSchema.json +21 -21
  907. package/src/modules/checkout/api/updateCartItemQty/route.json +5 -5
  908. package/src/modules/checkout/api/updateMineCartItemQty/[context]bodyParser[auth].js +5 -5
  909. package/src/modules/checkout/api/updateMineCartItemQty/[detectCurrentCart]updateQty.js +51 -51
  910. package/src/modules/checkout/api/updateMineCartItemQty/[getCurrentCustomer]detectCurrentCart.js +32 -32
  911. package/src/modules/checkout/api/updateMineCartItemQty/payloadSchema.json +21 -21
  912. package/src/modules/checkout/api/updateMineCartItemQty/route.json +5 -5
  913. package/src/modules/checkout/api/updateShippingMethod/[context]borderParser[auth].js +5 -5
  914. package/src/modules/checkout/api/updateShippingMethod/payloadSchema.json +12 -12
  915. package/src/modules/checkout/api/updateShippingMethod/route.json +5 -5
  916. package/src/modules/checkout/api/updateShippingMethod/updateShippingMethod.js +64 -64
  917. package/src/modules/checkout/api/updateShippingZone/[context]borderParser[auth].js +5 -5
  918. package/src/modules/checkout/api/updateShippingZone/payloadSchema.json +22 -22
  919. package/src/modules/checkout/api/updateShippingZone/route.json +5 -5
  920. package/src/modules/checkout/api/updateShippingZone/updateShippingZone.js +91 -91
  921. package/src/modules/checkout/api/updateShippingZoneMethod/[context]borderParser[auth].js +5 -5
  922. package/src/modules/checkout/api/updateShippingZoneMethod/{updateShippingZoneMethod.js → [validateMethod]updateShippingZoneMethod.js} +118 -118
  923. package/src/modules/checkout/api/updateShippingZoneMethod/payloadSchema.json +79 -79
  924. package/src/modules/checkout/api/updateShippingZoneMethod/route.json +5 -5
  925. package/src/modules/checkout/api/updateShippingZoneMethod/validateMethod.js +3 -0
  926. package/src/modules/checkout/bootstrap.js +63 -63
  927. package/src/modules/checkout/graphql/types/Cart/Cart.graphql +174 -175
  928. package/src/modules/checkout/graphql/types/Cart/Cart.resolvers.js +64 -64
  929. package/src/modules/checkout/graphql/types/Checkout/Checkout.graphql +10 -10
  930. package/src/modules/checkout/graphql/types/Checkout/Checkout.resolvers.js +7 -7
  931. package/src/modules/checkout/graphql/types/CheckoutSetting/CheckoutSetting.graphql +3 -3
  932. package/src/modules/checkout/graphql/types/CheckoutSetting/CheckoutSetting.resolvers.js +7 -7
  933. package/src/modules/checkout/graphql/types/Date/Date.graphql +7 -7
  934. package/src/modules/checkout/graphql/types/Date/Date.resolvers.js +8 -8
  935. package/src/modules/checkout/graphql/types/Price/Price.graphql +8 -8
  936. package/src/modules/checkout/graphql/types/Price/Price.resolvers.js +20 -20
  937. package/src/modules/checkout/graphql/types/ShippingMethod/ShippingMethod.graphql +12 -12
  938. package/src/modules/checkout/graphql/types/ShippingMethod/ShippingMethod.resolvers.js +19 -19
  939. package/src/modules/checkout/graphql/types/ShippingZone/ShippingZone.graphql +55 -55
  940. package/src/modules/checkout/graphql/types/ShippingZone/ShippingZone.resolvers.js +95 -95
  941. package/src/modules/checkout/graphql/types/Weight/Weight.graphql +8 -8
  942. package/src/modules/checkout/graphql/types/Weight/Weight.resolvers.js +17 -17
  943. package/src/modules/checkout/migration/Version-1.0.0.js +290 -289
  944. package/src/modules/checkout/migration/Version-1.0.1.js +87 -87
  945. package/src/modules/checkout/migration/Version-1.0.2.js +32 -32
  946. package/src/modules/checkout/migration/Version-1.0.3.js +25 -25
  947. package/src/modules/checkout/migration/Version-1.0.4.js +52 -52
  948. package/src/modules/checkout/migration/Version-1.0.5.js +28 -28
  949. package/src/modules/checkout/migration/Version-1.0.6.js +201 -201
  950. package/src/modules/checkout/pages/admin/all/ShippingSettingMenu.jsx +26 -26
  951. package/src/modules/checkout/pages/admin/shippingSetting/ShippingSetting.jsx +183 -187
  952. package/src/modules/checkout/pages/admin/shippingSetting/index.js +10 -10
  953. package/src/modules/checkout/pages/admin/shippingSetting/route.json +4 -4
  954. package/src/modules/checkout/pages/frontStore/all/MiniCart.jsx +44 -44
  955. package/src/modules/checkout/pages/frontStore/all/MiniCart.scss +21 -21
  956. package/src/modules/checkout/pages/frontStore/all/[auth]addCustomerToCart.js +32 -32
  957. package/src/modules/checkout/pages/frontStore/all/[context]detectCurrentCart[auth].js +47 -47
  958. package/src/modules/checkout/pages/frontStore/cart/ShoppingCart.jsx +143 -144
  959. package/src/modules/checkout/pages/frontStore/cart/Summary.jsx +202 -190
  960. package/src/modules/checkout/pages/frontStore/cart/Summary.scss +8 -8
  961. package/src/modules/checkout/pages/frontStore/cart/index.js +14 -14
  962. package/src/modules/checkout/pages/frontStore/cart/route.json +5 -5
  963. package/src/modules/checkout/pages/frontStore/checkout/Checkout.jsx +156 -156
  964. package/src/modules/checkout/pages/frontStore/checkout/Checkout.scss +43 -43
  965. package/src/modules/checkout/pages/frontStore/checkout/PaymentMethods.jsx +40 -40
  966. package/src/modules/checkout/pages/frontStore/checkout/PaymentStep.jsx +106 -90
  967. package/src/modules/checkout/pages/frontStore/checkout/ShipmentStep.jsx +167 -118
  968. package/src/modules/checkout/pages/frontStore/checkout/ShippingMethods.jsx +260 -252
  969. package/src/modules/checkout/pages/frontStore/checkout/ShippingNote.jsx +104 -105
  970. package/src/modules/checkout/pages/frontStore/checkout/Summary.jsx +132 -132
  971. package/src/modules/checkout/pages/frontStore/checkout/Summary.scss +51 -51
  972. package/src/modules/checkout/pages/frontStore/checkout/SummaryMobile.jsx +129 -129
  973. package/src/modules/checkout/pages/frontStore/checkout/SummaryMobile.scss +6 -6
  974. package/src/modules/checkout/pages/frontStore/checkout/index.js +28 -28
  975. package/src/modules/checkout/pages/frontStore/checkout/route.json +5 -5
  976. package/src/modules/checkout/pages/frontStore/checkoutSuccess/CheckoutSuccess.jsx +17 -17
  977. package/src/modules/checkout/pages/frontStore/checkoutSuccess/CheckoutSuccess.scss +48 -48
  978. package/src/modules/checkout/pages/frontStore/checkoutSuccess/CustomerInfo.jsx +178 -178
  979. package/src/modules/checkout/pages/frontStore/checkoutSuccess/ShippingNote.jsx +47 -47
  980. package/src/modules/checkout/pages/frontStore/checkoutSuccess/Summary.jsx +128 -132
  981. package/src/modules/checkout/pages/frontStore/checkoutSuccess/Summary.scss +51 -51
  982. package/src/modules/checkout/pages/frontStore/checkoutSuccess/index.js +23 -23
  983. package/src/modules/checkout/pages/frontStore/checkoutSuccess/route.json +5 -5
  984. package/src/modules/checkout/services/addCartItem.js +44 -0
  985. package/src/modules/checkout/services/cart/Cart.js +227 -232
  986. package/src/modules/checkout/services/cart/DataObject.js +130 -130
  987. package/src/modules/checkout/services/cart/registerCartBaseFields.js +675 -675
  988. package/src/modules/checkout/services/cart/registerCartItemBaseFields.js +324 -324
  989. package/src/modules/checkout/services/cart/sortFields.js +53 -53
  990. package/src/modules/checkout/services/createNewCart.js +28 -28
  991. package/src/modules/checkout/services/getCartById.js +23 -23
  992. package/src/modules/checkout/services/getCartByUUID.js +13 -13
  993. package/src/modules/checkout/services/getCurrentCart.js +27 -27
  994. package/src/modules/checkout/services/orderCreator.js +237 -219
  995. package/src/modules/checkout/services/removeCartItem.js +18 -0
  996. package/src/modules/checkout/services/saveCart.js +93 -93
  997. package/src/modules/checkout/services/toPrice.js +38 -38
  998. package/src/modules/checkout/services/updateCartItemQty.js +41 -0
  999. package/src/modules/checkout/tests/basicSetup.js +85 -85
  1000. package/src/modules/checkout/tests/coupons.js +82 -82
  1001. package/src/modules/checkout/tests/products.js +67 -67
  1002. package/src/modules/checkout/tests/taxRates.js +3 -3
  1003. package/src/modules/checkout/tests/unit/addItemSideEffect.test.js +86 -0
  1004. package/src/modules/checkout/tests/unit/discountAmount.test.js +60 -60
  1005. package/src/modules/checkout/tests/unit/grandTotal.test.js +83 -83
  1006. package/src/modules/checkout/tests/unit/lineTotal.test.js +92 -90
  1007. package/src/modules/checkout/tests/unit/lineTotalWithDiscount.test.js +103 -103
  1008. package/src/modules/checkout/tests/unit/productPrice.test.js +69 -67
  1009. package/src/modules/checkout/tests/unit/removeItemSideEffect.test.js +83 -0
  1010. package/src/modules/checkout/tests/unit/subTotal.test.js +85 -85
  1011. package/src/modules/checkout/tests/unit/subTotalWithDiscount.test.js +117 -117
  1012. package/src/modules/checkout/tests/unit/taxAmount.test.js +68 -67
  1013. package/src/modules/checkout/tests/unit/taxAmountRounding.test.js +277 -277
  1014. package/src/modules/checkout/tests/unit/updateCartItemQtySideEffect.test.js +86 -0
  1015. package/src/modules/cms/api/createCmsPage/[context]bodyParser[auth].js +5 -5
  1016. package/src/modules/cms/api/createCmsPage/createPage[finish].js +11 -11
  1017. package/src/modules/cms/api/createCmsPage/finish[apiResponse].js +33 -33
  1018. package/src/modules/cms/api/createCmsPage/payloadSchema.json +10 -10
  1019. package/src/modules/cms/api/createCmsPage/route.json +5 -5
  1020. package/src/modules/cms/api/createWidget/[context]bodyParser[auth].js +5 -5
  1021. package/src/modules/cms/api/createWidget/createWidget[finish].js +17 -17
  1022. package/src/modules/cms/api/createWidget/finish[apiResponse].js +27 -27
  1023. package/src/modules/cms/api/createWidget/payloadSchema.json +18 -18
  1024. package/src/modules/cms/api/createWidget/route.json +5 -5
  1025. package/src/modules/cms/api/deleteCmsPage/deleteCmsPage.js +27 -27
  1026. package/src/modules/cms/api/deleteCmsPage/route.json +5 -5
  1027. package/src/modules/cms/api/deleteWidget/deleteWidget.js +27 -27
  1028. package/src/modules/cms/api/deleteWidget/route.json +5 -5
  1029. package/src/modules/cms/api/fileBrowser/[context]validatePath[auth].js +20 -20
  1030. package/src/modules/cms/api/fileBrowser/browFiles.js +12 -12
  1031. package/src/modules/cms/api/fileBrowser/route.json +5 -5
  1032. package/src/modules/cms/api/fileDelete/[context]validatePath[auth].js +20 -20
  1033. package/src/modules/cms/api/fileDelete/deleteFile.js +13 -13
  1034. package/src/modules/cms/api/fileDelete/route.json +5 -5
  1035. package/src/modules/cms/api/fileUpload/[context]multerFile[auth].js +21 -21
  1036. package/src/modules/cms/api/fileUpload/[context]validatePath[multerFile].js +20 -20
  1037. package/src/modules/cms/api/fileUpload/[multerFile]upload.js +24 -24
  1038. package/src/modules/cms/api/fileUpload/route.json +5 -5
  1039. package/src/modules/cms/api/folderCreate/[context]bodyParser[auth].js +5 -5
  1040. package/src/modules/cms/api/folderCreate/[context]validatePath[auth].js +20 -20
  1041. package/src/modules/cms/api/folderCreate/createFolder.js +14 -14
  1042. package/src/modules/cms/api/folderCreate/payloadSchema.json +10 -10
  1043. package/src/modules/cms/api/folderCreate/route.json +5 -5
  1044. package/src/modules/cms/api/imageUpload/[context]multerFile[auth].js +3 -3
  1045. package/src/modules/cms/api/imageUpload/[context]validatePath[multerFile].js +3 -3
  1046. package/src/modules/cms/api/imageUpload/[multerFile]upload.js +3 -3
  1047. package/src/modules/cms/api/imageUpload/[multerFile]verifyImages[upload].js +25 -25
  1048. package/src/modules/cms/api/imageUpload/route.json +5 -5
  1049. package/src/modules/cms/api/updateCmsPage/[context]bodyParser[auth].js +5 -5
  1050. package/src/modules/cms/api/updateCmsPage/finish[apiResponse].js +33 -33
  1051. package/src/modules/cms/api/updateCmsPage/payloadSchema.json +10 -10
  1052. package/src/modules/cms/api/updateCmsPage/route.json +5 -5
  1053. package/src/modules/cms/api/updateCmsPage/updatePage[finish].js +11 -11
  1054. package/src/modules/cms/api/updateWidget/[context]bodyParser[auth].js +5 -5
  1055. package/src/modules/cms/api/updateWidget/finish[apiResponse].js +27 -27
  1056. package/src/modules/cms/api/updateWidget/payloadSchema.json +18 -18
  1057. package/src/modules/cms/api/updateWidget/route.json +5 -5
  1058. package/src/modules/cms/api/updateWidget/updateWidget[finish].js +17 -17
  1059. package/src/modules/cms/bootstrap.js +260 -260
  1060. package/src/modules/cms/graphql/types/CmsPage/CmsPage.graphql +33 -33
  1061. package/src/modules/cms/graphql/types/CmsPage/CmsPage.resolvers.js +63 -63
  1062. package/src/modules/cms/graphql/types/Menu/Menu.graphql +19 -19
  1063. package/src/modules/cms/graphql/types/Menu/Menu.resolvers.js +33 -33
  1064. package/src/modules/cms/graphql/types/PageInfo/PageInfo.graphql +21 -21
  1065. package/src/modules/cms/graphql/types/PageInfo/PageInfo.resolvers.js +90 -90
  1066. package/src/modules/cms/graphql/types/ThemeConfig/ThemeConfig.graphql +88 -88
  1067. package/src/modules/cms/graphql/types/ThemeConfig/ThemeConfig.resolvers.js +7 -7
  1068. package/src/modules/cms/graphql/types/Widget/Widget.graphql +91 -91
  1069. package/src/modules/cms/graphql/types/Widget/Widget.resolvers.js +142 -142
  1070. package/src/modules/cms/migration/Version-1.0.0.js +38 -38
  1071. package/src/modules/cms/migration/Version-1.1.0.js +22 -22
  1072. package/src/modules/cms/migration/Version-1.1.1.js +103 -103
  1073. package/src/modules/cms/pages/admin/adminNotFound/Meta.jsx +17 -17
  1074. package/src/modules/cms/pages/admin/adminNotFound/NotFound.jsx +66 -66
  1075. package/src/modules/cms/pages/admin/adminNotFound/route.json +4 -4
  1076. package/src/modules/cms/pages/admin/adminStaticAsset/route.json +4 -4
  1077. package/src/modules/cms/pages/admin/adminStaticAsset/staticAssets.js +5 -5
  1078. package/src/modules/cms/pages/admin/all/CmsMenuGroup.jsx +43 -43
  1079. package/src/modules/cms/pages/admin/all/CopyRight.jsx +35 -0
  1080. package/src/modules/cms/pages/admin/all/Layout.jsx +31 -35
  1081. package/src/modules/cms/pages/admin/all/Layout.scss +91 -91
  1082. package/src/modules/cms/pages/admin/all/Logo.jsx +120 -83
  1083. package/src/modules/cms/pages/admin/all/Logo.scss +12 -12
  1084. package/src/modules/cms/pages/admin/all/Meta.jsx +34 -34
  1085. package/src/modules/cms/pages/admin/all/Navigation.jsx +20 -20
  1086. package/src/modules/cms/pages/admin/all/Navigation.scss +84 -84
  1087. package/src/modules/cms/pages/admin/all/Notification.jsx +42 -42
  1088. package/src/modules/cms/pages/admin/all/Notification.scss +531 -531
  1089. package/src/modules/cms/pages/admin/all/QuickLinks.jsx +35 -35
  1090. package/src/modules/cms/pages/admin/all/SearchBox.jsx +169 -169
  1091. package/src/modules/cms/pages/admin/all/SearchBox.scss +65 -65
  1092. package/src/modules/cms/pages/admin/all/Version.jsx +25 -0
  1093. package/src/modules/cms/pages/admin/all/search/NoResult.jsx +45 -45
  1094. package/src/modules/cms/pages/admin/all/search/Results.jsx +74 -74
  1095. package/src/modules/cms/pages/admin/all/tailwind.scss +3 -3
  1096. package/src/modules/cms/pages/admin/cmsPageEdit/PageEditForm.jsx +52 -52
  1097. package/src/modules/cms/pages/admin/cmsPageEdit/index.js +37 -37
  1098. package/src/modules/cms/pages/admin/cmsPageEdit/route.json +4 -4
  1099. package/src/modules/cms/pages/admin/cmsPageEdit+cmsPageNew/FormContent.jsx +56 -56
  1100. package/src/modules/cms/pages/admin/cmsPageEdit+cmsPageNew/FormContent.scss +7 -7
  1101. package/src/modules/cms/pages/admin/cmsPageEdit+cmsPageNew/General.jsx +118 -105
  1102. package/src/modules/cms/pages/admin/cmsPageEdit+cmsPageNew/PageHeading.jsx +37 -37
  1103. package/src/modules/cms/pages/admin/cmsPageEdit+cmsPageNew/Seo.jsx +97 -97
  1104. package/src/modules/cms/pages/admin/cmsPageEdit+cmsPageNew/Status.jsx +40 -40
  1105. package/src/modules/cms/pages/admin/cmsPageGrid/Grid.jsx +384 -379
  1106. package/src/modules/cms/pages/admin/cmsPageGrid/Heading.jsx +11 -11
  1107. package/src/modules/cms/pages/admin/cmsPageGrid/NewPageButton.jsx +22 -22
  1108. package/src/modules/cms/pages/admin/cmsPageGrid/index.js +15 -15
  1109. package/src/modules/cms/pages/admin/cmsPageGrid/route.json +4 -4
  1110. package/src/modules/cms/pages/admin/cmsPageNew/PageNewForm.jsx +60 -60
  1111. package/src/modules/cms/pages/admin/cmsPageNew/index.js +11 -11
  1112. package/src/modules/cms/pages/admin/cmsPageNew/route.json +4 -4
  1113. package/src/modules/cms/pages/admin/dashboard/Layout.jsx +21 -21
  1114. package/src/modules/cms/pages/admin/dashboard/Layout.scss +7 -7
  1115. package/src/modules/cms/pages/admin/dashboard/PageHeading.jsx +11 -11
  1116. package/src/modules/cms/pages/admin/dashboard/index.js +11 -11
  1117. package/src/modules/cms/pages/admin/dashboard/route.json +4 -4
  1118. package/src/modules/cms/pages/admin/widgetEdit/WidgetForm.jsx +52 -52
  1119. package/src/modules/cms/pages/admin/widgetEdit/index.js +36 -36
  1120. package/src/modules/cms/pages/admin/widgetEdit/route.json +4 -4
  1121. package/src/modules/cms/pages/admin/widgetEdit+widgetNew/FormContent.jsx +69 -69
  1122. package/src/modules/cms/pages/admin/widgetEdit+widgetNew/FormContent.scss +7 -7
  1123. package/src/modules/cms/pages/admin/widgetEdit+widgetNew/General.jsx +185 -185
  1124. package/src/modules/cms/pages/admin/widgetEdit+widgetNew/PageHeading.jsx +37 -37
  1125. package/src/modules/cms/pages/admin/widgetEdit+widgetNew/Setting.jsx +55 -55
  1126. package/src/modules/cms/pages/admin/widgetGrid/Grid.jsx +420 -415
  1127. package/src/modules/cms/pages/admin/widgetGrid/Heading.jsx +11 -11
  1128. package/src/modules/cms/pages/admin/widgetGrid/NewWidgetButton.jsx +52 -52
  1129. package/src/modules/cms/pages/admin/widgetGrid/index.js +15 -15
  1130. package/src/modules/cms/pages/admin/widgetGrid/route.json +4 -4
  1131. package/src/modules/cms/pages/admin/widgetNew/WidgetNewForm.jsx +60 -60
  1132. package/src/modules/cms/pages/admin/widgetNew/index.js +11 -11
  1133. package/src/modules/cms/pages/admin/widgetNew/route.json +4 -4
  1134. package/src/modules/cms/pages/admin/widgetNew/typeValidate.js +21 -21
  1135. package/src/modules/cms/pages/frontStore/all/Breadcrumb.jsx +50 -50
  1136. package/src/modules/cms/pages/frontStore/all/Footer.jsx +125 -125
  1137. package/src/modules/cms/pages/frontStore/all/HeadTags.jsx +163 -163
  1138. package/src/modules/cms/pages/frontStore/all/Layout.jsx +40 -40
  1139. package/src/modules/cms/pages/frontStore/all/Layout.scss +260 -260
  1140. package/src/modules/cms/pages/frontStore/all/Logo.jsx +83 -83
  1141. package/src/modules/cms/pages/frontStore/all/Logo.scss +8 -8
  1142. package/src/modules/cms/pages/frontStore/all/Notification.jsx +42 -42
  1143. package/src/modules/cms/pages/frontStore/all/Notification.scss +532 -532
  1144. package/src/modules/cms/pages/frontStore/all/tailwind.scss +3 -3
  1145. package/src/modules/cms/pages/frontStore/cmsPageView/Layout.jsx +113 -113
  1146. package/src/modules/cms/pages/frontStore/cmsPageView/Layout.scss +248 -248
  1147. package/src/modules/cms/pages/frontStore/cmsPageView/View.jsx +36 -36
  1148. package/src/modules/cms/pages/frontStore/cmsPageView/index.js +31 -31
  1149. package/src/modules/cms/pages/frontStore/cmsPageView/route.json +5 -5
  1150. package/src/modules/cms/pages/frontStore/homepage/meta.js +18 -18
  1151. package/src/modules/cms/pages/frontStore/homepage/route.json +5 -5
  1152. package/src/modules/cms/pages/frontStore/notFound/Meta.jsx +17 -17
  1153. package/src/modules/cms/pages/frontStore/notFound/NotFound.jsx +75 -75
  1154. package/src/modules/cms/pages/frontStore/notFound/route.json +5 -5
  1155. package/src/modules/cms/pages/frontStore/staticAsset/[context]staticAssets[auth].js +5 -5
  1156. package/src/modules/cms/pages/frontStore/staticAsset/route.json +4 -4
  1157. package/src/modules/cms/services/CMSPageCollection.js +62 -62
  1158. package/src/modules/cms/services/CustomMemoryStorage.js +37 -37
  1159. package/src/modules/cms/services/WidgetCollection.js +62 -62
  1160. package/src/modules/cms/services/browFiles.js +54 -54
  1161. package/src/modules/cms/services/createFolder.js +42 -42
  1162. package/src/modules/cms/services/deleteFile.js +42 -42
  1163. package/src/modules/cms/services/generateFileName.js +9 -9
  1164. package/src/modules/cms/services/getCmsPagesBaseQuery.js +14 -14
  1165. package/src/modules/cms/services/getMulter.js +26 -26
  1166. package/src/modules/cms/services/getWidgetsBaseQuery.js +7 -7
  1167. package/src/modules/cms/services/page/createPage.js +84 -84
  1168. package/src/modules/cms/services/page/deletePage.js +57 -57
  1169. package/src/modules/cms/services/page/pageDataSchema.json +33 -33
  1170. package/src/modules/cms/services/page/updatePage.js +106 -106
  1171. package/src/modules/cms/services/registerDefaultPageCollectionFilters.js +62 -62
  1172. package/src/modules/cms/services/registerDefaultWidgetCollectionFilters.js +62 -62
  1173. package/src/modules/cms/services/tailwind.admin.config.js +34 -34
  1174. package/src/modules/cms/services/tailwind.frontStore.config.js +35 -35
  1175. package/src/modules/cms/services/tests/unit/validatePath.test.js +31 -31
  1176. package/src/modules/cms/services/uploadFile.js +61 -61
  1177. package/src/modules/cms/services/validatePath.js +16 -16
  1178. package/src/modules/cms/services/widget/createWidget.js +73 -73
  1179. package/src/modules/cms/services/widget/deleteWidget.js +49 -49
  1180. package/src/modules/cms/services/widget/loadWidgetInstances.js +54 -54
  1181. package/src/modules/cms/services/widget/updateWidget.js +86 -86
  1182. package/src/modules/cms/services/widget/widgetDataSchema.json +29 -29
  1183. package/src/modules/cod/api/codCapturePayment/[bodyParser]capture.js +62 -62
  1184. package/src/modules/cod/api/codCapturePayment/[context]bodyParser[auth].js +5 -5
  1185. package/src/modules/cod/api/codCapturePayment/payloadSchema.json +10 -10
  1186. package/src/modules/cod/api/codCapturePayment/route.json +5 -5
  1187. package/src/modules/cod/api/createOrder/[placeOrder]addOrderPlacedEvent.js +19 -19
  1188. package/src/modules/cod/api/getPaymentMethods/registerCod[sendMethods].js +15 -15
  1189. package/src/modules/cod/bootstrap.js +27 -27
  1190. package/src/modules/cod/graphql/types/CODSetting/CODSetting.graphql +4 -4
  1191. package/src/modules/cod/graphql/types/CODSetting/CODSetting.resolvers.js +22 -22
  1192. package/src/modules/cod/pages/admin/orderEdit/CaptureButton.jsx +72 -71
  1193. package/src/modules/cod/pages/admin/paymentSetting/CODSetting.jsx +60 -60
  1194. package/src/modules/cod/pages/frontStore/checkout/CashOnDelivery.jsx +137 -120
  1195. package/src/modules/customer/api/createCustomer/[bodyParser]createCustomer.js +48 -48
  1196. package/src/modules/customer/api/createCustomer/[context]bodyParser[auth].js +5 -5
  1197. package/src/modules/customer/api/createCustomer/route.json +5 -5
  1198. package/src/modules/customer/api/createCustomerAddress/[bodyParser]createCustomerAddress.js +55 -0
  1199. package/src/modules/{paypal/api/paypalGetAccessToken → customer/api/createCustomerAddress}/[context]bodyParser[auth].js +5 -5
  1200. package/src/modules/customer/api/createCustomerAddress/route.json +5 -0
  1201. package/src/modules/customer/api/deleteCustomer/deleteCustomer.js +26 -26
  1202. package/src/modules/customer/api/deleteCustomer/route.json +5 -5
  1203. package/src/modules/customer/api/deleteCustomerAddress/deleteCustomerAddress.js +59 -0
  1204. package/src/modules/customer/api/deleteCustomerAddress/route.json +5 -0
  1205. package/src/modules/customer/api/global/[context]getCurrentCustomer[auth].js +61 -61
  1206. package/src/modules/customer/api/resetPassword/[bodyParser]resetPassword.js +57 -57
  1207. package/src/modules/customer/api/resetPassword/[context]bodyParser[auth].js +5 -5
  1208. package/src/modules/customer/api/resetPassword/payloadSchema.json +11 -11
  1209. package/src/modules/customer/api/resetPassword/route.json +5 -5
  1210. package/src/modules/customer/api/updateCustomer/[context]bodyParser[auth].js +5 -5
  1211. package/src/modules/customer/api/updateCustomer/payloadSchema.json +16 -16
  1212. package/src/modules/customer/api/updateCustomer/route.json +5 -5
  1213. package/src/modules/customer/api/updateCustomer/updateCustomer.js +85 -85
  1214. package/src/modules/customer/api/updateCustomerAddress/[context]bodyParser[auth].js +5 -0
  1215. package/src/modules/customer/api/updateCustomerAddress/payloadSchema.json +16 -0
  1216. package/src/modules/customer/api/updateCustomerAddress/route.json +5 -0
  1217. package/src/modules/customer/api/updateCustomerAddress/updateCustomerAddress.js +81 -0
  1218. package/src/modules/customer/api/updatePassword/[bodyParser]updatePassword.js +84 -84
  1219. package/src/modules/customer/api/updatePassword/[context]bodyParser[auth].js +5 -5
  1220. package/src/modules/customer/api/updatePassword/payloadSchema.json +13 -13
  1221. package/src/modules/customer/api/updatePassword/route.json +5 -5
  1222. package/src/modules/customer/bootstrap.js +191 -204
  1223. package/src/modules/customer/graphql/types/Customer/Customer.admin.graphql +20 -20
  1224. package/src/modules/customer/graphql/types/Customer/Customer.admin.resolvers.js +28 -28
  1225. package/src/modules/customer/graphql/types/Customer/Customer.graphql +36 -15
  1226. package/src/modules/customer/graphql/types/Customer/Customer.resolvers.js +33 -8
  1227. package/src/modules/customer/graphql/types/Customer/CustomerSetting.graphql +3 -3
  1228. package/src/modules/customer/graphql/types/Customer/CustomerSetting.resolvers.js +7 -7
  1229. package/src/modules/customer/graphql/types/CustomerGroup/CustomerGroup.admin.graphql +20 -20
  1230. package/src/modules/customer/graphql/types/CustomerGroup/CustomerGroup.admin.resolvers.js +39 -39
  1231. package/src/modules/customer/graphql/types/CustomerGroup/CustomerGroup.graphql +10 -10
  1232. package/src/modules/customer/graphql/types/CustomerGroup/CustomerGroup.resolvers.js +14 -14
  1233. package/src/modules/customer/migration/Version-1.0.0.js +117 -117
  1234. package/src/modules/customer/migration/Version-1.0.1.js +67 -67
  1235. package/src/modules/customer/migration/Version-1.0.2.js +16 -16
  1236. package/src/modules/customer/migration/Version-1.0.3.js +15 -0
  1237. package/src/modules/customer/pages/admin/all/CustomerMenuGroup.jsx +35 -35
  1238. package/src/modules/customer/pages/admin/customerEdit/CustomerEditForm.jsx +26 -26
  1239. package/src/modules/customer/pages/admin/customerEdit/CustomerEditForm.scss +7 -7
  1240. package/src/modules/customer/pages/admin/customerEdit/index.js +29 -29
  1241. package/src/modules/customer/pages/admin/customerEdit/route.json +4 -4
  1242. package/src/modules/customer/pages/admin/customerEdit+customerNew/General.jsx +126 -126
  1243. package/src/modules/customer/pages/admin/customerEdit+customerNew/OrderHistory.jsx +84 -83
  1244. package/src/modules/customer/pages/admin/customerEdit+customerNew/PageHeading.jsx +39 -39
  1245. package/src/modules/customer/pages/admin/customerGrid/Grid.jsx +450 -445
  1246. package/src/modules/customer/pages/admin/customerGrid/Heading.jsx +11 -11
  1247. package/src/modules/customer/pages/admin/customerGrid/index.js +15 -15
  1248. package/src/modules/customer/pages/admin/customerGrid/route.json +4 -4
  1249. package/src/modules/customer/pages/frontStore/account/AccountDetails.jsx +69 -49
  1250. package/src/modules/customer/pages/frontStore/account/Addresses.jsx +257 -0
  1251. package/src/modules/customer/pages/frontStore/account/Layout.jsx +63 -57
  1252. package/src/modules/customer/pages/frontStore/account/OrderHistory.jsx +104 -104
  1253. package/src/modules/customer/pages/frontStore/account/index.js +21 -21
  1254. package/src/modules/customer/pages/frontStore/account/route.json +5 -5
  1255. package/src/modules/customer/pages/frontStore/accountEdit/EditForm.jsx +73 -0
  1256. package/src/modules/customer/pages/frontStore/accountEdit/Layout.jsx +57 -0
  1257. package/src/modules/customer/pages/frontStore/accountEdit/index.js +21 -0
  1258. package/src/modules/customer/pages/frontStore/accountEdit/route.json +5 -0
  1259. package/src/modules/customer/pages/frontStore/all/UserIcon.jsx +45 -45
  1260. package/src/modules/customer/pages/frontStore/all/[context]auth.js +35 -35
  1261. package/src/modules/customer/pages/frontStore/checkout/CustomerInfoStep.jsx +89 -89
  1262. package/src/modules/customer/pages/frontStore/customerLoginJson/[bodyParser]login.js +44 -44
  1263. package/src/modules/customer/pages/frontStore/customerLoginJson/payloadSchema.json +13 -13
  1264. package/src/modules/customer/pages/frontStore/customerLoginJson/route.json +4 -4
  1265. package/src/modules/customer/pages/frontStore/customerLogoutJson/logout.js +35 -35
  1266. package/src/modules/customer/pages/frontStore/customerLogoutJson/route.json +4 -4
  1267. package/src/modules/customer/pages/frontStore/login/LoginForm.jsx +94 -94
  1268. package/src/modules/customer/pages/frontStore/login/LoginForm.scss +37 -37
  1269. package/src/modules/customer/pages/frontStore/login/index.js +21 -21
  1270. package/src/modules/customer/pages/frontStore/login/route.json +5 -5
  1271. package/src/modules/customer/pages/frontStore/register/RegisterForm.jsx +136 -136
  1272. package/src/modules/customer/pages/frontStore/register/RegisterForm.scss +37 -37
  1273. package/src/modules/customer/pages/frontStore/register/index.js +23 -23
  1274. package/src/modules/customer/pages/frontStore/register/route.json +5 -5
  1275. package/src/modules/customer/pages/frontStore/resetPasswordPage/ResetPasswordForm.jsx +115 -115
  1276. package/src/modules/customer/pages/frontStore/resetPasswordPage/ResetPasswordForm.scss +37 -37
  1277. package/src/modules/customer/pages/frontStore/resetPasswordPage/index.js +21 -21
  1278. package/src/modules/customer/pages/frontStore/resetPasswordPage/route.json +5 -5
  1279. package/src/modules/customer/pages/frontStore/updatePasswordPage/UpdatePasswordForm.jsx +123 -123
  1280. package/src/modules/customer/pages/frontStore/updatePasswordPage/UpdatePasswordForm.scss +37 -37
  1281. package/src/modules/customer/pages/frontStore/updatePasswordPage/index.js +21 -21
  1282. package/src/modules/customer/pages/frontStore/updatePasswordPage/route.json +5 -5
  1283. package/src/modules/customer/services/CustomerCollection.js +60 -60
  1284. package/src/modules/customer/services/CustomerGroupCollection.js +59 -59
  1285. package/src/modules/customer/services/customer/address/addressValidator.js +21 -0
  1286. package/src/modules/customer/services/customer/address/createCustomerAddress.js +83 -0
  1287. package/src/modules/customer/services/customer/address/deleteCustomerAddress.js +55 -0
  1288. package/src/modules/customer/services/customer/address/updateCustomerAddress.js +95 -0
  1289. package/src/modules/customer/services/customer/createCustomer.js +112 -112
  1290. package/src/modules/customer/services/customer/customerDataSchema.json +20 -20
  1291. package/src/modules/customer/services/customer/deleteCustomer.js +53 -53
  1292. package/src/modules/customer/services/customer/loginCustomerWithEmail.js +33 -0
  1293. package/src/modules/customer/services/customer/logoutCustomer.js +9 -0
  1294. package/src/modules/customer/services/customer/updateCustomer.js +96 -96
  1295. package/src/modules/customer/services/customer/updatePassword.js +68 -68
  1296. package/src/modules/customer/services/getCustomerGroupsBaseQuery.js +7 -7
  1297. package/src/modules/customer/services/getCustomersBaseQuery.js +7 -7
  1298. package/src/modules/customer/services/registerDefaultCustomerCollectionFilters.js +90 -90
  1299. package/src/modules/customer/services/registerDefaultCustomerGroupCollectionFilters.js +50 -50
  1300. package/src/modules/graphql/api/adminGraphql/[bodyParser]graphql.js +5 -5
  1301. package/src/modules/graphql/api/adminGraphql/[context]bodyParser[auth].js +5 -5
  1302. package/src/modules/graphql/api/adminGraphql/route.json +5 -5
  1303. package/src/modules/graphql/api/graphql/[auth]removeUser[graphql].js +9 -9
  1304. package/src/modules/graphql/api/graphql/[bodyParser]graphql.js +5 -5
  1305. package/src/modules/graphql/api/graphql/[context]bodyParser[auth].js +5 -5
  1306. package/src/modules/graphql/api/graphql/route.json +5 -5
  1307. package/src/modules/graphql/bootstrap.js +5 -5
  1308. package/src/modules/graphql/graphql/types/Query/Query.graphql +6 -6
  1309. package/src/modules/graphql/graphql/types/Query/Query.resolvers.js +5 -5
  1310. package/src/modules/graphql/pages/global/[bodyParser]buildQuery[graphql].js +352 -349
  1311. package/src/modules/graphql/pages/global/{[buildQuery]graphql[notification].js → [buildQuery]graphql[notFound].js} +77 -77
  1312. package/src/modules/graphql/pages/global/bodyParser[buildQuery].js +7 -7
  1313. package/src/modules/graphql/services/buildResolvers.js +27 -27
  1314. package/src/modules/graphql/services/buildSchema.js +10 -10
  1315. package/src/modules/graphql/services/buildStoreFrontSchema.js +10 -10
  1316. package/src/modules/graphql/services/buildTypes.js +25 -25
  1317. package/src/modules/graphql/services/contextHelper.js +48 -48
  1318. package/src/modules/graphql/services/graphqlErrorMessageFormat.js +38 -38
  1319. package/src/modules/graphql/services/graphqlMiddleware.js +51 -51
  1320. package/src/modules/oms/api/cancelOrder/[context]borderParser[auth].js +5 -0
  1321. package/src/modules/oms/api/cancelOrder/cancelOrder.js +25 -0
  1322. package/src/modules/oms/api/cancelOrder/payloadSchema.json +15 -0
  1323. package/src/modules/oms/api/cancelOrder/route.json +5 -0
  1324. package/src/modules/oms/api/createShipment/[context]borderParser[auth].js +5 -5
  1325. package/src/modules/oms/api/createShipment/createShipment.js +100 -102
  1326. package/src/modules/oms/api/createShipment/payloadSchema.json +12 -12
  1327. package/src/modules/oms/api/createShipment/route.json +5 -5
  1328. package/src/modules/oms/api/lifetimesales/loadData.js +53 -53
  1329. package/src/modules/oms/api/lifetimesales/route.json +5 -5
  1330. package/src/modules/oms/api/markDelivered/[context]bodyParser[auth].js +5 -5
  1331. package/src/modules/oms/api/markDelivered/markDelivered.js +85 -90
  1332. package/src/modules/oms/api/markDelivered/payloadSchema.json +9 -9
  1333. package/src/modules/oms/api/markDelivered/route.json +5 -5
  1334. package/src/modules/oms/api/salestatistic/loadData.js +70 -70
  1335. package/src/modules/oms/api/salestatistic/route.json +5 -5
  1336. package/src/modules/oms/api/updateShipment/[context]bodyParser[auth].js +5 -5
  1337. package/src/modules/oms/api/updateShipment/payloadSchema.json +12 -12
  1338. package/src/modules/oms/api/updateShipment/route.json +5 -5
  1339. package/src/modules/oms/api/updateShipment/updateShipment.js +97 -97
  1340. package/src/modules/oms/bootstrap.js +389 -161
  1341. package/src/modules/oms/graphql/types/BestSeller/BestSeller.admin.graphql +7 -7
  1342. package/src/modules/oms/graphql/types/BestSeller/BestSeller.admin.resolvers.js +38 -38
  1343. package/src/modules/oms/graphql/types/Carrier/Carrier.admin.graphql +12 -12
  1344. package/src/modules/oms/graphql/types/Carrier/Carrier.admin.resolvers.js +13 -13
  1345. package/src/modules/oms/graphql/types/Order/Order.admin.graphql +15 -14
  1346. package/src/modules/oms/graphql/types/Order/Order.admin.resolvers.js +31 -30
  1347. package/src/modules/oms/graphql/types/Order/Order.graphql +134 -134
  1348. package/src/modules/oms/graphql/types/Order/Order.resolvers.js +127 -113
  1349. package/src/modules/oms/graphql/types/PaymentTransaction/PaymentTransaction.admin.graphql +18 -18
  1350. package/src/modules/oms/graphql/types/PaymentTransaction/PaymentTransaction.admin.resolvers.js +14 -14
  1351. package/src/modules/oms/graphql/types/Status/Status.graphql +39 -24
  1352. package/src/modules/oms/graphql/types/Status/Status.resolvers.js +27 -20
  1353. package/src/modules/oms/migration/Version-1.0.0.js +48 -48
  1354. package/src/modules/oms/migration/Version-1.0.1.js +32 -0
  1355. package/src/modules/oms/pages/admin/all/OmsMenuGroup.jsx +35 -35
  1356. package/src/modules/oms/pages/admin/dashboard/Bestcustomers.jsx +68 -68
  1357. package/src/modules/oms/pages/admin/dashboard/Bestsellers.jsx +131 -131
  1358. package/src/modules/oms/pages/admin/dashboard/Bestsellers.scss +48 -48
  1359. package/src/modules/oms/pages/admin/dashboard/Lifetimesales.jsx +133 -133
  1360. package/src/modules/oms/pages/admin/dashboard/Lifetimesales.scss +31 -31
  1361. package/src/modules/oms/pages/admin/dashboard/Statistic.jsx +110 -110
  1362. package/src/modules/oms/pages/admin/dashboard/Statistic.scss +21 -21
  1363. package/src/modules/oms/pages/admin/orderEdit/Activities.jsx +113 -113
  1364. package/src/modules/oms/pages/admin/orderEdit/Activities.scss +59 -59
  1365. package/src/modules/oms/pages/admin/orderEdit/AddTrackingButton.jsx +133 -133
  1366. package/src/modules/oms/pages/admin/orderEdit/CancelButton.jsx +131 -0
  1367. package/src/modules/oms/pages/admin/orderEdit/Customer.jsx +131 -131
  1368. package/src/modules/oms/pages/admin/orderEdit/CustomerNotes.jsx +55 -55
  1369. package/src/modules/oms/pages/admin/orderEdit/Items.jsx +182 -182
  1370. package/src/modules/oms/pages/admin/orderEdit/Items.scss +53 -53
  1371. package/src/modules/oms/pages/admin/orderEdit/Layout.jsx +21 -21
  1372. package/src/modules/oms/pages/admin/orderEdit/Layout.scss +7 -7
  1373. package/src/modules/oms/pages/admin/orderEdit/MarkDeliveredButton.jsx +78 -78
  1374. package/src/modules/oms/pages/admin/orderEdit/PageHeading.jsx +30 -30
  1375. package/src/modules/oms/pages/admin/orderEdit/Payment.jsx +161 -184
  1376. package/src/modules/oms/pages/admin/orderEdit/Payment.scss +14 -14
  1377. package/src/modules/oms/pages/admin/orderEdit/ShipButton.jsx +152 -139
  1378. package/src/modules/oms/pages/admin/orderEdit/{ShipmentStatus.jsx → Status.jsx} +45 -45
  1379. package/src/modules/oms/pages/admin/orderEdit/TrackingButton.jsx +73 -73
  1380. package/src/modules/oms/pages/admin/orderEdit/index.js +29 -29
  1381. package/src/modules/oms/pages/admin/orderEdit/route.json +4 -4
  1382. package/src/modules/oms/pages/admin/orderGrid/Grid.jsx +545 -539
  1383. package/src/modules/oms/pages/admin/orderGrid/Heading.jsx +11 -11
  1384. package/src/modules/oms/pages/admin/orderGrid/index.js +15 -15
  1385. package/src/modules/oms/pages/admin/orderGrid/route.json +4 -4
  1386. package/src/modules/oms/services/OrderCollection.js +56 -56
  1387. package/src/modules/oms/services/cancelOrder.js +112 -0
  1388. package/src/modules/oms/services/getOrdersBaseQuery.js +7 -7
  1389. package/src/modules/oms/services/registerDefaultOrderCollectionFilters.js +121 -121
  1390. package/src/modules/oms/services/updateOrderStatus.js +126 -0
  1391. package/src/modules/oms/services/updatePaymentStatus.js +53 -0
  1392. package/src/modules/oms/services/updateShipmentStatus.js +54 -0
  1393. package/src/modules/paypal/api/getPaymentMethods/registerPaypal[sendMethods].js +22 -22
  1394. package/src/modules/paypal/api/paypalAuthorizePayment/[bodyParser]authorize.js +99 -102
  1395. package/src/modules/paypal/api/paypalAuthorizePayment/[context]bodyParser[auth].js +5 -5
  1396. package/src/modules/paypal/api/paypalAuthorizePayment/payloadSchema.json +10 -10
  1397. package/src/modules/paypal/api/paypalAuthorizePayment/route.json +5 -5
  1398. package/src/modules/paypal/api/paypalCaptureAuthorizedPayment/[bodyParser]capture.js +125 -0
  1399. package/src/modules/paypal/api/paypalCaptureAuthorizedPayment/[context]bodyParser[auth].js +5 -0
  1400. package/src/modules/paypal/api/{paypalGetAccessToken → paypalCaptureAuthorizedPayment}/payloadSchema.json +10 -10
  1401. package/src/modules/paypal/api/{paypalGetAccessToken → paypalCaptureAuthorizedPayment}/route.json +5 -5
  1402. package/src/modules/paypal/api/paypalCapturePayment/[bodyParser]capture.js +96 -99
  1403. package/src/modules/paypal/api/paypalCapturePayment/[context]bodyParser[auth].js +5 -5
  1404. package/src/modules/paypal/api/paypalCapturePayment/payloadSchema.json +10 -10
  1405. package/src/modules/paypal/api/paypalCapturePayment/route.json +5 -5
  1406. package/src/modules/paypal/api/paypalCreateOrder/[bodyParser]createOrder.js +216 -218
  1407. package/src/modules/paypal/api/paypalCreateOrder/[context]bodyParser[auth].js +5 -5
  1408. package/src/modules/paypal/api/paypalCreateOrder/payloadSchema.json +10 -10
  1409. package/src/modules/paypal/api/paypalCreateOrder/route.json +5 -5
  1410. package/src/modules/paypal/bootstrap.js +40 -28
  1411. package/src/modules/paypal/graphql/types/PaypalSetting/PaypalSetting.admin.graphql +7 -7
  1412. package/src/modules/paypal/graphql/types/PaypalSetting/PaypalSetting.admin.resolvers.js +78 -78
  1413. package/src/modules/paypal/graphql/types/PaypalSetting/PaypalSetting.graphql +4 -4
  1414. package/src/modules/paypal/graphql/types/PaypalSetting/PaypalSetting.resolvers.js +30 -30
  1415. package/src/modules/paypal/pages/admin/orderEdit/PaypalCaptureButton.jsx +75 -0
  1416. package/src/modules/paypal/pages/admin/orderEdit/StripeRefundButton.jsx +139 -0
  1417. package/src/modules/paypal/pages/admin/paymentSetting/PaypalSetting.jsx +160 -137
  1418. package/src/modules/paypal/pages/frontStore/checkout/Paypal.jsx +185 -187
  1419. package/src/modules/paypal/pages/frontStore/paypalCancel/index.js +33 -33
  1420. package/src/modules/paypal/pages/frontStore/paypalCancel/route.json +4 -4
  1421. package/src/modules/paypal/pages/frontStore/paypalReturn/Error.jsx +18 -18
  1422. package/src/modules/paypal/pages/frontStore/paypalReturn/index.js +68 -68
  1423. package/src/modules/paypal/pages/frontStore/paypalReturn/route.json +4 -4
  1424. package/src/modules/paypal/services/getApiBaseUrl.js +9 -9
  1425. package/src/modules/paypal/services/requester.js +68 -0
  1426. package/src/modules/paypal/services/voidPaymentTransaction.js +43 -0
  1427. package/src/modules/promotion/api/couponApply/[context]bodyParser[auth].js +5 -5
  1428. package/src/modules/promotion/api/couponApply/[validateCouponCode]applyCoupon.js +42 -42
  1429. package/src/modules/promotion/api/couponApply/payloadSchema.json +15 -15
  1430. package/src/modules/promotion/api/couponApply/route.json +5 -5
  1431. package/src/modules/promotion/api/couponApply/validateCouponCode.js +16 -16
  1432. package/src/modules/promotion/api/createCoupon/[context]bodyParser[auth].js +5 -5
  1433. package/src/modules/promotion/api/createCoupon/createCoupon[finish].js +10 -10
  1434. package/src/modules/promotion/api/createCoupon/finish[apiResponse].js +27 -27
  1435. package/src/modules/promotion/api/createCoupon/route.json +5 -5
  1436. package/src/modules/promotion/api/deleteCoupon/deleteCoupon.js +27 -27
  1437. package/src/modules/promotion/api/deleteCoupon/route.json +5 -5
  1438. package/src/modules/promotion/api/updateCoupon/[context]bodyParser[auth].js +5 -5
  1439. package/src/modules/promotion/api/updateCoupon/finish[apiResponse].js +27 -27
  1440. package/src/modules/promotion/api/updateCoupon/route.json +5 -5
  1441. package/src/modules/promotion/api/updateCoupon/updateCoupon[finish].js +10 -10
  1442. package/src/modules/promotion/bootstrap.js +49 -49
  1443. package/src/modules/promotion/graphql/types/Coupon/Coupon.admin.graphql +87 -87
  1444. package/src/modules/promotion/graphql/types/Coupon/Coupon.admin.resolvers.js +62 -62
  1445. package/src/modules/promotion/graphql/types/Coupon/Coupon.graphql +5 -5
  1446. package/src/modules/promotion/graphql/types/Coupon/Coupon.resolvers.js +7 -7
  1447. package/src/modules/promotion/migration/Version-1.0.0.js +54 -54
  1448. package/src/modules/promotion/migration/Version-1.0.1.js +24 -24
  1449. package/src/modules/promotion/pages/admin/all/CouponMenuGroup.jsx +35 -35
  1450. package/src/modules/promotion/pages/admin/all/NewCouponQuickLink.jsx +23 -23
  1451. package/src/modules/promotion/pages/admin/couponEdit/CouponEditForm.jsx +52 -52
  1452. package/src/modules/promotion/pages/admin/couponEdit/index.js +29 -29
  1453. package/src/modules/promotion/pages/admin/couponEdit/route.json +4 -4
  1454. package/src/modules/promotion/pages/admin/couponEdit+couponNew/CustomerCondition.jsx +154 -154
  1455. package/src/modules/promotion/pages/admin/couponEdit+couponNew/DiscountType.jsx +131 -126
  1456. package/src/modules/promotion/pages/admin/couponEdit+couponNew/FormContent.jsx +79 -79
  1457. package/src/modules/promotion/pages/admin/couponEdit+couponNew/FormContent.scss +7 -7
  1458. package/src/modules/promotion/pages/admin/couponEdit+couponNew/General.jsx +110 -110
  1459. package/src/modules/promotion/pages/admin/couponEdit+couponNew/OrderCondition.jsx +76 -68
  1460. package/src/modules/promotion/pages/admin/couponEdit+couponNew/PageHeading.jsx +37 -37
  1461. package/src/modules/promotion/pages/admin/couponGrid/Grid.jsx +552 -547
  1462. package/src/modules/promotion/pages/admin/couponGrid/Heading.jsx +11 -11
  1463. package/src/modules/promotion/pages/admin/couponGrid/NewCouponButton.jsx +22 -22
  1464. package/src/modules/promotion/pages/admin/couponGrid/index.js +14 -14
  1465. package/src/modules/promotion/pages/admin/couponGrid/route.json +4 -4
  1466. package/src/modules/promotion/pages/admin/couponNew/CouponNewForm.jsx +60 -60
  1467. package/src/modules/promotion/pages/admin/couponNew/index.js +10 -10
  1468. package/src/modules/promotion/pages/admin/couponNew/route.json +4 -4
  1469. package/src/modules/promotion/pages/admin/navigation/CouponNewMenuItem.jsx +12 -12
  1470. package/src/modules/promotion/pages/admin/navigation/CouponsMenuItem.jsx +12 -12
  1471. package/src/modules/promotion/pages/frontStore/cart/Coupon.jsx +80 -80
  1472. package/src/modules/promotion/services/CouponCollection.js +59 -59
  1473. package/src/modules/promotion/services/coupon/couponDataSchema.json +206 -206
  1474. package/src/modules/promotion/services/coupon/createCoupon.js +77 -77
  1475. package/src/modules/promotion/services/coupon/deleteCoupon.js +51 -51
  1476. package/src/modules/promotion/services/coupon/updateCoupon.js +96 -96
  1477. package/src/modules/promotion/services/couponValidator.js +37 -37
  1478. package/src/modules/promotion/services/discountCalculator.js +14 -14
  1479. package/src/modules/promotion/services/getCartTotalBeforeDiscount.js +13 -13
  1480. package/src/modules/promotion/services/getCouponsBaseQuery.js +7 -7
  1481. package/src/modules/promotion/services/registerCartItemPromotionFields.js +80 -80
  1482. package/src/modules/promotion/services/registerCartPromotionFields.js +128 -128
  1483. package/src/modules/promotion/services/registerDefaultCalculators.js +371 -370
  1484. package/src/modules/promotion/services/registerDefaultCouponCollectionFilters.js +72 -72
  1485. package/src/modules/promotion/services/registerDefaultValidators.js +433 -433
  1486. package/src/modules/setting/api/saveSetting/[context]bodyParser[auth].js +5 -5
  1487. package/src/modules/setting/api/saveSetting/route.json +5 -5
  1488. package/src/modules/setting/api/saveSetting/saveSetting.js +65 -65
  1489. package/src/modules/setting/graphql/types/Setting/Setting.graphql +10 -10
  1490. package/src/modules/setting/graphql/types/Setting/Setting.resolvers.js +20 -20
  1491. package/src/modules/setting/graphql/types/ShippingSetting/ShippingSetting.graphql +4 -4
  1492. package/src/modules/setting/graphql/types/ShippingSetting/ShippingSetting.resolvers.js +17 -17
  1493. package/src/modules/setting/graphql/types/StoreSetting/StoreSetting.graphql +14 -14
  1494. package/src/modules/setting/graphql/types/StoreSetting/StoreSetting.resolvers.js +92 -92
  1495. package/src/modules/setting/migration/Version-1.0.0.js +17 -17
  1496. package/src/modules/setting/pages/admin/all/PaymentSettingMenu.jsx +26 -26
  1497. package/src/modules/setting/pages/admin/all/SettingMenuGroup.jsx +31 -31
  1498. package/src/modules/setting/pages/admin/all/StoreSettingMenu.jsx +26 -26
  1499. package/src/modules/setting/pages/admin/paymentSetting/PaymentSetting.jsx +49 -49
  1500. package/src/modules/setting/pages/admin/paymentSetting/index.js +10 -10
  1501. package/src/modules/setting/pages/admin/paymentSetting/route.json +4 -4
  1502. package/src/modules/setting/pages/admin/storeSetting/StoreSetting.jsx +407 -407
  1503. package/src/modules/setting/pages/admin/storeSetting/index.js +10 -10
  1504. package/src/modules/setting/pages/admin/storeSetting/route.json +4 -4
  1505. package/src/modules/setting/services/setting.js +20 -20
  1506. package/src/modules/stripe/api/capturePaymentIntent/[context]bodyParser[auth].js +5 -0
  1507. package/src/modules/stripe/api/capturePaymentIntent/capturePaymentIntent.js +105 -0
  1508. package/src/modules/stripe/api/capturePaymentIntent/payloadSchema.json +15 -0
  1509. package/src/modules/stripe/api/capturePaymentIntent/route.json +5 -0
  1510. package/src/modules/stripe/api/createPaymentIntent/[context]bodyParser[auth].js +5 -5
  1511. package/src/modules/stripe/api/createPaymentIntent/createPaymentIntent.js +66 -57
  1512. package/src/modules/stripe/api/createPaymentIntent/payloadSchema.json +19 -15
  1513. package/src/modules/stripe/api/createPaymentIntent/route.json +5 -5
  1514. package/src/modules/stripe/api/getPaymentMethods/registerStripe[sendMethods].js +22 -22
  1515. package/src/modules/stripe/api/refundPaymentIntent/[context]bodyParser[auth].js +5 -0
  1516. package/src/modules/stripe/api/refundPaymentIntent/payloadSchema.json +22 -0
  1517. package/src/modules/stripe/api/refundPaymentIntent/refundPaymentIntent.js +105 -0
  1518. package/src/modules/stripe/api/refundPaymentIntent/route.json +5 -0
  1519. package/src/modules/stripe/api/stripeWebHook/[bodyJson]webhook.js +150 -107
  1520. package/src/modules/stripe/api/stripeWebHook/bodyJson.js +5 -5
  1521. package/src/modules/stripe/api/stripeWebHook/route.json +5 -5
  1522. package/src/modules/stripe/bootstrap.js +75 -27
  1523. package/src/modules/stripe/graphql/types/StripeSetting/StripeSetting.admin.graphql +4 -4
  1524. package/src/modules/stripe/graphql/types/StripeSetting/StripeSetting.admin.resolvers.js +62 -62
  1525. package/src/modules/stripe/graphql/types/StripeSetting/StripeSetting.graphql +6 -5
  1526. package/src/modules/stripe/graphql/types/StripeSetting/StripeSetting.resolvers.js +54 -44
  1527. package/src/modules/stripe/pages/admin/orderEdit/StripeCaptureButton.jsx +74 -0
  1528. package/src/modules/stripe/pages/admin/orderEdit/StripeRefundButton.jsx +139 -0
  1529. package/src/modules/stripe/pages/admin/paymentSetting/StripePayment.jsx +140 -117
  1530. package/src/modules/stripe/pages/frontStore/checkout/Stripe.jsx +191 -137
  1531. package/src/modules/stripe/pages/frontStore/stripeReturn/index.js +74 -0
  1532. package/src/modules/stripe/pages/frontStore/stripeReturn/route.json +4 -0
  1533. package/src/modules/stripe/services/cancelPayment.js +44 -0
  1534. package/src/modules/tax/api/createTaxClass/[context]borderParser[auth].js +5 -5
  1535. package/src/modules/tax/api/createTaxClass/createTaxClass.js +42 -42
  1536. package/src/modules/tax/api/createTaxClass/payloadSchema.json +12 -12
  1537. package/src/modules/tax/api/createTaxClass/route.json +5 -5
  1538. package/src/modules/tax/api/createTaxRate/[context]borderParser[auth].js +5 -5
  1539. package/src/modules/tax/api/createTaxRate/createTaxRate.js +69 -69
  1540. package/src/modules/tax/api/createTaxRate/payloadSchema.json +34 -34
  1541. package/src/modules/tax/api/createTaxRate/route.json +5 -5
  1542. package/src/modules/tax/api/deleteTaxRate/[context]borderParser[auth].js +5 -5
  1543. package/src/modules/tax/api/deleteTaxRate/deleteTaxRate.js +56 -56
  1544. package/src/modules/tax/api/deleteTaxRate/route.json +5 -5
  1545. package/src/modules/tax/api/updateTaxClass/[context]borderParser[auth].js +5 -5
  1546. package/src/modules/tax/api/updateTaxClass/payloadSchema.json +12 -12
  1547. package/src/modules/tax/api/updateTaxClass/route.json +5 -5
  1548. package/src/modules/tax/api/updateTaxClass/updateTaxClass.js +63 -63
  1549. package/src/modules/tax/api/updateTaxRate/[context]borderParser[auth].js +5 -5
  1550. package/src/modules/tax/api/updateTaxRate/payloadSchema.json +34 -34
  1551. package/src/modules/tax/api/updateTaxRate/route.json +5 -5
  1552. package/src/modules/tax/api/updateTaxRate/updateTaxRate.js +69 -69
  1553. package/src/modules/tax/bootstrap.js +68 -68
  1554. package/src/modules/tax/graphql/types/Product/Price/ProductPrice.resolvers.js +15 -15
  1555. package/src/modules/tax/graphql/types/TaxClass/TaxClass.admin.graphql +42 -42
  1556. package/src/modules/tax/graphql/types/TaxClass/TaxClass.admin.resolvers.js +37 -37
  1557. package/src/modules/tax/graphql/types/TaxSetting/TaxSetting.admin.graphql +5 -5
  1558. package/src/modules/tax/graphql/types/TaxSetting/TaxSetting.admin.resolvers.js +34 -34
  1559. package/src/modules/tax/graphql/types/TaxSetting/TaxSetting.graphql +3 -3
  1560. package/src/modules/tax/graphql/types/TaxSetting/TaxSetting.resolvers.js +7 -7
  1561. package/src/modules/tax/migration/Version-1.0.0.js +86 -86
  1562. package/src/modules/tax/pages/admin/all/TaxSettingMenu.jsx +26 -26
  1563. package/src/modules/tax/pages/admin/taxSetting/TaxSetting.jsx +230 -230
  1564. package/src/modules/tax/pages/admin/taxSetting/index.js +10 -10
  1565. package/src/modules/tax/pages/admin/taxSetting/route.json +4 -4
  1566. package/src/modules/tax/services/TaxClassCollection.js +59 -59
  1567. package/src/modules/tax/services/calculateTaxAmount.js +57 -57
  1568. package/src/modules/tax/services/getTaxPercent.js +14 -14
  1569. package/src/modules/tax/services/getTaxRates.js +66 -66
  1570. package/src/modules/tax/services/registerCartItemTaxPercentField.js +76 -76
  1571. package/src/modules/tax/services/registerDefaultTaxClassCollectionFilters.js +49 -49
  1572. package/src/components/admin/oms/orderEdit/payment/Transactions.jsx +0 -40
  1573. package/src/lib/middleware/tests/app/modules/basecopy/pages/global/[auth]notification[response].js +0 -3
  1574. package/src/modules/base/pages/global/[auth]notification[response].js +0 -7
  1575. package/src/modules/customer/services/addressValidator.js +0 -34
  1576. package/src/modules/oms/pages/admin/orderEdit/PaymentStatus.jsx +0 -45
  1577. package/src/modules/paypal/api/paypalGetAccessToken/[bodyParser]getAccessToken.js +0 -87
@@ -1,685 +1,685 @@
1
- const { execute, insert } = require('@evershop/postgres-query-builder');
2
-
3
- // eslint-disable-next-line no-multi-assign
4
- module.exports = exports = async (connection) => {
5
- await execute(
6
- connection,
7
- `CREATE TABLE "attribute" (
8
- "attribute_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
9
- "uuid" UUID NOT NULL DEFAULT gen_random_uuid (),
10
- "attribute_code" varchar NOT NULL,
11
- "attribute_name" varchar NOT NULL,
12
- "type" varchar NOT NULL,
13
- "is_required" boolean NOT NULL DEFAULT FALSE,
14
- "display_on_frontend" boolean NOT NULL DEFAULT FALSE,
15
- "sort_order" INT NOT NULL DEFAULT 0,
16
- "is_filterable" boolean NOT NULL DEFAULT FALSE,
17
- CONSTRAINT "ATTRIBUTE_CODE_UNIQUE" UNIQUE ("attribute_code"),
18
- CONSTRAINT "ATTRIBUTE_CODE_UUID_UNIQUE" UNIQUE ("uuid")
19
- )`
20
- );
21
-
22
- const color = await insert('attribute')
23
- .given({
24
- attribute_code: 'color',
25
- attribute_name: 'Color',
26
- type: 'select',
27
- is_required: 0,
28
- display_on_frontend: 1,
29
- is_filterable: 1
30
- })
31
- .execute(connection);
32
- const size = await insert('attribute')
33
- .given({
34
- attribute_code: 'size',
35
- attribute_name: 'Size',
36
- type: 'select',
37
- is_required: 0,
38
- display_on_frontend: 1,
39
- is_filterable: 1
40
- })
41
- .execute(connection);
42
- await execute(
43
- connection,
44
- `CREATE TABLE "attribute_option" (
45
- "attribute_option_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
46
- "uuid" UUID NOT NULL DEFAULT gen_random_uuid (),
47
- "attribute_id" INT NOT NULL,
48
- "attribute_code" varchar NOT NULL,
49
- "option_text" varchar NOT NULL,
50
- CONSTRAINT "ATTRIBUTE_OPTION_UUID_UNIQUE" UNIQUE ("uuid"),
51
- CONSTRAINT "FK_ATTRIBUTE_OPTION" FOREIGN KEY ("attribute_id") REFERENCES "attribute" ("attribute_id") ON DELETE CASCADE
52
- )`
53
- );
54
-
55
- await execute(
56
- connection,
57
- `CREATE INDEX "FK_ATTRIBUTE_OPTION" ON "attribute_option" ("attribute_id")`
58
- );
59
-
60
- await insert('attribute_option')
61
- .given({
62
- attribute_id: color.insertId,
63
- attribute_code: 'color',
64
- option_text: 'White'
65
- })
66
- .execute(connection);
67
-
68
- await insert('attribute_option')
69
- .given({
70
- attribute_id: color.insertId,
71
- attribute_code: 'color',
72
- option_text: 'Black'
73
- })
74
- .execute(connection);
75
-
76
- await insert('attribute_option')
77
- .given({
78
- attribute_id: color.insertId,
79
- attribute_code: 'color',
80
- option_text: 'Yellow'
81
- })
82
- .execute(connection);
83
-
84
- await insert('attribute_option')
85
- .given({
86
- attribute_id: size.insertId,
87
- attribute_code: 'size',
88
- option_text: 'XXL'
89
- })
90
- .execute(connection);
91
-
92
- await insert('attribute_option')
93
- .given({
94
- attribute_id: size.insertId,
95
- attribute_code: 'size',
96
- option_text: 'XL'
97
- })
98
- .execute(connection);
99
-
100
- await insert('attribute_option')
101
- .given({
102
- attribute_id: size.insertId,
103
- attribute_code: 'size',
104
- option_text: 'SM'
105
- })
106
- .execute(connection);
107
-
108
- await execute(
109
- connection,
110
- `CREATE TABLE "attribute_group" (
111
- "attribute_group_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
112
- "uuid" UUID NOT NULL DEFAULT gen_random_uuid (),
113
- "group_name" text NOT NULL,
114
- "created_at" TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
115
- "updated_at" TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
116
- CONSTRAINT "ATTRIBUTE_GROUP_UUID_UNIQUE" UNIQUE ("uuid")
117
- )`
118
- );
119
-
120
- const defaultGroup = await insert('attribute_group')
121
- .given({ group_name: 'Default' })
122
- .execute(connection);
123
-
124
- await execute(
125
- connection,
126
- `CREATE TABLE "attribute_group_link" (
127
- "attribute_group_link_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
128
- "attribute_id" INT NOT NULL,
129
- "group_id" INT NOT NULL,
130
- CONSTRAINT "ATTRIBUTE_GROUP_LINK_UNIQUE" UNIQUE ("attribute_id","group_id"),
131
- CONSTRAINT "FK_ATTRIBUTE_LINK" FOREIGN KEY ("attribute_id") REFERENCES "attribute" ("attribute_id") ON DELETE CASCADE ON UPDATE CASCADE,
132
- CONSTRAINT "FK_GROUP_LINK" FOREIGN KEY ("group_id") REFERENCES "attribute_group" ("attribute_group_id") ON DELETE CASCADE
133
- )`
134
- );
135
-
136
- await execute(
137
- connection,
138
- `CREATE INDEX "FK_GROUP_LINK" ON "attribute_group_link" ("group_id")`
139
- );
140
- await execute(
141
- connection,
142
- `CREATE INDEX "FK_ATTRIBUTE_LINK" ON "attribute_group_link" ("attribute_id")`
143
- );
144
-
145
- await insert('attribute_group_link')
146
- .given({
147
- group_id: defaultGroup.insertId,
148
- attribute_id: color.insertId
149
- })
150
- .execute(connection);
151
- await insert('attribute_group_link')
152
- .given({
153
- group_id: defaultGroup.insertId,
154
- attribute_id: size.insertId
155
- })
156
- .execute(connection);
157
-
158
- await execute(
159
- connection,
160
- `CREATE TABLE "variant_group" (
161
- "variant_group_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
162
- "uuid" UUID NOT NULL DEFAULT gen_random_uuid (),
163
- "attribute_group_id" INT NOT NULL,
164
- "attribute_one" INT DEFAULT NULL,
165
- "attribute_two" INT DEFAULT NULL,
166
- "attribute_three" INT DEFAULT NULL,
167
- "attribute_four" INT DEFAULT NULL,
168
- "attribute_five" INT DEFAULT NULL,
169
- "visibility" boolean NOT NULL DEFAULT FALSE,
170
- CONSTRAINT "VARIANT_GROUP_UUID_UNIQUE" UNIQUE ("uuid"),
171
- CONSTRAINT "FK_ATTRIBUTE_GROUP_VARIANT" FOREIGN KEY ("attribute_group_id") REFERENCES "attribute_group" ("attribute_group_id") ON DELETE CASCADE ON UPDATE NO ACTION,
172
- CONSTRAINT "FK_ATTRIBUTE_VARIANT_FIVE" FOREIGN KEY ("attribute_five") REFERENCES "attribute" ("attribute_id") ON DELETE CASCADE ON UPDATE NO ACTION,
173
- CONSTRAINT "FK_ATTRIBUTE_VARIANT_FOUR" FOREIGN KEY ("attribute_four") REFERENCES "attribute" ("attribute_id") ON DELETE CASCADE ON UPDATE NO ACTION,
174
- CONSTRAINT "FK_ATTRIBUTE_VARIANT_ONE" FOREIGN KEY ("attribute_one") REFERENCES "attribute" ("attribute_id") ON DELETE CASCADE ON UPDATE NO ACTION,
175
- CONSTRAINT "FK_ATTRIBUTE_VARIANT_THREE" FOREIGN KEY ("attribute_three") REFERENCES "attribute" ("attribute_id") ON DELETE CASCADE ON UPDATE NO ACTION,
176
- CONSTRAINT "FK_ATTRIBUTE_VARIANT_TWO" FOREIGN KEY ("attribute_two") REFERENCES "attribute" ("attribute_id") ON DELETE CASCADE ON UPDATE NO ACTION
177
- )`
178
- );
179
-
180
- await execute(
181
- connection,
182
- `CREATE INDEX "FK_ATTRIBUTE_VARIANT_ONE" ON "variant_group" ("attribute_one")`
183
- );
184
- await execute(
185
- connection,
186
- `CREATE INDEX "FK_ATTRIBUTE_VARIANT_TWO" ON "variant_group" ("attribute_two")`
187
- );
188
- await execute(
189
- connection,
190
- `CREATE INDEX "FK_ATTRIBUTE_VARIANT_THREE" ON "variant_group" ("attribute_three")`
191
- );
192
- await execute(
193
- connection,
194
- `CREATE INDEX "FK_ATTRIBUTE_VARIANT_FOUR" ON "variant_group" ("attribute_four")`
195
- );
196
- await execute(
197
- connection,
198
- `CREATE INDEX "FK_ATTRIBUTE_VARIANT_FIVE" ON "variant_group" ("attribute_five")`
199
- );
200
- await execute(
201
- connection,
202
- `CREATE INDEX "FK_ATTRIBUTE_GROUP_VARIANT" ON "variant_group" ("attribute_group_id")`
203
- );
204
-
205
- await execute(
206
- connection,
207
- `CREATE TABLE "product" (
208
- "product_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
209
- "uuid" UUID NOT NULL DEFAULT gen_random_uuid (),
210
- "type" varchar NOT NULL DEFAULT 'simple',
211
- "variant_group_id" INT DEFAULT NULL,
212
- "visibility" boolean NOT NULL DEFAULT TRUE,
213
- "group_id" INT DEFAULT 1,
214
- "image" varchar DEFAULT NULL,
215
- "sku" varchar NOT NULL,
216
- "price" decimal(12,4) NOT NULL,
217
- "qty" INT NOT NULL,
218
- "weight" decimal(12,4) DEFAULT NULL,
219
- "manage_stock" boolean NOT NULL,
220
- "stock_availability" boolean NOT NULL,
221
- "tax_class" smallint DEFAULT NULL,
222
- "status" boolean NOT NULL DEFAULT FALSE,
223
- "created_at" TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
224
- "updated_at" TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
225
- CONSTRAINT "PRODUCT_UUID_UNIQUE" UNIQUE ("uuid"),
226
- CONSTRAINT "PRODUCT_SKU_UNIQUE" UNIQUE ("sku"),
227
- CONSTRAINT "UNSIGNED_PRICE" CHECK(price >= 0),
228
- CONSTRAINT "UNSIGNED_WEIGHT" CHECK(weight >= 0),
229
- CONSTRAINT "FK_PRODUCT_ATTRIBUTE_GROUP" FOREIGN KEY ("group_id") REFERENCES "attribute_group" ("attribute_group_id") ON DELETE SET NULL,
230
- CONSTRAINT "FK_PRODUCT_VARIANT_GROUP" FOREIGN KEY ("variant_group_id") REFERENCES "variant_group" ("variant_group_id") ON DELETE SET NULL
231
- )`
232
- );
233
-
234
- await execute(
235
- connection,
236
- `CREATE INDEX "FK_PRODUCT_ATTRIBUTE_GROUP" ON "product" ("group_id")`
237
- );
238
- await execute(
239
- connection,
240
- `CREATE INDEX "FK_PRODUCT_VARIANT_GROUP" ON "product" ("variant_group_id")`
241
- );
242
-
243
- await execute(
244
- connection,
245
- `CREATE TABLE "product_attribute_value_index" (
246
- "product_attribute_value_index_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
247
- "uuid" UUID NOT NULL DEFAULT gen_random_uuid (),
248
- "product_id" INT NOT NULL,
249
- "attribute_id" INT NOT NULL,
250
- "option_id" INT DEFAULT NULL,
251
- "option_text" text DEFAULT NULL,
252
- CONSTRAINT "PRODUCT_ATTRIBUTE_VALUE_UUID_UNIQUE" UNIQUE ("uuid"),
253
- CONSTRAINT "OPTION_VALUE_UNIQUE" UNIQUE ("product_id","attribute_id","option_id"),
254
- CONSTRAINT "FK_ATTRIBUTE_OPTION_VALUE_LINK" FOREIGN KEY ("option_id") REFERENCES "attribute_option" ("attribute_option_id") ON DELETE CASCADE,
255
- CONSTRAINT "FK_ATTRIBUTE_VALUE_LINK" FOREIGN KEY ("attribute_id") REFERENCES "attribute" ("attribute_id") ON DELETE CASCADE,
256
- CONSTRAINT "FK_PRODUCT_ATTRIBUTE_LINK" FOREIGN KEY ("product_id") REFERENCES "product" ("product_id") ON DELETE CASCADE
257
- )`
258
- );
259
- await execute(
260
- connection,
261
- `CREATE INDEX "FK_ATTRIBUTE_VALUE_LINK" ON "product_attribute_value_index" ("attribute_id")`
262
- );
263
- await execute(
264
- connection,
265
- `CREATE INDEX "FK_ATTRIBUTE_OPTION_VALUE_LINK" ON "product_attribute_value_index" ("option_id")`
266
- );
267
- await execute(
268
- connection,
269
- `CREATE INDEX "FK_PRODUCT_ATTRIBUTE_LINK" ON "product_attribute_value_index" ("product_id")`
270
- );
271
-
272
- await execute(
273
- connection,
274
- `CREATE TABLE "product_custom_option" (
275
- "product_custom_option_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
276
- "uuid" UUID NOT NULL DEFAULT gen_random_uuid (),
277
- "product_custom_option_product_id" INT NOT NULL,
278
- "option_name" varchar NOT NULL,
279
- "option_type" varchar NOT NULL,
280
- "is_required" boolean NOT NULL DEFAULT FALSE,
281
- "sort_order" INT DEFAULT NULL,
282
- CONSTRAINT "PRODUCT_CUSTOM_OPTION_UUID_UNIQUE" UNIQUE ("uuid"),
283
- CONSTRAINT "FK_PRODUCT_CUSTOM_OPTION" FOREIGN KEY ("product_custom_option_product_id") REFERENCES "product" ("product_id") ON DELETE CASCADE
284
- )`
285
- );
286
- await execute(
287
- connection,
288
- `CREATE INDEX "FK_PRODUCT_CUSTOM_OPTION" ON "product_custom_option" ("product_custom_option_product_id")`
289
- );
290
-
291
- await execute(
292
- connection,
293
- `CREATE TABLE "product_custom_option_value" (
294
- "product_custom_option_value_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
295
- "uuid" UUID NOT NULL DEFAULT gen_random_uuid (),
296
- "option_id" INT NOT NULL,
297
- "extra_price" decimal(12,4) DEFAULT NULL,
298
- "sort_order" INT DEFAULT NULL,
299
- "value" varchar NOT NULL,
300
- CONSTRAINT "PRODUCT_CUSTOM_OPTION_VALUE_UUID_UNIQUE" UNIQUE ("uuid"),
301
- CONSTRAINT "FK_CUSTOM_OPTION_VALUE" FOREIGN KEY ("option_id") REFERENCES "product_custom_option" ("product_custom_option_id") ON DELETE CASCADE
302
- )`
303
- );
304
- await execute(
305
- connection,
306
- `CREATE INDEX "FK_CUSTOM_OPTION_VALUE" ON "product_custom_option_value" ("option_id")`
307
- );
308
-
309
- await execute(
310
- connection,
311
- `CREATE TABLE "product_description" (
312
- "product_description_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
313
- "product_description_product_id" INT NOT NULL,
314
- "name" varchar NOT NULL,
315
- "description" text DEFAULT NULL,
316
- "short_description" text DEFAULT NULL,
317
- "url_key" varchar NOT NULL,
318
- "meta_title" text DEFAULT NULL,
319
- "meta_description" text DEFAULT NULL,
320
- "meta_keywords" text DEFAULT NULL,
321
- CONSTRAINT "PRODUCT_ID_UNIQUE" UNIQUE ("product_description_product_id"),
322
- CONSTRAINT "PRODUCT_URL_KEY_UNIQUE" UNIQUE ("url_key"),
323
- CONSTRAINT "FK_PRODUCT_DESCRIPTION" FOREIGN KEY ("product_description_product_id") REFERENCES "product" ("product_id") ON DELETE CASCADE
324
- )`
325
- );
326
- await execute(
327
- connection,
328
- `CREATE INDEX "FK_PRODUCT_DESCRIPTION" ON "product_description" ("product_description_product_id")`
329
- );
330
-
331
- await execute(
332
- connection,
333
- `CREATE TABLE "product_image" (
334
- "product_image_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
335
- "uuid" UUID NOT NULL DEFAULT gen_random_uuid (),
336
- "product_image_product_id" INT NOT NULL,
337
- "image" varchar NOT NULL,
338
- CONSTRAINT "PRODUCT_IMAGE_UUID_UNIQUE" UNIQUE ("uuid"),
339
- CONSTRAINT "FK_PRODUCT_IMAGE_LINK" FOREIGN KEY ("product_image_product_id") REFERENCES "product" ("product_id") ON DELETE CASCADE
340
- )`
341
- );
342
- await execute(
343
- connection,
344
- `CREATE INDEX "FK_PRODUCT_IMAGE_LINK" ON "product_image" ("product_image_product_id")`
345
- );
346
-
347
- await execute(
348
- connection,
349
- `CREATE TABLE "category" (
350
- "category_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
351
- "uuid" UUID NOT NULL DEFAULT gen_random_uuid (),
352
- "status" boolean NOT NULL,
353
- "parent_id" INT DEFAULT NULL,
354
- "include_in_nav" boolean NOT NULL,
355
- "position" smallint DEFAULT NULL,
356
- "show_products" boolean DEFAULT TRUE,
357
- "created_at" TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
358
- "updated_at" TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
359
- CONSTRAINT "CATEGORY_UUID_UNIQUE" UNIQUE ("uuid")
360
- )`
361
- );
362
-
363
- await execute(
364
- connection,
365
- `CREATE TABLE "product_category" (
366
- "product_category_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
367
- "category_id" INT NOT NULL,
368
- "product_id" INT NOT NULL,
369
- CONSTRAINT "PRODUCT_CATEGORY_UNIQUE" UNIQUE ("category_id","product_id"),
370
- CONSTRAINT "FK_CATEGORY_PRODUCT_LINK" FOREIGN KEY ("category_id") REFERENCES "category" ("category_id") ON DELETE CASCADE,
371
- CONSTRAINT "FK_PRODUCT_CATEGORY_LINK" FOREIGN KEY ("product_id") REFERENCES "product" ("product_id") ON DELETE CASCADE
372
- )`
373
- );
374
- await execute(
375
- connection,
376
- `CREATE INDEX "FK_CATEGORY_PRODUCT_LINK" ON "product_category" ("category_id")`
377
- );
378
- await execute(
379
- connection,
380
- `CREATE INDEX "FK_PRODUCT_CATEGORY_LINK" ON "product_category" ("product_id")`
381
- );
382
-
383
- await execute(
384
- connection,
385
- `CREATE TABLE "category_description" (
386
- "category_description_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
387
- "category_description_category_id" INT NOT NULL,
388
- "name" varchar NOT NULL,
389
- "short_description" text DEFAULT NULL,
390
- "description" text DEFAULT NULL,
391
- "image" varchar DEFAULT NULL,
392
- "meta_title" text DEFAULT NULL,
393
- "meta_keywords" text DEFAULT NULL,
394
- "meta_description" text DEFAULT NULL,
395
- "url_key" varchar NOT NULL,
396
- CONSTRAINT "CATEGORY_ID_UNIQUE" UNIQUE ("category_description_category_id"),
397
- CONSTRAINT "CATEGORY_URL_KEY_UNIQUE" UNIQUE ("url_key"),
398
- CONSTRAINT "FK_CATEGORY_DESCRIPTION" FOREIGN KEY ("category_description_category_id") REFERENCES "category" ("category_id") ON DELETE CASCADE
399
- )`
400
- );
401
- await execute(
402
- connection,
403
- `CREATE INDEX "FK_CATEGORY_DESCRIPTION" ON "category_description" ("category_description_category_id")`
404
- );
405
-
406
- // Create 3 default categories, Kids, Men, Women
407
- const kids = await insert('category')
408
- .given({
409
- status: 1,
410
- include_in_nav: 1
411
- })
412
- .execute(connection);
413
-
414
- await insert('category_description')
415
- .given({
416
- category_description_category_id: kids.insertId,
417
- name: 'Kids',
418
- url_key: 'kids',
419
- meta_title: 'Kids',
420
- meta_description: 'Kids',
421
- meta_keywords: 'Kids',
422
- description: 'Kids'
423
- })
424
- .execute(connection);
425
-
426
- const women = await insert('category')
427
- .given({
428
- status: 1,
429
- include_in_nav: 1
430
- })
431
- .execute(connection);
432
-
433
- await insert('category_description')
434
- .given({
435
- category_description_category_id: women.insertId,
436
- name: 'Women',
437
- url_key: 'women',
438
- meta_title: 'Women',
439
- meta_description: 'Women',
440
- meta_keywords: 'Women',
441
- description: 'Women'
442
- })
443
- .execute(connection);
444
-
445
- const men = await insert('category')
446
- .given({
447
- status: 1,
448
- include_in_nav: 1
449
- })
450
- .execute(connection);
451
-
452
- await insert('category_description')
453
- .given({
454
- category_description_category_id: men.insertId,
455
- name: 'Men',
456
- url_key: 'men',
457
- meta_title: 'Men',
458
- meta_description: 'Men',
459
- meta_keywords: 'Men',
460
- description: 'Men'
461
- })
462
- .execute(connection);
463
-
464
- // COLLECTION
465
- await execute(
466
- connection,
467
- `CREATE TABLE "collection" (
468
- "collection_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
469
- "uuid" UUID NOT NULL DEFAULT gen_random_uuid (),
470
- "name" varchar NOT NULL,
471
- "description" text DEFAULT NULL,
472
- "code" varchar NOT NULL,
473
- "created_at" TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
474
- "updated_at" TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
475
- CONSTRAINT "COLLECTION_CODE_UNIQUE" UNIQUE ("code"),
476
- CONSTRAINT "COLLECTION_UUID_UNIQUE" UNIQUE ("uuid")
477
- )`
478
- );
479
-
480
- await execute(
481
- connection,
482
- `CREATE TABLE "product_collection" (
483
- "product_collection_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
484
- "collection_id" INT NOT NULL,
485
- "product_id" INT NOT NULL,
486
- CONSTRAINT "PRODUCT_COLLECTION_UNIQUE" UNIQUE ("collection_id","product_id"),
487
- CONSTRAINT "FK_COLLECTION_PRODUCT_LINK" FOREIGN KEY ("collection_id") REFERENCES "collection" ("collection_id") ON DELETE CASCADE,
488
- CONSTRAINT "FK_PRODUCT_COLLECTION_LINK" FOREIGN KEY ("product_id") REFERENCES "product" ("product_id") ON DELETE CASCADE
489
- )`
490
- );
491
- await execute(
492
- connection,
493
- `CREATE INDEX "FK_COLLECTION_PRODUCT_LINK" ON "product_collection" ("collection_id")`
494
- );
495
- await execute(
496
- connection,
497
- `CREATE INDEX "FK_PRODUCT_COLLECTION_LINK" ON "product_collection" ("product_id")`
498
- );
499
-
500
- /* CREATE SOME TRIGGERS */
501
- // Prevent deleting a default attribute group
502
- await execute(
503
- connection,
504
- `CREATE OR REPLACE FUNCTION prevent_delete_default_attribute_group()
505
- RETURNS TRIGGER
506
- LANGUAGE PLPGSQL
507
- AS
508
- $$
509
- BEGIN
510
- IF OLD.attribute_group_id = 1 THEN
511
- RAISE EXCEPTION 'Cannot delete default attribute group';
512
- END IF;
513
- RETURN OLD;
514
- END;
515
- $$`
516
- );
517
- await execute(
518
- connection,
519
- `CREATE TRIGGER "PREVENT_DELETING_THE_DEFAULT_ATTRIBUTE_GROUP"
520
- BEFORE DELETE ON attribute_group
521
- FOR EACH ROW
522
- EXECUTE PROCEDURE prevent_delete_default_attribute_group();`
523
- );
524
-
525
- // Prevent changing product attribute group if product has variants
526
- await execute(
527
- connection,
528
- `CREATE OR REPLACE FUNCTION prevent_change_attribute_group()
529
- RETURNS TRIGGER
530
- LANGUAGE PLPGSQL
531
- AS
532
- $$
533
- BEGIN
534
- IF OLD.group_id != NEW.group_id AND OLD.variant_group_id IS NOT NULL THEN
535
- RAISE EXCEPTION 'Cannot change attribute group of product with variants';
536
- END IF;
537
- RETURN NEW;
538
- END;
539
- $$`
540
- );
541
- await execute(
542
- connection,
543
- `CREATE TRIGGER "PREVENT_CHANGING_ATTRIBUTE_GROUP_OF_PRODUCT_WITH_VARIANTS"
544
- BEFORE UPDATE ON product
545
- FOR EACH ROW
546
- EXECUTE PROCEDURE prevent_change_attribute_group();`
547
- );
548
-
549
- // Delete product attribute value and variant group when attribute is removed from group
550
- await execute(
551
- connection,
552
- `CREATE OR REPLACE FUNCTION remove_attribute_from_group()
553
- RETURNS TRIGGER
554
- LANGUAGE PLPGSQL
555
- AS
556
- $$
557
- BEGIN
558
- DELETE FROM product_attribute_value_index WHERE product_attribute_value_index.attribute_id = OLD.attribute_id AND product_attribute_value_index.product_id IN (SELECT product.product_id FROM product WHERE product.group_id = OLD.group_id);
559
- DELETE FROM variant_group WHERE variant_group.attribute_group_id = OLD.group_id AND (variant_group.attribute_one = OLD.attribute_id OR variant_group.attribute_two = OLD.attribute_id OR variant_group.attribute_three = OLD.attribute_id OR variant_group.attribute_four = OLD.attribute_id OR variant_group.attribute_five = OLD.attribute_id);
560
- RETURN OLD;
561
- END;
562
- $$;`
563
- );
564
- await execute(
565
- connection,
566
- `CREATE TRIGGER "TRIGGER_AFTER_REMOVE_ATTRIBUTE_FROM_GROUP" AFTER DELETE ON "attribute_group_link"
567
- FOR EACH ROW
568
- EXECUTE PROCEDURE remove_attribute_from_group();
569
- `
570
- );
571
-
572
- // Update product attribute value option text when option is updated
573
- await execute(
574
- connection,
575
- `CREATE OR REPLACE FUNCTION update_product_attribute_option_value_text()
576
- RETURNS TRIGGER
577
- LANGUAGE PLPGSQL
578
- AS
579
- $$
580
- BEGIN
581
- UPDATE "product_attribute_value_index" SET "option_text" = NEW.option_text
582
- WHERE "product_attribute_value_index".option_id = NEW.attribute_option_id AND "product_attribute_value_index".attribute_id = NEW.attribute_id;
583
- RETURN NEW;
584
- END;
585
- $$;`
586
- );
587
- await execute(
588
- connection,
589
- `CREATE TRIGGER "TRIGGER_AFTER_ATTRIBUTE_OPTION_UPDATE" AFTER UPDATE ON "attribute_option" FOR EACH ROW
590
- EXECUTE PROCEDURE update_product_attribute_option_value_text();
591
- `
592
- );
593
-
594
- // Delete product attribute value index after option is deleted
595
- await execute(
596
- connection,
597
- `CREATE OR REPLACE FUNCTION delete_product_attribute_value_index()
598
- RETURNS TRIGGER
599
- LANGUAGE PLPGSQL
600
- AS
601
- $$
602
- BEGIN
603
- DELETE FROM "product_attribute_value_index" WHERE "product_attribute_value_index".option_id = OLD.attribute_option_id AND "product_attribute_value_index"."attribute_id" = OLD.attribute_id;
604
- RETURN OLD;
605
- END;
606
- $$;`
607
- );
608
- await execute(
609
- connection,
610
- `CREATE TRIGGER "TRIGGER_AFTER_DELETE_ATTRIBUTE_OPTION" AFTER DELETE ON "attribute_option" FOR EACH ROW
611
- EXECUTE PROCEDURE delete_product_attribute_value_index();
612
- `
613
- );
614
-
615
- // Update variant group visibility after new product is added
616
- await execute(
617
- connection,
618
- `CREATE OR REPLACE FUNCTION update_variant_group_visibility()
619
- RETURNS TRIGGER
620
- LANGUAGE PLPGSQL
621
- AS
622
- $$
623
- BEGIN
624
- UPDATE "variant_group" SET visibility = (SELECT bool_or(visibility) FROM "product" WHERE "product"."variant_group_id" = NEW.variant_group_id AND "product"."status" = TRUE) WHERE "variant_group"."variant_group_id" = NEW.variant_group_id;
625
- RETURN NEW;
626
- END;
627
- $$;`
628
- );
629
- await execute(
630
- connection,
631
- `CREATE CONSTRAINT TRIGGER "TRIGGER_AFTER_INSERT_PRODUCT" AFTER INSERT ON "product"
632
- DEFERRABLE INITIALLY IMMEDIATE
633
- FOR EACH ROW
634
- EXECUTE PROCEDURE update_variant_group_visibility();`
635
- );
636
-
637
- // Update product attribute index, variant group visibility and product visibility after product is updated
638
- await execute(
639
- connection,
640
- `CREATE OR REPLACE FUNCTION update_attribute_index_and_variant_group_visibility()
641
- RETURNS TRIGGER
642
- LANGUAGE PLPGSQL
643
- AS
644
- $$
645
- BEGIN
646
- DELETE FROM "product_attribute_value_index"
647
- WHERE "product_attribute_value_index"."product_id" = NEW.product_id
648
- AND "product_attribute_value_index"."attribute_id" NOT IN (SELECT "attribute_group_link"."attribute_id" FROM "attribute_group_link" WHERE "attribute_group_link"."group_id" = NEW.group_id);
649
- UPDATE "variant_group" SET visibility = (SELECT bool_or(visibility) FROM "product" WHERE "product"."variant_group_id" = NEW.variant_group_id AND "product"."status" = TRUE GROUP BY "product"."variant_group_id") WHERE "variant_group"."variant_group_id" = NEW.variant_group_id;
650
- RETURN NEW;
651
- END;
652
- $$;`
653
- );
654
- await execute(
655
- connection,
656
- `CREATE CONSTRAINT TRIGGER "TRIGGER_PRODUCT_AFTER_UPDATE" AFTER UPDATE ON "product"
657
- DEFERRABLE INITIALLY DEFERRED
658
- FOR EACH ROW
659
- EXECUTE PROCEDURE update_attribute_index_and_variant_group_visibility();
660
- `
661
- );
662
-
663
- // Delete variant group when attribute type is changed from select to something else
664
- await execute(
665
- connection,
666
- `CREATE OR REPLACE FUNCTION delete_variant_group_after_attribute_type_changed()
667
- RETURNS TRIGGER
668
- LANGUAGE PLPGSQL
669
- AS
670
- $$
671
- BEGIN
672
- IF (OLD.type = 'select' AND NEW.type <> 'select') THEN
673
- DELETE FROM "variant_group" WHERE ("variant_group".attribute_one = OLD.attribute_id OR "variant_group".attribute_two = OLD.attribute_id OR "variant_group".attribute_three = OLD.attribute_id OR "variant_group".attribute_four = OLD.attribute_id OR "variant_group".attribute_five = OLD.attribute_id);
674
- END IF;
675
- RETURN NEW;
676
- END
677
- $$;`
678
- );
679
- await execute(
680
- connection,
681
- `CREATE TRIGGER "TRIGGER_AFTER_UPDATE_ATTRIBUTE" AFTER UPDATE ON "attribute" FOR EACH ROW
682
- EXECUTE PROCEDURE delete_variant_group_after_attribute_type_changed();
683
- `
684
- );
685
- };
1
+ const { execute, insert } = require('@evershop/postgres-query-builder');
2
+
3
+ // eslint-disable-next-line no-multi-assign
4
+ module.exports = exports = async (connection) => {
5
+ await execute(
6
+ connection,
7
+ `CREATE TABLE "attribute" (
8
+ "attribute_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
9
+ "uuid" UUID NOT NULL DEFAULT gen_random_uuid (),
10
+ "attribute_code" varchar NOT NULL,
11
+ "attribute_name" varchar NOT NULL,
12
+ "type" varchar NOT NULL,
13
+ "is_required" boolean NOT NULL DEFAULT FALSE,
14
+ "display_on_frontend" boolean NOT NULL DEFAULT FALSE,
15
+ "sort_order" INT NOT NULL DEFAULT 0,
16
+ "is_filterable" boolean NOT NULL DEFAULT FALSE,
17
+ CONSTRAINT "ATTRIBUTE_CODE_UNIQUE" UNIQUE ("attribute_code"),
18
+ CONSTRAINT "ATTRIBUTE_CODE_UUID_UNIQUE" UNIQUE ("uuid")
19
+ )`
20
+ );
21
+
22
+ const color = await insert('attribute')
23
+ .given({
24
+ attribute_code: 'color',
25
+ attribute_name: 'Color',
26
+ type: 'select',
27
+ is_required: 0,
28
+ display_on_frontend: 1,
29
+ is_filterable: 1
30
+ })
31
+ .execute(connection);
32
+ const size = await insert('attribute')
33
+ .given({
34
+ attribute_code: 'size',
35
+ attribute_name: 'Size',
36
+ type: 'select',
37
+ is_required: 0,
38
+ display_on_frontend: 1,
39
+ is_filterable: 1
40
+ })
41
+ .execute(connection);
42
+ await execute(
43
+ connection,
44
+ `CREATE TABLE "attribute_option" (
45
+ "attribute_option_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
46
+ "uuid" UUID NOT NULL DEFAULT gen_random_uuid (),
47
+ "attribute_id" INT NOT NULL,
48
+ "attribute_code" varchar NOT NULL,
49
+ "option_text" varchar NOT NULL,
50
+ CONSTRAINT "ATTRIBUTE_OPTION_UUID_UNIQUE" UNIQUE ("uuid"),
51
+ CONSTRAINT "FK_ATTRIBUTE_OPTION" FOREIGN KEY ("attribute_id") REFERENCES "attribute" ("attribute_id") ON DELETE CASCADE
52
+ )`
53
+ );
54
+
55
+ await execute(
56
+ connection,
57
+ `CREATE INDEX "FK_ATTRIBUTE_OPTION" ON "attribute_option" ("attribute_id")`
58
+ );
59
+
60
+ await insert('attribute_option')
61
+ .given({
62
+ attribute_id: color.insertId,
63
+ attribute_code: 'color',
64
+ option_text: 'White'
65
+ })
66
+ .execute(connection);
67
+
68
+ await insert('attribute_option')
69
+ .given({
70
+ attribute_id: color.insertId,
71
+ attribute_code: 'color',
72
+ option_text: 'Black'
73
+ })
74
+ .execute(connection);
75
+
76
+ await insert('attribute_option')
77
+ .given({
78
+ attribute_id: color.insertId,
79
+ attribute_code: 'color',
80
+ option_text: 'Yellow'
81
+ })
82
+ .execute(connection);
83
+
84
+ await insert('attribute_option')
85
+ .given({
86
+ attribute_id: size.insertId,
87
+ attribute_code: 'size',
88
+ option_text: 'XXL'
89
+ })
90
+ .execute(connection);
91
+
92
+ await insert('attribute_option')
93
+ .given({
94
+ attribute_id: size.insertId,
95
+ attribute_code: 'size',
96
+ option_text: 'XL'
97
+ })
98
+ .execute(connection);
99
+
100
+ await insert('attribute_option')
101
+ .given({
102
+ attribute_id: size.insertId,
103
+ attribute_code: 'size',
104
+ option_text: 'SM'
105
+ })
106
+ .execute(connection);
107
+
108
+ await execute(
109
+ connection,
110
+ `CREATE TABLE "attribute_group" (
111
+ "attribute_group_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
112
+ "uuid" UUID NOT NULL DEFAULT gen_random_uuid (),
113
+ "group_name" text NOT NULL,
114
+ "created_at" TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
115
+ "updated_at" TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
116
+ CONSTRAINT "ATTRIBUTE_GROUP_UUID_UNIQUE" UNIQUE ("uuid")
117
+ )`
118
+ );
119
+
120
+ const defaultGroup = await insert('attribute_group')
121
+ .given({ group_name: 'Default' })
122
+ .execute(connection);
123
+
124
+ await execute(
125
+ connection,
126
+ `CREATE TABLE "attribute_group_link" (
127
+ "attribute_group_link_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
128
+ "attribute_id" INT NOT NULL,
129
+ "group_id" INT NOT NULL,
130
+ CONSTRAINT "ATTRIBUTE_GROUP_LINK_UNIQUE" UNIQUE ("attribute_id","group_id"),
131
+ CONSTRAINT "FK_ATTRIBUTE_LINK" FOREIGN KEY ("attribute_id") REFERENCES "attribute" ("attribute_id") ON DELETE CASCADE ON UPDATE CASCADE,
132
+ CONSTRAINT "FK_GROUP_LINK" FOREIGN KEY ("group_id") REFERENCES "attribute_group" ("attribute_group_id") ON DELETE CASCADE
133
+ )`
134
+ );
135
+
136
+ await execute(
137
+ connection,
138
+ `CREATE INDEX "FK_GROUP_LINK" ON "attribute_group_link" ("group_id")`
139
+ );
140
+ await execute(
141
+ connection,
142
+ `CREATE INDEX "FK_ATTRIBUTE_LINK" ON "attribute_group_link" ("attribute_id")`
143
+ );
144
+
145
+ await insert('attribute_group_link')
146
+ .given({
147
+ group_id: defaultGroup.insertId,
148
+ attribute_id: color.insertId
149
+ })
150
+ .execute(connection);
151
+ await insert('attribute_group_link')
152
+ .given({
153
+ group_id: defaultGroup.insertId,
154
+ attribute_id: size.insertId
155
+ })
156
+ .execute(connection);
157
+
158
+ await execute(
159
+ connection,
160
+ `CREATE TABLE "variant_group" (
161
+ "variant_group_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
162
+ "uuid" UUID NOT NULL DEFAULT gen_random_uuid (),
163
+ "attribute_group_id" INT NOT NULL,
164
+ "attribute_one" INT DEFAULT NULL,
165
+ "attribute_two" INT DEFAULT NULL,
166
+ "attribute_three" INT DEFAULT NULL,
167
+ "attribute_four" INT DEFAULT NULL,
168
+ "attribute_five" INT DEFAULT NULL,
169
+ "visibility" boolean NOT NULL DEFAULT FALSE,
170
+ CONSTRAINT "VARIANT_GROUP_UUID_UNIQUE" UNIQUE ("uuid"),
171
+ CONSTRAINT "FK_ATTRIBUTE_GROUP_VARIANT" FOREIGN KEY ("attribute_group_id") REFERENCES "attribute_group" ("attribute_group_id") ON DELETE CASCADE ON UPDATE NO ACTION,
172
+ CONSTRAINT "FK_ATTRIBUTE_VARIANT_FIVE" FOREIGN KEY ("attribute_five") REFERENCES "attribute" ("attribute_id") ON DELETE CASCADE ON UPDATE NO ACTION,
173
+ CONSTRAINT "FK_ATTRIBUTE_VARIANT_FOUR" FOREIGN KEY ("attribute_four") REFERENCES "attribute" ("attribute_id") ON DELETE CASCADE ON UPDATE NO ACTION,
174
+ CONSTRAINT "FK_ATTRIBUTE_VARIANT_ONE" FOREIGN KEY ("attribute_one") REFERENCES "attribute" ("attribute_id") ON DELETE CASCADE ON UPDATE NO ACTION,
175
+ CONSTRAINT "FK_ATTRIBUTE_VARIANT_THREE" FOREIGN KEY ("attribute_three") REFERENCES "attribute" ("attribute_id") ON DELETE CASCADE ON UPDATE NO ACTION,
176
+ CONSTRAINT "FK_ATTRIBUTE_VARIANT_TWO" FOREIGN KEY ("attribute_two") REFERENCES "attribute" ("attribute_id") ON DELETE CASCADE ON UPDATE NO ACTION
177
+ )`
178
+ );
179
+
180
+ await execute(
181
+ connection,
182
+ `CREATE INDEX "FK_ATTRIBUTE_VARIANT_ONE" ON "variant_group" ("attribute_one")`
183
+ );
184
+ await execute(
185
+ connection,
186
+ `CREATE INDEX "FK_ATTRIBUTE_VARIANT_TWO" ON "variant_group" ("attribute_two")`
187
+ );
188
+ await execute(
189
+ connection,
190
+ `CREATE INDEX "FK_ATTRIBUTE_VARIANT_THREE" ON "variant_group" ("attribute_three")`
191
+ );
192
+ await execute(
193
+ connection,
194
+ `CREATE INDEX "FK_ATTRIBUTE_VARIANT_FOUR" ON "variant_group" ("attribute_four")`
195
+ );
196
+ await execute(
197
+ connection,
198
+ `CREATE INDEX "FK_ATTRIBUTE_VARIANT_FIVE" ON "variant_group" ("attribute_five")`
199
+ );
200
+ await execute(
201
+ connection,
202
+ `CREATE INDEX "FK_ATTRIBUTE_GROUP_VARIANT" ON "variant_group" ("attribute_group_id")`
203
+ );
204
+
205
+ await execute(
206
+ connection,
207
+ `CREATE TABLE "product" (
208
+ "product_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
209
+ "uuid" UUID NOT NULL DEFAULT gen_random_uuid (),
210
+ "type" varchar NOT NULL DEFAULT 'simple',
211
+ "variant_group_id" INT DEFAULT NULL,
212
+ "visibility" boolean NOT NULL DEFAULT TRUE,
213
+ "group_id" INT DEFAULT 1,
214
+ "image" varchar DEFAULT NULL,
215
+ "sku" varchar NOT NULL,
216
+ "price" decimal(12,4) NOT NULL,
217
+ "qty" INT NOT NULL,
218
+ "weight" decimal(12,4) DEFAULT NULL,
219
+ "manage_stock" boolean NOT NULL,
220
+ "stock_availability" boolean NOT NULL,
221
+ "tax_class" smallint DEFAULT NULL,
222
+ "status" boolean NOT NULL DEFAULT FALSE,
223
+ "created_at" TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
224
+ "updated_at" TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
225
+ CONSTRAINT "PRODUCT_UUID_UNIQUE" UNIQUE ("uuid"),
226
+ CONSTRAINT "PRODUCT_SKU_UNIQUE" UNIQUE ("sku"),
227
+ CONSTRAINT "UNSIGNED_PRICE" CHECK(price >= 0),
228
+ CONSTRAINT "UNSIGNED_WEIGHT" CHECK(weight >= 0),
229
+ CONSTRAINT "FK_PRODUCT_ATTRIBUTE_GROUP" FOREIGN KEY ("group_id") REFERENCES "attribute_group" ("attribute_group_id") ON DELETE SET NULL,
230
+ CONSTRAINT "FK_PRODUCT_VARIANT_GROUP" FOREIGN KEY ("variant_group_id") REFERENCES "variant_group" ("variant_group_id") ON DELETE SET NULL
231
+ )`
232
+ );
233
+
234
+ await execute(
235
+ connection,
236
+ `CREATE INDEX "FK_PRODUCT_ATTRIBUTE_GROUP" ON "product" ("group_id")`
237
+ );
238
+ await execute(
239
+ connection,
240
+ `CREATE INDEX "FK_PRODUCT_VARIANT_GROUP" ON "product" ("variant_group_id")`
241
+ );
242
+
243
+ await execute(
244
+ connection,
245
+ `CREATE TABLE "product_attribute_value_index" (
246
+ "product_attribute_value_index_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
247
+ "uuid" UUID NOT NULL DEFAULT gen_random_uuid (),
248
+ "product_id" INT NOT NULL,
249
+ "attribute_id" INT NOT NULL,
250
+ "option_id" INT DEFAULT NULL,
251
+ "option_text" text DEFAULT NULL,
252
+ CONSTRAINT "PRODUCT_ATTRIBUTE_VALUE_UUID_UNIQUE" UNIQUE ("uuid"),
253
+ CONSTRAINT "OPTION_VALUE_UNIQUE" UNIQUE ("product_id","attribute_id","option_id"),
254
+ CONSTRAINT "FK_ATTRIBUTE_OPTION_VALUE_LINK" FOREIGN KEY ("option_id") REFERENCES "attribute_option" ("attribute_option_id") ON DELETE CASCADE,
255
+ CONSTRAINT "FK_ATTRIBUTE_VALUE_LINK" FOREIGN KEY ("attribute_id") REFERENCES "attribute" ("attribute_id") ON DELETE CASCADE,
256
+ CONSTRAINT "FK_PRODUCT_ATTRIBUTE_LINK" FOREIGN KEY ("product_id") REFERENCES "product" ("product_id") ON DELETE CASCADE
257
+ )`
258
+ );
259
+ await execute(
260
+ connection,
261
+ `CREATE INDEX "FK_ATTRIBUTE_VALUE_LINK" ON "product_attribute_value_index" ("attribute_id")`
262
+ );
263
+ await execute(
264
+ connection,
265
+ `CREATE INDEX "FK_ATTRIBUTE_OPTION_VALUE_LINK" ON "product_attribute_value_index" ("option_id")`
266
+ );
267
+ await execute(
268
+ connection,
269
+ `CREATE INDEX "FK_PRODUCT_ATTRIBUTE_LINK" ON "product_attribute_value_index" ("product_id")`
270
+ );
271
+
272
+ await execute(
273
+ connection,
274
+ `CREATE TABLE "product_custom_option" (
275
+ "product_custom_option_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
276
+ "uuid" UUID NOT NULL DEFAULT gen_random_uuid (),
277
+ "product_custom_option_product_id" INT NOT NULL,
278
+ "option_name" varchar NOT NULL,
279
+ "option_type" varchar NOT NULL,
280
+ "is_required" boolean NOT NULL DEFAULT FALSE,
281
+ "sort_order" INT DEFAULT NULL,
282
+ CONSTRAINT "PRODUCT_CUSTOM_OPTION_UUID_UNIQUE" UNIQUE ("uuid"),
283
+ CONSTRAINT "FK_PRODUCT_CUSTOM_OPTION" FOREIGN KEY ("product_custom_option_product_id") REFERENCES "product" ("product_id") ON DELETE CASCADE
284
+ )`
285
+ );
286
+ await execute(
287
+ connection,
288
+ `CREATE INDEX "FK_PRODUCT_CUSTOM_OPTION" ON "product_custom_option" ("product_custom_option_product_id")`
289
+ );
290
+
291
+ await execute(
292
+ connection,
293
+ `CREATE TABLE "product_custom_option_value" (
294
+ "product_custom_option_value_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
295
+ "uuid" UUID NOT NULL DEFAULT gen_random_uuid (),
296
+ "option_id" INT NOT NULL,
297
+ "extra_price" decimal(12,4) DEFAULT NULL,
298
+ "sort_order" INT DEFAULT NULL,
299
+ "value" varchar NOT NULL,
300
+ CONSTRAINT "PRODUCT_CUSTOM_OPTION_VALUE_UUID_UNIQUE" UNIQUE ("uuid"),
301
+ CONSTRAINT "FK_CUSTOM_OPTION_VALUE" FOREIGN KEY ("option_id") REFERENCES "product_custom_option" ("product_custom_option_id") ON DELETE CASCADE
302
+ )`
303
+ );
304
+ await execute(
305
+ connection,
306
+ `CREATE INDEX "FK_CUSTOM_OPTION_VALUE" ON "product_custom_option_value" ("option_id")`
307
+ );
308
+
309
+ await execute(
310
+ connection,
311
+ `CREATE TABLE "product_description" (
312
+ "product_description_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
313
+ "product_description_product_id" INT NOT NULL,
314
+ "name" varchar NOT NULL,
315
+ "description" text DEFAULT NULL,
316
+ "short_description" text DEFAULT NULL,
317
+ "url_key" varchar NOT NULL,
318
+ "meta_title" text DEFAULT NULL,
319
+ "meta_description" text DEFAULT NULL,
320
+ "meta_keywords" text DEFAULT NULL,
321
+ CONSTRAINT "PRODUCT_ID_UNIQUE" UNIQUE ("product_description_product_id"),
322
+ CONSTRAINT "PRODUCT_URL_KEY_UNIQUE" UNIQUE ("url_key"),
323
+ CONSTRAINT "FK_PRODUCT_DESCRIPTION" FOREIGN KEY ("product_description_product_id") REFERENCES "product" ("product_id") ON DELETE CASCADE
324
+ )`
325
+ );
326
+ await execute(
327
+ connection,
328
+ `CREATE INDEX "FK_PRODUCT_DESCRIPTION" ON "product_description" ("product_description_product_id")`
329
+ );
330
+
331
+ await execute(
332
+ connection,
333
+ `CREATE TABLE "product_image" (
334
+ "product_image_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
335
+ "uuid" UUID NOT NULL DEFAULT gen_random_uuid (),
336
+ "product_image_product_id" INT NOT NULL,
337
+ "image" varchar NOT NULL,
338
+ CONSTRAINT "PRODUCT_IMAGE_UUID_UNIQUE" UNIQUE ("uuid"),
339
+ CONSTRAINT "FK_PRODUCT_IMAGE_LINK" FOREIGN KEY ("product_image_product_id") REFERENCES "product" ("product_id") ON DELETE CASCADE
340
+ )`
341
+ );
342
+ await execute(
343
+ connection,
344
+ `CREATE INDEX "FK_PRODUCT_IMAGE_LINK" ON "product_image" ("product_image_product_id")`
345
+ );
346
+
347
+ await execute(
348
+ connection,
349
+ `CREATE TABLE "category" (
350
+ "category_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
351
+ "uuid" UUID NOT NULL DEFAULT gen_random_uuid (),
352
+ "status" boolean NOT NULL,
353
+ "parent_id" INT DEFAULT NULL,
354
+ "include_in_nav" boolean NOT NULL,
355
+ "position" smallint DEFAULT NULL,
356
+ "show_products" boolean DEFAULT TRUE,
357
+ "created_at" TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
358
+ "updated_at" TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
359
+ CONSTRAINT "CATEGORY_UUID_UNIQUE" UNIQUE ("uuid")
360
+ )`
361
+ );
362
+
363
+ await execute(
364
+ connection,
365
+ `CREATE TABLE "product_category" (
366
+ "product_category_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
367
+ "category_id" INT NOT NULL,
368
+ "product_id" INT NOT NULL,
369
+ CONSTRAINT "PRODUCT_CATEGORY_UNIQUE" UNIQUE ("category_id","product_id"),
370
+ CONSTRAINT "FK_CATEGORY_PRODUCT_LINK" FOREIGN KEY ("category_id") REFERENCES "category" ("category_id") ON DELETE CASCADE,
371
+ CONSTRAINT "FK_PRODUCT_CATEGORY_LINK" FOREIGN KEY ("product_id") REFERENCES "product" ("product_id") ON DELETE CASCADE
372
+ )`
373
+ );
374
+ await execute(
375
+ connection,
376
+ `CREATE INDEX "FK_CATEGORY_PRODUCT_LINK" ON "product_category" ("category_id")`
377
+ );
378
+ await execute(
379
+ connection,
380
+ `CREATE INDEX "FK_PRODUCT_CATEGORY_LINK" ON "product_category" ("product_id")`
381
+ );
382
+
383
+ await execute(
384
+ connection,
385
+ `CREATE TABLE "category_description" (
386
+ "category_description_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
387
+ "category_description_category_id" INT NOT NULL,
388
+ "name" varchar NOT NULL,
389
+ "short_description" text DEFAULT NULL,
390
+ "description" text DEFAULT NULL,
391
+ "image" varchar DEFAULT NULL,
392
+ "meta_title" text DEFAULT NULL,
393
+ "meta_keywords" text DEFAULT NULL,
394
+ "meta_description" text DEFAULT NULL,
395
+ "url_key" varchar NOT NULL,
396
+ CONSTRAINT "CATEGORY_ID_UNIQUE" UNIQUE ("category_description_category_id"),
397
+ CONSTRAINT "CATEGORY_URL_KEY_UNIQUE" UNIQUE ("url_key"),
398
+ CONSTRAINT "FK_CATEGORY_DESCRIPTION" FOREIGN KEY ("category_description_category_id") REFERENCES "category" ("category_id") ON DELETE CASCADE
399
+ )`
400
+ );
401
+ await execute(
402
+ connection,
403
+ `CREATE INDEX "FK_CATEGORY_DESCRIPTION" ON "category_description" ("category_description_category_id")`
404
+ );
405
+
406
+ // Create 3 default categories, Kids, Men, Women
407
+ const kids = await insert('category')
408
+ .given({
409
+ status: 1,
410
+ include_in_nav: 1
411
+ })
412
+ .execute(connection);
413
+
414
+ await insert('category_description')
415
+ .given({
416
+ category_description_category_id: kids.insertId,
417
+ name: 'Kids',
418
+ url_key: 'kids',
419
+ meta_title: 'Kids',
420
+ meta_description: 'Kids',
421
+ meta_keywords: 'Kids',
422
+ description: 'Kids'
423
+ })
424
+ .execute(connection);
425
+
426
+ const women = await insert('category')
427
+ .given({
428
+ status: 1,
429
+ include_in_nav: 1
430
+ })
431
+ .execute(connection);
432
+
433
+ await insert('category_description')
434
+ .given({
435
+ category_description_category_id: women.insertId,
436
+ name: 'Women',
437
+ url_key: 'women',
438
+ meta_title: 'Women',
439
+ meta_description: 'Women',
440
+ meta_keywords: 'Women',
441
+ description: 'Women'
442
+ })
443
+ .execute(connection);
444
+
445
+ const men = await insert('category')
446
+ .given({
447
+ status: 1,
448
+ include_in_nav: 1
449
+ })
450
+ .execute(connection);
451
+
452
+ await insert('category_description')
453
+ .given({
454
+ category_description_category_id: men.insertId,
455
+ name: 'Men',
456
+ url_key: 'men',
457
+ meta_title: 'Men',
458
+ meta_description: 'Men',
459
+ meta_keywords: 'Men',
460
+ description: 'Men'
461
+ })
462
+ .execute(connection);
463
+
464
+ // COLLECTION
465
+ await execute(
466
+ connection,
467
+ `CREATE TABLE "collection" (
468
+ "collection_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
469
+ "uuid" UUID NOT NULL DEFAULT gen_random_uuid (),
470
+ "name" varchar NOT NULL,
471
+ "description" text DEFAULT NULL,
472
+ "code" varchar NOT NULL,
473
+ "created_at" TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
474
+ "updated_at" TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
475
+ CONSTRAINT "COLLECTION_CODE_UNIQUE" UNIQUE ("code"),
476
+ CONSTRAINT "COLLECTION_UUID_UNIQUE" UNIQUE ("uuid")
477
+ )`
478
+ );
479
+
480
+ await execute(
481
+ connection,
482
+ `CREATE TABLE "product_collection" (
483
+ "product_collection_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
484
+ "collection_id" INT NOT NULL,
485
+ "product_id" INT NOT NULL,
486
+ CONSTRAINT "PRODUCT_COLLECTION_UNIQUE" UNIQUE ("collection_id","product_id"),
487
+ CONSTRAINT "FK_COLLECTION_PRODUCT_LINK" FOREIGN KEY ("collection_id") REFERENCES "collection" ("collection_id") ON DELETE CASCADE,
488
+ CONSTRAINT "FK_PRODUCT_COLLECTION_LINK" FOREIGN KEY ("product_id") REFERENCES "product" ("product_id") ON DELETE CASCADE
489
+ )`
490
+ );
491
+ await execute(
492
+ connection,
493
+ `CREATE INDEX "FK_COLLECTION_PRODUCT_LINK" ON "product_collection" ("collection_id")`
494
+ );
495
+ await execute(
496
+ connection,
497
+ `CREATE INDEX "FK_PRODUCT_COLLECTION_LINK" ON "product_collection" ("product_id")`
498
+ );
499
+
500
+ /* CREATE SOME TRIGGERS */
501
+ // Prevent deleting a default attribute group
502
+ await execute(
503
+ connection,
504
+ `CREATE OR REPLACE FUNCTION prevent_delete_default_attribute_group()
505
+ RETURNS TRIGGER
506
+ LANGUAGE PLPGSQL
507
+ AS
508
+ $$
509
+ BEGIN
510
+ IF OLD.attribute_group_id = 1 THEN
511
+ RAISE EXCEPTION 'Cannot delete default attribute group';
512
+ END IF;
513
+ RETURN OLD;
514
+ END;
515
+ $$`
516
+ );
517
+ await execute(
518
+ connection,
519
+ `CREATE TRIGGER "PREVENT_DELETING_THE_DEFAULT_ATTRIBUTE_GROUP"
520
+ BEFORE DELETE ON attribute_group
521
+ FOR EACH ROW
522
+ EXECUTE PROCEDURE prevent_delete_default_attribute_group();`
523
+ );
524
+
525
+ // Prevent changing product attribute group if product has variants
526
+ await execute(
527
+ connection,
528
+ `CREATE OR REPLACE FUNCTION prevent_change_attribute_group()
529
+ RETURNS TRIGGER
530
+ LANGUAGE PLPGSQL
531
+ AS
532
+ $$
533
+ BEGIN
534
+ IF OLD.group_id != NEW.group_id AND OLD.variant_group_id IS NOT NULL THEN
535
+ RAISE EXCEPTION 'Cannot change attribute group of product with variants';
536
+ END IF;
537
+ RETURN NEW;
538
+ END;
539
+ $$`
540
+ );
541
+ await execute(
542
+ connection,
543
+ `CREATE TRIGGER "PREVENT_CHANGING_ATTRIBUTE_GROUP_OF_PRODUCT_WITH_VARIANTS"
544
+ BEFORE UPDATE ON product
545
+ FOR EACH ROW
546
+ EXECUTE PROCEDURE prevent_change_attribute_group();`
547
+ );
548
+
549
+ // Delete product attribute value and variant group when attribute is removed from group
550
+ await execute(
551
+ connection,
552
+ `CREATE OR REPLACE FUNCTION remove_attribute_from_group()
553
+ RETURNS TRIGGER
554
+ LANGUAGE PLPGSQL
555
+ AS
556
+ $$
557
+ BEGIN
558
+ DELETE FROM product_attribute_value_index WHERE product_attribute_value_index.attribute_id = OLD.attribute_id AND product_attribute_value_index.product_id IN (SELECT product.product_id FROM product WHERE product.group_id = OLD.group_id);
559
+ DELETE FROM variant_group WHERE variant_group.attribute_group_id = OLD.group_id AND (variant_group.attribute_one = OLD.attribute_id OR variant_group.attribute_two = OLD.attribute_id OR variant_group.attribute_three = OLD.attribute_id OR variant_group.attribute_four = OLD.attribute_id OR variant_group.attribute_five = OLD.attribute_id);
560
+ RETURN OLD;
561
+ END;
562
+ $$;`
563
+ );
564
+ await execute(
565
+ connection,
566
+ `CREATE TRIGGER "TRIGGER_AFTER_REMOVE_ATTRIBUTE_FROM_GROUP" AFTER DELETE ON "attribute_group_link"
567
+ FOR EACH ROW
568
+ EXECUTE PROCEDURE remove_attribute_from_group();
569
+ `
570
+ );
571
+
572
+ // Update product attribute value option text when option is updated
573
+ await execute(
574
+ connection,
575
+ `CREATE OR REPLACE FUNCTION update_product_attribute_option_value_text()
576
+ RETURNS TRIGGER
577
+ LANGUAGE PLPGSQL
578
+ AS
579
+ $$
580
+ BEGIN
581
+ UPDATE "product_attribute_value_index" SET "option_text" = NEW.option_text
582
+ WHERE "product_attribute_value_index".option_id = NEW.attribute_option_id AND "product_attribute_value_index".attribute_id = NEW.attribute_id;
583
+ RETURN NEW;
584
+ END;
585
+ $$;`
586
+ );
587
+ await execute(
588
+ connection,
589
+ `CREATE TRIGGER "TRIGGER_AFTER_ATTRIBUTE_OPTION_UPDATE" AFTER UPDATE ON "attribute_option" FOR EACH ROW
590
+ EXECUTE PROCEDURE update_product_attribute_option_value_text();
591
+ `
592
+ );
593
+
594
+ // Delete product attribute value index after option is deleted
595
+ await execute(
596
+ connection,
597
+ `CREATE OR REPLACE FUNCTION delete_product_attribute_value_index()
598
+ RETURNS TRIGGER
599
+ LANGUAGE PLPGSQL
600
+ AS
601
+ $$
602
+ BEGIN
603
+ DELETE FROM "product_attribute_value_index" WHERE "product_attribute_value_index".option_id = OLD.attribute_option_id AND "product_attribute_value_index"."attribute_id" = OLD.attribute_id;
604
+ RETURN OLD;
605
+ END;
606
+ $$;`
607
+ );
608
+ await execute(
609
+ connection,
610
+ `CREATE TRIGGER "TRIGGER_AFTER_DELETE_ATTRIBUTE_OPTION" AFTER DELETE ON "attribute_option" FOR EACH ROW
611
+ EXECUTE PROCEDURE delete_product_attribute_value_index();
612
+ `
613
+ );
614
+
615
+ // Update variant group visibility after new product is added
616
+ await execute(
617
+ connection,
618
+ `CREATE OR REPLACE FUNCTION update_variant_group_visibility()
619
+ RETURNS TRIGGER
620
+ LANGUAGE PLPGSQL
621
+ AS
622
+ $$
623
+ BEGIN
624
+ UPDATE "variant_group" SET visibility = (SELECT bool_or(visibility) FROM "product" WHERE "product"."variant_group_id" = NEW.variant_group_id AND "product"."status" = TRUE) WHERE "variant_group"."variant_group_id" = NEW.variant_group_id;
625
+ RETURN NEW;
626
+ END;
627
+ $$;`
628
+ );
629
+ await execute(
630
+ connection,
631
+ `CREATE CONSTRAINT TRIGGER "TRIGGER_AFTER_INSERT_PRODUCT" AFTER INSERT ON "product"
632
+ DEFERRABLE INITIALLY IMMEDIATE
633
+ FOR EACH ROW
634
+ EXECUTE PROCEDURE update_variant_group_visibility();`
635
+ );
636
+
637
+ // Update product attribute index, variant group visibility and product visibility after product is updated
638
+ await execute(
639
+ connection,
640
+ `CREATE OR REPLACE FUNCTION update_attribute_index_and_variant_group_visibility()
641
+ RETURNS TRIGGER
642
+ LANGUAGE PLPGSQL
643
+ AS
644
+ $$
645
+ BEGIN
646
+ DELETE FROM "product_attribute_value_index"
647
+ WHERE "product_attribute_value_index"."product_id" = NEW.product_id
648
+ AND "product_attribute_value_index"."attribute_id" NOT IN (SELECT "attribute_group_link"."attribute_id" FROM "attribute_group_link" WHERE "attribute_group_link"."group_id" = NEW.group_id);
649
+ UPDATE "variant_group" SET visibility = (SELECT bool_or(visibility) FROM "product" WHERE "product"."variant_group_id" = NEW.variant_group_id AND "product"."status" = TRUE GROUP BY "product"."variant_group_id") WHERE "variant_group"."variant_group_id" = NEW.variant_group_id;
650
+ RETURN NEW;
651
+ END;
652
+ $$;`
653
+ );
654
+ await execute(
655
+ connection,
656
+ `CREATE CONSTRAINT TRIGGER "TRIGGER_PRODUCT_AFTER_UPDATE" AFTER UPDATE ON "product"
657
+ DEFERRABLE INITIALLY DEFERRED
658
+ FOR EACH ROW
659
+ EXECUTE PROCEDURE update_attribute_index_and_variant_group_visibility();
660
+ `
661
+ );
662
+
663
+ // Delete variant group when attribute type is changed from select to something else
664
+ await execute(
665
+ connection,
666
+ `CREATE OR REPLACE FUNCTION delete_variant_group_after_attribute_type_changed()
667
+ RETURNS TRIGGER
668
+ LANGUAGE PLPGSQL
669
+ AS
670
+ $$
671
+ BEGIN
672
+ IF (OLD.type = 'select' AND NEW.type <> 'select') THEN
673
+ DELETE FROM "variant_group" WHERE ("variant_group".attribute_one = OLD.attribute_id OR "variant_group".attribute_two = OLD.attribute_id OR "variant_group".attribute_three = OLD.attribute_id OR "variant_group".attribute_four = OLD.attribute_id OR "variant_group".attribute_five = OLD.attribute_id);
674
+ END IF;
675
+ RETURN NEW;
676
+ END
677
+ $$;`
678
+ );
679
+ await execute(
680
+ connection,
681
+ `CREATE TRIGGER "TRIGGER_AFTER_UPDATE_ATTRIBUTE" AFTER UPDATE ON "attribute" FOR EACH ROW
682
+ EXECUTE PROCEDURE delete_variant_group_after_attribute_type_changed();
683
+ `
684
+ );
685
+ };