@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":"index.js","sourceRoot":"","sources":["../../src/backend/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
import type { FastifyInstance, FastifyReply, FastifyRequest } from 'fastify';
|
|
2
|
+
import type { Worker } from 'bullmq';
|
|
3
|
+
import type { EntityManager } from '@mikro-orm/postgresql';
|
|
4
|
+
import type { Redis } from 'ioredis';
|
|
5
|
+
import type { CommandBus } from '@endora-commerce/platform/commands';
|
|
6
|
+
import { type AssetReadPort, type SearchQueryPort, type AdminUserReadPort, type EmailMailerPort, type LanguageReadPort, type ListingPriceOrderPort, type ListingPricePort, type OrgLinePricePort, type CustomFieldDefinitionReadPort, type CustomFieldValuePort, type OrganizationDetailsPort } from '@endora-commerce/contracts';
|
|
7
|
+
import type { EventBus } from '@endora-commerce/platform/events';
|
|
8
|
+
import type { StorefrontRevalidator } from '@endora-commerce/platform/http';
|
|
9
|
+
import type { PlatformLogger } from '@endora-commerce/platform/kernel';
|
|
10
|
+
import type { AuditPort } from '@endora-commerce/platform/kernel';
|
|
11
|
+
import type { SalesChannelMembershipPort } from '@endora-commerce/platform/kernel';
|
|
12
|
+
import { type CatalogWarehouseThresholdCopy } from './services/catalog-admin.service.js';
|
|
13
|
+
import { CatalogAttributeReadService } from './services/catalog-attribute-read.service.js';
|
|
14
|
+
import type { CustomFieldDefinitionApplyApi } from './commands/attribute-commands.js';
|
|
15
|
+
import { type BulkNotificationRecorder, type SearchReindexRunner } from './services/bulk-operation.service.js';
|
|
16
|
+
import { type ResolveAvailabilityPort } from './services/catalog-org-price-decorator.js';
|
|
17
|
+
import type { RequireAdminFactory } from '@endora-commerce/platform/kernel';
|
|
18
|
+
/**
|
|
19
|
+
* Composition root for the catalog module. Wires the ORM's per-request EM into
|
|
20
|
+
* the query/admin services and registers the public, admin, and api-key route
|
|
21
|
+
* surfaces.
|
|
22
|
+
*/
|
|
23
|
+
export type RequireApiKeyFactory = (scope: string) => (request: FastifyRequest, reply: FastifyReply) => Promise<void>;
|
|
24
|
+
export interface CatalogModuleOptions {
|
|
25
|
+
emFactory: () => EntityManager;
|
|
26
|
+
eventBus: EventBus;
|
|
27
|
+
/**
|
|
28
|
+
* Feature 068 — flushes the storefront's `catalog:categories` fetch-cache tag.
|
|
29
|
+
* Owned by `backend.ts`, which also owns the `category.updated.v1`
|
|
30
|
+
* subscription that drives it; passed here only so it can pick up `app.log`
|
|
31
|
+
* once the Fastify instance exists.
|
|
32
|
+
*/
|
|
33
|
+
categoryRevalidator?: StorefrontRevalidator;
|
|
34
|
+
requireAdmin?: RequireAdminFactory;
|
|
35
|
+
/** Audit-log writer; if provided, mutations land an AuditLogEntry. */
|
|
36
|
+
auditLogService?: AuditPort;
|
|
37
|
+
/** Resolver for who's acting — used for audit attribution. */
|
|
38
|
+
resolveAdminAuditContext?: (req: FastifyRequest) => {
|
|
39
|
+
actorAdminUserId: string;
|
|
40
|
+
impersonatedCustomerAccountId?: string | null;
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* API-key gate factory injected by the integrations module composition root.
|
|
44
|
+
* When provided, the catalog by-sku upsert route uses real api-key auth
|
|
45
|
+
* (T220 out-of-scope → 403). When undefined, the route falls back to a
|
|
46
|
+
* pass-through gate.
|
|
47
|
+
*/
|
|
48
|
+
requireApiKey?: RequireApiKeyFactory;
|
|
49
|
+
/**
|
|
50
|
+
* Feature 062 — bound-key gate injected by the integrations module. When
|
|
51
|
+
* BOTH this and `pricingService` are provided (alongside `requireApiKey`),
|
|
52
|
+
* the external catalog namespace (`/api/v1/external/catalog/*`) is
|
|
53
|
+
* registered. When omitted (legacy fixtures), the namespace is absent.
|
|
54
|
+
*/
|
|
55
|
+
requireBoundApiKey?: RequireApiKeyFactory;
|
|
56
|
+
/**
|
|
57
|
+
* Feature 062 — the price-lists pricing engine (the same resolver cart
|
|
58
|
+
* pricing uses). Consumed only by the external catalog namespace's
|
|
59
|
+
* decoration layer — SC-001 parity by construction.
|
|
60
|
+
*/
|
|
61
|
+
pricingService?: OrgLinePricePort & ListingPricePort & ListingPriceOrderPort;
|
|
62
|
+
/**
|
|
63
|
+
* Feature 062 — inventory availability port for the external namespace's
|
|
64
|
+
* `availability` indication. Optional: when omitted the field is omitted.
|
|
65
|
+
*/
|
|
66
|
+
resolveExternalAvailability?: ResolveAvailabilityPort;
|
|
67
|
+
/**
|
|
68
|
+
* Feature 075 — `organizations`' read port. The external namespace's price
|
|
69
|
+
* decoration resolves the calling organisation through it, where it used to
|
|
70
|
+
* run `em.findOne(Organization, …)` against another module's table.
|
|
71
|
+
*
|
|
72
|
+
* The storefront listing, the PDP and the cross-sell strip resolve it too:
|
|
73
|
+
* the caller's own price is the caller's organisation's, and the one field
|
|
74
|
+
* the pricing engine needs beyond the id — the customer group a
|
|
75
|
+
* group-targeted list is selected by — lives on that row.
|
|
76
|
+
*/
|
|
77
|
+
organizations?: OrganizationDetailsPort;
|
|
78
|
+
/**
|
|
79
|
+
* Feature 075 — `admin_users`' read port, for the one row the bulk-operation
|
|
80
|
+
* completion notice reads: the requester's e-mail address.
|
|
81
|
+
*/
|
|
82
|
+
adminUsers?: AdminUserReadPort;
|
|
83
|
+
/**
|
|
84
|
+
* Feature 005 / T027 — when provided, every newly-created Product is
|
|
85
|
+
* automatically bound to the system-default Sales Channel unless it
|
|
86
|
+
* already had memberships set through some other path (FR-011).
|
|
87
|
+
* Production composition.ts always provides this; tests omit it for
|
|
88
|
+
* pre-feature-005 fixtures.
|
|
89
|
+
*/
|
|
90
|
+
salesChannelMembership?: SalesChannelMembershipPort;
|
|
91
|
+
/**
|
|
92
|
+
* Issue #185 — `inventory`'s per-warehouse threshold copy, used by product
|
|
93
|
+
* duplication. Contributed as a presence-decided closure rather than resolved
|
|
94
|
+
* here, for the reason `resolveExternalAvailability` is: this module declares
|
|
95
|
+
* `inventory` `degrades-without`, so absence is decided in front of the gate
|
|
96
|
+
* and reaches the service in its return type.
|
|
97
|
+
*/
|
|
98
|
+
copyWarehouseThresholds?: CatalogWarehouseThresholdCopy;
|
|
99
|
+
/**
|
|
100
|
+
* Feature 022 — language admin service used by the product scope
|
|
101
|
+
* editor's scope-context endpoint (for the primary admin language)
|
|
102
|
+
* and the resolver service (for the same). Optional: when omitted,
|
|
103
|
+
* the new admin endpoints are NOT registered.
|
|
104
|
+
*/
|
|
105
|
+
languageService?: LanguageReadPort;
|
|
106
|
+
/**
|
|
107
|
+
* In-app (bell) notifications — used by the queued bulk-edit path to
|
|
108
|
+
* tell the requester their background operation finished. Optional;
|
|
109
|
+
* when omitted the notification is simply skipped.
|
|
110
|
+
*
|
|
111
|
+
* The **recorder** shape rather than `admin_notifications`' service: absence
|
|
112
|
+
* is an answer this module reads off the return type (D-60), not an exception
|
|
113
|
+
* it catches after the fact.
|
|
114
|
+
*/
|
|
115
|
+
adminNotificationService?: BulkNotificationRecorder;
|
|
116
|
+
/**
|
|
117
|
+
* Email transport — used by the queued bulk-edit path to email the
|
|
118
|
+
* requester on completion. Optional; when omitted email is skipped.
|
|
119
|
+
*/
|
|
120
|
+
mailer?: EmailMailerPort;
|
|
121
|
+
/**
|
|
122
|
+
* Redis connection used to back the bulk-operation queue (Principle X).
|
|
123
|
+
* When provided, `create()` enqueues each operation onto a durable BullMQ
|
|
124
|
+
* queue instead of processing it in-process. When omitted (tests), enqueue
|
|
125
|
+
* is a no-op and queued rows stay `pending` for direct-driven assertions.
|
|
126
|
+
*/
|
|
127
|
+
redis?: Redis;
|
|
128
|
+
/** Feature 054 — enables bulk-edit undo (capture revert state + audited undo). */
|
|
129
|
+
commandBus?: CommandBus;
|
|
130
|
+
/**
|
|
131
|
+
* When `true` (and `redis` is provided), this process also runs the
|
|
132
|
+
* bulk-operation **consumer** (a BullMQ worker). Co-locating the worker in
|
|
133
|
+
* the API process is the default single-VPS posture; set `BACKEND_ROLE=api`
|
|
134
|
+
* and run `pnpm --filter backend run worker` to split it into its own
|
|
135
|
+
* independently scalable process without code changes.
|
|
136
|
+
*/
|
|
137
|
+
runBulkOperationWorker?: boolean;
|
|
138
|
+
/**
|
|
139
|
+
* The lifecycle gate for a constructed BullMQ worker — `ctx.worker`, threaded
|
|
140
|
+
* in by `backend.ts`.
|
|
141
|
+
*
|
|
142
|
+
* The consumer is built inside the attach function, because it needs
|
|
143
|
+
* `app.log` and an `onClose` hook, so this file has no `ModuleContext` where
|
|
144
|
+
* the worker exists. It called `defineModuleWorker('catalog', …)` directly
|
|
145
|
+
* until T051, which `contracts/host-package.md` §1.4c classifies **A**:
|
|
146
|
+
* publishing that wrapper would re-open by bare specifier the seam
|
|
147
|
+
* `check:subscribe-seam` closed by relative path. Taking the seam as an
|
|
148
|
+
* argument is the same gate reached the sanctioned way.
|
|
149
|
+
*/
|
|
150
|
+
registerWorker: (worker: Worker, options?: {
|
|
151
|
+
logger?: PlatformLogger;
|
|
152
|
+
}) => void;
|
|
153
|
+
/**
|
|
154
|
+
* Runs a full Meilisearch reindex (the `search:reindex` CLI equivalent).
|
|
155
|
+
* When provided, flipping an attribute's `searchable` flag enqueues a
|
|
156
|
+
* `search_reindex` bulk operation that calls this. Wired from the
|
|
157
|
+
* composition root so catalog stays decoupled from the search module.
|
|
158
|
+
*/
|
|
159
|
+
reindexSearchIndexes?: SearchReindexRunner;
|
|
160
|
+
/**
|
|
161
|
+
* Resolves the `general.product_image_placeholder_url` setting (global or
|
|
162
|
+
* per sales channel) for a channel code. Wired from composition so catalog
|
|
163
|
+
* stays decoupled from the settings module. When provided, storefront
|
|
164
|
+
* product summaries / details with no image fall back to the configured URL.
|
|
165
|
+
*/
|
|
166
|
+
resolveProductImagePlaceholderUrl?: (salesChannelCode: string | undefined) => Promise<string | null>;
|
|
167
|
+
/** Feature 055 — validates + reads Category custom-field values on the admin edit path. */
|
|
168
|
+
customFieldValues?: CustomFieldValuePort;
|
|
169
|
+
/**
|
|
170
|
+
* Feature 055 (US4) — custom-field definition source. When wired, Category
|
|
171
|
+
* custom fields flagged `config.filterable` are merged into the storefront
|
|
172
|
+
* filter set by `CatalogQueryService`. Catalog interprets the opaque config.
|
|
173
|
+
*
|
|
174
|
+
* Feature 061 — the same object (production wiring passes the
|
|
175
|
+
* `CustomFieldDefinitionService`) also backs the composed attribute read
|
|
176
|
+
* model, and since T053(b) the attribute write path's committed-state
|
|
177
|
+
* definition read with it.
|
|
178
|
+
*/
|
|
179
|
+
customFieldDefinitions?: CustomFieldDefinitionReadPort;
|
|
180
|
+
/**
|
|
181
|
+
* Feature 061 — the custom_fields apply seam used by the attribute Commands.
|
|
182
|
+
* Production + test composition pass the `CustomFieldDefinitionService` here
|
|
183
|
+
* (it implements the interface). The committed-state definition read that
|
|
184
|
+
* used to travel with it is `customFieldDefinitions`' since T053(b).
|
|
185
|
+
*/
|
|
186
|
+
customFieldsPort?: CustomFieldDefinitionApplyApi;
|
|
187
|
+
/**
|
|
188
|
+
* Feature 061 — pre-built composed attribute read service. When omitted but
|
|
189
|
+
* `customFieldDefinitions` is present, the plugin constructs its own.
|
|
190
|
+
*/
|
|
191
|
+
attributeReadService?: CatalogAttributeReadService;
|
|
192
|
+
/**
|
|
193
|
+
* Issue #153 — `search`'s storefront listing backend, resolved as a port.
|
|
194
|
+
*
|
|
195
|
+
* This module used to `new SearchQueryService(...)` here out of `search`'s
|
|
196
|
+
* class, so a composition held two Meilisearch clients and two attribute-read
|
|
197
|
+
* wirings, and no gate stood between the public product list and an index
|
|
198
|
+
* whose maintenance subscribers had stopped with a switched-off `search`.
|
|
199
|
+
* `backend.ts` resolves `searchQueryPort` instead.
|
|
200
|
+
*
|
|
201
|
+
* Whether the listing *uses* it is still decided before the call, by
|
|
202
|
+
* `effectiveState.isPresent('search')` in `routes.public.ts` (MR !573) — a
|
|
203
|
+
* degrade to Postgres by decision, not by exception.
|
|
204
|
+
*/
|
|
205
|
+
searchQueryService?: SearchQueryPort;
|
|
206
|
+
/**
|
|
207
|
+
* Feature 075 — `assets_library`'s read port. Every service below that shows
|
|
208
|
+
* or verifies an image takes it: the gallery and attachment writers check the
|
|
209
|
+
* asset's `kind` before storing a reference to it, and the storefront reads
|
|
210
|
+
* resolve the primary image URL through it. It replaces four
|
|
211
|
+
* `em.findOne/find(Asset, …)` calls and six raw `join assets` clauses.
|
|
212
|
+
*/
|
|
213
|
+
assets?: AssetReadPort;
|
|
214
|
+
}
|
|
215
|
+
export declare function catalogModule(options: CatalogModuleOptions): (app: FastifyInstance) => Promise<void>;
|
|
216
|
+
//# sourceMappingURL=plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/backend/plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
import { BULK_OPERATION_TYPES, } from '@endora-commerce/contracts';
|
|
2
|
+
import { createBulkOperationQueue, createBulkOperationWorker, BULK_OPERATION_JOB_NAME, } from './services/bulk-operation-queue.js';
|
|
3
|
+
import { CatalogQueryService } from './services/catalog-query.service.js';
|
|
4
|
+
import { CatalogAdminService, } from './services/catalog-admin.service.js';
|
|
5
|
+
import { CatalogAttributeReadService } from './services/catalog-attribute-read.service.js';
|
|
6
|
+
import { CatalogBulkUpdateService } from './services/catalog-bulk-update.service.js';
|
|
7
|
+
import { BulkOperationService, } from './services/bulk-operation.service.js';
|
|
8
|
+
import { CategoryAdminService, } from './services/category-admin.service.js';
|
|
9
|
+
import { AttributeSetService } from './services/attribute-set.service.js';
|
|
10
|
+
import { GalleryService } from './services/gallery.service.js';
|
|
11
|
+
import { AttachmentService } from './services/attachment.service.js';
|
|
12
|
+
import { PackagingUnitService } from './services/packaging-unit.service.js';
|
|
13
|
+
import { ProductLinkService } from './services/product-link.service.js';
|
|
14
|
+
import { GroupedService } from './services/grouped.service.js';
|
|
15
|
+
import { BundleService } from './services/bundle.service.js';
|
|
16
|
+
import { ProductEditorPreferencesService } from './services/product-editor-preferences.service.js';
|
|
17
|
+
import { ProductOverridesService } from './services/product-overrides.service.js';
|
|
18
|
+
import { ProductScopeContextService } from './services/product-scope-context.service.js';
|
|
19
|
+
import { ProductValueResolverService } from './services/product-value-resolver.service.js';
|
|
20
|
+
import { registerCatalogPublicRoutes } from './routes.public.js';
|
|
21
|
+
import { registerCatalogAdminRoutes } from './routes.admin.js';
|
|
22
|
+
import { registerCatalogApiKeyRoutes } from './routes.api-key.js';
|
|
23
|
+
import { registerCatalogExternalRoutes } from './routes.external.js';
|
|
24
|
+
import { CatalogOrgPriceDecorator, } from './services/catalog-org-price-decorator.js';
|
|
25
|
+
export function catalogModule(options) {
|
|
26
|
+
return async (app) => {
|
|
27
|
+
const productLinkServiceForRead = new ProductLinkService(options.emFactory, options.commandBus, options.pricingService, options.assets, options.salesChannelMembership, options.organizations);
|
|
28
|
+
// Feature 061 — the composed attribute read model (definitions from the
|
|
29
|
+
// custom_fields cache + catalog extension rows). Constructed once and
|
|
30
|
+
// threaded into every attribute consumer in this module.
|
|
31
|
+
const attributeReadService = options.attributeReadService ??
|
|
32
|
+
(options.customFieldDefinitions
|
|
33
|
+
? new CatalogAttributeReadService(options.emFactory, options.customFieldDefinitions)
|
|
34
|
+
: undefined);
|
|
35
|
+
const queryService = new CatalogQueryService(options.emFactory, productLinkServiceForRead, options.customFieldDefinitions, attributeReadService, options.pricingService, options.assets, options.salesChannelMembership, options.organizations,
|
|
36
|
+
// Feature 086 — the ordering slice of the same `pricingService`.
|
|
37
|
+
options.pricingService);
|
|
38
|
+
const adminService = new CatalogAdminService(options.emFactory, options.eventBus, options.auditLogService, options.salesChannelMembership, options.commandBus, attributeReadService, options.customFieldsPort, options.copyWarehouseThresholds);
|
|
39
|
+
const bulkUpdateService = new CatalogBulkUpdateService(options.emFactory, adminService, options.salesChannelMembership, options.auditLogService);
|
|
40
|
+
// Queued bulk-edit (Principle X): large selections persist as `pending`
|
|
41
|
+
// operations on a durable BullMQ queue. The producer (`create()`) only
|
|
42
|
+
// enqueues; a separable BullMQ worker (below / or its own process) is the
|
|
43
|
+
// consumer. When no Redis is wired (tests) enqueue is a no-op and rows
|
|
44
|
+
// stay `pending` for direct-driven assertions.
|
|
45
|
+
const bulkOperationQueue = options.redis
|
|
46
|
+
? createBulkOperationQueue(options.redis)
|
|
47
|
+
: undefined;
|
|
48
|
+
const bulkOperationService = new BulkOperationService(options.emFactory, bulkUpdateService, {
|
|
49
|
+
...(options.adminNotificationService
|
|
50
|
+
? { notificationService: options.adminNotificationService }
|
|
51
|
+
: {}),
|
|
52
|
+
...(options.mailer ? { mailer: options.mailer } : {}),
|
|
53
|
+
...(options.adminUsers ? { adminUsers: options.adminUsers } : {}),
|
|
54
|
+
...(options.reindexSearchIndexes
|
|
55
|
+
? { reindexRunner: options.reindexSearchIndexes }
|
|
56
|
+
: {}),
|
|
57
|
+
...(bulkOperationQueue
|
|
58
|
+
? {
|
|
59
|
+
onEnqueued: async (operationId) => {
|
|
60
|
+
await bulkOperationQueue.add(BULK_OPERATION_JOB_NAME, { operationId });
|
|
61
|
+
},
|
|
62
|
+
}
|
|
63
|
+
: {}),
|
|
64
|
+
}, options.commandBus);
|
|
65
|
+
// When a reindex runner is wired, flipping an attribute's `searchable`
|
|
66
|
+
// flag enqueues a `search_reindex` bulk operation (visible on the
|
|
67
|
+
// "Akcje masowe" page, with the same bell + email notifications).
|
|
68
|
+
if (options.reindexSearchIndexes) {
|
|
69
|
+
const queue = bulkOperationService;
|
|
70
|
+
adminService.setSearchReindexEnqueuer(async ({ actorAdminUserId }) => {
|
|
71
|
+
await queue.create({
|
|
72
|
+
type: BULK_OPERATION_TYPES.SEARCH_REINDEX,
|
|
73
|
+
requestedByAdminUserId: actorAdminUserId ?? '00000000-0000-0000-0000-000000000000',
|
|
74
|
+
payload: { productIds: [], fields: {} },
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
const bundleServicePublic = new BundleService(options.emFactory, options.commandBus);
|
|
79
|
+
await registerCatalogPublicRoutes(app, {
|
|
80
|
+
queryService,
|
|
81
|
+
...(options.searchQueryService ? { searchQueryService: options.searchQueryService } : {}),
|
|
82
|
+
productLinkService: productLinkServiceForRead,
|
|
83
|
+
bundleService: bundleServicePublic,
|
|
84
|
+
...(options.resolveProductImagePlaceholderUrl
|
|
85
|
+
? { resolveProductImagePlaceholderUrl: options.resolveProductImagePlaceholderUrl }
|
|
86
|
+
: {}),
|
|
87
|
+
// Feature 086 / FR-016 — the route's own refusal reads the page's display
|
|
88
|
+
// mode off the same container the ordering comes from.
|
|
89
|
+
...(options.pricingService ? { listingPriceOrder: options.pricingService } : {}),
|
|
90
|
+
});
|
|
91
|
+
const categoryAdminService = new CategoryAdminService(options.emFactory, options.salesChannelMembership, options.commandBus, options.customFieldValues, options.eventBus);
|
|
92
|
+
// Feature 068 — the storefront serves the category tree from a fetch cache
|
|
93
|
+
// tagged `catalog:categories` with a 5-minute TTL, flushed on every category
|
|
94
|
+
// write so an activation toggle is visible immediately. The subscription
|
|
95
|
+
// lives in `backend.ts` and goes through `ctx.subscribe` (issue #107); this
|
|
96
|
+
// is where `app.log` exists, so the revalidator picks it up here.
|
|
97
|
+
options.categoryRevalidator?.setLogger(app.log);
|
|
98
|
+
const attributeSetService = new AttributeSetService(options.emFactory, options.commandBus, attributeReadService);
|
|
99
|
+
const galleryService = new GalleryService(options.emFactory, options.commandBus, options.assets);
|
|
100
|
+
const attachmentService = new AttachmentService(options.emFactory, options.commandBus, options.assets);
|
|
101
|
+
const packagingUnitService = new PackagingUnitService(options.emFactory, options.commandBus);
|
|
102
|
+
const productLinkService = new ProductLinkService(options.emFactory, options.commandBus, options.pricingService, options.assets, options.salesChannelMembership, options.organizations);
|
|
103
|
+
const groupedService = new GroupedService(options.emFactory, options.commandBus);
|
|
104
|
+
const bundleService = new BundleService(options.emFactory, options.commandBus);
|
|
105
|
+
await registerCatalogApiKeyRoutes(app, {
|
|
106
|
+
queryService,
|
|
107
|
+
adminService,
|
|
108
|
+
attributeSetService,
|
|
109
|
+
emFactory: options.emFactory,
|
|
110
|
+
...(options.requireApiKey ? { requireApiKey: options.requireApiKey } : {}),
|
|
111
|
+
});
|
|
112
|
+
// Feature 062 — external catalog namespace (/api/v1/external/catalog/*).
|
|
113
|
+
// Registered only when the api-key gates AND the pricing engine are wired
|
|
114
|
+
// (production + full test harness); legacy fixtures skip it.
|
|
115
|
+
if (options.requireApiKey &&
|
|
116
|
+
options.requireBoundApiKey &&
|
|
117
|
+
options.pricingService &&
|
|
118
|
+
options.organizations &&
|
|
119
|
+
// Issue #185 — the assortment check goes through the channel-membership
|
|
120
|
+
// accessor, so the namespace is not mounted without it rather than
|
|
121
|
+
// falling back to a hand-written bridge read.
|
|
122
|
+
options.salesChannelMembership) {
|
|
123
|
+
const decorator = new CatalogOrgPriceDecorator({
|
|
124
|
+
emFactory: options.emFactory,
|
|
125
|
+
pricingService: options.pricingService,
|
|
126
|
+
organizations: options.organizations,
|
|
127
|
+
channelMembership: options.salesChannelMembership,
|
|
128
|
+
...(options.resolveExternalAvailability
|
|
129
|
+
? { resolveAvailability: options.resolveExternalAvailability }
|
|
130
|
+
: {}),
|
|
131
|
+
});
|
|
132
|
+
await registerCatalogExternalRoutes(app, {
|
|
133
|
+
queryService,
|
|
134
|
+
decorator,
|
|
135
|
+
requireApiKey: options.requireApiKey,
|
|
136
|
+
requireBoundApiKey: options.requireBoundApiKey,
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
// Feature 022 — scope editor services. Conditional on the
|
|
140
|
+
// composition root providing both LanguageService and the
|
|
141
|
+
// SalesChannelMembershipPort, since the context endpoint needs
|
|
142
|
+
// both to assemble its response.
|
|
143
|
+
const editorPreferencesService = new ProductEditorPreferencesService(options.emFactory);
|
|
144
|
+
const valueResolverService = options.languageService
|
|
145
|
+
? new ProductValueResolverService(options.emFactory, options.languageService, attributeReadService)
|
|
146
|
+
: undefined;
|
|
147
|
+
const scopeContextService = options.salesChannelMembership && options.languageService
|
|
148
|
+
? new ProductScopeContextService(options.emFactory, options.salesChannelMembership, options.languageService, editorPreferencesService)
|
|
149
|
+
: undefined;
|
|
150
|
+
const overridesService = options.salesChannelMembership
|
|
151
|
+
? new ProductOverridesService(options.emFactory, options.salesChannelMembership, options.commandBus, attributeReadService)
|
|
152
|
+
: undefined;
|
|
153
|
+
await registerCatalogAdminRoutes(app, {
|
|
154
|
+
adminService,
|
|
155
|
+
categoryAdminService,
|
|
156
|
+
attributeSetService,
|
|
157
|
+
galleryService,
|
|
158
|
+
attachmentService,
|
|
159
|
+
packagingUnitService,
|
|
160
|
+
productLinkService,
|
|
161
|
+
groupedService,
|
|
162
|
+
bundleService,
|
|
163
|
+
bulkUpdateService,
|
|
164
|
+
bulkOperationService,
|
|
165
|
+
requireAdmin: options.requireAdmin ??
|
|
166
|
+
(() => async () => {
|
|
167
|
+
// no-op gate: development/tests default
|
|
168
|
+
}),
|
|
169
|
+
...(options.resolveAdminAuditContext
|
|
170
|
+
? { resolveAdminAuditContext: options.resolveAdminAuditContext }
|
|
171
|
+
: {}),
|
|
172
|
+
...(options.auditLogService ? { auditLogService: options.auditLogService } : {}),
|
|
173
|
+
...(scopeContextService ? { productScopeContextService: scopeContextService } : {}),
|
|
174
|
+
productEditorPreferencesService: editorPreferencesService,
|
|
175
|
+
...(valueResolverService ? { productValueResolverService: valueResolverService } : {}),
|
|
176
|
+
...(overridesService ? { productOverridesService: overridesService } : {}),
|
|
177
|
+
});
|
|
178
|
+
// Consumer side (Principle X). The BullMQ worker claims each queued
|
|
179
|
+
// operation atomically and runs the idempotent handler. It is a separable
|
|
180
|
+
// entrypoint: co-located here by default (single-VPS posture) but
|
|
181
|
+
// startable as its own process via `pnpm --filter backend run worker`
|
|
182
|
+
// (which sets BACKEND_ROLE so the API process skips this block).
|
|
183
|
+
if (bulkOperationQueue && options.runBulkOperationWorker && options.redis) {
|
|
184
|
+
const svc = bulkOperationService;
|
|
185
|
+
// BullMQ workers issue blocking Redis commands, so they need a
|
|
186
|
+
// dedicated connection rather than the app's shared client.
|
|
187
|
+
const workerConnection = options.redis.duplicate();
|
|
188
|
+
const worker = createBulkOperationWorker(workerConnection, async (job) => {
|
|
189
|
+
app.log.info({ operationId: job.data.operationId }, 'bulk-operation processing started');
|
|
190
|
+
await svc.processById(job.data.operationId);
|
|
191
|
+
app.log.info({ operationId: job.data.operationId }, 'bulk-operation processing finished');
|
|
192
|
+
});
|
|
193
|
+
options.registerWorker(worker, { logger: app.log });
|
|
194
|
+
app.addHook('onClose', async () => {
|
|
195
|
+
await worker.close();
|
|
196
|
+
workerConnection.disconnect();
|
|
197
|
+
await bulkOperationQueue.close();
|
|
198
|
+
});
|
|
199
|
+
// Boot reconciliation: re-enqueue rows left `pending` (e.g. created while
|
|
200
|
+
// the queue was unreachable, or predating this deploy). Not a draining
|
|
201
|
+
// sweeper — it only enqueues onto the durable queue, then returns.
|
|
202
|
+
void svc
|
|
203
|
+
.findPendingIds()
|
|
204
|
+
.then(async (ids) => {
|
|
205
|
+
for (const operationId of ids) {
|
|
206
|
+
await bulkOperationQueue.add(BULK_OPERATION_JOB_NAME, { operationId });
|
|
207
|
+
}
|
|
208
|
+
if (ids.length > 0) {
|
|
209
|
+
app.log.info({ count: ids.length }, 'bulk-operation boot reconciliation enqueued');
|
|
210
|
+
}
|
|
211
|
+
})
|
|
212
|
+
.catch((err) => app.log.error({ err }, 'bulk-operation boot reconciliation failed'));
|
|
213
|
+
}
|
|
214
|
+
else if (bulkOperationQueue) {
|
|
215
|
+
// Producer-only process (BACKEND_ROLE=api): close the queue handle on
|
|
216
|
+
// shutdown so its Redis connection is released cleanly.
|
|
217
|
+
app.addHook('onClose', async () => {
|
|
218
|
+
await bulkOperationQueue.close();
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
//# sourceMappingURL=plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/backend/plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { type BulkProgressReader, type PromptActionTool } from '@endora-commerce/contracts';
|
|
2
|
+
import type { EntityManager } from '@mikro-orm/postgresql';
|
|
3
|
+
import type { Redis } from 'ioredis';
|
|
4
|
+
import type { EventBus } from '@endora-commerce/platform/events';
|
|
5
|
+
import type { AuditPort } from '@endora-commerce/platform/kernel';
|
|
6
|
+
import type { SalesChannelMembershipPort } from '@endora-commerce/platform/kernel';
|
|
7
|
+
/**
|
|
8
|
+
* Catalog's contribution to the prompt-assistant tool catalogue
|
|
9
|
+
* (feature 043, data-model §4): two resolvers plus the US2 bulk
|
|
10
|
+
* category-assignment mutation. Handlers delegate to the same admin
|
|
11
|
+
* services that back the manual admin routes; descriptions are the LLM's
|
|
12
|
+
* only documentation (tool-contribution contract rule 4).
|
|
13
|
+
*
|
|
14
|
+
* The mutation mirrors the feature-022 bulk-update route exactly:
|
|
15
|
+
* ≤ 50 products run synchronously at confirm time; larger selections are
|
|
16
|
+
* enqueued onto the existing durable `catalog.bulk-operation` BullMQ queue
|
|
17
|
+
* (Principle X — this file only adds a second producer over the same
|
|
18
|
+
* queue; the consumer stays catalog's separable worker entrypoint).
|
|
19
|
+
*/
|
|
20
|
+
export interface CatalogPromptToolsDeps {
|
|
21
|
+
emFactory: () => EntityManager;
|
|
22
|
+
events: EventBus;
|
|
23
|
+
auditLogService?: AuditPort;
|
|
24
|
+
salesChannelMembership?: SalesChannelMembershipPort;
|
|
25
|
+
/** Enables queue delegation for > BULK_ASYNC_THRESHOLD selections. */
|
|
26
|
+
redis?: Redis;
|
|
27
|
+
}
|
|
28
|
+
export declare function catalogPromptResolverTools(deps: CatalogPromptToolsDeps): PromptActionTool[];
|
|
29
|
+
export declare function catalogPromptMutationTools(deps: CatalogPromptToolsDeps): PromptActionTool[];
|
|
30
|
+
/**
|
|
31
|
+
* Live `catalog_bulk_operations` progress for one delegated prompt request
|
|
32
|
+
* (research §R6, FR-011/FR-018), contributed as `prompt_actions`'
|
|
33
|
+
* `BulkProgressReader`.
|
|
34
|
+
*
|
|
35
|
+
* D-76 — data out, and nothing else. This used to take
|
|
36
|
+
* `(row: PromptActionRequest, em: EntityManager)` and write `row.result`,
|
|
37
|
+
* `row.status` and `row.error` on `prompt_actions`' own entity, which put that
|
|
38
|
+
* module's state machine in this module's hands; the `em` was never bound at
|
|
39
|
+
* all. What a bulk operation did is this module's fact, and this returns
|
|
40
|
+
* exactly that fact — whether the request is `completed`, `failed` or
|
|
41
|
+
* `completed_with_errors` is decided by its owner.
|
|
42
|
+
*
|
|
43
|
+
* `null` means "not one of mine": the id names no bulk operation here, so the
|
|
44
|
+
* host may ask the next contributor.
|
|
45
|
+
*/
|
|
46
|
+
export declare function catalogBulkProgressReader(deps: CatalogPromptToolsDeps): BulkProgressReader;
|
|
47
|
+
//# sourceMappingURL=prompt-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt-tools.d.ts","sourceRoot":"","sources":["../../src/backend/prompt-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAaL,KAAK,kBAAkB,EAEvB,KAAK,gBAAgB,EAEtB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAWlE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAEnF;;;;;;;;;;;;GAYG;AAEH,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,aAAa,CAAC;IAC/B,MAAM,EAAE,QAAQ,CAAC;IACjB,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,sBAAsB,CAAC,EAAE,0BAA0B,CAAC;IACpD,sEAAsE;IACtE,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAWD,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,sBAAsB,GAAG,gBAAgB,EAAE,CAqD3F;AAuFD,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,sBAAsB,GAAG,gBAAgB,EAAE,CAiK3F;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,sBAAsB,GAAG,kBAAkB,CAiB1F"}
|