@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.
- package/LICENSE +21 -0
- package/README.md +63 -0
- package/dist/admin/components/PackagingUnitsEditor.d.ts +12 -0
- package/dist/admin/components/PackagingUnitsEditor.d.ts.map +1 -0
- package/dist/admin/components/PackagingUnitsEditor.js +99 -0
- package/dist/admin/components/PackagingUnitsEditor.js.map +1 -0
- package/dist/admin/components/ProductAttributesTab.d.ts +13 -0
- package/dist/admin/components/ProductAttributesTab.d.ts.map +1 -0
- package/dist/admin/components/ProductAttributesTab.js +140 -0
- package/dist/admin/components/ProductAttributesTab.js.map +1 -0
- package/dist/admin/components/ProductInventoryTab.d.ts +14 -0
- package/dist/admin/components/ProductInventoryTab.d.ts.map +1 -0
- package/dist/admin/components/ProductInventoryTab.js +284 -0
- package/dist/admin/components/ProductInventoryTab.js.map +1 -0
- package/dist/admin/components/ProductScopeEditor.d.ts +94 -0
- package/dist/admin/components/ProductScopeEditor.d.ts.map +1 -0
- package/dist/admin/components/ProductScopeEditor.js +395 -0
- package/dist/admin/components/ProductScopeEditor.js.map +1 -0
- package/dist/admin/components/ProductsBulkEditDialog.d.ts +11 -0
- package/dist/admin/components/ProductsBulkEditDialog.d.ts.map +1 -0
- package/dist/admin/components/ProductsBulkEditDialog.js +304 -0
- package/dist/admin/components/ProductsBulkEditDialog.js.map +1 -0
- package/dist/admin/index.d.ts +45 -0
- package/dist/admin/index.d.ts.map +1 -0
- package/dist/admin/index.js +184 -0
- package/dist/admin/index.js.map +1 -0
- package/dist/admin/lib/resolve-product-selection.d.ts +21 -0
- package/dist/admin/lib/resolve-product-selection.d.ts.map +1 -0
- package/dist/admin/lib/resolve-product-selection.js +25 -0
- package/dist/admin/lib/resolve-product-selection.js.map +1 -0
- package/dist/admin/pages/AttachmentTypesPage.d.ts +18 -0
- package/dist/admin/pages/AttachmentTypesPage.d.ts.map +1 -0
- package/dist/admin/pages/AttachmentTypesPage.js +92 -0
- package/dist/admin/pages/AttachmentTypesPage.js.map +1 -0
- package/dist/admin/pages/AttributeSetsPage.d.ts +21 -0
- package/dist/admin/pages/AttributeSetsPage.d.ts.map +1 -0
- package/dist/admin/pages/AttributeSetsPage.js +158 -0
- package/dist/admin/pages/AttributeSetsPage.js.map +1 -0
- package/dist/admin/pages/AttributesManager.d.ts +9 -0
- package/dist/admin/pages/AttributesManager.d.ts.map +1 -0
- package/dist/admin/pages/AttributesManager.js +305 -0
- package/dist/admin/pages/AttributesManager.js.map +1 -0
- package/dist/admin/pages/BulkOperationDetailPage.d.ts +9 -0
- package/dist/admin/pages/BulkOperationDetailPage.d.ts.map +1 -0
- package/dist/admin/pages/BulkOperationDetailPage.js +187 -0
- package/dist/admin/pages/BulkOperationDetailPage.js.map +1 -0
- package/dist/admin/pages/BulkOperationsPage.d.ts +9 -0
- package/dist/admin/pages/BulkOperationsPage.d.ts.map +1 -0
- package/dist/admin/pages/BulkOperationsPage.js +98 -0
- package/dist/admin/pages/BulkOperationsPage.js.map +1 -0
- package/dist/admin/pages/CategoriesTree.d.ts +9 -0
- package/dist/admin/pages/CategoriesTree.d.ts.map +1 -0
- package/dist/admin/pages/CategoriesTree.js +176 -0
- package/dist/admin/pages/CategoriesTree.js.map +1 -0
- package/dist/admin/pages/ProductEditor.d.ts +13 -0
- package/dist/admin/pages/ProductEditor.d.ts.map +1 -0
- package/dist/admin/pages/ProductEditor.js +1050 -0
- package/dist/admin/pages/ProductEditor.js.map +1 -0
- package/dist/admin/pages/ProductsList.d.ts +9 -0
- package/dist/admin/pages/ProductsList.d.ts.map +1 -0
- package/dist/admin/pages/ProductsList.js +399 -0
- package/dist/admin/pages/ProductsList.js.map +1 -0
- package/dist/backend/commands/attribute-commands.d.ts +111 -0
- package/dist/backend/commands/attribute-commands.d.ts.map +1 -0
- package/dist/backend/commands/attribute-commands.js +482 -0
- package/dist/backend/commands/attribute-commands.js.map +1 -0
- package/dist/backend/demo/reset.d.ts +23 -0
- package/dist/backend/demo/reset.d.ts.map +1 -0
- package/dist/backend/demo/reset.js +41 -0
- package/dist/backend/demo/reset.js.map +1 -0
- package/dist/backend/demo/rows.d.ts +103 -0
- package/dist/backend/demo/rows.d.ts.map +1 -0
- package/dist/backend/demo/rows.js +162 -0
- package/dist/backend/demo/rows.js.map +1 -0
- package/dist/backend/demo/seed.d.ts +35 -0
- package/dist/backend/demo/seed.d.ts.map +1 -0
- package/dist/backend/demo/seed.js +177 -0
- package/dist/backend/demo/seed.js.map +1 -0
- package/dist/backend/entities/attachment-type.entity.d.ts +16 -0
- package/dist/backend/entities/attachment-type.entity.d.ts.map +1 -0
- package/dist/backend/entities/attachment-type.entity.js +57 -0
- package/dist/backend/entities/attachment-type.entity.js.map +1 -0
- package/dist/backend/entities/attribute-set-attribute.entity.d.ts +26 -0
- package/dist/backend/entities/attribute-set-attribute.entity.d.ts.map +1 -0
- package/dist/backend/entities/attribute-set-attribute.entity.js +55 -0
- package/dist/backend/entities/attribute-set-attribute.entity.js.map +1 -0
- package/dist/backend/entities/attribute-set.entity.d.ts +22 -0
- package/dist/backend/entities/attribute-set.entity.d.ts.map +1 -0
- package/dist/backend/entities/attribute-set.entity.js +67 -0
- package/dist/backend/entities/attribute-set.entity.js.map +1 -0
- package/dist/backend/entities/bulk-operation.entity.d.ts +78 -0
- package/dist/backend/entities/bulk-operation.entity.d.ts.map +1 -0
- package/dist/backend/entities/bulk-operation.entity.js +138 -0
- package/dist/backend/entities/bulk-operation.entity.js.map +1 -0
- package/dist/backend/entities/bundle-slot-option.entity.d.ts +23 -0
- package/dist/backend/entities/bundle-slot-option.entity.d.ts.map +1 -0
- package/dist/backend/entities/bundle-slot-option.entity.js +68 -0
- package/dist/backend/entities/bundle-slot-option.entity.js.map +1 -0
- package/dist/backend/entities/bundle-slot.entity.d.ts +25 -0
- package/dist/backend/entities/bundle-slot.entity.d.ts.map +1 -0
- package/dist/backend/entities/bundle-slot.entity.js +74 -0
- package/dist/backend/entities/bundle-slot.entity.js.map +1 -0
- package/dist/backend/entities/category.entity.d.ts +26 -0
- package/dist/backend/entities/category.entity.d.ts.map +1 -0
- package/dist/backend/entities/category.entity.js +119 -0
- package/dist/backend/entities/category.entity.js.map +1 -0
- package/dist/backend/entities/gallery-item-label.entity.d.ts +22 -0
- package/dist/backend/entities/gallery-item-label.entity.d.ts.map +1 -0
- package/dist/backend/entities/gallery-item-label.entity.js +50 -0
- package/dist/backend/entities/gallery-item-label.entity.js.map +1 -0
- package/dist/backend/entities/gallery-item.entity.d.ts +17 -0
- package/dist/backend/entities/gallery-item.entity.d.ts.map +1 -0
- package/dist/backend/entities/gallery-item.entity.js +58 -0
- package/dist/backend/entities/gallery-item.entity.js.map +1 -0
- package/dist/backend/entities/grouped-item.entity.d.ts +23 -0
- package/dist/backend/entities/grouped-item.entity.d.ts.map +1 -0
- package/dist/backend/entities/grouped-item.entity.js +68 -0
- package/dist/backend/entities/grouped-item.entity.js.map +1 -0
- package/dist/backend/entities/product-attachment.entity.d.ts +23 -0
- package/dist/backend/entities/product-attachment.entity.d.ts.map +1 -0
- package/dist/backend/entities/product-attachment.entity.js +77 -0
- package/dist/backend/entities/product-attachment.entity.js.map +1 -0
- package/dist/backend/entities/product-attribute.entity.d.ts +72 -0
- package/dist/backend/entities/product-attribute.entity.d.ts.map +1 -0
- package/dist/backend/entities/product-attribute.entity.js +161 -0
- package/dist/backend/entities/product-attribute.entity.js.map +1 -0
- package/dist/backend/entities/product-editor-preference.entity.d.ts +28 -0
- package/dist/backend/entities/product-editor-preference.entity.d.ts.map +1 -0
- package/dist/backend/entities/product-editor-preference.entity.js +63 -0
- package/dist/backend/entities/product-editor-preference.entity.js.map +1 -0
- package/dist/backend/entities/product-link.entity.d.ts +25 -0
- package/dist/backend/entities/product-link.entity.d.ts.map +1 -0
- package/dist/backend/entities/product-link.entity.js +70 -0
- package/dist/backend/entities/product-link.entity.js.map +1 -0
- package/dist/backend/entities/product-packaging-unit.entity.d.ts +26 -0
- package/dist/backend/entities/product-packaging-unit.entity.d.ts.map +1 -0
- package/dist/backend/entities/product-packaging-unit.entity.js +76 -0
- package/dist/backend/entities/product-packaging-unit.entity.js.map +1 -0
- package/dist/backend/entities/product-value-override.entity.d.ts +43 -0
- package/dist/backend/entities/product-value-override.entity.d.ts.map +1 -0
- package/dist/backend/entities/product-value-override.entity.js +90 -0
- package/dist/backend/entities/product-value-override.entity.js.map +1 -0
- package/dist/backend/entities/product-variant.entity.d.ts +18 -0
- package/dist/backend/entities/product-variant.entity.d.ts.map +1 -0
- package/dist/backend/entities/product-variant.entity.js +68 -0
- package/dist/backend/entities/product-variant.entity.js.map +1 -0
- package/dist/backend/entities/product.entity.d.ts +108 -0
- package/dist/backend/entities/product.entity.d.ts.map +1 -0
- package/dist/backend/entities/product.entity.js +230 -0
- package/dist/backend/entities/product.entity.js.map +1 -0
- package/dist/backend/index.d.ts +262 -0
- package/dist/backend/index.d.ts.map +1 -0
- package/dist/backend/index.js +642 -0
- package/dist/backend/index.js.map +1 -0
- package/dist/backend/plugin.d.ts +216 -0
- package/dist/backend/plugin.d.ts.map +1 -0
- package/dist/backend/plugin.js +223 -0
- package/dist/backend/plugin.js.map +1 -0
- package/dist/backend/prompt-tools.d.ts +47 -0
- package/dist/backend/prompt-tools.d.ts.map +1 -0
- package/dist/backend/prompt-tools.js +284 -0
- package/dist/backend/prompt-tools.js.map +1 -0
- package/dist/backend/routes.admin.d.ts +105 -0
- package/dist/backend/routes.admin.d.ts.map +1 -0
- package/dist/backend/routes.admin.js +1162 -0
- package/dist/backend/routes.admin.js.map +1 -0
- package/dist/backend/routes.api-key.d.ts +33 -0
- package/dist/backend/routes.api-key.d.ts.map +1 -0
- package/dist/backend/routes.api-key.js +43 -0
- package/dist/backend/routes.api-key.js.map +1 -0
- package/dist/backend/routes.external.d.ts +32 -0
- package/dist/backend/routes.external.d.ts.map +1 -0
- package/dist/backend/routes.external.js +115 -0
- package/dist/backend/routes.external.js.map +1 -0
- package/dist/backend/routes.public.d.ts +46 -0
- package/dist/backend/routes.public.d.ts.map +1 -0
- package/dist/backend/routes.public.js +318 -0
- package/dist/backend/routes.public.js.map +1 -0
- package/dist/backend/services/asset-references.d.ts +4 -0
- package/dist/backend/services/asset-references.d.ts.map +1 -0
- package/dist/backend/services/asset-references.js +104 -0
- package/dist/backend/services/asset-references.js.map +1 -0
- package/dist/backend/services/attachment.service.d.ts +45 -0
- package/dist/backend/services/attachment.service.d.ts.map +1 -0
- package/dist/backend/services/attachment.service.js +268 -0
- package/dist/backend/services/attachment.service.js.map +1 -0
- package/dist/backend/services/attribute-option-validator.d.ts +47 -0
- package/dist/backend/services/attribute-option-validator.d.ts.map +1 -0
- package/dist/backend/services/attribute-option-validator.js +69 -0
- package/dist/backend/services/attribute-option-validator.js.map +1 -0
- package/dist/backend/services/attribute-set-validations.d.ts +65 -0
- package/dist/backend/services/attribute-set-validations.d.ts.map +1 -0
- package/dist/backend/services/attribute-set-validations.js +89 -0
- package/dist/backend/services/attribute-set-validations.js.map +1 -0
- package/dist/backend/services/attribute-set.service.d.ts +50 -0
- package/dist/backend/services/attribute-set.service.d.ts.map +1 -0
- package/dist/backend/services/attribute-set.service.js +401 -0
- package/dist/backend/services/attribute-set.service.js.map +1 -0
- package/dist/backend/services/attribute-type-mapping.d.ts +66 -0
- package/dist/backend/services/attribute-type-mapping.d.ts.map +1 -0
- package/dist/backend/services/attribute-type-mapping.js +121 -0
- package/dist/backend/services/attribute-type-mapping.js.map +1 -0
- package/dist/backend/services/attribute-value-key.service.d.ts +48 -0
- package/dist/backend/services/attribute-value-key.service.d.ts.map +1 -0
- package/dist/backend/services/attribute-value-key.service.js +118 -0
- package/dist/backend/services/attribute-value-key.service.js.map +1 -0
- package/dist/backend/services/audit-references.d.ts +13 -0
- package/dist/backend/services/audit-references.d.ts.map +1 -0
- package/dist/backend/services/audit-references.js +51 -0
- package/dist/backend/services/audit-references.js.map +1 -0
- package/dist/backend/services/bulk-operation-queue.d.ts +26 -0
- package/dist/backend/services/bulk-operation-queue.d.ts.map +1 -0
- package/dist/backend/services/bulk-operation-queue.js +34 -0
- package/dist/backend/services/bulk-operation-queue.js.map +1 -0
- package/dist/backend/services/bulk-operation.service.d.ts +195 -0
- package/dist/backend/services/bulk-operation.service.d.ts.map +1 -0
- package/dist/backend/services/bulk-operation.service.js +510 -0
- package/dist/backend/services/bulk-operation.service.js.map +1 -0
- package/dist/backend/services/bundle.service.d.ts +87 -0
- package/dist/backend/services/bundle.service.d.ts.map +1 -0
- package/dist/backend/services/bundle.service.js +286 -0
- package/dist/backend/services/bundle.service.js.map +1 -0
- package/dist/backend/services/catalog-admin.service.d.ts +398 -0
- package/dist/backend/services/catalog-admin.service.d.ts.map +1 -0
- package/dist/backend/services/catalog-admin.service.js +1516 -0
- package/dist/backend/services/catalog-admin.service.js.map +1 -0
- package/dist/backend/services/catalog-attribute-read.service.d.ts +78 -0
- package/dist/backend/services/catalog-attribute-read.service.d.ts.map +1 -0
- package/dist/backend/services/catalog-attribute-read.service.js +216 -0
- package/dist/backend/services/catalog-attribute-read.service.js.map +1 -0
- package/dist/backend/services/catalog-bulk-import.service.d.ts +30 -0
- package/dist/backend/services/catalog-bulk-import.service.d.ts.map +1 -0
- package/dist/backend/services/catalog-bulk-import.service.js +136 -0
- package/dist/backend/services/catalog-bulk-import.service.js.map +1 -0
- package/dist/backend/services/catalog-bulk-update.service.d.ts +91 -0
- package/dist/backend/services/catalog-bulk-update.service.d.ts.map +1 -0
- package/dist/backend/services/catalog-bulk-update.service.js +330 -0
- package/dist/backend/services/catalog-bulk-update.service.js.map +1 -0
- package/dist/backend/services/catalog-category-read.service.d.ts +66 -0
- package/dist/backend/services/catalog-category-read.service.d.ts.map +1 -0
- package/dist/backend/services/catalog-category-read.service.js +248 -0
- package/dist/backend/services/catalog-category-read.service.js.map +1 -0
- package/dist/backend/services/catalog-org-price-decorator.d.ts +90 -0
- package/dist/backend/services/catalog-org-price-decorator.d.ts.map +1 -0
- package/dist/backend/services/catalog-org-price-decorator.js +184 -0
- package/dist/backend/services/catalog-org-price-decorator.js.map +1 -0
- package/dist/backend/services/catalog-product-filter.service.d.ts +82 -0
- package/dist/backend/services/catalog-product-filter.service.d.ts.map +1 -0
- package/dist/backend/services/catalog-product-filter.service.js +275 -0
- package/dist/backend/services/catalog-product-filter.service.js.map +1 -0
- package/dist/backend/services/catalog-product-read.service.d.ts +46 -0
- package/dist/backend/services/catalog-product-read.service.d.ts.map +1 -0
- package/dist/backend/services/catalog-product-read.service.js +197 -0
- package/dist/backend/services/catalog-product-read.service.js.map +1 -0
- package/dist/backend/services/catalog-query.service.d.ts +444 -0
- package/dist/backend/services/catalog-query.service.d.ts.map +1 -0
- package/dist/backend/services/catalog-query.service.js +1633 -0
- package/dist/backend/services/catalog-query.service.js.map +1 -0
- package/dist/backend/services/catalog-quick-search.service.d.ts +78 -0
- package/dist/backend/services/catalog-quick-search.service.d.ts.map +1 -0
- package/dist/backend/services/catalog-quick-search.service.js +159 -0
- package/dist/backend/services/catalog-quick-search.service.js.map +1 -0
- package/dist/backend/services/catalog-write-ports.d.ts +25 -0
- package/dist/backend/services/catalog-write-ports.d.ts.map +1 -0
- package/dist/backend/services/catalog-write-ports.js +63 -0
- package/dist/backend/services/catalog-write-ports.js.map +1 -0
- package/dist/backend/services/category-admin.service.d.ts +102 -0
- package/dist/backend/services/category-admin.service.d.ts.map +1 -0
- package/dist/backend/services/category-admin.service.js +271 -0
- package/dist/backend/services/category-admin.service.js.map +1 -0
- package/dist/backend/services/gallery.service.d.ts +85 -0
- package/dist/backend/services/gallery.service.d.ts.map +1 -0
- package/dist/backend/services/gallery.service.js +326 -0
- package/dist/backend/services/gallery.service.js.map +1 -0
- package/dist/backend/services/grouped.service.d.ts +39 -0
- package/dist/backend/services/grouped.service.d.ts.map +1 -0
- package/dist/backend/services/grouped.service.js +136 -0
- package/dist/backend/services/grouped.service.js.map +1 -0
- package/dist/backend/services/label-resolver.d.ts +16 -0
- package/dist/backend/services/label-resolver.d.ts.map +1 -0
- package/dist/backend/services/label-resolver.js +43 -0
- package/dist/backend/services/label-resolver.js.map +1 -0
- package/dist/backend/services/packaging-unit.service.d.ts +28 -0
- package/dist/backend/services/packaging-unit.service.d.ts.map +1 -0
- package/dist/backend/services/packaging-unit.service.js +197 -0
- package/dist/backend/services/packaging-unit.service.js.map +1 -0
- package/dist/backend/services/primary-asset-url.d.ts +4 -0
- package/dist/backend/services/primary-asset-url.d.ts.map +1 -0
- package/dist/backend/services/primary-asset-url.js +55 -0
- package/dist/backend/services/primary-asset-url.js.map +1 -0
- package/dist/backend/services/product-editor-preferences.service.d.ts +20 -0
- package/dist/backend/services/product-editor-preferences.service.d.ts.map +1 -0
- package/dist/backend/services/product-editor-preferences.service.js +44 -0
- package/dist/backend/services/product-editor-preferences.service.js.map +1 -0
- package/dist/backend/services/product-link.service.d.ts +169 -0
- package/dist/backend/services/product-link.service.d.ts.map +1 -0
- package/dist/backend/services/product-link.service.js +297 -0
- package/dist/backend/services/product-link.service.js.map +1 -0
- package/dist/backend/services/product-overrides.service.d.ts +77 -0
- package/dist/backend/services/product-overrides.service.d.ts.map +1 -0
- package/dist/backend/services/product-overrides.service.js +204 -0
- package/dist/backend/services/product-overrides.service.js.map +1 -0
- package/dist/backend/services/product-scope-context.service.d.ts +36 -0
- package/dist/backend/services/product-scope-context.service.d.ts.map +1 -0
- package/dist/backend/services/product-scope-context.service.js +106 -0
- package/dist/backend/services/product-scope-context.service.js.map +1 -0
- package/dist/backend/services/product-type-validations.d.ts +42 -0
- package/dist/backend/services/product-type-validations.d.ts.map +1 -0
- package/dist/backend/services/product-type-validations.js +55 -0
- package/dist/backend/services/product-type-validations.js.map +1 -0
- package/dist/backend/services/product-value-resolver.service.d.ts +59 -0
- package/dist/backend/services/product-value-resolver.service.d.ts.map +1 -0
- package/dist/backend/services/product-value-resolver.service.js +111 -0
- package/dist/backend/services/product-value-resolver.service.js.map +1 -0
- package/dist/backend/services/system-attribute-scopes.d.ts +18 -0
- package/dist/backend/services/system-attribute-scopes.d.ts.map +1 -0
- package/dist/backend/services/system-attribute-scopes.js +18 -0
- package/dist/backend/services/system-attribute-scopes.js.map +1 -0
- package/dist/backend/services/viewer-organization.d.ts +25 -0
- package/dist/backend/services/viewer-organization.d.ts.map +1 -0
- package/dist/backend/services/viewer-organization.js +31 -0
- package/dist/backend/services/viewer-organization.js.map +1 -0
- package/dist/manifest.d.ts +204 -0
- package/dist/manifest.d.ts.map +1 -0
- package/dist/manifest.js +686 -0
- package/dist/manifest.js.map +1 -0
- package/dist/migrations/20260429T064146_catalog_attribute_sets_init.d.ts +33 -0
- package/dist/migrations/20260429T064146_catalog_attribute_sets_init.d.ts.map +1 -0
- package/dist/migrations/20260429T064146_catalog_attribute_sets_init.js +118 -0
- package/dist/migrations/20260429T064146_catalog_attribute_sets_init.js.map +1 -0
- package/dist/migrations/20260429T070004_catalog_product_attribute_extensions.d.ts +24 -0
- package/dist/migrations/20260429T070004_catalog_product_attribute_extensions.d.ts.map +1 -0
- package/dist/migrations/20260429T070004_catalog_product_attribute_extensions.js +31 -0
- package/dist/migrations/20260429T070004_catalog_product_attribute_extensions.js.map +1 -0
- package/dist/migrations/20260429T102322_catalog_product_type_and_virtual_fields.d.ts +32 -0
- package/dist/migrations/20260429T102322_catalog_product_type_and_virtual_fields.d.ts.map +1 -0
- package/dist/migrations/20260429T102322_catalog_product_type_and_virtual_fields.js +58 -0
- package/dist/migrations/20260429T102322_catalog_product_type_and_virtual_fields.js.map +1 -0
- package/dist/migrations/20260429T111839_catalog_gallery_items_and_labels.d.ts +22 -0
- package/dist/migrations/20260429T111839_catalog_gallery_items_and_labels.d.ts.map +1 -0
- package/dist/migrations/20260429T111839_catalog_gallery_items_and_labels.js +66 -0
- package/dist/migrations/20260429T111839_catalog_gallery_items_and_labels.js.map +1 -0
- package/dist/migrations/20260429T112543_catalog_product_attachments.d.ts +18 -0
- package/dist/migrations/20260429T112543_catalog_product_attachments.d.ts.map +1 -0
- package/dist/migrations/20260429T112543_catalog_product_attachments.js +73 -0
- package/dist/migrations/20260429T112543_catalog_product_attachments.js.map +1 -0
- package/dist/migrations/20260429T123726_catalog_product_links.d.ts +21 -0
- package/dist/migrations/20260429T123726_catalog_product_links.d.ts.map +1 -0
- package/dist/migrations/20260429T123726_catalog_product_links.js +48 -0
- package/dist/migrations/20260429T123726_catalog_product_links.js.map +1 -0
- package/dist/migrations/20260429T130803_catalog_grouped_and_bundle.d.ts +23 -0
- package/dist/migrations/20260429T130803_catalog_grouped_and_bundle.d.ts.map +1 -0
- package/dist/migrations/20260429T130803_catalog_grouped_and_bundle.js +94 -0
- package/dist/migrations/20260429T130803_catalog_grouped_and_bundle.js.map +1 -0
- package/dist/migrations/20260501T185835_catalog_product_attribute_is_comparable.d.ts +24 -0
- package/dist/migrations/20260501T185835_catalog_product_attribute_is_comparable.d.ts.map +1 -0
- package/dist/migrations/20260501T185835_catalog_product_attribute_is_comparable.js +31 -0
- package/dist/migrations/20260501T185835_catalog_product_attribute_is_comparable.js.map +1 -0
- package/dist/migrations/20260505T060113_catalog_attribute_options_and_flags.d.ts +31 -0
- package/dist/migrations/20260505T060113_catalog_attribute_options_and_flags.d.ts.map +1 -0
- package/dist/migrations/20260505T060113_catalog_attribute_options_and_flags.js +133 -0
- package/dist/migrations/20260505T060113_catalog_attribute_options_and_flags.js.map +1 -0
- package/dist/migrations/20260515T082629_catalog_attribute_mass_editable.d.ts +16 -0
- package/dist/migrations/20260515T082629_catalog_attribute_mass_editable.d.ts.map +1 -0
- package/dist/migrations/20260515T082629_catalog_attribute_mass_editable.js +23 -0
- package/dist/migrations/20260515T082629_catalog_attribute_mass_editable.js.map +1 -0
- package/dist/migrations/20260526T124736_catalog_product_status_inactive.d.ts +10 -0
- package/dist/migrations/20260526T124736_catalog_product_status_inactive.d.ts.map +1 -0
- package/dist/migrations/20260526T124736_catalog_product_status_inactive.js +22 -0
- package/dist/migrations/20260526T124736_catalog_product_status_inactive.js.map +1 -0
- package/dist/migrations/20260611T140346_catalog_product_value_overrides_init.d.ts +38 -0
- package/dist/migrations/20260611T140346_catalog_product_value_overrides_init.d.ts.map +1 -0
- package/dist/migrations/20260611T140346_catalog_product_value_overrides_init.js +98 -0
- package/dist/migrations/20260611T140346_catalog_product_value_overrides_init.js.map +1 -0
- package/dist/migrations/20260611T140400_catalog_attribute_quick_searchable.d.ts +13 -0
- package/dist/migrations/20260611T140400_catalog_attribute_quick_searchable.d.ts.map +1 -0
- package/dist/migrations/20260611T140400_catalog_attribute_quick_searchable.js +17 -0
- package/dist/migrations/20260611T140400_catalog_attribute_quick_searchable.js.map +1 -0
- package/dist/migrations/20260611T140407_catalog_bulk_operations.d.ts +16 -0
- package/dist/migrations/20260611T140407_catalog_bulk_operations.d.ts.map +1 -0
- package/dist/migrations/20260611T140407_catalog_bulk_operations.js +42 -0
- package/dist/migrations/20260611T140407_catalog_bulk_operations.js.map +1 -0
- package/dist/migrations/20260611T140408_catalog_bulk_operation_logs.d.ts +14 -0
- package/dist/migrations/20260611T140408_catalog_bulk_operation_logs.d.ts.map +1 -0
- package/dist/migrations/20260611T140408_catalog_bulk_operation_logs.js +18 -0
- package/dist/migrations/20260611T140408_catalog_bulk_operation_logs.js.map +1 -0
- package/dist/migrations/20260611T140412_catalog_product_packaging_units.d.ts +11 -0
- package/dist/migrations/20260611T140412_catalog_product_packaging_units.d.ts.map +1 -0
- package/dist/migrations/20260611T140412_catalog_product_packaging_units.js +29 -0
- package/dist/migrations/20260611T140412_catalog_product_packaging_units.js.map +1 -0
- package/dist/migrations/20260718T060659_catalog_bulk_operation_revert_state.d.ts +23 -0
- package/dist/migrations/20260718T060659_catalog_bulk_operation_revert_state.d.ts.map +1 -0
- package/dist/migrations/20260718T060659_catalog_bulk_operation_revert_state.js +35 -0
- package/dist/migrations/20260718T060659_catalog_bulk_operation_revert_state.js.map +1 -0
- package/dist/migrations/20260718T200343_catalog_category_custom_field_values.d.ts +12 -0
- package/dist/migrations/20260718T200343_catalog_category_custom_field_values.d.ts.map +1 -0
- package/dist/migrations/20260718T200343_catalog_category_custom_field_values.js +16 -0
- package/dist/migrations/20260718T200343_catalog_category_custom_field_values.js.map +1 -0
- package/dist/migrations/20260723T230401_catalog_attributes_on_custom_fields.d.ts +32 -0
- package/dist/migrations/20260723T230401_catalog_attributes_on_custom_fields.d.ts.map +1 -0
- package/dist/migrations/20260723T230401_catalog_attributes_on_custom_fields.js +286 -0
- package/dist/migrations/20260723T230401_catalog_attributes_on_custom_fields.js.map +1 -0
- package/dist/migrations/20260804T152604_catalog_widen_product_sku.d.ts +36 -0
- package/dist/migrations/20260804T152604_catalog_widen_product_sku.d.ts.map +1 -0
- package/dist/migrations/20260804T152604_catalog_widen_product_sku.js +63 -0
- package/dist/migrations/20260804T152604_catalog_widen_product_sku.js.map +1 -0
- package/dist/migrations/20260804T160244_catalog_category_activation.d.ts +18 -0
- package/dist/migrations/20260804T160244_catalog_category_activation.d.ts.map +1 -0
- package/dist/migrations/20260804T160244_catalog_category_activation.js +22 -0
- package/dist/migrations/20260804T160244_catalog_category_activation.js.map +1 -0
- package/dist/migrations/20260912T094557_catalog_sales_channel_products.d.ts +27 -0
- package/dist/migrations/20260912T094557_catalog_sales_channel_products.d.ts.map +1 -0
- package/dist/migrations/20260912T094557_catalog_sales_channel_products.js +44 -0
- package/dist/migrations/20260912T094557_catalog_sales_channel_products.js.map +1 -0
- package/dist/migrations/20260912T094623_catalog_sales_channel_categories.d.ts +27 -0
- package/dist/migrations/20260912T094623_catalog_sales_channel_categories.d.ts.map +1 -0
- package/dist/migrations/20260912T094623_catalog_sales_channel_categories.js +44 -0
- package/dist/migrations/20260912T094623_catalog_sales_channel_categories.js.map +1 -0
- package/dist/migrations/20260925T125527_catalog_inventory_columns.d.ts +36 -0
- package/dist/migrations/20260925T125527_catalog_inventory_columns.d.ts.map +1 -0
- package/dist/migrations/20260925T125527_catalog_inventory_columns.js +87 -0
- package/dist/migrations/20260925T125527_catalog_inventory_columns.js.map +1 -0
- package/dist/migrations/index.d.ts +55 -0
- package/dist/migrations/index.d.ts.map +1 -0
- package/dist/migrations/index.js +80 -0
- package/dist/migrations/index.js.map +1 -0
- package/dist/ports/index.d.ts +96 -0
- package/dist/ports/index.d.ts.map +1 -0
- package/dist/ports/index.js +2 -0
- package/dist/ports/index.js.map +1 -0
- package/docs/catalog/attachments.md +69 -0
- package/docs/catalog/attribute-sets.md +63 -0
- package/docs/catalog/attributes.md +244 -0
- package/docs/catalog/composite-products.md +115 -0
- package/docs/catalog/gallery-and-labels.md +73 -0
- package/docs/catalog/packaging-units.md +67 -0
- package/docs/catalog/per-channel-per-language-overrides.md +234 -0
- package/docs/catalog/product-links.md +79 -0
- package/docs/catalog.md +207 -0
- package/i18n/en.json +649 -0
- package/i18n/pl.json +649 -0
- package/package.json +109 -0
- 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":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,WAAW,EACX,8BAA8B,GAK/B,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAG3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,uBAAuB,GACxB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,2CAA2C,CAAC;AAkEnD;;;;;;;;GAQG;AACH,SAAS,kBAAkB,CAAC,GAAY,EAAE,aAAsB;IAC9D,IAAI,8BAA8B,CAAC,GAAG,CAAC,EAAE,CAAC;QACxC,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;YACjB,KAAK,eAAe;gBAClB,MAAM,IAAI,SAAS,CACjB,GAAG,EACH,WAAW,CAAC,iBAAiB,EAC7B,kBAAkB,aAAa,IAAI,EAAE,mBAAmB,CACzD,CAAC;YACJ,KAAK,WAAW;gBACd,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,WAAW,CAAC,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;YAC/D,KAAK,mBAAmB,CAAC;YACzB,KAAK,eAAe;gBAClB,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,WAAW,CAAC,iBAAiB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;YACvE;gBACE,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,WAAW,CAAC,iBAAiB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IACD,MAAM,GAAG,CAAC;AACZ,CAAC;AAED,SAAS,cAAc,CAAC,MAA+B;IAUrD,OAAO;QACL,SAAS,EAAE,sBAAsB;QACjC,OAAO,EAAE;YACP,OAAO,EAAE,UAAU,EAAE;YACrB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACpC,YAAY,EAAE,MAAM,CAAC,GAAG;YACxB,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,YAAY,EAAE,MAAM,CAAC,YAAY;SAClC;KACF,CAAC;AACJ,CAAC;AAED,kGAAkG;AAClG,SAAS,sBAAsB,CAAC,GAA2B;IACzD,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1C,OAAO,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAChC,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE;YACpB,YAAY,EAAE,CAAC,CAAC,YAAY;YAC5B,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,KAAK;YAC/B,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC;SAC5B,CAAC,CAAC,CAAC;IACN,CAAC;IACD,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACnC,KAAK,EAAE,CAAC;YACR,KAAK,EAAE,EAAE;YACT,YAAY,EAAE,CAAC;YACf,SAAS,EAAE,KAAK;YAChB,SAAS,EAAE,CAAC;SACb,CAAC,CAAC,CAAC;IACN,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,8EAA8E;AAC9E,qBAAqB;AACrB,8EAA8E;AAE9E,MAAM,UAAU,sBAAsB,CACpC,IAA0B,EAC1B,GAA2B,EAC3B,KAAiD;IAEjD,OAAO;QACL,MAAM,EAAE,0BAA0B;QAClC,UAAU,EAAE,mBAAmB;QAC/B,QAAQ,EAAE,KAAK,CAAC,WAAW;QAC3B,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;YACpB,MAAM,QAAQ,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC;YAC9C,IACE,QAAQ,CAAC,eAAe;gBACxB,QAAQ,CAAC,SAAS,KAAK,QAAQ;gBAC/B,QAAQ,CAAC,SAAS,KAAK,OAAO,EAC9B,CAAC;gBACD,MAAM,IAAI,SAAS,CACjB,GAAG,EACH,WAAW,CAAC,iBAAiB,EAC7B,yEAAyE,QAAQ,CAAC,SAAS,IAAI,CAChG,CAAC;YACJ,CAAC;YACD,MAAM,YAAY,GAChB,GAAG,CAAC,YAAY;gBAChB,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;gBAClB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC3B,GAAG,CAAC,GAAG,CAAC;YACV,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAClD,MAAM,OAAO,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;YAC5C,wEAAwE;YACxE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,WAAW,KAAK,aAAa,EAAE,CAAC;gBAC/D,MAAM,KAAK,GAAG,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;gBAC9D,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;oBACd,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC;oBAC/B,MAAM,IAAI,SAAS,CACjB,KAAK,CAAC,IAAI,KAAK,4BAA4B,IAAI,KAAK,CAAC,IAAI,KAAK,sBAAsB;wBAClF,CAAC,CAAC,GAAG;wBACL,CAAC,CAAC,GAAG,EACP,WAAW,CAAC,iBAAiB,EAC7B,KAAK,CAAC,OAAO,CACd,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,IAAI,YAAoB,CAAC;YACzB,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,EAAE;oBAC3C,UAAU,EAAE,SAAS;oBACrB,GAAG,EAAE,GAAG,CAAC,GAAG;oBACZ,KAAK,EAAE,GAAG,CAAC,KAAK;oBAChB,YAAY;oBACZ,SAAS,EAAE,MAAM,CAAC,WAAW;oBAC7B,QAAQ,EAAE,GAAG,CAAC,UAAU,IAAI,KAAK;oBACjC,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,MAAM,EAAE,EAAE;oBACV,OAAO;iBACR,CAAC,CAAC;gBACH,YAAY,GAAG,GAAG,CAAC,EAAE,CAAC;gBACtB,gEAAgE;gBAChE,8DAA8D;gBAC9D,gEAAgE;gBAChE,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;YACnB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;YACnC,CAAC;YAED,EAAE,CAAC,MAAM,CAAC,gBAAgB,EAAE;gBAC1B,EAAE,EAAE,KAAK,CAAC,WAAW;gBACrB,uBAAuB,EAAE,YAAY;gBACrC,aAAa,EAAE,MAAM,CAAC,aAAa;gBACnC,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,YAAY,EAAE,GAAG,CAAC,YAAY;gBAC9B,YAAY,EAAE,GAAG,CAAC,YAAY;gBAC9B,aAAa,EAAE,GAAG,CAAC,aAAa;gBAChC,eAAe,EAAE,QAAQ,CAAC,eAAe;gBACzC,YAAY,EAAE,GAAG,CAAC,YAAY,IAAI,KAAK;gBACvC,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,KAAK;gBACrC,cAAc,EAAE,GAAG,CAAC,cAAc,IAAI,CAAC;gBACvC,sBAAsB,EAAE,GAAG,CAAC,sBAAsB,IAAI,KAAK;gBAC3D,aAAa,EAAE,GAAG,CAAC,aAAa,IAAI,KAAK;gBACzC,cAAc,EAAE,GAAG,CAAC,cAAc,IAAI,KAAK;gBAC3C,YAAY,EAAE,GAAG,CAAC,YAAY,IAAI,KAAK;gBACvC,eAAe,EAAE,GAAG,CAAC,eAAe,IAAI,KAAK;aAC9C,CAAC,CAAC;YACH,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;YAEjB,OAAO;gBACL,MAAM,EAAE;oBACN,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,YAAY;oBACZ,GAAG,EAAE,GAAG,CAAC,GAAG;oBACZ,YAAY,EAAE,GAAG,CAAC,YAAY;oBAC9B,YAAY,EAAE,GAAG,CAAC,YAAY;iBAC/B;gBACD,MAAM,EAAE,IAAI;gBACZ,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE;aACvD,CAAC;QACJ,CAAC;QACD,KAAK,EAAE,cAAc;KACtB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,IAA0B,EAC1B,WAAmB,EACnB,GAA2B;IAE3B,OAAO;QACL,MAAM,EAAE,0BAA0B;QAClC,UAAU,EAAE,mBAAmB;QAC/B,QAAQ,EAAE,WAAW;QACrB,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;YACpB,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;YACpE,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,WAAW,CAAC,SAAS,EAAE,cAAc,WAAW,cAAc,CAAC,CAAC;YAC3F,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;YACtE,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,SAAS,CACjB,GAAG,EACH,WAAW,CAAC,SAAS,EACrB,cAAc,WAAW,8BAA8B,CACxD,CAAC;YACJ,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC;YAC9B,MAAM,iBAAiB,GAAG,mBAAmB,CAC3C,GAAG,CAAC,SAAS,EACb,GAAG,CAAC,aAAa,EACjB,GAAG,CAAC,WAAW,CAChB,CAAC;YACF,MAAM,MAAM,GAAG;gBACb,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,YAAY,EAAE,GAAG,CAAC,YAAY;gBAC9B,YAAY,EAAE,GAAG,CAAC,YAAY;gBAC9B,YAAY,EAAE,GAAG,CAAC,YAAY;gBAC9B,SAAS,EAAE,iBAAiB;aAC7B,CAAC;YAEF,uEAAuE;YACvE,IAAI,GAAG,CAAC,YAAY,KAAK,SAAS;gBAAE,GAAG,CAAC,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC;YACxE,IAAI,GAAG,CAAC,YAAY,KAAK,SAAS;gBAAE,GAAG,CAAC,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC;YACxE,IAAI,GAAG,CAAC,aAAa,KAAK,SAAS;gBAAE,GAAG,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,CAAC;YAC3E,IAAI,GAAG,CAAC,YAAY,KAAK,SAAS;gBAAE,GAAG,CAAC,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC;YACxE,IAAI,GAAG,CAAC,WAAW,KAAK,SAAS;gBAAE,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;YACrE,IAAI,GAAG,CAAC,cAAc,KAAK,SAAS;gBAAE,GAAG,CAAC,cAAc,GAAG,GAAG,CAAC,cAAc,CAAC;YAC9E,IAAI,GAAG,CAAC,sBAAsB,KAAK,SAAS,EAAE,CAAC;gBAC7C,GAAG,CAAC,sBAAsB,GAAG,GAAG,CAAC,sBAAsB,CAAC;YAC1D,CAAC;YACD,IAAI,GAAG,CAAC,aAAa,KAAK,SAAS;gBAAE,GAAG,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,CAAC;YAC3E,IAAI,GAAG,CAAC,cAAc,KAAK,SAAS;gBAAE,GAAG,CAAC,cAAc,GAAG,GAAG,CAAC,cAAc,CAAC;YAC9E,IAAI,GAAG,CAAC,YAAY,KAAK,SAAS;gBAAE,GAAG,CAAC,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC;YACxE,IAAI,GAAG,CAAC,eAAe,KAAK,SAAS;gBAAE,GAAG,CAAC,eAAe,GAAG,GAAG,CAAC,eAAe,CAAC;YAEjF,yEAAyE;YACzE,IAAI,aAAa,GAAG,iBAAiB,CAAC;YACtC,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC3B,MAAM,QAAQ,GAAG,uBAAuB,CAAC;oBACvC,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,GAAG,CAAC,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC1E,GAAG,CAAC,GAAG,CAAC,eAAe,KAAK,SAAS;wBACnC,CAAC,CAAC,EAAE,eAAe,EAAE,GAAG,CAAC,eAAe,EAAE;wBAC1C,CAAC,CAAC,EAAE,CAAC;iBACR,CAAC,CAAC;gBACH,aAAa,GAAG,QAAQ,CAAC,SAAS,CAAC;gBACnC,GAAG,CAAC,eAAe,GAAG,QAAQ,CAAC,eAAe,CAAC;YACjD,CAAC;iBAAM,IAAI,GAAG,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;gBAC7C,oDAAoD;gBACpD,IACE,GAAG,CAAC,eAAe;oBACnB,iBAAiB,KAAK,QAAQ;oBAC9B,iBAAiB,KAAK,OAAO,EAC7B,CAAC;oBACD,MAAM,IAAI,SAAS,CACjB,GAAG,EACH,WAAW,CAAC,iBAAiB,EAC7B,yEAAyE,iBAAiB,IAAI,CAC/F,CAAC;gBACJ,CAAC;gBACD,GAAG,CAAC,eAAe,GAAG,GAAG,CAAC,eAAe,CAAC;YAC5C,CAAC;YACD,MAAM,MAAM,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;YAC7C,GAAG,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;YACzC,GAAG,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;YAErC,yEAAyE;YACzE,MAAM,KAAK,GAA4B,EAAE,CAAC;YAC1C,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS;gBAAE,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;YACxD,IAAI,GAAG,CAAC,YAAY,KAAK,SAAS;gBAAE,KAAK,CAAC,cAAc,CAAC,GAAG,GAAG,CAAC,YAAY,CAAC;YAC7E,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS;gBAAE,KAAK,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC;YACrE,IAAI,MAAM,CAAC,WAAW,KAAK,GAAG,CAAC,SAAS;gBAAE,KAAK,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC;YAClF,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClC,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;gBAClD,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;gBACnC,CAAC;YACH,CAAC;YACD,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;YAEjB,OAAO;gBACL,MAAM,EAAE;oBACN,WAAW;oBACX,YAAY,EAAE,GAAG,CAAC,EAAE;oBACpB,GAAG,EAAE,GAAG,CAAC,GAAG;oBACZ,YAAY,EAAE,GAAG,CAAC,YAAY;oBAC9B,YAAY,EAAE,GAAG,CAAC,YAAY;iBAC/B;gBACD,MAAM;gBACN,KAAK,EAAE;oBACL,YAAY,EAAE,GAAG,CAAC,YAAY;oBAC9B,YAAY,EAAE,GAAG,CAAC,YAAY;oBAC9B,SAAS,EAAE,aAAa;iBACzB;aACF,CAAC;QACJ,CAAC;QACD,KAAK,EAAE,cAAc;KACtB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,IAA0B,EAC1B,MAOC;IAED,OAAO;QACL,MAAM,EAAE,0BAA0B;QAClC,UAAU,EAAE,mBAAmB;QAC/B,QAAQ,EAAE,MAAM,CAAC,OAAO;QACxB,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;YACpB,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;YAC3E,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,WAAW,CAAC,SAAS,EAAE,cAAc,MAAM,CAAC,OAAO,cAAc,CAAC,CAAC;YAC9F,CAAC;YACD,uEAAuE;YACvE,wEAAwE;YACxE,sEAAsE;YACtE,2EAA2E;YAC3E,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE;iBACtB,OAAO,CACN,4FAA4F,EAC5F,CAAC,MAAM,CAAC,YAAY,CAAC,CACtB,CAAwC,CAAC;YAC5C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,MAAM,IAAI,SAAS,CACjB,GAAG,EACH,WAAW,CAAC,iBAAiB,EAC7B,oCAAoC,OAAO,CAAC,MAAM,4CAA4C,CAC/F,CAAC;YACJ,CAAC;YACD,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE;iBAC1B,OAAO,CACN,2EAA2E,EAC3E,CAAC,MAAM,CAAC,GAAG,CAAC,CACb,CAA6B,CAAC;YACjC,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,GAAG,CAAC,CAAC;YAC1D,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;gBACrB,MAAM,IAAI,SAAS,CACjB,GAAG,EACH,WAAW,CAAC,iBAAiB,EAC7B,oCAAoC,YAAY,kCAAkC,CACnF,CAAC;YACJ,CAAC;YACD,wEAAwE;YACxE,qDAAqD;YACrD,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACf,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;YACjB,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;YACxD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;YACtC,CAAC;YACD,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;YACjB,OAAO;gBACL,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,eAAe,EAAE;gBAC9D,KAAK,EAAE,IAAI;aACZ,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AA4BD,SAAS,YAAY,CACnB,IAAkC,EAClC,MASC;IAED,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE;QACzB,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;KAC5B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,IAA0B,EAC1B,IAAkC,EAClC,KAMC;IAED,OAAO;QACL,MAAM,EAAE,iCAAiC;QACzC,UAAU,EAAE,kBAAkB;QAC9B,QAAQ,EAAE,KAAK;QACf,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;YACpB,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrC,MAAM,IAAI,SAAS,CACjB,GAAG,EACH,WAAW,CAAC,iBAAiB,EAC7B,yBAAyB,KAAK,CAAC,KAAK,EAAE,CACvC,CAAC;YACJ,CAAC;YACD,MAAM,SAAS,GAAG;gBAChB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,YAAY,EAAE,KAAK,CAAC,YAAY;gBAChC,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,KAAK;aACpC,CAAC;YACF,MAAM,MAAM,GAAG,kBAAkB,CAC/B;gBACE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC1B,KAAK,EAAE,CAAC,CAAC,KAAK;oBACd,YAAY,EAAE,CAAC,CAAC,YAAY;oBAC5B,SAAS,EAAE,CAAC,CAAC,SAAS;iBACvB,CAAC,CAAC;gBACH,SAAS;aACV,EACD,IAAI,CAAC,SAAS,CACf,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;gBACf,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC;gBAChC,MAAM,IAAI,SAAS,CACjB,KAAK,CAAC,IAAI,KAAK,4BAA4B,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EACvD,WAAW,CAAC,iBAAiB,EAC7B,KAAK,CAAC,OAAO,CACd,CAAC;YACJ,CAAC;YACD,MAAM,SAAS,GACb,KAAK,CAAC,SAAS;gBACf,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;oBACtB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC;oBACvD,CAAC,CAAC,CAAC,CAAC,CAAC;YACT,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE;oBACpE,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE;oBACxB,YAAY,EAAE,KAAK,CAAC,YAAY;oBAChC,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,KAAK;oBACnC,SAAS;iBACV,CAAC,CAAC;gBACH,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;gBACjB,OAAO;oBACL,MAAM,EAAE,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC;oBAC/B,MAAM,EAAE,IAAI;oBACZ,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE;iBAC7D,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,IAA0B,EAC1B,IAAkC,EAClC,QAAgB,EAChB,KAKC;IAED,OAAO;QACL,MAAM,EAAE,iCAAiC;QACzC,UAAU,EAAE,kBAAkB;QAC9B,QAAQ,EAAE,QAAQ;QAClB,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;YACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;YAC7D,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,WAAW,CAAC,SAAS,EAAE,oBAAoB,QAAQ,aAAa,CAAC,CAAC;YAC7F,CAAC;YACD,MAAM,MAAM,GAAG;gBACb,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,YAAY,EAAE,QAAQ,CAAC,YAAY;gBACnC,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,SAAS,EAAE,QAAQ,CAAC,SAAS;aAC9B,CAAC;YACF,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;gBAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACvC,KAAK,EAAE,CAAC,CAAC,KAAK;oBACd,YAAY,EAAE,CAAC,CAAC,YAAY;oBAC5B,SAAS,EAAE,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;iBAClD,CAAC,CAAC,CAAC;gBACJ,MAAM,MAAM,GAAG,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC3D,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;oBACf,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,WAAW,CAAC,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,CAAC;gBACrF,CAAC;YACH,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE;oBAC9E,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC5D,GAAG,CAAC,KAAK,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACjF,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACxE,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACzE,CAAC,CAAC;gBACH,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;gBACjB,OAAO;oBACL,MAAM,EAAE,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC;oBAC/B,MAAM;oBACN,KAAK,EAAE;wBACL,YAAY,EAAE,GAAG,CAAC,YAAY;wBAC9B,SAAS,EAAE,GAAG,CAAC,SAAS;wBACxB,SAAS,EAAE,GAAG,CAAC,SAAS;qBACzB;iBACF,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,IAA0B,EAC1B,IAAkC,EAClC,QAAgB;IAEhB,OAAO;QACL,MAAM,EAAE,iCAAiC;QACzC,UAAU,EAAE,kBAAkB;QAC9B,QAAQ,EAAE,QAAQ;QAClB,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;YACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;YAC7D,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,WAAW,CAAC,SAAS,EAAE,oBAAoB,QAAQ,aAAa,CAAC,CAAC;YAC7F,CAAC;YACD,yEAAyE;YACzE,kEAAkE;YAClE,yEAAyE;YACzE,wEAAwE;YACxE,wEAAwE;YACxE,wEAAwE;YACxE,2CAA2C;YAC3C,mCAAmC;YACnC,yEAAyE;YACzE,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE;iBACnB,OAAO,CACN;;;;;;;;;;;sBAWY,EACZ;gBACE,IAAI,CAAC,GAAG;gBACR,IAAI,CAAC,GAAG;gBACR,QAAQ,CAAC,KAAK;gBACd,QAAQ,CAAC,KAAK;gBACd,IAAI,CAAC,GAAG;gBACR,QAAQ,CAAC,KAAK;gBACd,IAAI,CAAC,GAAG;gBACR,QAAQ,CAAC,KAAK;aACf,CACF,CAA6B,CAAC;YACjC,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,GAAG,CAAC,CAAC;YACnD,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;gBACrB,MAAM,IAAI,SAAS,CACjB,GAAG,EACH,WAAW,CAAC,iBAAiB,EAC7B,kBAAkB,YAAY,kCAAkC,QAAQ,CAAC,KAAK,IAAI,CACnF,CAAC;YACJ,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;gBACpE,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;YACnB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YACpC,CAAC;YACD,OAAO;gBACL,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE;gBAChE,KAAK,EAAE,IAAI;aACZ,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -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
|