@endora-commerce/mod-catalog 0.100.0

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 (443) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +63 -0
  3. package/dist/admin/components/PackagingUnitsEditor.d.ts +12 -0
  4. package/dist/admin/components/PackagingUnitsEditor.d.ts.map +1 -0
  5. package/dist/admin/components/PackagingUnitsEditor.js +99 -0
  6. package/dist/admin/components/PackagingUnitsEditor.js.map +1 -0
  7. package/dist/admin/components/ProductAttributesTab.d.ts +13 -0
  8. package/dist/admin/components/ProductAttributesTab.d.ts.map +1 -0
  9. package/dist/admin/components/ProductAttributesTab.js +140 -0
  10. package/dist/admin/components/ProductAttributesTab.js.map +1 -0
  11. package/dist/admin/components/ProductInventoryTab.d.ts +14 -0
  12. package/dist/admin/components/ProductInventoryTab.d.ts.map +1 -0
  13. package/dist/admin/components/ProductInventoryTab.js +284 -0
  14. package/dist/admin/components/ProductInventoryTab.js.map +1 -0
  15. package/dist/admin/components/ProductScopeEditor.d.ts +94 -0
  16. package/dist/admin/components/ProductScopeEditor.d.ts.map +1 -0
  17. package/dist/admin/components/ProductScopeEditor.js +395 -0
  18. package/dist/admin/components/ProductScopeEditor.js.map +1 -0
  19. package/dist/admin/components/ProductsBulkEditDialog.d.ts +11 -0
  20. package/dist/admin/components/ProductsBulkEditDialog.d.ts.map +1 -0
  21. package/dist/admin/components/ProductsBulkEditDialog.js +304 -0
  22. package/dist/admin/components/ProductsBulkEditDialog.js.map +1 -0
  23. package/dist/admin/index.d.ts +45 -0
  24. package/dist/admin/index.d.ts.map +1 -0
  25. package/dist/admin/index.js +184 -0
  26. package/dist/admin/index.js.map +1 -0
  27. package/dist/admin/lib/resolve-product-selection.d.ts +21 -0
  28. package/dist/admin/lib/resolve-product-selection.d.ts.map +1 -0
  29. package/dist/admin/lib/resolve-product-selection.js +25 -0
  30. package/dist/admin/lib/resolve-product-selection.js.map +1 -0
  31. package/dist/admin/pages/AttachmentTypesPage.d.ts +18 -0
  32. package/dist/admin/pages/AttachmentTypesPage.d.ts.map +1 -0
  33. package/dist/admin/pages/AttachmentTypesPage.js +92 -0
  34. package/dist/admin/pages/AttachmentTypesPage.js.map +1 -0
  35. package/dist/admin/pages/AttributeSetsPage.d.ts +21 -0
  36. package/dist/admin/pages/AttributeSetsPage.d.ts.map +1 -0
  37. package/dist/admin/pages/AttributeSetsPage.js +158 -0
  38. package/dist/admin/pages/AttributeSetsPage.js.map +1 -0
  39. package/dist/admin/pages/AttributesManager.d.ts +9 -0
  40. package/dist/admin/pages/AttributesManager.d.ts.map +1 -0
  41. package/dist/admin/pages/AttributesManager.js +305 -0
  42. package/dist/admin/pages/AttributesManager.js.map +1 -0
  43. package/dist/admin/pages/BulkOperationDetailPage.d.ts +9 -0
  44. package/dist/admin/pages/BulkOperationDetailPage.d.ts.map +1 -0
  45. package/dist/admin/pages/BulkOperationDetailPage.js +187 -0
  46. package/dist/admin/pages/BulkOperationDetailPage.js.map +1 -0
  47. package/dist/admin/pages/BulkOperationsPage.d.ts +9 -0
  48. package/dist/admin/pages/BulkOperationsPage.d.ts.map +1 -0
  49. package/dist/admin/pages/BulkOperationsPage.js +98 -0
  50. package/dist/admin/pages/BulkOperationsPage.js.map +1 -0
  51. package/dist/admin/pages/CategoriesTree.d.ts +9 -0
  52. package/dist/admin/pages/CategoriesTree.d.ts.map +1 -0
  53. package/dist/admin/pages/CategoriesTree.js +176 -0
  54. package/dist/admin/pages/CategoriesTree.js.map +1 -0
  55. package/dist/admin/pages/ProductEditor.d.ts +13 -0
  56. package/dist/admin/pages/ProductEditor.d.ts.map +1 -0
  57. package/dist/admin/pages/ProductEditor.js +1050 -0
  58. package/dist/admin/pages/ProductEditor.js.map +1 -0
  59. package/dist/admin/pages/ProductsList.d.ts +9 -0
  60. package/dist/admin/pages/ProductsList.d.ts.map +1 -0
  61. package/dist/admin/pages/ProductsList.js +399 -0
  62. package/dist/admin/pages/ProductsList.js.map +1 -0
  63. package/dist/backend/commands/attribute-commands.d.ts +111 -0
  64. package/dist/backend/commands/attribute-commands.d.ts.map +1 -0
  65. package/dist/backend/commands/attribute-commands.js +482 -0
  66. package/dist/backend/commands/attribute-commands.js.map +1 -0
  67. package/dist/backend/demo/reset.d.ts +23 -0
  68. package/dist/backend/demo/reset.d.ts.map +1 -0
  69. package/dist/backend/demo/reset.js +41 -0
  70. package/dist/backend/demo/reset.js.map +1 -0
  71. package/dist/backend/demo/rows.d.ts +103 -0
  72. package/dist/backend/demo/rows.d.ts.map +1 -0
  73. package/dist/backend/demo/rows.js +162 -0
  74. package/dist/backend/demo/rows.js.map +1 -0
  75. package/dist/backend/demo/seed.d.ts +35 -0
  76. package/dist/backend/demo/seed.d.ts.map +1 -0
  77. package/dist/backend/demo/seed.js +177 -0
  78. package/dist/backend/demo/seed.js.map +1 -0
  79. package/dist/backend/entities/attachment-type.entity.d.ts +16 -0
  80. package/dist/backend/entities/attachment-type.entity.d.ts.map +1 -0
  81. package/dist/backend/entities/attachment-type.entity.js +57 -0
  82. package/dist/backend/entities/attachment-type.entity.js.map +1 -0
  83. package/dist/backend/entities/attribute-set-attribute.entity.d.ts +26 -0
  84. package/dist/backend/entities/attribute-set-attribute.entity.d.ts.map +1 -0
  85. package/dist/backend/entities/attribute-set-attribute.entity.js +55 -0
  86. package/dist/backend/entities/attribute-set-attribute.entity.js.map +1 -0
  87. package/dist/backend/entities/attribute-set.entity.d.ts +22 -0
  88. package/dist/backend/entities/attribute-set.entity.d.ts.map +1 -0
  89. package/dist/backend/entities/attribute-set.entity.js +67 -0
  90. package/dist/backend/entities/attribute-set.entity.js.map +1 -0
  91. package/dist/backend/entities/bulk-operation.entity.d.ts +78 -0
  92. package/dist/backend/entities/bulk-operation.entity.d.ts.map +1 -0
  93. package/dist/backend/entities/bulk-operation.entity.js +138 -0
  94. package/dist/backend/entities/bulk-operation.entity.js.map +1 -0
  95. package/dist/backend/entities/bundle-slot-option.entity.d.ts +23 -0
  96. package/dist/backend/entities/bundle-slot-option.entity.d.ts.map +1 -0
  97. package/dist/backend/entities/bundle-slot-option.entity.js +68 -0
  98. package/dist/backend/entities/bundle-slot-option.entity.js.map +1 -0
  99. package/dist/backend/entities/bundle-slot.entity.d.ts +25 -0
  100. package/dist/backend/entities/bundle-slot.entity.d.ts.map +1 -0
  101. package/dist/backend/entities/bundle-slot.entity.js +74 -0
  102. package/dist/backend/entities/bundle-slot.entity.js.map +1 -0
  103. package/dist/backend/entities/category.entity.d.ts +26 -0
  104. package/dist/backend/entities/category.entity.d.ts.map +1 -0
  105. package/dist/backend/entities/category.entity.js +119 -0
  106. package/dist/backend/entities/category.entity.js.map +1 -0
  107. package/dist/backend/entities/gallery-item-label.entity.d.ts +22 -0
  108. package/dist/backend/entities/gallery-item-label.entity.d.ts.map +1 -0
  109. package/dist/backend/entities/gallery-item-label.entity.js +50 -0
  110. package/dist/backend/entities/gallery-item-label.entity.js.map +1 -0
  111. package/dist/backend/entities/gallery-item.entity.d.ts +17 -0
  112. package/dist/backend/entities/gallery-item.entity.d.ts.map +1 -0
  113. package/dist/backend/entities/gallery-item.entity.js +58 -0
  114. package/dist/backend/entities/gallery-item.entity.js.map +1 -0
  115. package/dist/backend/entities/grouped-item.entity.d.ts +23 -0
  116. package/dist/backend/entities/grouped-item.entity.d.ts.map +1 -0
  117. package/dist/backend/entities/grouped-item.entity.js +68 -0
  118. package/dist/backend/entities/grouped-item.entity.js.map +1 -0
  119. package/dist/backend/entities/product-attachment.entity.d.ts +23 -0
  120. package/dist/backend/entities/product-attachment.entity.d.ts.map +1 -0
  121. package/dist/backend/entities/product-attachment.entity.js +77 -0
  122. package/dist/backend/entities/product-attachment.entity.js.map +1 -0
  123. package/dist/backend/entities/product-attribute.entity.d.ts +72 -0
  124. package/dist/backend/entities/product-attribute.entity.d.ts.map +1 -0
  125. package/dist/backend/entities/product-attribute.entity.js +161 -0
  126. package/dist/backend/entities/product-attribute.entity.js.map +1 -0
  127. package/dist/backend/entities/product-editor-preference.entity.d.ts +28 -0
  128. package/dist/backend/entities/product-editor-preference.entity.d.ts.map +1 -0
  129. package/dist/backend/entities/product-editor-preference.entity.js +63 -0
  130. package/dist/backend/entities/product-editor-preference.entity.js.map +1 -0
  131. package/dist/backend/entities/product-link.entity.d.ts +25 -0
  132. package/dist/backend/entities/product-link.entity.d.ts.map +1 -0
  133. package/dist/backend/entities/product-link.entity.js +70 -0
  134. package/dist/backend/entities/product-link.entity.js.map +1 -0
  135. package/dist/backend/entities/product-packaging-unit.entity.d.ts +26 -0
  136. package/dist/backend/entities/product-packaging-unit.entity.d.ts.map +1 -0
  137. package/dist/backend/entities/product-packaging-unit.entity.js +76 -0
  138. package/dist/backend/entities/product-packaging-unit.entity.js.map +1 -0
  139. package/dist/backend/entities/product-value-override.entity.d.ts +43 -0
  140. package/dist/backend/entities/product-value-override.entity.d.ts.map +1 -0
  141. package/dist/backend/entities/product-value-override.entity.js +90 -0
  142. package/dist/backend/entities/product-value-override.entity.js.map +1 -0
  143. package/dist/backend/entities/product-variant.entity.d.ts +18 -0
  144. package/dist/backend/entities/product-variant.entity.d.ts.map +1 -0
  145. package/dist/backend/entities/product-variant.entity.js +68 -0
  146. package/dist/backend/entities/product-variant.entity.js.map +1 -0
  147. package/dist/backend/entities/product.entity.d.ts +108 -0
  148. package/dist/backend/entities/product.entity.d.ts.map +1 -0
  149. package/dist/backend/entities/product.entity.js +230 -0
  150. package/dist/backend/entities/product.entity.js.map +1 -0
  151. package/dist/backend/index.d.ts +262 -0
  152. package/dist/backend/index.d.ts.map +1 -0
  153. package/dist/backend/index.js +642 -0
  154. package/dist/backend/index.js.map +1 -0
  155. package/dist/backend/plugin.d.ts +216 -0
  156. package/dist/backend/plugin.d.ts.map +1 -0
  157. package/dist/backend/plugin.js +223 -0
  158. package/dist/backend/plugin.js.map +1 -0
  159. package/dist/backend/prompt-tools.d.ts +47 -0
  160. package/dist/backend/prompt-tools.d.ts.map +1 -0
  161. package/dist/backend/prompt-tools.js +284 -0
  162. package/dist/backend/prompt-tools.js.map +1 -0
  163. package/dist/backend/routes.admin.d.ts +105 -0
  164. package/dist/backend/routes.admin.d.ts.map +1 -0
  165. package/dist/backend/routes.admin.js +1162 -0
  166. package/dist/backend/routes.admin.js.map +1 -0
  167. package/dist/backend/routes.api-key.d.ts +33 -0
  168. package/dist/backend/routes.api-key.d.ts.map +1 -0
  169. package/dist/backend/routes.api-key.js +43 -0
  170. package/dist/backend/routes.api-key.js.map +1 -0
  171. package/dist/backend/routes.external.d.ts +32 -0
  172. package/dist/backend/routes.external.d.ts.map +1 -0
  173. package/dist/backend/routes.external.js +115 -0
  174. package/dist/backend/routes.external.js.map +1 -0
  175. package/dist/backend/routes.public.d.ts +46 -0
  176. package/dist/backend/routes.public.d.ts.map +1 -0
  177. package/dist/backend/routes.public.js +318 -0
  178. package/dist/backend/routes.public.js.map +1 -0
  179. package/dist/backend/services/asset-references.d.ts +4 -0
  180. package/dist/backend/services/asset-references.d.ts.map +1 -0
  181. package/dist/backend/services/asset-references.js +104 -0
  182. package/dist/backend/services/asset-references.js.map +1 -0
  183. package/dist/backend/services/attachment.service.d.ts +45 -0
  184. package/dist/backend/services/attachment.service.d.ts.map +1 -0
  185. package/dist/backend/services/attachment.service.js +268 -0
  186. package/dist/backend/services/attachment.service.js.map +1 -0
  187. package/dist/backend/services/attribute-option-validator.d.ts +47 -0
  188. package/dist/backend/services/attribute-option-validator.d.ts.map +1 -0
  189. package/dist/backend/services/attribute-option-validator.js +69 -0
  190. package/dist/backend/services/attribute-option-validator.js.map +1 -0
  191. package/dist/backend/services/attribute-set-validations.d.ts +65 -0
  192. package/dist/backend/services/attribute-set-validations.d.ts.map +1 -0
  193. package/dist/backend/services/attribute-set-validations.js +89 -0
  194. package/dist/backend/services/attribute-set-validations.js.map +1 -0
  195. package/dist/backend/services/attribute-set.service.d.ts +50 -0
  196. package/dist/backend/services/attribute-set.service.d.ts.map +1 -0
  197. package/dist/backend/services/attribute-set.service.js +401 -0
  198. package/dist/backend/services/attribute-set.service.js.map +1 -0
  199. package/dist/backend/services/attribute-type-mapping.d.ts +66 -0
  200. package/dist/backend/services/attribute-type-mapping.d.ts.map +1 -0
  201. package/dist/backend/services/attribute-type-mapping.js +121 -0
  202. package/dist/backend/services/attribute-type-mapping.js.map +1 -0
  203. package/dist/backend/services/attribute-value-key.service.d.ts +48 -0
  204. package/dist/backend/services/attribute-value-key.service.d.ts.map +1 -0
  205. package/dist/backend/services/attribute-value-key.service.js +118 -0
  206. package/dist/backend/services/attribute-value-key.service.js.map +1 -0
  207. package/dist/backend/services/audit-references.d.ts +13 -0
  208. package/dist/backend/services/audit-references.d.ts.map +1 -0
  209. package/dist/backend/services/audit-references.js +51 -0
  210. package/dist/backend/services/audit-references.js.map +1 -0
  211. package/dist/backend/services/bulk-operation-queue.d.ts +26 -0
  212. package/dist/backend/services/bulk-operation-queue.d.ts.map +1 -0
  213. package/dist/backend/services/bulk-operation-queue.js +34 -0
  214. package/dist/backend/services/bulk-operation-queue.js.map +1 -0
  215. package/dist/backend/services/bulk-operation.service.d.ts +195 -0
  216. package/dist/backend/services/bulk-operation.service.d.ts.map +1 -0
  217. package/dist/backend/services/bulk-operation.service.js +510 -0
  218. package/dist/backend/services/bulk-operation.service.js.map +1 -0
  219. package/dist/backend/services/bundle.service.d.ts +87 -0
  220. package/dist/backend/services/bundle.service.d.ts.map +1 -0
  221. package/dist/backend/services/bundle.service.js +286 -0
  222. package/dist/backend/services/bundle.service.js.map +1 -0
  223. package/dist/backend/services/catalog-admin.service.d.ts +398 -0
  224. package/dist/backend/services/catalog-admin.service.d.ts.map +1 -0
  225. package/dist/backend/services/catalog-admin.service.js +1516 -0
  226. package/dist/backend/services/catalog-admin.service.js.map +1 -0
  227. package/dist/backend/services/catalog-attribute-read.service.d.ts +78 -0
  228. package/dist/backend/services/catalog-attribute-read.service.d.ts.map +1 -0
  229. package/dist/backend/services/catalog-attribute-read.service.js +216 -0
  230. package/dist/backend/services/catalog-attribute-read.service.js.map +1 -0
  231. package/dist/backend/services/catalog-bulk-import.service.d.ts +30 -0
  232. package/dist/backend/services/catalog-bulk-import.service.d.ts.map +1 -0
  233. package/dist/backend/services/catalog-bulk-import.service.js +136 -0
  234. package/dist/backend/services/catalog-bulk-import.service.js.map +1 -0
  235. package/dist/backend/services/catalog-bulk-update.service.d.ts +91 -0
  236. package/dist/backend/services/catalog-bulk-update.service.d.ts.map +1 -0
  237. package/dist/backend/services/catalog-bulk-update.service.js +330 -0
  238. package/dist/backend/services/catalog-bulk-update.service.js.map +1 -0
  239. package/dist/backend/services/catalog-category-read.service.d.ts +66 -0
  240. package/dist/backend/services/catalog-category-read.service.d.ts.map +1 -0
  241. package/dist/backend/services/catalog-category-read.service.js +248 -0
  242. package/dist/backend/services/catalog-category-read.service.js.map +1 -0
  243. package/dist/backend/services/catalog-org-price-decorator.d.ts +90 -0
  244. package/dist/backend/services/catalog-org-price-decorator.d.ts.map +1 -0
  245. package/dist/backend/services/catalog-org-price-decorator.js +184 -0
  246. package/dist/backend/services/catalog-org-price-decorator.js.map +1 -0
  247. package/dist/backend/services/catalog-product-filter.service.d.ts +82 -0
  248. package/dist/backend/services/catalog-product-filter.service.d.ts.map +1 -0
  249. package/dist/backend/services/catalog-product-filter.service.js +275 -0
  250. package/dist/backend/services/catalog-product-filter.service.js.map +1 -0
  251. package/dist/backend/services/catalog-product-read.service.d.ts +46 -0
  252. package/dist/backend/services/catalog-product-read.service.d.ts.map +1 -0
  253. package/dist/backend/services/catalog-product-read.service.js +197 -0
  254. package/dist/backend/services/catalog-product-read.service.js.map +1 -0
  255. package/dist/backend/services/catalog-query.service.d.ts +444 -0
  256. package/dist/backend/services/catalog-query.service.d.ts.map +1 -0
  257. package/dist/backend/services/catalog-query.service.js +1633 -0
  258. package/dist/backend/services/catalog-query.service.js.map +1 -0
  259. package/dist/backend/services/catalog-quick-search.service.d.ts +78 -0
  260. package/dist/backend/services/catalog-quick-search.service.d.ts.map +1 -0
  261. package/dist/backend/services/catalog-quick-search.service.js +159 -0
  262. package/dist/backend/services/catalog-quick-search.service.js.map +1 -0
  263. package/dist/backend/services/catalog-write-ports.d.ts +25 -0
  264. package/dist/backend/services/catalog-write-ports.d.ts.map +1 -0
  265. package/dist/backend/services/catalog-write-ports.js +63 -0
  266. package/dist/backend/services/catalog-write-ports.js.map +1 -0
  267. package/dist/backend/services/category-admin.service.d.ts +102 -0
  268. package/dist/backend/services/category-admin.service.d.ts.map +1 -0
  269. package/dist/backend/services/category-admin.service.js +271 -0
  270. package/dist/backend/services/category-admin.service.js.map +1 -0
  271. package/dist/backend/services/gallery.service.d.ts +85 -0
  272. package/dist/backend/services/gallery.service.d.ts.map +1 -0
  273. package/dist/backend/services/gallery.service.js +326 -0
  274. package/dist/backend/services/gallery.service.js.map +1 -0
  275. package/dist/backend/services/grouped.service.d.ts +39 -0
  276. package/dist/backend/services/grouped.service.d.ts.map +1 -0
  277. package/dist/backend/services/grouped.service.js +136 -0
  278. package/dist/backend/services/grouped.service.js.map +1 -0
  279. package/dist/backend/services/label-resolver.d.ts +16 -0
  280. package/dist/backend/services/label-resolver.d.ts.map +1 -0
  281. package/dist/backend/services/label-resolver.js +43 -0
  282. package/dist/backend/services/label-resolver.js.map +1 -0
  283. package/dist/backend/services/packaging-unit.service.d.ts +28 -0
  284. package/dist/backend/services/packaging-unit.service.d.ts.map +1 -0
  285. package/dist/backend/services/packaging-unit.service.js +197 -0
  286. package/dist/backend/services/packaging-unit.service.js.map +1 -0
  287. package/dist/backend/services/primary-asset-url.d.ts +4 -0
  288. package/dist/backend/services/primary-asset-url.d.ts.map +1 -0
  289. package/dist/backend/services/primary-asset-url.js +55 -0
  290. package/dist/backend/services/primary-asset-url.js.map +1 -0
  291. package/dist/backend/services/product-editor-preferences.service.d.ts +20 -0
  292. package/dist/backend/services/product-editor-preferences.service.d.ts.map +1 -0
  293. package/dist/backend/services/product-editor-preferences.service.js +44 -0
  294. package/dist/backend/services/product-editor-preferences.service.js.map +1 -0
  295. package/dist/backend/services/product-link.service.d.ts +169 -0
  296. package/dist/backend/services/product-link.service.d.ts.map +1 -0
  297. package/dist/backend/services/product-link.service.js +297 -0
  298. package/dist/backend/services/product-link.service.js.map +1 -0
  299. package/dist/backend/services/product-overrides.service.d.ts +77 -0
  300. package/dist/backend/services/product-overrides.service.d.ts.map +1 -0
  301. package/dist/backend/services/product-overrides.service.js +204 -0
  302. package/dist/backend/services/product-overrides.service.js.map +1 -0
  303. package/dist/backend/services/product-scope-context.service.d.ts +36 -0
  304. package/dist/backend/services/product-scope-context.service.d.ts.map +1 -0
  305. package/dist/backend/services/product-scope-context.service.js +106 -0
  306. package/dist/backend/services/product-scope-context.service.js.map +1 -0
  307. package/dist/backend/services/product-type-validations.d.ts +42 -0
  308. package/dist/backend/services/product-type-validations.d.ts.map +1 -0
  309. package/dist/backend/services/product-type-validations.js +55 -0
  310. package/dist/backend/services/product-type-validations.js.map +1 -0
  311. package/dist/backend/services/product-value-resolver.service.d.ts +59 -0
  312. package/dist/backend/services/product-value-resolver.service.d.ts.map +1 -0
  313. package/dist/backend/services/product-value-resolver.service.js +111 -0
  314. package/dist/backend/services/product-value-resolver.service.js.map +1 -0
  315. package/dist/backend/services/system-attribute-scopes.d.ts +18 -0
  316. package/dist/backend/services/system-attribute-scopes.d.ts.map +1 -0
  317. package/dist/backend/services/system-attribute-scopes.js +18 -0
  318. package/dist/backend/services/system-attribute-scopes.js.map +1 -0
  319. package/dist/backend/services/viewer-organization.d.ts +25 -0
  320. package/dist/backend/services/viewer-organization.d.ts.map +1 -0
  321. package/dist/backend/services/viewer-organization.js +31 -0
  322. package/dist/backend/services/viewer-organization.js.map +1 -0
  323. package/dist/manifest.d.ts +204 -0
  324. package/dist/manifest.d.ts.map +1 -0
  325. package/dist/manifest.js +686 -0
  326. package/dist/manifest.js.map +1 -0
  327. package/dist/migrations/20260429T064146_catalog_attribute_sets_init.d.ts +33 -0
  328. package/dist/migrations/20260429T064146_catalog_attribute_sets_init.d.ts.map +1 -0
  329. package/dist/migrations/20260429T064146_catalog_attribute_sets_init.js +118 -0
  330. package/dist/migrations/20260429T064146_catalog_attribute_sets_init.js.map +1 -0
  331. package/dist/migrations/20260429T070004_catalog_product_attribute_extensions.d.ts +24 -0
  332. package/dist/migrations/20260429T070004_catalog_product_attribute_extensions.d.ts.map +1 -0
  333. package/dist/migrations/20260429T070004_catalog_product_attribute_extensions.js +31 -0
  334. package/dist/migrations/20260429T070004_catalog_product_attribute_extensions.js.map +1 -0
  335. package/dist/migrations/20260429T102322_catalog_product_type_and_virtual_fields.d.ts +32 -0
  336. package/dist/migrations/20260429T102322_catalog_product_type_and_virtual_fields.d.ts.map +1 -0
  337. package/dist/migrations/20260429T102322_catalog_product_type_and_virtual_fields.js +58 -0
  338. package/dist/migrations/20260429T102322_catalog_product_type_and_virtual_fields.js.map +1 -0
  339. package/dist/migrations/20260429T111839_catalog_gallery_items_and_labels.d.ts +22 -0
  340. package/dist/migrations/20260429T111839_catalog_gallery_items_and_labels.d.ts.map +1 -0
  341. package/dist/migrations/20260429T111839_catalog_gallery_items_and_labels.js +66 -0
  342. package/dist/migrations/20260429T111839_catalog_gallery_items_and_labels.js.map +1 -0
  343. package/dist/migrations/20260429T112543_catalog_product_attachments.d.ts +18 -0
  344. package/dist/migrations/20260429T112543_catalog_product_attachments.d.ts.map +1 -0
  345. package/dist/migrations/20260429T112543_catalog_product_attachments.js +73 -0
  346. package/dist/migrations/20260429T112543_catalog_product_attachments.js.map +1 -0
  347. package/dist/migrations/20260429T123726_catalog_product_links.d.ts +21 -0
  348. package/dist/migrations/20260429T123726_catalog_product_links.d.ts.map +1 -0
  349. package/dist/migrations/20260429T123726_catalog_product_links.js +48 -0
  350. package/dist/migrations/20260429T123726_catalog_product_links.js.map +1 -0
  351. package/dist/migrations/20260429T130803_catalog_grouped_and_bundle.d.ts +23 -0
  352. package/dist/migrations/20260429T130803_catalog_grouped_and_bundle.d.ts.map +1 -0
  353. package/dist/migrations/20260429T130803_catalog_grouped_and_bundle.js +94 -0
  354. package/dist/migrations/20260429T130803_catalog_grouped_and_bundle.js.map +1 -0
  355. package/dist/migrations/20260501T185835_catalog_product_attribute_is_comparable.d.ts +24 -0
  356. package/dist/migrations/20260501T185835_catalog_product_attribute_is_comparable.d.ts.map +1 -0
  357. package/dist/migrations/20260501T185835_catalog_product_attribute_is_comparable.js +31 -0
  358. package/dist/migrations/20260501T185835_catalog_product_attribute_is_comparable.js.map +1 -0
  359. package/dist/migrations/20260505T060113_catalog_attribute_options_and_flags.d.ts +31 -0
  360. package/dist/migrations/20260505T060113_catalog_attribute_options_and_flags.d.ts.map +1 -0
  361. package/dist/migrations/20260505T060113_catalog_attribute_options_and_flags.js +133 -0
  362. package/dist/migrations/20260505T060113_catalog_attribute_options_and_flags.js.map +1 -0
  363. package/dist/migrations/20260515T082629_catalog_attribute_mass_editable.d.ts +16 -0
  364. package/dist/migrations/20260515T082629_catalog_attribute_mass_editable.d.ts.map +1 -0
  365. package/dist/migrations/20260515T082629_catalog_attribute_mass_editable.js +23 -0
  366. package/dist/migrations/20260515T082629_catalog_attribute_mass_editable.js.map +1 -0
  367. package/dist/migrations/20260526T124736_catalog_product_status_inactive.d.ts +10 -0
  368. package/dist/migrations/20260526T124736_catalog_product_status_inactive.d.ts.map +1 -0
  369. package/dist/migrations/20260526T124736_catalog_product_status_inactive.js +22 -0
  370. package/dist/migrations/20260526T124736_catalog_product_status_inactive.js.map +1 -0
  371. package/dist/migrations/20260611T140346_catalog_product_value_overrides_init.d.ts +38 -0
  372. package/dist/migrations/20260611T140346_catalog_product_value_overrides_init.d.ts.map +1 -0
  373. package/dist/migrations/20260611T140346_catalog_product_value_overrides_init.js +98 -0
  374. package/dist/migrations/20260611T140346_catalog_product_value_overrides_init.js.map +1 -0
  375. package/dist/migrations/20260611T140400_catalog_attribute_quick_searchable.d.ts +13 -0
  376. package/dist/migrations/20260611T140400_catalog_attribute_quick_searchable.d.ts.map +1 -0
  377. package/dist/migrations/20260611T140400_catalog_attribute_quick_searchable.js +17 -0
  378. package/dist/migrations/20260611T140400_catalog_attribute_quick_searchable.js.map +1 -0
  379. package/dist/migrations/20260611T140407_catalog_bulk_operations.d.ts +16 -0
  380. package/dist/migrations/20260611T140407_catalog_bulk_operations.d.ts.map +1 -0
  381. package/dist/migrations/20260611T140407_catalog_bulk_operations.js +42 -0
  382. package/dist/migrations/20260611T140407_catalog_bulk_operations.js.map +1 -0
  383. package/dist/migrations/20260611T140408_catalog_bulk_operation_logs.d.ts +14 -0
  384. package/dist/migrations/20260611T140408_catalog_bulk_operation_logs.d.ts.map +1 -0
  385. package/dist/migrations/20260611T140408_catalog_bulk_operation_logs.js +18 -0
  386. package/dist/migrations/20260611T140408_catalog_bulk_operation_logs.js.map +1 -0
  387. package/dist/migrations/20260611T140412_catalog_product_packaging_units.d.ts +11 -0
  388. package/dist/migrations/20260611T140412_catalog_product_packaging_units.d.ts.map +1 -0
  389. package/dist/migrations/20260611T140412_catalog_product_packaging_units.js +29 -0
  390. package/dist/migrations/20260611T140412_catalog_product_packaging_units.js.map +1 -0
  391. package/dist/migrations/20260718T060659_catalog_bulk_operation_revert_state.d.ts +23 -0
  392. package/dist/migrations/20260718T060659_catalog_bulk_operation_revert_state.d.ts.map +1 -0
  393. package/dist/migrations/20260718T060659_catalog_bulk_operation_revert_state.js +35 -0
  394. package/dist/migrations/20260718T060659_catalog_bulk_operation_revert_state.js.map +1 -0
  395. package/dist/migrations/20260718T200343_catalog_category_custom_field_values.d.ts +12 -0
  396. package/dist/migrations/20260718T200343_catalog_category_custom_field_values.d.ts.map +1 -0
  397. package/dist/migrations/20260718T200343_catalog_category_custom_field_values.js +16 -0
  398. package/dist/migrations/20260718T200343_catalog_category_custom_field_values.js.map +1 -0
  399. package/dist/migrations/20260723T230401_catalog_attributes_on_custom_fields.d.ts +32 -0
  400. package/dist/migrations/20260723T230401_catalog_attributes_on_custom_fields.d.ts.map +1 -0
  401. package/dist/migrations/20260723T230401_catalog_attributes_on_custom_fields.js +286 -0
  402. package/dist/migrations/20260723T230401_catalog_attributes_on_custom_fields.js.map +1 -0
  403. package/dist/migrations/20260804T152604_catalog_widen_product_sku.d.ts +36 -0
  404. package/dist/migrations/20260804T152604_catalog_widen_product_sku.d.ts.map +1 -0
  405. package/dist/migrations/20260804T152604_catalog_widen_product_sku.js +63 -0
  406. package/dist/migrations/20260804T152604_catalog_widen_product_sku.js.map +1 -0
  407. package/dist/migrations/20260804T160244_catalog_category_activation.d.ts +18 -0
  408. package/dist/migrations/20260804T160244_catalog_category_activation.d.ts.map +1 -0
  409. package/dist/migrations/20260804T160244_catalog_category_activation.js +22 -0
  410. package/dist/migrations/20260804T160244_catalog_category_activation.js.map +1 -0
  411. package/dist/migrations/20260912T094557_catalog_sales_channel_products.d.ts +27 -0
  412. package/dist/migrations/20260912T094557_catalog_sales_channel_products.d.ts.map +1 -0
  413. package/dist/migrations/20260912T094557_catalog_sales_channel_products.js +44 -0
  414. package/dist/migrations/20260912T094557_catalog_sales_channel_products.js.map +1 -0
  415. package/dist/migrations/20260912T094623_catalog_sales_channel_categories.d.ts +27 -0
  416. package/dist/migrations/20260912T094623_catalog_sales_channel_categories.d.ts.map +1 -0
  417. package/dist/migrations/20260912T094623_catalog_sales_channel_categories.js +44 -0
  418. package/dist/migrations/20260912T094623_catalog_sales_channel_categories.js.map +1 -0
  419. package/dist/migrations/20260925T125527_catalog_inventory_columns.d.ts +36 -0
  420. package/dist/migrations/20260925T125527_catalog_inventory_columns.d.ts.map +1 -0
  421. package/dist/migrations/20260925T125527_catalog_inventory_columns.js +87 -0
  422. package/dist/migrations/20260925T125527_catalog_inventory_columns.js.map +1 -0
  423. package/dist/migrations/index.d.ts +55 -0
  424. package/dist/migrations/index.d.ts.map +1 -0
  425. package/dist/migrations/index.js +80 -0
  426. package/dist/migrations/index.js.map +1 -0
  427. package/dist/ports/index.d.ts +96 -0
  428. package/dist/ports/index.d.ts.map +1 -0
  429. package/dist/ports/index.js +2 -0
  430. package/dist/ports/index.js.map +1 -0
  431. package/docs/catalog/attachments.md +69 -0
  432. package/docs/catalog/attribute-sets.md +63 -0
  433. package/docs/catalog/attributes.md +244 -0
  434. package/docs/catalog/composite-products.md +115 -0
  435. package/docs/catalog/gallery-and-labels.md +73 -0
  436. package/docs/catalog/packaging-units.md +67 -0
  437. package/docs/catalog/per-channel-per-language-overrides.md +234 -0
  438. package/docs/catalog/product-links.md +79 -0
  439. package/docs/catalog.md +207 -0
  440. package/i18n/en.json +649 -0
  441. package/i18n/pl.json +649 -0
  442. package/package.json +109 -0
  443. package/tailwind.css +14 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attribute-commands.js","sourceRoot":"","sources":["../../../src/backend/commands/attribute-commands.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Withdraw `catalog`'s demo data (feature 113, T224 — contract §2.5).
3
+ *
4
+ * By the slugs and the slug prefix `seed` assigns, never by a predicate over
5
+ * the table. This is the withdrawal that replaces the longest run of lines in
6
+ * the host's `truncate … cascade` — `products`, `categories`, and the
7
+ * composites' three structure tables — and the replacement is a repair rather
8
+ * than a relocation: a truncate cannot tell a demo product from a catalogue an
9
+ * operator has been building, and on this table that is somebody's whole shop.
10
+ *
11
+ * The order below is the FK graph read backwards, and it is written out rather
12
+ * than left to a cascade for the same reason: a cascade would reach rows this
13
+ * demo did not create.
14
+ *
15
+ * Everything that *references* these products from another module's table — the
16
+ * category and channel bridges, the price brackets, the stock, the images and
17
+ * the attachments — is withdrawn first, by the composition, because `reset`
18
+ * runs the composition's withdrawal before any module's (§5.5).
19
+ */
20
+ import type { DemoResetResult, ModuleDemoContext } from '@endora-commerce/contracts';
21
+ import type { ModuleContext } from '@endora-commerce/platform/kernel';
22
+ export declare function resetDemo(context: ModuleDemoContext<ModuleContext>): Promise<DemoResetResult>;
23
+ //# sourceMappingURL=reset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reset.d.ts","sourceRoot":"","sources":["../../../src/backend/demo/reset.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACrF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AActE,wBAAsB,SAAS,CAC7B,OAAO,EAAE,iBAAiB,CAAC,aAAa,CAAC,GACxC,OAAO,CAAC,eAAe,CAAC,CAiD1B"}
@@ -0,0 +1,41 @@
1
+ import { Category } from '../entities/category.entity.js';
2
+ import { Product } from '../entities/product.entity.js';
3
+ import { DEMO_CATEGORY_SLUGS_DEEPEST_FIRST, DEMO_COMPOSITE_SKUS, DEMO_PRODUCT_SLUG_PREFIX, } from './rows.js';
4
+ export async function resetDemo(context) {
5
+ // command-coverage-ignore: the withdrawal half of the demo data above. Same
6
+ // entry point, same `mustBeNonProduction()` guard, same absence of an
7
+ // operator to attribute the write to (contract §2.7).
8
+ const em = context.ctx.cradle().emFactory();
9
+ const conn = em.getConnection();
10
+ // `?, ?, ?` rather than `= any(?)`: the connection binds an array by
11
+ // **expanding** it into a comma-separated list, so `any(?)` becomes
12
+ // `any('a', 'b')` and Postgres refuses it.
13
+ const skus = [...DEMO_COMPOSITE_SKUS];
14
+ const compositePlaceholders = skus.map(() => '?').join(', ');
15
+ // The composites' structure first: every row of it points at a product this
16
+ // call is about to remove.
17
+ await conn.execute(`delete from bundle_slot_options where slot_id in
18
+ (select s.id from bundle_slots s
19
+ join products p on p.id = s.parent_product_id
20
+ where p.sku in (${compositePlaceholders}))`, skus);
21
+ await conn.execute(`delete from bundle_slots where parent_product_id in
22
+ (select id from products where sku in (${compositePlaceholders}))`, skus);
23
+ await conn.execute(`delete from grouped_items where parent_product_id in
24
+ (select id from products where sku in (${compositePlaceholders}))`, skus);
25
+ // Both the 200 simple products and the three composites carry the prefix.
26
+ const products = await em.nativeDelete(Product, {
27
+ slug: { $like: `${DEMO_PRODUCT_SLUG_PREFIX}%` },
28
+ });
29
+ // Deepest first, so no parent goes while a child still points at it.
30
+ let categories = 0;
31
+ for (const level of DEMO_CATEGORY_SLUGS_DEEPEST_FIRST) {
32
+ categories += await em.nativeDelete(Category, { slug: { $in: [...level] } });
33
+ }
34
+ return {
35
+ removed: [
36
+ { entity: 'Category', count: categories },
37
+ { entity: 'Product', count: products },
38
+ ],
39
+ };
40
+ }
41
+ //# sourceMappingURL=reset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reset.js","sourceRoot":"","sources":["../../../src/backend/demo/reset.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,EACL,iCAAiC,EACjC,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,WAAW,CAAC;AAMnB,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,OAAyC;IAEzC,4EAA4E;IAC5E,sEAAsE;IACtE,sDAAsD;IACtD,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAqB,CAAC,SAAS,EAAE,CAAC;IAC/D,MAAM,IAAI,GAAG,EAAE,CAAC,aAAa,EAAE,CAAC;IAChC,qEAAqE;IACrE,oEAAoE;IACpE,2CAA2C;IAC3C,MAAM,IAAI,GAAG,CAAC,GAAG,mBAAmB,CAAC,CAAC;IACtC,MAAM,qBAAqB,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE7D,4EAA4E;IAC5E,2BAA2B;IAC3B,MAAM,IAAI,CAAC,OAAO,CAChB;;;2BAGuB,qBAAqB,IAAI,EAChD,IAAI,CACL,CAAC;IACF,MAAM,IAAI,CAAC,OAAO,CAChB;gDAC4C,qBAAqB,IAAI,EACrE,IAAI,CACL,CAAC;IACF,MAAM,IAAI,CAAC,OAAO,CAChB;gDAC4C,qBAAqB,IAAI,EACrE,IAAI,CACL,CAAC;IAEF,0EAA0E;IAC1E,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE;QAC9C,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,wBAAwB,GAAG,EAAE;KAChD,CAAC,CAAC;IAEH,qEAAqE;IACrE,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,KAAK,MAAM,KAAK,IAAI,iCAAiC,EAAE,CAAC;QACtD,UAAU,IAAI,MAAM,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED,OAAO;QACL,OAAO,EAAE;YACP,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;YACzC,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE;SACvC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,103 @@
1
+ /**
2
+ * The catalogue this module's demo data creates (feature 113, T224).
3
+ *
4
+ * One place holding the data and the generators, imported by both bodies:
5
+ * `seed.ts` creates these rows and `reset.ts` withdraws exactly them, by the
6
+ * slugs and SKU prefix `seed` assigns (contract §2.5). The values are
7
+ * the host seed's verbatim, moved rather than rewritten. The frozen copy the
8
+ * parity comparison read them against is deleted with that comparison (T226);
9
+ * what holds them now is `test/integration/demo/demo-shop.test.ts`' recorded
10
+ * delta.
11
+ *
12
+ * ## Why a generator rather than 200 literals
13
+ *
14
+ * `research.md` § R2.2: a generated catalogue costs the same shipped bytes at
15
+ * 200 products as at 10 000, and the images are inline SVG built in-process. It
16
+ * is what the Phase 3 budget assumes, and it is why this module ships no
17
+ * non-`.ts` demo asset at all.
18
+ *
19
+ * ## What is deliberately not here
20
+ *
21
+ * **The images and the attachments.** Each mints an `assets` row —
22
+ * `assets_library`'s table — and hands its id to one of this module's, so each
23
+ * is two modules' rows in one statement and a composition step (§5.1). The
24
+ * generators that build the placeholder art went with them.
25
+ *
26
+ * **The attributes.** A product attribute is a `custom_field_definitions` row
27
+ * paired 1:1 with a `product_attributes` extension row, which is the same shape
28
+ * one module further out; `attributeValues` below is a JSONB blob on this
29
+ * module's own table and names those attributes by key, with no reference to
30
+ * them.
31
+ *
32
+ * **Every join table.** A product's category, its sales channel, its price
33
+ * bracket and its stock are all bridges the composition already owned before
34
+ * this batch.
35
+ */
36
+ /** How many simple products the demo catalogue holds. */
37
+ export declare const PRODUCT_COUNT = 200;
38
+ export declare const COLOR_VALUES: string[];
39
+ export declare const MATERIAL_VALUES: string[];
40
+ /** The root of the demo's three-level tree. */
41
+ export declare const DEMO_ROOT_CATEGORY: {
42
+ readonly slug: "catalog";
43
+ readonly name: {
44
+ readonly 'en-US': "Catalog";
45
+ readonly 'pl-PL': "Katalog";
46
+ };
47
+ };
48
+ export declare const DEMO_SECTION_CATEGORIES: readonly {
49
+ slug: string;
50
+ nameEn: string;
51
+ }[];
52
+ export declare const DEMO_LEAF_CATEGORIES: readonly {
53
+ parentSlug: string;
54
+ slug: string;
55
+ nameEn: string;
56
+ }[];
57
+ /** Every category slug the demo owns, deepest first — the order `reset` needs. */
58
+ export declare const DEMO_CATEGORY_SLUGS_DEEPEST_FIRST: readonly (readonly string[])[];
59
+ /**
60
+ * The prefix every demo product's slug carries.
61
+ *
62
+ * The instance composition resolves a product's leaf, its channel binding and
63
+ * its stock by this prefix, so it is contract between the two rather than a
64
+ * convenience: `reset` withdraws exactly what matches it.
65
+ */
66
+ export declare const DEMO_PRODUCT_SLUG_PREFIX = "demo-";
67
+ /** The three composite products, whose structure is this module's own. */
68
+ export declare const DEMO_COMPOSITE_SKUS: readonly ["DEMO-GROUPED-0001", "DEMO-BUNDLE-0001", "DEMO-VIRTUAL-0001"];
69
+ /** Singularized, lower-cased leaf noun for prose (e.g. "Screws" → "screw"). */
70
+ export declare function leafNoun(leafNameEn: string): string;
71
+ /**
72
+ * Build a richer, multi-paragraph product description (≥3 paragraphs, 3-4
73
+ * sentences each) so the seeded catalog reads like real merchandising copy
74
+ * rather than a one-line stub. Deterministic — derived purely from the
75
+ * product's own attributes so re-seeding is stable.
76
+ */
77
+ export declare function buildProductDescription(input: {
78
+ productName: string;
79
+ leafNameEn: string;
80
+ color: string;
81
+ material: string;
82
+ weightKg: number;
83
+ certification: string | null;
84
+ }): string;
85
+ /** One generated simple product, in `Product`'s own field names. */
86
+ export interface DemoProductRow {
87
+ readonly sku: string;
88
+ readonly slug: string;
89
+ readonly leafSlug: string;
90
+ readonly nameEn: string;
91
+ readonly descriptionEn: string;
92
+ readonly attributeValues: Record<string, unknown>;
93
+ }
94
+ /**
95
+ * The demo's simple products, derived from the leaf tree and nothing else.
96
+ *
97
+ * `leafSlug` is what the SKU, the slug and the name all agree on — the host
98
+ * block kept a parallel `productLeaves` array in memory beside the products,
99
+ * and an off-by-one between the naming loop and the category loop once filed
100
+ * every product under its neighbouring category.
101
+ */
102
+ export declare function demoProducts(leafNameBySlug: (slug: string) => string): DemoProductRow[];
103
+ //# sourceMappingURL=rows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rows.d.ts","sourceRoot":"","sources":["../../../src/backend/demo/rows.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,yDAAyD;AACzD,eAAO,MAAM,aAAa,MAAM,CAAC;AAEjC,eAAO,MAAM,YAAY,UAA6C,CAAC;AACvE,eAAO,MAAM,eAAe,UAAqD,CAAC;AAElF,+CAA+C;AAC/C,eAAO,MAAM,kBAAkB;;;;;;CAGrB,CAAC;AAEX,eAAO,MAAM,uBAAuB,EAAE,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAK9E,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,SAAS;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB,EASA,CAAC;AAEF,kFAAkF;AAClF,eAAO,MAAM,iCAAiC,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAI3E,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,UAAU,CAAC;AAEhD,0EAA0E;AAC1E,eAAO,MAAM,mBAAmB,yEAItB,CAAC;AAEX,+EAA+E;AAC/E,wBAAgB,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAGnD;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,GAAG,MAAM,CA6BT;AAED,oEAAoE;AACpE,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnD;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GACvC,cAAc,EAAE,CAmClB"}
@@ -0,0 +1,162 @@
1
+ /**
2
+ * The catalogue this module's demo data creates (feature 113, T224).
3
+ *
4
+ * One place holding the data and the generators, imported by both bodies:
5
+ * `seed.ts` creates these rows and `reset.ts` withdraws exactly them, by the
6
+ * slugs and SKU prefix `seed` assigns (contract §2.5). The values are
7
+ * the host seed's verbatim, moved rather than rewritten. The frozen copy the
8
+ * parity comparison read them against is deleted with that comparison (T226);
9
+ * what holds them now is `test/integration/demo/demo-shop.test.ts`' recorded
10
+ * delta.
11
+ *
12
+ * ## Why a generator rather than 200 literals
13
+ *
14
+ * `research.md` § R2.2: a generated catalogue costs the same shipped bytes at
15
+ * 200 products as at 10 000, and the images are inline SVG built in-process. It
16
+ * is what the Phase 3 budget assumes, and it is why this module ships no
17
+ * non-`.ts` demo asset at all.
18
+ *
19
+ * ## What is deliberately not here
20
+ *
21
+ * **The images and the attachments.** Each mints an `assets` row —
22
+ * `assets_library`'s table — and hands its id to one of this module's, so each
23
+ * is two modules' rows in one statement and a composition step (§5.1). The
24
+ * generators that build the placeholder art went with them.
25
+ *
26
+ * **The attributes.** A product attribute is a `custom_field_definitions` row
27
+ * paired 1:1 with a `product_attributes` extension row, which is the same shape
28
+ * one module further out; `attributeValues` below is a JSONB blob on this
29
+ * module's own table and names those attributes by key, with no reference to
30
+ * them.
31
+ *
32
+ * **Every join table.** A product's category, its sales channel, its price
33
+ * bracket and its stock are all bridges the composition already owned before
34
+ * this batch.
35
+ */
36
+ /** How many simple products the demo catalogue holds. */
37
+ export const PRODUCT_COUNT = 200;
38
+ export const COLOR_VALUES = ['red', 'green', 'blue', 'black', 'white'];
39
+ export const MATERIAL_VALUES = ['steel', 'aluminium', 'plastic', 'wood', 'glass'];
40
+ /** The root of the demo's three-level tree. */
41
+ export const DEMO_ROOT_CATEGORY = {
42
+ slug: 'catalog',
43
+ name: { 'en-US': 'Catalog', 'pl-PL': 'Katalog' },
44
+ };
45
+ export const DEMO_SECTION_CATEGORIES = [
46
+ { slug: 'fasteners', nameEn: 'Fasteners' },
47
+ { slug: 'tools', nameEn: 'Tools' },
48
+ { slug: 'electronics', nameEn: 'Electronics' },
49
+ { slug: 'safety', nameEn: 'Safety equipment' },
50
+ ];
51
+ export const DEMO_LEAF_CATEGORIES = [
52
+ { parentSlug: 'fasteners', slug: 'screws', nameEn: 'Screws' },
53
+ { parentSlug: 'fasteners', slug: 'bolts', nameEn: 'Bolts' },
54
+ { parentSlug: 'tools', slug: 'wrenches', nameEn: 'Wrenches' },
55
+ { parentSlug: 'tools', slug: 'drills', nameEn: 'Drills' },
56
+ { parentSlug: 'electronics', slug: 'cables', nameEn: 'Cables' },
57
+ { parentSlug: 'electronics', slug: 'sensors', nameEn: 'Sensors' },
58
+ { parentSlug: 'safety', slug: 'gloves', nameEn: 'Gloves' },
59
+ { parentSlug: 'safety', slug: 'helmets', nameEn: 'Helmets' },
60
+ ];
61
+ /** Every category slug the demo owns, deepest first — the order `reset` needs. */
62
+ export const DEMO_CATEGORY_SLUGS_DEEPEST_FIRST = [
63
+ DEMO_LEAF_CATEGORIES.map((leaf) => leaf.slug),
64
+ DEMO_SECTION_CATEGORIES.map((section) => section.slug),
65
+ [DEMO_ROOT_CATEGORY.slug],
66
+ ];
67
+ /**
68
+ * The prefix every demo product's slug carries.
69
+ *
70
+ * The instance composition resolves a product's leaf, its channel binding and
71
+ * its stock by this prefix, so it is contract between the two rather than a
72
+ * convenience: `reset` withdraws exactly what matches it.
73
+ */
74
+ export const DEMO_PRODUCT_SLUG_PREFIX = 'demo-';
75
+ /** The three composite products, whose structure is this module's own. */
76
+ export const DEMO_COMPOSITE_SKUS = [
77
+ 'DEMO-GROUPED-0001',
78
+ 'DEMO-BUNDLE-0001',
79
+ 'DEMO-VIRTUAL-0001',
80
+ ];
81
+ /** Singularized, lower-cased leaf noun for prose (e.g. "Screws" → "screw"). */
82
+ export function leafNoun(leafNameEn) {
83
+ const lower = leafNameEn.toLowerCase();
84
+ return lower.endsWith('s') ? lower.slice(0, -1) : lower;
85
+ }
86
+ /**
87
+ * Build a richer, multi-paragraph product description (≥3 paragraphs, 3-4
88
+ * sentences each) so the seeded catalog reads like real merchandising copy
89
+ * rather than a one-line stub. Deterministic — derived purely from the
90
+ * product's own attributes so re-seeding is stable.
91
+ */
92
+ export function buildProductDescription(input) {
93
+ const { productName, leafNameEn, color, material, weightKg, certification } = input;
94
+ const noun = leafNoun(leafNameEn);
95
+ const category = leafNameEn.toLowerCase();
96
+ const overview = [
97
+ `The ${productName} is a professional-grade ${color} ${noun} machined from ${material} for demanding industrial and trade applications.`,
98
+ `It has been designed to deliver consistent performance across high-volume B2B workflows where reliability matters more than anything else.`,
99
+ `Every unit is inspected before dispatch so what arrives on your workbench behaves exactly like the sample you evaluated.`,
100
+ `This makes it a dependable default choice when you standardise your ${category} line across multiple sites.`,
101
+ ].join(' ');
102
+ const specs = [
103
+ `Built from ${material}, the ${noun} balances strength and weight at roughly ${weightKg} kg per unit, keeping handling comfortable without sacrificing durability.`,
104
+ `The ${color} finish resists everyday wear and stays legible on the shelf, which helps warehouse teams pick the right item quickly.`,
105
+ certification
106
+ ? `It ships with ${certification} conformity documentation, so it slots straight into regulated procurement processes.`
107
+ : `It follows our standard internal quality baseline, so tolerances stay predictable from batch to batch.`,
108
+ `Dimensional consistency between batches means downstream assembly steps rarely need rework.`,
109
+ ].join(' ');
110
+ const ordering = [
111
+ `Because this ${noun} is stocked for recurring orders, it is well suited to blanket purchase agreements and scheduled replenishment.`,
112
+ `Volume pricing tiers reward larger baskets, and lead times stay short thanks to steady on-hand inventory.`,
113
+ `Pair it with the related items in the ${category} category to build a complete, compatible kit in a single order.`,
114
+ `If you need a tailored quote for a large project, request one and our team will respond with contract terms.`,
115
+ ].join(' ');
116
+ return `${overview}\n\n${specs}\n\n${ordering}`;
117
+ }
118
+ /**
119
+ * The demo's simple products, derived from the leaf tree and nothing else.
120
+ *
121
+ * `leafSlug` is what the SKU, the slug and the name all agree on — the host
122
+ * block kept a parallel `productLeaves` array in memory beside the products,
123
+ * and an off-by-one between the naming loop and the category loop once filed
124
+ * every product under its neighbouring category.
125
+ */
126
+ export function demoProducts(leafNameBySlug) {
127
+ const rows = [];
128
+ for (let i = 1; i <= PRODUCT_COUNT; i++) {
129
+ const idx = String(i).padStart(4, '0');
130
+ const leaf = DEMO_LEAF_CATEGORIES[i % DEMO_LEAF_CATEGORIES.length];
131
+ const color = COLOR_VALUES[i % COLOR_VALUES.length];
132
+ const material = MATERIAL_VALUES[i % MATERIAL_VALUES.length];
133
+ const weight = Number(((i % 50) / 10 + 0.1).toFixed(1));
134
+ const price = 9.99 + (i % 100) * 1.5;
135
+ const leafNameEn = leafNameBySlug(leaf.slug);
136
+ const productName = `${leafNameEn} ${idx}`;
137
+ const certification = i % 7 === 0 ? 'ISO9001' : null;
138
+ rows.push({
139
+ sku: `DEMO-${leaf.slug.toUpperCase()}-${idx}`,
140
+ slug: `${DEMO_PRODUCT_SLUG_PREFIX}${leaf.slug}-${idx}`,
141
+ leafSlug: leaf.slug,
142
+ nameEn: productName,
143
+ descriptionEn: buildProductDescription({
144
+ productName,
145
+ leafNameEn,
146
+ color,
147
+ material,
148
+ weightKg: weight,
149
+ certification,
150
+ }),
151
+ attributeValues: {
152
+ color,
153
+ material,
154
+ weight_kg: weight,
155
+ certification,
156
+ defaultPrice: price,
157
+ },
158
+ });
159
+ }
160
+ return rows;
161
+ }
162
+ //# sourceMappingURL=rows.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rows.js","sourceRoot":"","sources":["../../../src/backend/demo/rows.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * `catalog`'s demo data (feature 113, T224 — contract §2).
3
+ *
4
+ * The three-level category tree, 200 generated simple products, the three
5
+ * composites and the composites' own structure, in the module that owns every
6
+ * one of those tables. It writes `categories`, `products`, `grouped_items`,
7
+ * `bundle_slots` and `bundle_slot_options` and nothing else (§2.1), reads no
8
+ * other module's table and resolves no port (§2.2), so declaring it added no
9
+ * entry to this module's manifest `dependencies` (§2.3).
10
+ *
11
+ * ## What left the block on the way here, and why
12
+ *
13
+ * **The product attributes.** A product attribute is a
14
+ * `custom_field_definitions` row paired 1:1 with a `product_attributes`
15
+ * extension row — two modules' rows in one statement, so a composition step
16
+ * (§5.1), and it stays on `backend/src/seeds/attribute-fixtures.ts`, which is
17
+ * the one copy of that helper (FR-019) and which says in its own words that a
18
+ * file writing both tables in one call is composition.
19
+ *
20
+ * **The images and the attachments.** Each mints an `assets` row —
21
+ * `assets_library`'s — and hands its id to `product_assets`, `gallery_items`,
22
+ * `gallery_item_labels` or `product_attachments`, all of them this module's. Two
23
+ * modules again, so two more composition steps, and the placeholder generators
24
+ * went with them.
25
+ *
26
+ * What that leaves here is every row whose whole content is this module's, which
27
+ * is 203 products and 13 categories.
28
+ *
29
+ * Idempotent by an existence probe on the natural key (§2.4): a second run
30
+ * creates nothing and reports the same counts.
31
+ */
32
+ import type { DemoSeedResult, ModuleDemoContext } from '@endora-commerce/contracts';
33
+ import type { ModuleContext } from '@endora-commerce/platform/kernel';
34
+ export declare function seedDemo(context: ModuleDemoContext<ModuleContext>): Promise<DemoSeedResult>;
35
+ //# sourceMappingURL=seed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seed.d.ts","sourceRoot":"","sources":["../../../src/backend/demo/seed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAiDtE,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,iBAAiB,CAAC,aAAa,CAAC,GACxC,OAAO,CAAC,cAAc,CAAC,CA8KzB"}
@@ -0,0 +1,177 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ import { Category } from '../entities/category.entity.js';
3
+ import { Product } from '../entities/product.entity.js';
4
+ import { DEMO_COMPOSITE_SKUS, DEMO_LEAF_CATEGORIES, DEMO_PRODUCT_SLUG_PREFIX, DEMO_ROOT_CATEGORY, DEMO_SECTION_CATEGORIES, PRODUCT_COUNT, demoProducts, } from './rows.js';
5
+ /** The demo's three composites, with the structure each carries. */
6
+ const COMPOSITES = [
7
+ {
8
+ sku: 'DEMO-GROUPED-0001',
9
+ slug: 'demo-grouped-set-0001',
10
+ type: 'grouped',
11
+ nameEn: 'Starter set (grouped)',
12
+ descriptionEn: 'Starter set bundling two products with fixed quantities.',
13
+ price: 49.99,
14
+ },
15
+ {
16
+ sku: 'DEMO-BUNDLE-0001',
17
+ slug: 'demo-bundle-config-0001',
18
+ type: 'bundle',
19
+ nameEn: 'Configurable bundle',
20
+ descriptionEn: 'Pick a color and quantity to configure your bundle.',
21
+ price: 99.99,
22
+ },
23
+ {
24
+ sku: 'DEMO-VIRTUAL-0001',
25
+ slug: 'demo-virtual-ebook-0001',
26
+ type: 'virtual',
27
+ nameEn: 'B2B Buyer Handbook (e-book)',
28
+ descriptionEn: 'Digital e-book — instant download after purchase.',
29
+ price: 19.99,
30
+ downloadUrl: 'https://example.test/b2b-buyer-handbook.pdf',
31
+ },
32
+ ];
33
+ export async function seedDemo(context) {
34
+ // command-coverage-ignore: demo data, reached only by `endora demo seed`,
35
+ // whose entry point calls `mustBeNonProduction()` as its first statement and
36
+ // outside every `try` (contract §2.7, §3.3). The guard is the enforcement:
37
+ // this write has no operator, no tenant and no audit reader, and the command
38
+ // refuses to run against a production database at all.
39
+ const em = context.ctx.cradle().emFactory();
40
+ const conn = em.getConnection();
41
+ // ── the three-level category tree ─────────────────────────────────────
42
+ let root = await em.findOne(Category, { slug: DEMO_ROOT_CATEGORY.slug });
43
+ if (!root) {
44
+ root = em.create(Category, {
45
+ name: { ...DEMO_ROOT_CATEGORY.name },
46
+ slug: DEMO_ROOT_CATEGORY.slug,
47
+ });
48
+ await em.persistAndFlush(root);
49
+ }
50
+ const sections = new Map();
51
+ for (const section of DEMO_SECTION_CATEGORIES) {
52
+ let row = await em.findOne(Category, { slug: section.slug });
53
+ if (!row) {
54
+ row = em.create(Category, {
55
+ parentCategoryId: root.id,
56
+ name: { 'en-US': section.nameEn },
57
+ slug: section.slug,
58
+ });
59
+ em.persist(row);
60
+ }
61
+ sections.set(section.slug, row);
62
+ }
63
+ await em.flush();
64
+ const leaves = new Map();
65
+ for (const leaf of DEMO_LEAF_CATEGORIES) {
66
+ let row = await em.findOne(Category, { slug: leaf.slug });
67
+ if (!row) {
68
+ row = em.create(Category, {
69
+ parentCategoryId: sections.get(leaf.parentSlug).id,
70
+ name: { 'en-US': leaf.nameEn },
71
+ slug: leaf.slug,
72
+ });
73
+ em.persist(row);
74
+ }
75
+ leaves.set(leaf.slug, row);
76
+ }
77
+ await em.flush();
78
+ // ── the 200 simple products ───────────────────────────────────────────
79
+ //
80
+ // The leaf name comes off the row that is actually in the database, so a
81
+ // category an operator renamed is described by the name they gave it rather
82
+ // than by this module's literal.
83
+ const rows = demoProducts((slug) => leaves.get(slug)?.name['en-US'] ??
84
+ DEMO_LEAF_CATEGORIES.find((leaf) => leaf.slug === slug)?.nameEn ??
85
+ slug);
86
+ const existingSimple = await em.find(Product, {
87
+ slug: { $like: `${DEMO_PRODUCT_SLUG_PREFIX}%` },
88
+ });
89
+ const present = new Set(existingSimple.map((product) => product.slug));
90
+ for (const row of rows) {
91
+ if (present.has(row.slug))
92
+ continue;
93
+ em.persist(em.create(Product, {
94
+ sku: row.sku,
95
+ slug: row.slug,
96
+ type: 'simple',
97
+ status: 'active',
98
+ name: { 'en-US': row.nameEn },
99
+ description: { 'en-US': row.descriptionEn },
100
+ visibility: 'public',
101
+ attributeValues: { ...row.attributeValues },
102
+ }));
103
+ }
104
+ await em.flush();
105
+ // ── the three composites (T133, US5) ──────────────────────────────────
106
+ //
107
+ // One grouped product with two simple children, one bundle with a slot and
108
+ // two options, one virtual product with a download URL. Their category and
109
+ // channel membership is the composition's, exactly as every other product's
110
+ // is.
111
+ for (const composite of COMPOSITES) {
112
+ if (present.has(composite.slug))
113
+ continue;
114
+ const existing = await em.findOne(Product, { slug: composite.slug });
115
+ if (existing)
116
+ continue;
117
+ em.persist(em.create(Product, {
118
+ sku: composite.sku,
119
+ slug: composite.slug,
120
+ type: composite.type,
121
+ status: 'active',
122
+ name: { 'en-US': composite.nameEn },
123
+ description: { 'en-US': composite.descriptionEn },
124
+ visibility: 'public',
125
+ attributeValues: { defaultPrice: composite.price },
126
+ ...('downloadUrl' in composite ? { downloadUrl: composite.downloadUrl } : {}),
127
+ }));
128
+ }
129
+ await em.flush();
130
+ // ── the composites' own structure ─────────────────────────────────────
131
+ //
132
+ // The first four simple products by SKU, which is the creation order the host
133
+ // block took them in: `products[0]` and `products[1]` are the grouped set's
134
+ // children, `products[2]` and `products[3]` the bundle slot's options.
135
+ const grouped = await em.findOne(Product, { sku: 'DEMO-GROUPED-0001' });
136
+ const bundle = await em.findOne(Product, { sku: 'DEMO-BUNDLE-0001' });
137
+ const children = await em.find(Product, { slug: { $in: rows.slice(0, 4).map((row) => row.slug) } });
138
+ const bySlug = new Map(children.map((product) => [product.slug, product]));
139
+ const ordered = rows.slice(0, 4).map((row) => bySlug.get(row.slug));
140
+ if (grouped && ordered[0] && ordered[1]) {
141
+ const held = await conn.execute(`select count(*)::text as n from grouped_items where parent_product_id = ?`, [grouped.id]);
142
+ if (Number(held[0]?.n ?? '0') === 0) {
143
+ await conn.execute(`insert into grouped_items (id, parent_product_id, child_product_id, quantity, position, created_at, updated_at)
144
+ values (?, ?, ?, 2, 0, now(), now()),
145
+ (?, ?, ?, 1, 1, now(), now())`, [
146
+ randomUUID(), grouped.id, ordered[0].id,
147
+ randomUUID(), grouped.id, ordered[1].id,
148
+ ]);
149
+ }
150
+ }
151
+ if (bundle && ordered[2] && ordered[3]) {
152
+ const held = await conn.execute(`select count(*)::text as n from bundle_slots where parent_product_id = ?`, [bundle.id]);
153
+ if (Number(held[0]?.n ?? '0') === 0) {
154
+ const bundleSlotId = randomUUID();
155
+ await conn.execute(`insert into bundle_slots (id, parent_product_id, name, min_quantity, max_quantity, position, created_at, updated_at)
156
+ values (?, ?, ?::jsonb, 1, 1, 0, now(), now())`, [bundleSlotId, bundle.id, JSON.stringify({ 'en-US': 'Color', 'pl-PL': 'Kolor' })]);
157
+ await conn.execute(`insert into bundle_slot_options (id, slot_id, option_product_id, default_quantity, position, created_at, updated_at)
158
+ values (?, ?, ?, 1, 0, now(), now()),
159
+ (?, ?, ?, 1, 1, now(), now())`, [
160
+ randomUUID(), bundleSlotId, ordered[2].id,
161
+ randomUUID(), bundleSlotId, ordered[3].id,
162
+ ]);
163
+ }
164
+ }
165
+ // The counts are what the demo *holds* after the run, not what this call
166
+ // inserted: seeding twice must report the same counts (`DemoEntityCount`).
167
+ return {
168
+ created: [
169
+ {
170
+ entity: 'Category',
171
+ count: 1 + DEMO_SECTION_CATEGORIES.length + DEMO_LEAF_CATEGORIES.length,
172
+ },
173
+ { entity: 'Product', count: PRODUCT_COUNT + DEMO_COMPOSITE_SKUS.length },
174
+ ],
175
+ };
176
+ }
177
+ //# sourceMappingURL=seed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seed.js","sourceRoot":"","sources":["../../../src/backend/demo/seed.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { OptionalProps } from '@mikro-orm/core';
2
+ /**
3
+ * AttachmentType — global dictionary of attachment categories
4
+ * (Certificate, Tech Spec, Product Card, …) shared across all
5
+ * Products. Feature 002 US3, data-model.md §2.5.
6
+ */
7
+ export declare class AttachmentType {
8
+ [OptionalProps]?: 'id' | 'position' | 'createdAt' | 'updatedAt';
9
+ id: string;
10
+ code: string;
11
+ name: Record<string, string>;
12
+ position: number;
13
+ createdAt: Date;
14
+ updatedAt: Date;
15
+ }
16
+ //# sourceMappingURL=attachment-type.entity.d.ts.map