@oronts/vendure-data-hub-plugin 0.1.3 → 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +46 -1
- package/README.md +30 -8
- package/dashboard/components/pipelines/PipelineEditor.tsx +159 -5
- package/dashboard/components/pipelines/ReactFlowPipelineEditor.tsx +3 -3
- package/dashboard/components/pipelines/shared/NodePropertiesPanel.tsx +42 -4
- package/dashboard/components/pipelines/shared/StepListItem.tsx +2 -2
- package/dashboard/components/shared/CodeEditor.tsx +289 -0
- package/dashboard/components/shared/schema-form/fields/TextareaField.tsx +19 -4
- package/dashboard/components/shared/step-config/AdapterSelector.tsx +2 -2
- package/dashboard/components/shared/step-config/OperatorFieldInput.tsx +19 -0
- package/dashboard/components/shared/step-config/RouteConfigComponent.tsx +218 -29
- package/dashboard/components/shared/step-config/StepConfigPanel.tsx +37 -17
- package/dashboard/components/shared/step-config/ValidateConfigComponent.tsx +2 -2
- package/dashboard/constants/ui-dimensions.ts +2 -1
- package/dashboard/constants/ui-states.ts +1 -0
- package/dashboard/gql/graphql.ts +13 -1
- package/dashboard/hooks/use-adapter-catalog.ts +4 -32
- package/dashboard/routes/connections/ConnectionDetail.tsx +7 -1
- package/dashboard/routes/pipelines/RunDetailsPanel.tsx +1 -1
- package/dashboard/routes/pipelines/components/PipelineActionButtons.tsx +3 -3
- package/dashboard/routes/pipelines/utils/pipeline-conversion.ts +3 -5
- package/dashboard/utils/formatters.ts +6 -4
- package/dist/dashboard/components/pipelines/PipelineEditor.tsx +159 -5
- package/dist/dashboard/components/pipelines/ReactFlowPipelineEditor.tsx +3 -3
- package/dist/dashboard/components/pipelines/shared/NodePropertiesPanel.tsx +42 -4
- package/dist/dashboard/components/pipelines/shared/StepListItem.tsx +2 -2
- package/dist/dashboard/components/shared/CodeEditor.tsx +289 -0
- package/dist/dashboard/components/shared/schema-form/fields/TextareaField.tsx +19 -4
- package/dist/dashboard/components/shared/step-config/AdapterSelector.tsx +2 -2
- package/dist/dashboard/components/shared/step-config/OperatorFieldInput.tsx +19 -0
- package/dist/dashboard/components/shared/step-config/RouteConfigComponent.tsx +218 -29
- package/dist/dashboard/components/shared/step-config/StepConfigPanel.tsx +37 -17
- package/dist/dashboard/components/shared/step-config/ValidateConfigComponent.tsx +2 -2
- package/dist/dashboard/constants/ui-dimensions.ts +2 -1
- package/dist/dashboard/constants/ui-states.ts +1 -0
- package/dist/dashboard/gql/graphql.ts +13 -1
- package/dist/dashboard/hooks/use-adapter-catalog.ts +4 -32
- package/dist/dashboard/routes/connections/ConnectionDetail.tsx +7 -1
- package/dist/dashboard/routes/pipelines/RunDetailsPanel.tsx +1 -1
- package/dist/dashboard/routes/pipelines/components/PipelineActionButtons.tsx +3 -3
- package/dist/dashboard/routes/pipelines/utils/pipeline-conversion.ts +3 -5
- package/dist/dashboard/utils/formatters.ts +6 -4
- package/dist/shared/types/adapter-config.types.d.ts +148 -4
- package/dist/shared/types/adapter-config.types.d.ts.map +1 -1
- package/dist/shared/types/index.d.ts +1 -1
- package/dist/shared/types/index.d.ts.map +1 -1
- package/dist/shared/types/index.js.map +1 -1
- package/dist/shared/types/loader.types.d.ts +4 -0
- package/dist/shared/types/loader.types.d.ts.map +1 -1
- package/dist/shared/types/step.types.d.ts +6 -0
- package/dist/shared/types/step.types.d.ts.map +1 -1
- package/dist/shared/types/trigger.types.d.ts +0 -4
- package/dist/shared/types/trigger.types.d.ts.map +1 -1
- package/dist/src/adapters/registry.d.ts.map +1 -1
- package/dist/src/adapters/registry.js +2 -1
- package/dist/src/adapters/registry.js.map +1 -1
- package/dist/src/api/controllers/webhook.controller.d.ts +10 -0
- package/dist/src/api/controllers/webhook.controller.d.ts.map +1 -1
- package/dist/src/api/controllers/webhook.controller.js +50 -10
- package/dist/src/api/controllers/webhook.controller.js.map +1 -1
- package/dist/src/api/resolvers/queue.resolver.d.ts +3 -1
- package/dist/src/api/resolvers/queue.resolver.d.ts.map +1 -1
- package/dist/src/api/resolvers/queue.resolver.js +6 -5
- package/dist/src/api/resolvers/queue.resolver.js.map +1 -1
- package/dist/src/api/schema/pipeline.schema.d.ts +1 -1
- package/dist/src/api/schema/pipeline.schema.d.ts.map +1 -1
- package/dist/src/api/schema/pipeline.schema.js +4 -0
- package/dist/src/api/schema/pipeline.schema.js.map +1 -1
- package/dist/src/api/schema/test.schema.d.ts +1 -1
- package/dist/src/api/schema/test.schema.d.ts.map +1 -1
- package/dist/src/api/schema/test.schema.js +5 -1
- package/dist/src/api/schema/test.schema.js.map +1 -1
- package/dist/src/bootstrap/seed-data.js +1 -1
- package/dist/src/bootstrap/seed-data.js.map +1 -1
- package/dist/src/constants/adapter-schema-options.d.ts +65 -0
- package/dist/src/constants/adapter-schema-options.d.ts.map +1 -1
- package/dist/src/constants/adapter-schema-options.js +91 -7
- package/dist/src/constants/adapter-schema-options.js.map +1 -1
- package/dist/src/constants/builtin-adapters.d.ts +1 -1
- package/dist/src/constants/builtin-adapters.d.ts.map +1 -1
- package/dist/src/constants/builtin-adapters.js +19 -1
- package/dist/src/constants/builtin-adapters.js.map +1 -1
- package/dist/src/constants/core.d.ts +10 -0
- package/dist/src/constants/core.d.ts.map +1 -1
- package/dist/src/constants/core.js +10 -0
- package/dist/src/constants/core.js.map +1 -1
- package/dist/src/constants/defaults/webhook-defaults.d.ts +2 -0
- package/dist/src/constants/defaults/webhook-defaults.d.ts.map +1 -1
- package/dist/src/constants/defaults/webhook-defaults.js +2 -0
- package/dist/src/constants/defaults/webhook-defaults.js.map +1 -1
- package/dist/src/constants/enum-metadata.d.ts.map +1 -1
- package/dist/src/constants/enum-metadata.js +3 -0
- package/dist/src/constants/enum-metadata.js.map +1 -1
- package/dist/src/constants/hook-stage-metadata.d.ts.map +1 -1
- package/dist/src/constants/hook-stage-metadata.js +42 -0
- package/dist/src/constants/hook-stage-metadata.js.map +1 -1
- package/dist/src/constants/services.d.ts.map +1 -1
- package/dist/src/constants/services.js +7 -0
- package/dist/src/constants/services.js.map +1 -1
- package/dist/src/constants/time.d.ts +2 -0
- package/dist/src/constants/time.d.ts.map +1 -1
- package/dist/src/constants/time.js +2 -0
- package/dist/src/constants/time.js.map +1 -1
- package/dist/src/data-hub.plugin.d.ts.map +1 -1
- package/dist/src/data-hub.plugin.js +2 -2
- package/dist/src/data-hub.plugin.js.map +1 -1
- package/dist/src/entities/pipeline/pipeline-run.entity.d.ts +4 -0
- package/dist/src/entities/pipeline/pipeline-run.entity.d.ts.map +1 -1
- package/dist/src/entities/pipeline/pipeline-run.entity.js +8 -0
- package/dist/src/entities/pipeline/pipeline-run.entity.js.map +1 -1
- package/dist/src/extractors/cdc/cdc.extractor.d.ts.map +1 -1
- package/dist/src/extractors/cdc/cdc.extractor.js +7 -2
- package/dist/src/extractors/cdc/cdc.extractor.js.map +1 -1
- package/dist/src/extractors/cdc/types.d.ts +1 -1
- package/dist/src/extractors/cdc/types.d.ts.map +1 -1
- package/dist/src/extractors/extractor-handler-registry.d.ts.map +1 -1
- package/dist/src/extractors/extractor-handler-registry.js +3 -0
- package/dist/src/extractors/extractor-handler-registry.js.map +1 -1
- package/dist/src/extractors/vendure-query/helpers.d.ts +9 -4
- package/dist/src/extractors/vendure-query/helpers.d.ts.map +1 -1
- package/dist/src/extractors/vendure-query/helpers.js +98 -32
- package/dist/src/extractors/vendure-query/helpers.js.map +1 -1
- package/dist/src/extractors/vendure-query/schema.d.ts.map +1 -1
- package/dist/src/extractors/vendure-query/schema.js +13 -0
- package/dist/src/extractors/vendure-query/schema.js.map +1 -1
- package/dist/src/feeds/generators/csv-feed.generator.d.ts.map +1 -1
- package/dist/src/feeds/generators/csv-feed.generator.js +5 -4
- package/dist/src/feeds/generators/csv-feed.generator.js.map +1 -1
- package/dist/src/feeds/generators/facebook-catalog.generator.d.ts.map +1 -1
- package/dist/src/feeds/generators/facebook-catalog.generator.js +83 -114
- package/dist/src/feeds/generators/facebook-catalog.generator.js.map +1 -1
- package/dist/src/feeds/generators/feed-constants.d.ts +1 -0
- package/dist/src/feeds/generators/feed-constants.d.ts.map +1 -1
- package/dist/src/feeds/generators/feed-constants.js +1 -0
- package/dist/src/feeds/generators/feed-constants.js.map +1 -1
- package/dist/src/feeds/generators/feed-helpers.d.ts +10 -8
- package/dist/src/feeds/generators/feed-helpers.d.ts.map +1 -1
- package/dist/src/feeds/generators/feed-helpers.js +24 -4
- package/dist/src/feeds/generators/feed-helpers.js.map +1 -1
- package/dist/src/feeds/generators/feed-item-builder.d.ts +59 -0
- package/dist/src/feeds/generators/feed-item-builder.d.ts.map +1 -0
- package/dist/src/feeds/generators/feed-item-builder.js +93 -0
- package/dist/src/feeds/generators/feed-item-builder.js.map +1 -0
- package/dist/src/feeds/generators/google-shopping.generator.d.ts.map +1 -1
- package/dist/src/feeds/generators/google-shopping.generator.js +52 -64
- package/dist/src/feeds/generators/google-shopping.generator.js.map +1 -1
- package/dist/src/feeds/generators/json-feed.generator.d.ts.map +1 -1
- package/dist/src/feeds/generators/json-feed.generator.js +4 -3
- package/dist/src/feeds/generators/json-feed.generator.js.map +1 -1
- package/dist/src/feeds/generators/xml-feed.generator.d.ts.map +1 -1
- package/dist/src/feeds/generators/xml-feed.generator.js +6 -5
- package/dist/src/feeds/generators/xml-feed.generator.js.map +1 -1
- package/dist/src/gql/generated.d.ts +13 -1
- package/dist/src/gql/generated.d.ts.map +1 -1
- package/dist/src/gql/generated.js.map +1 -1
- package/dist/src/index.d.ts +3 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +7 -4
- package/dist/src/index.js.map +1 -1
- package/dist/src/loaders/asset/asset.loader.d.ts.map +1 -1
- package/dist/src/loaders/asset/asset.loader.js +5 -1
- package/dist/src/loaders/asset/asset.loader.js.map +1 -1
- package/dist/src/loaders/base/validation-builder.d.ts +128 -3
- package/dist/src/loaders/base/validation-builder.d.ts.map +1 -1
- package/dist/src/loaders/base/validation-builder.js +177 -6
- package/dist/src/loaders/base/validation-builder.js.map +1 -1
- package/dist/src/loaders/collection/collection.loader.d.ts.map +1 -1
- package/dist/src/loaders/collection/collection.loader.js +22 -1
- package/dist/src/loaders/collection/collection.loader.js.map +1 -1
- package/dist/src/loaders/collection/helpers.d.ts +16 -1
- package/dist/src/loaders/collection/helpers.d.ts.map +1 -1
- package/dist/src/loaders/collection/helpers.js +37 -0
- package/dist/src/loaders/collection/helpers.js.map +1 -1
- package/dist/src/loaders/customer/customer.loader.d.ts.map +1 -1
- package/dist/src/loaders/customer/customer.loader.js +13 -1
- package/dist/src/loaders/customer/customer.loader.js.map +1 -1
- package/dist/src/loaders/customer/helpers.d.ts +15 -3
- package/dist/src/loaders/customer/helpers.d.ts.map +1 -1
- package/dist/src/loaders/customer/helpers.js +188 -7
- package/dist/src/loaders/customer/helpers.js.map +1 -1
- package/dist/src/loaders/facet-value/facet-value.loader.d.ts.map +1 -1
- package/dist/src/loaders/facet-value/facet-value.loader.js +18 -0
- package/dist/src/loaders/facet-value/facet-value.loader.js.map +1 -1
- package/dist/src/loaders/facet-value/types.d.ts +1 -1
- package/dist/src/loaders/facet-value/types.js +1 -1
- package/dist/src/loaders/facet-value/types.js.map +1 -1
- package/dist/src/loaders/order/helpers.d.ts +16 -2
- package/dist/src/loaders/order/helpers.d.ts.map +1 -1
- package/dist/src/loaders/order/helpers.js +108 -0
- package/dist/src/loaders/order/helpers.js.map +1 -1
- package/dist/src/loaders/order/order.loader.d.ts +38 -0
- package/dist/src/loaders/order/order.loader.d.ts.map +1 -1
- package/dist/src/loaders/order/order.loader.js +238 -24
- package/dist/src/loaders/order/order.loader.js.map +1 -1
- package/dist/src/loaders/order/types.d.ts +10 -3
- package/dist/src/loaders/order/types.d.ts.map +1 -1
- package/dist/src/loaders/order/types.js +13 -2
- package/dist/src/loaders/order/types.js.map +1 -1
- package/dist/src/loaders/product/product.loader.d.ts.map +1 -1
- package/dist/src/loaders/product/product.loader.js +18 -2
- package/dist/src/loaders/product/product.loader.js.map +1 -1
- package/dist/src/loaders/product-variant/helpers.d.ts +20 -0
- package/dist/src/loaders/product-variant/helpers.d.ts.map +1 -0
- package/dist/src/loaders/product-variant/helpers.js +103 -0
- package/dist/src/loaders/product-variant/helpers.js.map +1 -0
- package/dist/src/loaders/product-variant/product-variant.loader.d.ts.map +1 -1
- package/dist/src/loaders/product-variant/product-variant.loader.js +76 -10
- package/dist/src/loaders/product-variant/product-variant.loader.js.map +1 -1
- package/dist/src/loaders/product-variant/types.d.ts +7 -0
- package/dist/src/loaders/product-variant/types.d.ts.map +1 -1
- package/dist/src/loaders/product-variant/types.js.map +1 -1
- package/dist/src/loaders/promotion/helpers.d.ts +29 -0
- package/dist/src/loaders/promotion/helpers.d.ts.map +1 -1
- package/dist/src/loaders/promotion/helpers.js +68 -0
- package/dist/src/loaders/promotion/helpers.js.map +1 -1
- package/dist/src/loaders/promotion/promotion.loader.d.ts.map +1 -1
- package/dist/src/loaders/promotion/promotion.loader.js +12 -2
- package/dist/src/loaders/promotion/promotion.loader.js.map +1 -1
- package/dist/src/loaders/shared-helpers.d.ts +42 -2
- package/dist/src/loaders/shared-helpers.d.ts.map +1 -1
- package/dist/src/loaders/shared-helpers.js +384 -5
- package/dist/src/loaders/shared-helpers.js.map +1 -1
- package/dist/src/operators/data/copy.operator.js +2 -2
- package/dist/src/operators/data/copy.operator.js.map +1 -1
- package/dist/src/operators/data/rename.operator.js +1 -1
- package/dist/src/operators/data/rename.operator.js.map +1 -1
- package/dist/src/operators/helpers.d.ts.map +1 -1
- package/dist/src/operators/helpers.js +11 -1
- package/dist/src/operators/helpers.js.map +1 -1
- package/dist/src/operators/operator-runtime-registry.d.ts +2 -2
- package/dist/src/operators/operator-runtime-registry.d.ts.map +1 -1
- package/dist/src/operators/operator-runtime-registry.js +1 -1
- package/dist/src/operators/operator-runtime-registry.js.map +1 -1
- package/dist/src/operators/script/script.operators.d.ts.map +1 -1
- package/dist/src/operators/script/script.operators.js +9 -3
- package/dist/src/operators/script/script.operators.js.map +1 -1
- package/dist/src/runtime/config-types.d.ts +6 -0
- package/dist/src/runtime/config-types.d.ts.map +1 -1
- package/dist/src/runtime/executor-helpers.d.ts +77 -0
- package/dist/src/runtime/executor-helpers.d.ts.map +1 -0
- package/dist/src/runtime/executor-helpers.js +143 -0
- package/dist/src/runtime/executor-helpers.js.map +1 -0
- package/dist/src/runtime/executors/export.executor.d.ts +3 -1
- package/dist/src/runtime/executors/export.executor.d.ts.map +1 -1
- package/dist/src/runtime/executors/export.executor.js +15 -3
- package/dist/src/runtime/executors/export.executor.js.map +1 -1
- package/dist/src/runtime/executors/exporters/export-handler-registry.d.ts.map +1 -1
- package/dist/src/runtime/executors/exporters/export-handler-registry.js +5 -0
- package/dist/src/runtime/executors/exporters/export-handler-registry.js.map +1 -1
- package/dist/src/runtime/executors/exporters/export-handler.types.d.ts +3 -0
- package/dist/src/runtime/executors/exporters/export-handler.types.d.ts.map +1 -1
- package/dist/src/runtime/executors/exporters/export-handler.types.js.map +1 -1
- package/dist/src/runtime/executors/exporters/export-helpers.d.ts +1 -0
- package/dist/src/runtime/executors/exporters/export-helpers.d.ts.map +1 -1
- package/dist/src/runtime/executors/exporters/export-helpers.js +32 -3
- package/dist/src/runtime/executors/exporters/export-helpers.js.map +1 -1
- package/dist/src/runtime/executors/exporters/http-export.handler.js +4 -4
- package/dist/src/runtime/executors/exporters/http-export.handler.js.map +1 -1
- package/dist/src/runtime/executors/extractors/file-extract.handler.d.ts.map +1 -1
- package/dist/src/runtime/executors/extractors/file-extract.handler.js +33 -13
- package/dist/src/runtime/executors/extractors/file-extract.handler.js.map +1 -1
- package/dist/src/runtime/executors/extractors/memory-extract.handler.d.ts.map +1 -1
- package/dist/src/runtime/executors/extractors/memory-extract.handler.js +17 -9
- package/dist/src/runtime/executors/extractors/memory-extract.handler.js.map +1 -1
- package/dist/src/runtime/executors/feed.executor.d.ts.map +1 -1
- package/dist/src/runtime/executors/feed.executor.js +11 -2
- package/dist/src/runtime/executors/feed.executor.js.map +1 -1
- package/dist/src/runtime/executors/feeds/feed-handler-registry.d.ts.map +1 -1
- package/dist/src/runtime/executors/feeds/feed-handler-registry.js +4 -0
- package/dist/src/runtime/executors/feeds/feed-handler-registry.js.map +1 -1
- package/dist/src/runtime/executors/gate.executor.d.ts +3 -1
- package/dist/src/runtime/executors/gate.executor.d.ts.map +1 -1
- package/dist/src/runtime/executors/gate.executor.js +47 -26
- package/dist/src/runtime/executors/gate.executor.js.map +1 -1
- package/dist/src/runtime/executors/loaders/channel-handler.d.ts +3 -1
- package/dist/src/runtime/executors/loaders/channel-handler.d.ts.map +1 -1
- package/dist/src/runtime/executors/loaders/channel-handler.js +14 -4
- package/dist/src/runtime/executors/loaders/channel-handler.js.map +1 -1
- package/dist/src/runtime/executors/loaders/collection-handler.d.ts +14 -2
- package/dist/src/runtime/executors/loaders/collection-handler.d.ts.map +1 -1
- package/dist/src/runtime/executors/loaders/collection-handler.js +93 -22
- package/dist/src/runtime/executors/loaders/collection-handler.js.map +1 -1
- package/dist/src/runtime/executors/loaders/customer-group-handler.d.ts.map +1 -1
- package/dist/src/runtime/executors/loaders/customer-group-handler.js +2 -27
- package/dist/src/runtime/executors/loaders/customer-group-handler.js.map +1 -1
- package/dist/src/runtime/executors/loaders/customer-handler.d.ts +6 -1
- package/dist/src/runtime/executors/loaders/customer-handler.d.ts.map +1 -1
- package/dist/src/runtime/executors/loaders/customer-handler.js +95 -13
- package/dist/src/runtime/executors/loaders/customer-handler.js.map +1 -1
- package/dist/src/runtime/executors/loaders/deletion-handler.d.ts +39 -0
- package/dist/src/runtime/executors/loaders/deletion-handler.d.ts.map +1 -0
- package/dist/src/runtime/executors/loaders/deletion-handler.js +414 -0
- package/dist/src/runtime/executors/loaders/deletion-handler.js.map +1 -0
- package/dist/src/runtime/executors/loaders/facet-handler.d.ts +18 -3
- package/dist/src/runtime/executors/loaders/facet-handler.d.ts.map +1 -1
- package/dist/src/runtime/executors/loaders/facet-handler.js +127 -26
- package/dist/src/runtime/executors/loaders/facet-handler.js.map +1 -1
- package/dist/src/runtime/executors/loaders/index.d.ts +2 -0
- package/dist/src/runtime/executors/loaders/index.d.ts.map +1 -1
- package/dist/src/runtime/executors/loaders/index.js +5 -1
- package/dist/src/runtime/executors/loaders/index.js.map +1 -1
- package/dist/src/runtime/executors/loaders/inventory-adjust-handler.d.ts.map +1 -1
- package/dist/src/runtime/executors/loaders/inventory-adjust-handler.js +2 -28
- package/dist/src/runtime/executors/loaders/inventory-adjust-handler.js.map +1 -1
- package/dist/src/runtime/executors/loaders/inventory-handler.d.ts +2 -1
- package/dist/src/runtime/executors/loaders/inventory-handler.d.ts.map +1 -1
- package/dist/src/runtime/executors/loaders/inventory-handler.js +8 -6
- package/dist/src/runtime/executors/loaders/inventory-handler.js.map +1 -1
- package/dist/src/runtime/executors/loaders/loader-handler-registry.d.ts.map +1 -1
- package/dist/src/runtime/executors/loaders/loader-handler-registry.js +117 -3
- package/dist/src/runtime/executors/loaders/loader-handler-registry.js.map +1 -1
- package/dist/src/runtime/executors/loaders/order-handler.d.ts +31 -3
- package/dist/src/runtime/executors/loaders/order-handler.d.ts.map +1 -1
- package/dist/src/runtime/executors/loaders/order-handler.js +194 -14
- package/dist/src/runtime/executors/loaders/order-handler.js.map +1 -1
- package/dist/src/runtime/executors/loaders/order-upsert-handler.d.ts +15 -0
- package/dist/src/runtime/executors/loaders/order-upsert-handler.d.ts.map +1 -0
- package/dist/src/runtime/executors/loaders/order-upsert-handler.js +89 -0
- package/dist/src/runtime/executors/loaders/order-upsert-handler.js.map +1 -0
- package/dist/src/runtime/executors/loaders/payment-method-handler.d.ts +11 -2
- package/dist/src/runtime/executors/loaders/payment-method-handler.d.ts.map +1 -1
- package/dist/src/runtime/executors/loaders/payment-method-handler.js +78 -33
- package/dist/src/runtime/executors/loaders/payment-method-handler.js.map +1 -1
- package/dist/src/runtime/executors/loaders/product-handler.d.ts +14 -0
- package/dist/src/runtime/executors/loaders/product-handler.d.ts.map +1 -1
- package/dist/src/runtime/executors/loaders/product-handler.js +91 -19
- package/dist/src/runtime/executors/loaders/product-handler.js.map +1 -1
- package/dist/src/runtime/executors/loaders/promotion-handler.d.ts +9 -2
- package/dist/src/runtime/executors/loaders/promotion-handler.d.ts.map +1 -1
- package/dist/src/runtime/executors/loaders/promotion-handler.js +115 -68
- package/dist/src/runtime/executors/loaders/promotion-handler.js.map +1 -1
- package/dist/src/runtime/executors/loaders/shared-lookups.d.ts +35 -1
- package/dist/src/runtime/executors/loaders/shared-lookups.d.ts.map +1 -1
- package/dist/src/runtime/executors/loaders/shared-lookups.js +102 -0
- package/dist/src/runtime/executors/loaders/shared-lookups.js.map +1 -1
- package/dist/src/runtime/executors/loaders/shipping-method-handler.d.ts +11 -6
- package/dist/src/runtime/executors/loaders/shipping-method-handler.d.ts.map +1 -1
- package/dist/src/runtime/executors/loaders/shipping-method-handler.js +168 -61
- package/dist/src/runtime/executors/loaders/shipping-method-handler.js.map +1 -1
- package/dist/src/runtime/executors/loaders/stock-location-handler.d.ts.map +1 -1
- package/dist/src/runtime/executors/loaders/stock-location-handler.js +2 -27
- package/dist/src/runtime/executors/loaders/stock-location-handler.js.map +1 -1
- package/dist/src/runtime/executors/loaders/variant-handler.d.ts.map +1 -1
- package/dist/src/runtime/executors/loaders/variant-handler.js +85 -12
- package/dist/src/runtime/executors/loaders/variant-handler.js.map +1 -1
- package/dist/src/runtime/executors/sink-handler-registry.d.ts +7 -11
- package/dist/src/runtime/executors/sink-handler-registry.d.ts.map +1 -1
- package/dist/src/runtime/executors/sink-handler-registry.js +374 -8
- package/dist/src/runtime/executors/sink-handler-registry.js.map +1 -1
- package/dist/src/runtime/executors/sink.executor.d.ts +1 -0
- package/dist/src/runtime/executors/sink.executor.d.ts.map +1 -1
- package/dist/src/runtime/executors/sink.executor.js +82 -12
- package/dist/src/runtime/executors/sink.executor.js.map +1 -1
- package/dist/src/runtime/executors/transform.executor.d.ts.map +1 -1
- package/dist/src/runtime/executors/transform.executor.js +31 -2
- package/dist/src/runtime/executors/transform.executor.js.map +1 -1
- package/dist/src/runtime/orchestration/graph-executor.d.ts.map +1 -1
- package/dist/src/runtime/orchestration/graph-executor.js +3 -2
- package/dist/src/runtime/orchestration/graph-executor.js.map +1 -1
- package/dist/src/runtime/orchestration/helpers.d.ts +4 -1
- package/dist/src/runtime/orchestration/helpers.d.ts.map +1 -1
- package/dist/src/runtime/orchestration/helpers.js +7 -2
- package/dist/src/runtime/orchestration/helpers.js.map +1 -1
- package/dist/src/runtime/orchestration/linear-executor.d.ts.map +1 -1
- package/dist/src/runtime/orchestration/linear-executor.js +3 -2
- package/dist/src/runtime/orchestration/linear-executor.js.map +1 -1
- package/dist/src/runtime/orchestration/replay-executor.d.ts.map +1 -1
- package/dist/src/runtime/orchestration/replay-executor.js +3 -2
- package/dist/src/runtime/orchestration/replay-executor.js.map +1 -1
- package/dist/src/runtime/orchestration/step-strategies/export-step.strategy.d.ts.map +1 -1
- package/dist/src/runtime/orchestration/step-strategies/export-step.strategy.js +12 -12
- package/dist/src/runtime/orchestration/step-strategies/export-step.strategy.js.map +1 -1
- package/dist/src/runtime/orchestration/step-strategies/feed-step.strategy.d.ts.map +1 -1
- package/dist/src/runtime/orchestration/step-strategies/feed-step.strategy.js +12 -12
- package/dist/src/runtime/orchestration/step-strategies/feed-step.strategy.js.map +1 -1
- package/dist/src/runtime/orchestration/step-strategies/load-step.strategy.js +2 -2
- package/dist/src/runtime/orchestration/step-strategies/load-step.strategy.js.map +1 -1
- package/dist/src/runtime/orchestration/step-strategies/sink-step.strategy.d.ts.map +1 -1
- package/dist/src/runtime/orchestration/step-strategies/sink-step.strategy.js +12 -12
- package/dist/src/runtime/orchestration/step-strategies/sink-step.strategy.js.map +1 -1
- package/dist/src/runtime/orchestration/step-strategies/step-dispatcher.d.ts.map +1 -1
- package/dist/src/runtime/orchestration/step-strategies/step-dispatcher.js +4 -3
- package/dist/src/runtime/orchestration/step-strategies/step-dispatcher.js.map +1 -1
- package/dist/src/runtime/orchestration/step-strategies/transform-step.strategy.js +4 -4
- package/dist/src/runtime/orchestration/step-strategies/transform-step.strategy.js.map +1 -1
- package/dist/src/runtime/orchestration/types.d.ts +1 -0
- package/dist/src/runtime/orchestration/types.d.ts.map +1 -1
- package/dist/src/runtime/utils.d.ts.map +1 -1
- package/dist/src/runtime/utils.js +8 -1
- package/dist/src/runtime/utils.js.map +1 -1
- package/dist/src/sdk/adapters/queue/index.d.ts +1 -0
- package/dist/src/sdk/adapters/queue/index.d.ts.map +1 -1
- package/dist/src/sdk/adapters/queue/index.js +1 -0
- package/dist/src/sdk/adapters/queue/index.js.map +1 -1
- package/dist/src/sdk/adapters/queue/internal.adapter.d.ts +32 -0
- package/dist/src/sdk/adapters/queue/internal.adapter.d.ts.map +1 -0
- package/dist/src/sdk/adapters/queue/internal.adapter.js +68 -0
- package/dist/src/sdk/adapters/queue/internal.adapter.js.map +1 -0
- package/dist/src/sdk/adapters/queue/queue-adapter.registry.d.ts.map +1 -1
- package/dist/src/sdk/adapters/queue/queue-adapter.registry.js +3 -0
- package/dist/src/sdk/adapters/queue/queue-adapter.registry.js.map +1 -1
- package/dist/src/sdk/adapters/queue/rabbitmq.adapter.d.ts.map +1 -1
- package/dist/src/sdk/adapters/queue/rabbitmq.adapter.js +2 -1
- package/dist/src/sdk/adapters/queue/rabbitmq.adapter.js.map +1 -1
- package/dist/src/sdk/constants.d.ts +2 -2
- package/dist/src/sdk/constants.d.ts.map +1 -1
- package/dist/src/sdk/dsl/pipeline-builder.d.ts +8 -2
- package/dist/src/sdk/dsl/pipeline-builder.d.ts.map +1 -1
- package/dist/src/sdk/dsl/pipeline-builder.js +115 -19
- package/dist/src/sdk/dsl/pipeline-builder.js.map +1 -1
- package/dist/src/sdk/dsl/step-configs.d.ts +73 -7
- package/dist/src/sdk/dsl/step-configs.d.ts.map +1 -1
- package/dist/src/services/events/consumer-discovery.d.ts.map +1 -1
- package/dist/src/services/events/consumer-discovery.js +13 -11
- package/dist/src/services/events/consumer-discovery.js.map +1 -1
- package/dist/src/services/events/consumer-lifecycle.d.ts.map +1 -1
- package/dist/src/services/events/consumer-lifecycle.js +19 -15
- package/dist/src/services/events/consumer-lifecycle.js.map +1 -1
- package/dist/src/services/events/event-trigger.service.d.ts.map +1 -1
- package/dist/src/services/events/event-trigger.service.js +8 -3
- package/dist/src/services/events/event-trigger.service.js.map +1 -1
- package/dist/src/services/events/hook.service.d.ts.map +1 -1
- package/dist/src/services/events/hook.service.js +7 -3
- package/dist/src/services/events/hook.service.js.map +1 -1
- package/dist/src/services/events/message-processing.d.ts.map +1 -1
- package/dist/src/services/events/message-processing.js +13 -8
- package/dist/src/services/events/message-processing.js.map +1 -1
- package/dist/src/services/logger/datahub-logger.d.ts +7 -0
- package/dist/src/services/logger/datahub-logger.d.ts.map +1 -1
- package/dist/src/services/logger/datahub-logger.js +9 -0
- package/dist/src/services/logger/datahub-logger.js.map +1 -1
- package/dist/src/services/pipeline/pipeline-runner.service.d.ts +3 -1
- package/dist/src/services/pipeline/pipeline-runner.service.d.ts.map +1 -1
- package/dist/src/services/pipeline/pipeline-runner.service.js +14 -4
- package/dist/src/services/pipeline/pipeline-runner.service.js.map +1 -1
- package/dist/src/services/pipeline/pipeline.service.d.ts.map +1 -1
- package/dist/src/services/pipeline/pipeline.service.js +8 -2
- package/dist/src/services/pipeline/pipeline.service.js.map +1 -1
- package/dist/src/services/storage/retention.service.d.ts.map +1 -1
- package/dist/src/services/storage/retention.service.js +22 -0
- package/dist/src/services/storage/retention.service.js.map +1 -1
- package/dist/src/services/testing/step-test.service.d.ts.map +1 -1
- package/dist/src/services/testing/step-test.service.js +17 -1
- package/dist/src/services/testing/step-test.service.js.map +1 -1
- package/dist/src/services/validation/definition-validation.service.d.ts.map +1 -1
- package/dist/src/services/validation/definition-validation.service.js +4 -1
- package/dist/src/services/validation/definition-validation.service.js.map +1 -1
- package/dist/src/services/validation/trigger-validation.d.ts.map +1 -1
- package/dist/src/services/validation/trigger-validation.js +79 -12
- package/dist/src/services/validation/trigger-validation.js.map +1 -1
- package/dist/src/types/index.d.ts +1 -0
- package/dist/src/types/index.d.ts.map +1 -1
- package/dist/src/types/index.js.map +1 -1
- package/dist/src/types/loader-configs.d.ts +1071 -0
- package/dist/src/types/loader-configs.d.ts.map +1 -0
- package/dist/src/types/loader-configs.js +54 -0
- package/dist/src/types/loader-configs.js.map +1 -0
- package/dist/src/types/step-configs.d.ts +14 -5
- package/dist/src/types/step-configs.d.ts.map +1 -1
- package/dist/src/types/step-configs.js +3 -0
- package/dist/src/types/step-configs.js.map +1 -1
- package/dist/src/utils/code-security.utils.d.ts +18 -0
- package/dist/src/utils/code-security.utils.d.ts.map +1 -1
- package/dist/src/utils/code-security.utils.js +125 -9
- package/dist/src/utils/code-security.utils.js.map +1 -1
- package/dist/src/validation/pipeline-definition.validator.js +2 -1
- package/dist/src/validation/pipeline-definition.validator.js.map +1 -1
- package/docs/developer-guide/README.md +2 -0
- package/docs/developer-guide/dsl/pipeline-builder.md +12 -0
- package/docs/developer-guide/extending/README.md +230 -10
- package/docs/developer-guide/extending/custom-sinks.md +87 -0
- package/docs/developer-guide/extending/events.md +4 -1
- package/docs/examples/validation-error-messages.md +246 -0
- package/docs/guides/multi-channel.md +1190 -0
- package/docs/guides/multi-currency.md +881 -0
- package/docs/guides/multi-entity.md +597 -0
- package/docs/guides/multi-language.md +957 -0
- package/docs/reference/README.md +11 -4
- package/docs/reference/extractors.md +30 -0
- package/docs/reference/loaders.md +359 -21
- package/docs/reference/operators-complete.md +1251 -0
- package/docs/reference/operators.md +36 -2
- package/docs/reference/sinks.md +7 -6
- package/docs/reference/step-types.md +12 -5
- package/docs/user-guide/pipelines.md +82 -13
- package/package.json +1 -1
- package/shared/types/adapter-config.types.ts +162 -2
- package/shared/types/index.ts +12 -0
- package/shared/types/loader.types.ts +4 -0
- package/shared/types/step.types.ts +6 -0
- package/shared/types/trigger.types.ts +0 -4
|
@@ -289,7 +289,7 @@ Enrich records by fetching data from external HTTP endpoints with caching, authe
|
|
|
289
289
|
| `basicAuthSecretCode` | string | No | Secret code for Basic auth (username:password) |
|
|
290
290
|
| `bodyField` | string | No | Field path for POST body (uses record value at this path) |
|
|
291
291
|
| `body` | json | No | Static POST body (JSON object) |
|
|
292
|
-
| `skipOn404` | boolean | No |
|
|
292
|
+
| `skipOn404` | boolean | No | Remove record from pipeline if endpoint returns 404 (see note below) |
|
|
293
293
|
| `failOnError` | boolean | No | Fail pipeline if HTTP request fails |
|
|
294
294
|
| `maxRetries` | number | No | Maximum retry attempts on transient errors |
|
|
295
295
|
| `batchSize` | number | No | Process this many records in parallel (default: 50) |
|
|
@@ -322,6 +322,8 @@ Enrich records by fetching data from external HTTP endpoints with caching, authe
|
|
|
322
322
|
} }
|
|
323
323
|
```
|
|
324
324
|
|
|
325
|
+
> **`skipOn404` behavior:** When `skipOn404: true` and the enrichment HTTP lookup returns a 404, the record is **removed from the pipeline** (not passed through with original values). To preserve records when enrichment fails, use `default` to provide a fallback value instead.
|
|
326
|
+
|
|
325
327
|
---
|
|
326
328
|
|
|
327
329
|
## String Operators
|
|
@@ -697,6 +699,8 @@ Add or subtract time from a date.
|
|
|
697
699
|
| `amount` | number | Yes | Amount (negative to subtract) |
|
|
698
700
|
| `unit` | string | Yes | `seconds`, `minutes`, `hours`, `days`, `weeks`, `months`, `years` |
|
|
699
701
|
|
|
702
|
+
> **Important:** Unit strings must be plural: `"days"`, `"hours"`, `"minutes"`, `"seconds"`, `"weeks"`, `"months"`, `"years"`. Singular forms like `"day"` are not supported.
|
|
703
|
+
|
|
700
704
|
```typescript
|
|
701
705
|
{ op: 'dateAdd', args: { source: 'orderDate', target: 'expiresAt', amount: 30, unit: 'days' } }
|
|
702
706
|
{ op: 'dateAdd', args: { source: 'createdAt', target: 'previousDay', amount: -1, unit: 'days' } }
|
|
@@ -714,6 +718,8 @@ Calculate the difference between two dates.
|
|
|
714
718
|
| `unit` | select | Yes | `seconds`, `minutes`, `hours`, `days`, `weeks`, `months`, `years` |
|
|
715
719
|
| `absolute` | boolean | No | Return absolute value (no negative numbers) |
|
|
716
720
|
|
|
721
|
+
> **Important:** Unit strings must be plural: `"days"`, `"hours"`, `"minutes"`, `"seconds"`, `"weeks"`, `"months"`, `"years"`. Singular forms like `"day"` are not supported.
|
|
722
|
+
|
|
717
723
|
```typescript
|
|
718
724
|
{ op: 'dateDiff', args: { startDate: 'createdAt', endDate: 'completedAt', target: 'durationDays', unit: 'days' } }
|
|
719
725
|
{ op: 'dateDiff', args: { startDate: 'orderDate', endDate: 'deliveryDate', target: 'deliveryHours', unit: 'hours', absolute: true } }
|
|
@@ -748,7 +754,7 @@ Filter records by conditions.
|
|
|
748
754
|
| `conditions` | array | Yes | Array of condition objects |
|
|
749
755
|
| `action` | string | Yes | `keep` or `drop` |
|
|
750
756
|
|
|
751
|
-
Condition operators: `eq`, `ne`, `gt`, `gte`, `lt`, `lte`, `in`, `notIn`, `contains`, `notContains`, `startsWith`, `endsWith`, `regex`, `exists`, `isNull`
|
|
757
|
+
Condition operators: `eq`, `ne`, `gt`, `gte`, `lt`, `lte`, `in`, `notIn`, `contains`, `notContains`, `startsWith`, `endsWith`, `regex`, `exists`, `notExists`, `isNull`, `isEmpty`, `isNotEmpty`, `matches` (glob)
|
|
752
758
|
|
|
753
759
|
```typescript
|
|
754
760
|
{ op: 'when', args: {
|
|
@@ -805,6 +811,34 @@ Set a value based on multiple conditions.
|
|
|
805
811
|
}}
|
|
806
812
|
```
|
|
807
813
|
|
|
814
|
+
### Comparison Operators
|
|
815
|
+
|
|
816
|
+
All 19 comparison operators used by `when`, `ifThenElse`, `switch`, and ROUTE step conditions:
|
|
817
|
+
|
|
818
|
+
| Operator | Description | Example |
|
|
819
|
+
|----------|-------------|---------|
|
|
820
|
+
| `eq` | Equal (strict `===`) | `{ field: 'status', cmp: 'eq', value: 'active' }` |
|
|
821
|
+
| `ne` | Not equal (strict `!==`) | `{ field: 'status', cmp: 'ne', value: 'deleted' }` |
|
|
822
|
+
| `gt` | Greater than (numeric) | `{ field: 'price', cmp: 'gt', value: 0 }` |
|
|
823
|
+
| `gte` | Greater than or equal (numeric) | `{ field: 'stock', cmp: 'gte', value: 10 }` |
|
|
824
|
+
| `lt` | Less than (numeric) | `{ field: 'price', cmp: 'lt', value: 1000 }` |
|
|
825
|
+
| `lte` | Less than or equal (numeric) | `{ field: 'weight', cmp: 'lte', value: 50 }` |
|
|
826
|
+
| `in` | Value in array | `{ field: 'status', cmp: 'in', value: ['active', 'pending'] }` |
|
|
827
|
+
| `notIn` | Value not in array | `{ field: 'status', cmp: 'notIn', value: ['deleted', 'archived'] }` |
|
|
828
|
+
| `contains` | String contains substring | `{ field: 'name', cmp: 'contains', value: 'widget' }` |
|
|
829
|
+
| `notContains` | String does not contain | `{ field: 'name', cmp: 'notContains', value: 'test' }` |
|
|
830
|
+
| `startsWith` | String starts with | `{ field: 'sku', cmp: 'startsWith', value: 'PRD-' }` |
|
|
831
|
+
| `endsWith` | String ends with | `{ field: 'email', cmp: 'endsWith', value: '@example.com' }` |
|
|
832
|
+
| `regex` | Regular expression match | `{ field: 'sku', cmp: 'regex', value: '^[A-Z]{3}-\\d+$' }` |
|
|
833
|
+
| `matches` | Glob pattern match | `{ field: 'path', cmp: 'matches', value: '/products/**/*.json' }` |
|
|
834
|
+
| `exists` | Value is not null/undefined | `{ field: 'email', cmp: 'exists', value: true }` |
|
|
835
|
+
| `notExists` | Value is null or undefined | `{ field: 'deletedAt', cmp: 'notExists', value: true }` |
|
|
836
|
+
| `isNull` | Value is null or undefined | `{ field: 'description', cmp: 'isNull', value: true }` |
|
|
837
|
+
| `isEmpty` | Empty string, null, undefined, or empty array | `{ field: 'tags', cmp: 'isEmpty', value: true }` |
|
|
838
|
+
| `isNotEmpty` | Non-empty value (string, array, etc.) | `{ field: 'name', cmp: 'isNotEmpty', value: true }` |
|
|
839
|
+
|
|
840
|
+
---
|
|
841
|
+
|
|
808
842
|
### deltaFilter
|
|
809
843
|
|
|
810
844
|
Filter out unchanged records using stable hashing.
|
package/docs/reference/sinks.md
CHANGED
|
@@ -352,14 +352,13 @@ Adjust batch size based on:
|
|
|
352
352
|
|
|
353
353
|
### Concurrency
|
|
354
354
|
|
|
355
|
-
For large datasets,
|
|
355
|
+
For large datasets, configure parallel processing per pipeline step:
|
|
356
356
|
|
|
357
357
|
```typescript
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
})
|
|
358
|
+
{
|
|
359
|
+
batchSize: 500,
|
|
360
|
+
rateLimitPerSecond: 100, // Adjust based on target system capacity
|
|
361
|
+
}
|
|
363
362
|
```
|
|
364
363
|
|
|
365
364
|
### Refresh Strategy
|
|
@@ -469,6 +468,8 @@ Send records to an HTTP endpoint via POST requests.
|
|
|
469
468
|
| `batchSize` | number | No | Records per request |
|
|
470
469
|
| `timeoutMs` | number | No | Request timeout in milliseconds (default: 30000) |
|
|
471
470
|
| `retries` | number | No | Maximum retry attempts on failure (default: 3) |
|
|
471
|
+
| `hmacSecretCode` | string | No | Secret code for HMAC signing. When set, each request includes an HMAC-SHA256 signature computed over the request body |
|
|
472
|
+
| `signatureHeaderName` | string | No | Header name for the HMAC signature (default: `X-DataHub-Signature`) |
|
|
472
473
|
|
|
473
474
|
### Example - Single Records with Bearer Auth
|
|
474
475
|
|
|
@@ -78,8 +78,15 @@ See [Pipeline Builder - enrich](../developer-guide/dsl/pipeline-builder.md#enric
|
|
|
78
78
|
|
|
79
79
|
Splits data flow based on field conditions. Each branch defines a set of
|
|
80
80
|
conditions using comparison operators (`eq`, `ne`, `gt`, `lt`, `in`,
|
|
81
|
-
`contains`, `regex`, etc.).
|
|
82
|
-
|
|
81
|
+
`contains`, `regex`, etc.).
|
|
82
|
+
|
|
83
|
+
> **Unmatched records:** In graph execution mode, records that don't match any
|
|
84
|
+
> branch condition are collected into a `default` branch. In linear execution
|
|
85
|
+
> mode, if no branch matches any records, the step returns an empty result and
|
|
86
|
+
> unmatched records are silently dropped. A warning is logged when records are
|
|
87
|
+
> dropped. To ensure all records are handled, add a catch-all branch with
|
|
88
|
+
> `{ name: 'fallback', when: [] }` (no conditions = always matches) as the
|
|
89
|
+
> last branch.
|
|
83
90
|
|
|
84
91
|
See [Pipeline Builder - route](../developer-guide/dsl/pipeline-builder.md#route) for configuration.
|
|
85
92
|
|
|
@@ -87,9 +94,9 @@ See [Pipeline Builder - route](../developer-guide/dsl/pipeline-builder.md#route)
|
|
|
87
94
|
|
|
88
95
|
## LOAD
|
|
89
96
|
|
|
90
|
-
Creates, updates, or deletes Vendure entities. Supports
|
|
91
|
-
including products, variants, customers, collections, facets, orders,
|
|
92
|
-
promotions, assets, and more.
|
|
97
|
+
Creates, updates, or deletes Vendure entities. Supports 24 loader codes
|
|
98
|
+
including products, variants, customers, collections, facets, orders (upsert, notes, transitions, coupons),
|
|
99
|
+
promotions, assets, inventory, entity deletion, and more.
|
|
93
100
|
|
|
94
101
|
**Strategies:** `CREATE`, `UPDATE`, `UPSERT`, `MERGE`, `SOFT_DELETE`, `HARD_DELETE`
|
|
95
102
|
|
|
@@ -217,19 +217,25 @@ Hooks allow you to execute custom code at specific stages of pipeline execution.
|
|
|
217
217
|
| `AFTER_ENRICH` | After enrichment | Yes |
|
|
218
218
|
| `BEFORE_ROUTE` | Before routing | Yes |
|
|
219
219
|
| `AFTER_ROUTE` | After routing | Yes |
|
|
220
|
-
| `BEFORE_LOAD` | Before loading | Yes |
|
|
221
|
-
| `AFTER_LOAD` | After loading |
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
|
226
|
-
|
|
227
|
-
| `
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
|
232
|
-
|
|
220
|
+
| `BEFORE_LOAD` | Before loading to Vendure | Yes |
|
|
221
|
+
| `AFTER_LOAD` | After loading | Yes |
|
|
222
|
+
| `BEFORE_EXPORT` | Before file export | Yes |
|
|
223
|
+
| `AFTER_EXPORT` | After file export | Yes |
|
|
224
|
+
| `BEFORE_FEED` | Before feed generation | Yes |
|
|
225
|
+
| `AFTER_FEED` | After feed generation | Yes |
|
|
226
|
+
| `BEFORE_SINK` | Before search indexing | Yes |
|
|
227
|
+
| `AFTER_SINK` | After search indexing | Yes |
|
|
228
|
+
|
|
229
|
+
**Lifecycle Stages** (observe-only — WEBHOOK, EMIT, LOG, TRIGGER_PIPELINE only, no INTERCEPTOR/SCRIPT):
|
|
230
|
+
|
|
231
|
+
| Stage | When It Runs | Supported Hook Types |
|
|
232
|
+
|-------|--------------|---------------------|
|
|
233
|
+
| `PIPELINE_STARTED` | Pipeline execution begins | WEBHOOK, EMIT, LOG, TRIGGER_PIPELINE |
|
|
234
|
+
| `PIPELINE_COMPLETED` | Pipeline finishes successfully | WEBHOOK, EMIT, LOG, TRIGGER_PIPELINE |
|
|
235
|
+
| `PIPELINE_FAILED` | Pipeline fails | WEBHOOK, EMIT, LOG, TRIGGER_PIPELINE |
|
|
236
|
+
| `ON_ERROR` | When an error occurs | WEBHOOK, EMIT, LOG, TRIGGER_PIPELINE |
|
|
237
|
+
| `ON_RETRY` | When a record is retried | WEBHOOK, EMIT, LOG, TRIGGER_PIPELINE |
|
|
238
|
+
| `ON_DEAD_LETTER` | When a record is sent to dead letter queue | WEBHOOK, EMIT, LOG, TRIGGER_PIPELINE |
|
|
233
239
|
|
|
234
240
|
### Hook Types
|
|
235
241
|
|
|
@@ -262,6 +268,43 @@ Interceptors run JavaScript code that can modify the records array:
|
|
|
262
268
|
})
|
|
263
269
|
```
|
|
264
270
|
|
|
271
|
+
**Modify records before search indexing (Meilisearch, Elasticsearch, etc.):**
|
|
272
|
+
|
|
273
|
+
```typescript
|
|
274
|
+
.hooks({
|
|
275
|
+
BEFORE_SINK: [{
|
|
276
|
+
type: 'INTERCEPTOR',
|
|
277
|
+
name: 'Enrich for search',
|
|
278
|
+
code: `
|
|
279
|
+
return records.map(r => ({
|
|
280
|
+
...r,
|
|
281
|
+
searchText: [r.name, r.sku, r.description].filter(Boolean).join(' ').toLowerCase(),
|
|
282
|
+
facetTags: (r.tags || '').split(',').map(t => t.trim()).filter(Boolean),
|
|
283
|
+
boostScore: r.featured ? 1.5 : 1.0,
|
|
284
|
+
}));
|
|
285
|
+
`,
|
|
286
|
+
}],
|
|
287
|
+
})
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
**Transform records before CSV/JSON export:**
|
|
291
|
+
|
|
292
|
+
```typescript
|
|
293
|
+
.hooks({
|
|
294
|
+
BEFORE_EXPORT: [{
|
|
295
|
+
type: 'INTERCEPTOR',
|
|
296
|
+
name: 'Format for export',
|
|
297
|
+
code: `
|
|
298
|
+
return records.map(r => ({
|
|
299
|
+
...r,
|
|
300
|
+
price: (r.price / 100).toFixed(2),
|
|
301
|
+
createdAt: new Date(r.createdAt).toISOString(),
|
|
302
|
+
}));
|
|
303
|
+
`,
|
|
304
|
+
}],
|
|
305
|
+
})
|
|
306
|
+
```
|
|
307
|
+
|
|
265
308
|
**Available in interceptor code:**
|
|
266
309
|
- `records` - The current records array
|
|
267
310
|
- `context` - Hook context with `pipelineId`, `runId`, `stage`
|
|
@@ -319,6 +362,10 @@ export class MyPlugin implements OnModuleInit {
|
|
|
319
362
|
}
|
|
320
363
|
```
|
|
321
364
|
|
|
365
|
+
> **Tip:** When registering scripts via `HookService.registerScript()` in a NestJS service,
|
|
366
|
+
> your scripts can access any injected service (database, external APIs, Vendure services)
|
|
367
|
+
> through JavaScript closures. See the [Developer Guide](../developer-guide/extending/README.md#hook-capabilities--limitations) for examples.
|
|
368
|
+
|
|
322
369
|
**Use in pipeline:**
|
|
323
370
|
|
|
324
371
|
```typescript
|
|
@@ -335,6 +382,28 @@ export class MyPlugin implements OnModuleInit {
|
|
|
335
382
|
})
|
|
336
383
|
```
|
|
337
384
|
|
|
385
|
+
**Register a script for search index enrichment:**
|
|
386
|
+
|
|
387
|
+
```typescript
|
|
388
|
+
DataHubPlugin.init({
|
|
389
|
+
scripts: {
|
|
390
|
+
'buildSearchAttributes': async (records, context) => {
|
|
391
|
+
return records.map(r => ({
|
|
392
|
+
...r,
|
|
393
|
+
searchText: [r.name, r.sku, r.description]
|
|
394
|
+
.filter(Boolean).join(' ').toLowerCase(),
|
|
395
|
+
facetCategories: r.categories?.map(c => c.name) || [],
|
|
396
|
+
}));
|
|
397
|
+
},
|
|
398
|
+
},
|
|
399
|
+
})
|
|
400
|
+
|
|
401
|
+
// Use in pipeline:
|
|
402
|
+
.hooks({
|
|
403
|
+
BEFORE_SINK: [{ type: 'SCRIPT', scriptName: 'buildSearchAttributes' }],
|
|
404
|
+
})
|
|
405
|
+
```
|
|
406
|
+
|
|
338
407
|
#### Webhook Hooks
|
|
339
408
|
|
|
340
409
|
Send HTTP notifications to external systems:
|
package/package.json
CHANGED
|
@@ -338,6 +338,12 @@ export interface ProductUpsertLoaderConfig {
|
|
|
338
338
|
descriptionField?: string;
|
|
339
339
|
/** Field containing product enabled/published flag */
|
|
340
340
|
enabledField?: string;
|
|
341
|
+
/** Record field containing channel codes (array or comma-separated) for dynamic per-record channel assignment */
|
|
342
|
+
channelsField?: string;
|
|
343
|
+
/** Record field containing translations array or object map for multi-language support.
|
|
344
|
+
* Array format: [{ languageCode: 'en', name: '...', slug?: '...', description?: '...' }, ...]
|
|
345
|
+
* Object map: { en: { name, slug?, description? }, de: { ... } } */
|
|
346
|
+
translationsField?: string;
|
|
341
347
|
/** Field containing SKU */
|
|
342
348
|
skuField?: string;
|
|
343
349
|
/** Field containing price */
|
|
@@ -354,6 +360,12 @@ export interface ProductUpsertLoaderConfig {
|
|
|
354
360
|
customFieldsField?: string;
|
|
355
361
|
/** Whether to create/update variants alongside the product (default: true). Set to false when variants are handled by a separate variantUpsert step. */
|
|
356
362
|
createVariants?: boolean;
|
|
363
|
+
/** How to handle product facet values on update */
|
|
364
|
+
facetValuesMode?: FacetValuesMode;
|
|
365
|
+
/** How to handle product assets on update */
|
|
366
|
+
assetsMode?: AssetsMode;
|
|
367
|
+
/** How to handle product featured asset on update */
|
|
368
|
+
featuredAssetMode?: FeaturedAssetMode;
|
|
357
369
|
}
|
|
358
370
|
|
|
359
371
|
/** Variant Upsert Loader */
|
|
@@ -365,6 +377,14 @@ export interface VariantUpsertLoaderConfig {
|
|
|
365
377
|
skuField?: string;
|
|
366
378
|
/** Field containing variant name */
|
|
367
379
|
nameField?: string;
|
|
380
|
+
/** Field containing variant enabled/published flag (defaults to "enabled") */
|
|
381
|
+
enabledField?: string;
|
|
382
|
+
/** Record field containing channel codes (array or comma-separated) for dynamic per-record channel assignment */
|
|
383
|
+
channelsField?: string;
|
|
384
|
+
/** Record field containing translations array or object map for multi-language support.
|
|
385
|
+
* Array format: [{ languageCode: 'en', name: '...' }, ...]
|
|
386
|
+
* Object map: { en: { name: '...' }, de: { name: '...' } } */
|
|
387
|
+
translationsField?: string;
|
|
368
388
|
/** Field containing price (major units, auto-converted to minor) */
|
|
369
389
|
priceField?: string;
|
|
370
390
|
/** Field containing price map by currency code (object, e.g. { USD: 19.99, EUR: 17.50 }) */
|
|
@@ -388,8 +408,48 @@ export interface VariantUpsertLoaderConfig {
|
|
|
388
408
|
* CREATE: only create new variants, skip existing.
|
|
389
409
|
* UPDATE: only update existing variants, skip missing. */
|
|
390
410
|
strategy?: 'UPSERT' | 'CREATE' | 'UPDATE';
|
|
411
|
+
/** How to handle variant facet values on update */
|
|
412
|
+
facetValuesMode?: FacetValuesMode;
|
|
413
|
+
/** How to handle variant assets on update */
|
|
414
|
+
assetsMode?: AssetsMode;
|
|
415
|
+
/** How to handle variant featured asset on update */
|
|
416
|
+
featuredAssetMode?: FeaturedAssetMode;
|
|
417
|
+
/** How to handle variant options on update */
|
|
418
|
+
optionsMode?: OptionsMode;
|
|
391
419
|
}
|
|
392
420
|
|
|
421
|
+
// NESTED ENTITY MODE TYPES
|
|
422
|
+
|
|
423
|
+
/** How to handle customer addresses on update */
|
|
424
|
+
export type AddressesMode = 'UPSERT_BY_MATCH' | 'REPLACE_ALL' | 'APPEND_ONLY' | 'UPDATE_BY_ID' | 'SKIP';
|
|
425
|
+
|
|
426
|
+
/** How to handle facet values on product/variant update */
|
|
427
|
+
export type FacetValuesMode = 'REPLACE_ALL' | 'MERGE' | 'REMOVE' | 'SKIP';
|
|
428
|
+
|
|
429
|
+
/** How to handle order lines on order update */
|
|
430
|
+
export type LinesMode = 'REPLACE_ALL' | 'MERGE_BY_SKU' | 'APPEND_ONLY' | 'UPDATE_BY_ID' | 'SKIP';
|
|
431
|
+
|
|
432
|
+
/** How to handle assets (product/variant/collection) */
|
|
433
|
+
export type AssetsMode = 'UPSERT_BY_URL' | 'REPLACE_ALL' | 'APPEND_ONLY' | 'SKIP';
|
|
434
|
+
|
|
435
|
+
/** How to handle featured asset (product/variant) */
|
|
436
|
+
export type FeaturedAssetMode = 'UPSERT_BY_URL' | 'REPLACE' | 'SKIP';
|
|
437
|
+
|
|
438
|
+
/** How to handle variant options */
|
|
439
|
+
export type OptionsMode = 'REPLACE_ALL' | 'MERGE' | 'SKIP';
|
|
440
|
+
|
|
441
|
+
/** How to handle collection filters */
|
|
442
|
+
export type FiltersMode = 'REPLACE_ALL' | 'MERGE' | 'SKIP';
|
|
443
|
+
|
|
444
|
+
/** How to handle promotion conditions */
|
|
445
|
+
export type ConditionsMode = 'REPLACE_ALL' | 'MERGE' | 'SKIP';
|
|
446
|
+
|
|
447
|
+
/** How to handle promotion actions */
|
|
448
|
+
export type ActionsMode = 'REPLACE_ALL' | 'MERGE' | 'SKIP';
|
|
449
|
+
|
|
450
|
+
/** How to handle customer groups */
|
|
451
|
+
export type GroupsMode = 'add' | 'set';
|
|
452
|
+
|
|
393
453
|
/** Customer Upsert Loader */
|
|
394
454
|
export interface CustomerUpsertLoaderConfig {
|
|
395
455
|
adapterCode: 'customerUpsert';
|
|
@@ -403,10 +463,14 @@ export interface CustomerUpsertLoaderConfig {
|
|
|
403
463
|
phoneNumberField?: string;
|
|
404
464
|
/** Field containing addresses array */
|
|
405
465
|
addressesField?: string;
|
|
466
|
+
/** How to handle customer addresses on update */
|
|
467
|
+
addressesMode?: AddressesMode;
|
|
468
|
+
/** Comma-separated fields to match existing addresses (for UPSERT_BY_MATCH mode) */
|
|
469
|
+
addressMatchFields?: string;
|
|
406
470
|
/** Field containing group codes */
|
|
407
471
|
groupsField?: string;
|
|
408
472
|
/** Groups mode */
|
|
409
|
-
groupsMode?:
|
|
473
|
+
groupsMode?: GroupsMode;
|
|
410
474
|
/** Field containing custom fields object */
|
|
411
475
|
customFieldsField?: string;
|
|
412
476
|
/** Load strategy: UPSERT (default), CREATE, or UPDATE */
|
|
@@ -457,6 +521,43 @@ export interface RestPostLoaderConfig {
|
|
|
457
521
|
timeoutMs?: number;
|
|
458
522
|
}
|
|
459
523
|
|
|
524
|
+
/** Order Upsert Loader */
|
|
525
|
+
export interface OrderUpsertLoaderConfig {
|
|
526
|
+
adapterCode: 'orderUpsert';
|
|
527
|
+
/** Load strategy: UPSERT (default), CREATE, or UPDATE */
|
|
528
|
+
strategy?: 'UPSERT' | 'CREATE' | 'UPDATE';
|
|
529
|
+
/** Lookup fields for matching existing orders */
|
|
530
|
+
lookupFields?: string;
|
|
531
|
+
/** Field containing order code */
|
|
532
|
+
codeField?: string;
|
|
533
|
+
/** Field containing customer email */
|
|
534
|
+
customerEmailField?: string;
|
|
535
|
+
/** Field containing order lines array */
|
|
536
|
+
linesField?: string;
|
|
537
|
+
/** How to handle order lines on update */
|
|
538
|
+
linesMode?: LinesMode;
|
|
539
|
+
/** Field to match order lines by (for MERGE_BY_SKU and UPDATE_BY_ID modes, default: 'sku') */
|
|
540
|
+
linesMatchBy?: string;
|
|
541
|
+
/** Field containing shipping address */
|
|
542
|
+
shippingAddressField?: string;
|
|
543
|
+
/** Field containing billing address */
|
|
544
|
+
billingAddressField?: string;
|
|
545
|
+
/** Field containing shipping method code */
|
|
546
|
+
shippingMethodCodeField?: string;
|
|
547
|
+
/** Payment method code */
|
|
548
|
+
paymentMethodCode?: string;
|
|
549
|
+
/** Field containing payment method code */
|
|
550
|
+
paymentMethodCodeField?: string;
|
|
551
|
+
/** Target state */
|
|
552
|
+
state?: string;
|
|
553
|
+
/** Field containing state */
|
|
554
|
+
stateField?: string;
|
|
555
|
+
/** Field containing order placed at date */
|
|
556
|
+
orderPlacedAtField?: string;
|
|
557
|
+
/** Field containing custom fields object */
|
|
558
|
+
customFieldsField?: string;
|
|
559
|
+
}
|
|
560
|
+
|
|
460
561
|
/** Order Note Loader */
|
|
461
562
|
export interface OrderNoteLoaderConfig {
|
|
462
563
|
adapterCode: 'orderNote';
|
|
@@ -498,8 +599,18 @@ export interface CollectionUpsertLoaderConfig {
|
|
|
498
599
|
parentSlugField?: string;
|
|
499
600
|
/** Apply collection filters after upsert */
|
|
500
601
|
applyFilters?: boolean;
|
|
602
|
+
/** Field containing multi-language translations (array or object map) */
|
|
603
|
+
translationsField?: string;
|
|
604
|
+
/** Field containing channel codes for per-record channel assignment */
|
|
605
|
+
channelsField?: string;
|
|
606
|
+
/** Field containing isPrivate flag */
|
|
607
|
+
isPrivateField?: string;
|
|
501
608
|
/** Field containing custom fields object */
|
|
502
609
|
customFieldsField?: string;
|
|
610
|
+
/** How to handle collection assets on update */
|
|
611
|
+
assetsMode?: AssetsMode;
|
|
612
|
+
/** How to handle collection filters on update */
|
|
613
|
+
filtersMode?: FiltersMode;
|
|
503
614
|
}
|
|
504
615
|
|
|
505
616
|
/** Asset Attach Loader */
|
|
@@ -541,14 +652,24 @@ export interface PromotionUpsertLoaderConfig {
|
|
|
541
652
|
perCustomerUsageLimitField?: string;
|
|
542
653
|
/** Field containing conditions */
|
|
543
654
|
conditionsField?: string;
|
|
655
|
+
/** How to handle promotion conditions on update */
|
|
656
|
+
conditionsMode?: ConditionsMode;
|
|
544
657
|
/** Field containing actions */
|
|
545
658
|
actionsField?: string;
|
|
659
|
+
/** How to handle promotion actions on update */
|
|
660
|
+
actionsMode?: ActionsMode;
|
|
546
661
|
/** Channel code */
|
|
547
662
|
channel?: string;
|
|
548
663
|
/** Field containing custom fields object */
|
|
549
664
|
customFieldsField?: string;
|
|
550
665
|
/** Load strategy: UPSERT (default), CREATE, or UPDATE */
|
|
551
666
|
strategy?: 'UPSERT' | 'CREATE' | 'UPDATE';
|
|
667
|
+
/** Field containing multi-language translations (array or object map) */
|
|
668
|
+
translationsField?: string;
|
|
669
|
+
/** Field containing channel codes for per-record channel assignment */
|
|
670
|
+
channelsField?: string;
|
|
671
|
+
/** Field containing promotion description */
|
|
672
|
+
descriptionField?: string;
|
|
552
673
|
}
|
|
553
674
|
|
|
554
675
|
/** GraphQL Mutation Loader */
|
|
@@ -595,6 +716,10 @@ export interface FacetUpsertLoaderConfig {
|
|
|
595
716
|
customFieldsField?: string;
|
|
596
717
|
/** Load strategy: UPSERT (default), CREATE, or UPDATE */
|
|
597
718
|
strategy?: 'UPSERT' | 'CREATE' | 'UPDATE';
|
|
719
|
+
/** Field containing multi-language translations (array or object map) */
|
|
720
|
+
translationsField?: string;
|
|
721
|
+
/** Field containing channel codes for per-record channel assignment */
|
|
722
|
+
channelsField?: string;
|
|
598
723
|
}
|
|
599
724
|
|
|
600
725
|
/** Facet Value Upsert Loader */
|
|
@@ -612,6 +737,10 @@ export interface FacetValueUpsertLoaderConfig {
|
|
|
612
737
|
customFieldsField?: string;
|
|
613
738
|
/** Load strategy: UPSERT (default), CREATE, or UPDATE */
|
|
614
739
|
strategy?: 'UPSERT' | 'CREATE' | 'UPDATE';
|
|
740
|
+
/** Field containing multi-language translations (array or object map) */
|
|
741
|
+
translationsField?: string;
|
|
742
|
+
/** Field containing channel codes for per-record channel assignment */
|
|
743
|
+
channelsField?: string;
|
|
615
744
|
}
|
|
616
745
|
|
|
617
746
|
/** Asset Import Loader */
|
|
@@ -665,8 +794,14 @@ export interface PaymentMethodUpsertLoaderConfig {
|
|
|
665
794
|
handlerField: string;
|
|
666
795
|
/** Field containing eligibility checker config { code, args } */
|
|
667
796
|
checkerField?: string;
|
|
797
|
+
/** Field containing custom fields object */
|
|
798
|
+
customFieldsField?: string;
|
|
668
799
|
/** Load strategy: UPSERT (default), CREATE, or UPDATE */
|
|
669
800
|
strategy?: 'UPSERT' | 'CREATE' | 'UPDATE';
|
|
801
|
+
/** Field containing multi-language translations (array or object map) */
|
|
802
|
+
translationsField?: string;
|
|
803
|
+
/** Field containing channel codes for per-record channel assignment */
|
|
804
|
+
channelsField?: string;
|
|
670
805
|
}
|
|
671
806
|
|
|
672
807
|
/** Channel Upsert Loader */
|
|
@@ -692,6 +827,8 @@ export interface ChannelUpsertLoaderConfig {
|
|
|
692
827
|
defaultShippingZoneCodeField?: string;
|
|
693
828
|
/** Field containing seller ID (for multi-vendor) */
|
|
694
829
|
sellerIdField?: string;
|
|
830
|
+
/** Field containing custom fields object */
|
|
831
|
+
customFieldsField?: string;
|
|
695
832
|
/** Load strategy: UPSERT (default), CREATE, or UPDATE */
|
|
696
833
|
strategy?: 'UPSERT' | 'CREATE' | 'UPDATE';
|
|
697
834
|
}
|
|
@@ -711,8 +848,14 @@ export interface ShippingMethodUpsertLoaderConfig {
|
|
|
711
848
|
calculatorField: string;
|
|
712
849
|
/** Field containing eligibility checker config { code, args } */
|
|
713
850
|
checkerField?: string;
|
|
851
|
+
/** Field containing custom fields object */
|
|
852
|
+
customFieldsField?: string;
|
|
714
853
|
/** Load strategy: UPSERT (default), CREATE, or UPDATE */
|
|
715
854
|
strategy?: 'UPSERT' | 'CREATE' | 'UPDATE';
|
|
855
|
+
/** Field containing multi-language translations (array or object map) */
|
|
856
|
+
translationsField?: string;
|
|
857
|
+
/** Field containing channel codes for per-record channel assignment */
|
|
858
|
+
channelsField?: string;
|
|
716
859
|
}
|
|
717
860
|
|
|
718
861
|
/** Customer Group Upsert Loader */
|
|
@@ -754,6 +897,21 @@ export interface InventoryAdjustLoaderConfig {
|
|
|
754
897
|
strategy?: 'UPSERT' | 'CREATE' | 'UPDATE';
|
|
755
898
|
}
|
|
756
899
|
|
|
900
|
+
/** Entity Deletion Loader - Delete entities */
|
|
901
|
+
export interface EntityDeletionLoaderConfig {
|
|
902
|
+
adapterCode: 'entityDeletion';
|
|
903
|
+
/** Entity type to delete (default: 'product') */
|
|
904
|
+
entityType?: 'product' | 'variant' | 'collection' | 'promotion' | 'shipping-method' | 'customer' | 'payment-method' | 'facet' | 'facet-value' | 'customer-group' | 'tax-rate' | 'asset' | 'stock-location';
|
|
905
|
+
/** Record field containing the identifier to match (default depends on entity type) */
|
|
906
|
+
identifierField?: string;
|
|
907
|
+
/** How to match the entity (default depends on entity type) */
|
|
908
|
+
matchBy?: 'slug' | 'sku' | 'id' | 'code' | 'email' | 'name';
|
|
909
|
+
/** Delete variants when deleting a product (default: true) */
|
|
910
|
+
cascadeVariants?: boolean;
|
|
911
|
+
/** Channel code */
|
|
912
|
+
channel?: string;
|
|
913
|
+
}
|
|
914
|
+
|
|
757
915
|
/** Generic config for custom loader adapters */
|
|
758
916
|
export interface GenericLoaderConfig {
|
|
759
917
|
adapterCode: string;
|
|
@@ -765,6 +923,7 @@ export type TypedLoaderConfig =
|
|
|
765
923
|
| ProductUpsertLoaderConfig
|
|
766
924
|
| VariantUpsertLoaderConfig
|
|
767
925
|
| CustomerUpsertLoaderConfig
|
|
926
|
+
| OrderUpsertLoaderConfig
|
|
768
927
|
| StockAdjustLoaderConfig
|
|
769
928
|
| RestPostLoaderConfig
|
|
770
929
|
| GraphqlMutationLoaderConfig
|
|
@@ -784,6 +943,7 @@ export type TypedLoaderConfig =
|
|
|
784
943
|
| CustomerGroupUpsertLoaderConfig
|
|
785
944
|
| StockLocationUpsertLoaderConfig
|
|
786
945
|
| InventoryAdjustLoaderConfig
|
|
946
|
+
| EntityDeletionLoaderConfig
|
|
787
947
|
| GenericLoaderConfig;
|
|
788
948
|
|
|
789
949
|
// EXPORTER CONFIGS
|
|
@@ -972,7 +1132,7 @@ export interface RouteConfig {
|
|
|
972
1132
|
// PERMISSION MAPPINGS
|
|
973
1133
|
|
|
974
1134
|
/** Loader adapter codes that require UpdateCatalog permission */
|
|
975
|
-
export type UpdateCatalogLoaders = 'productUpsert' | 'variantUpsert' | 'stockAdjust' | 'collectionUpsert' | 'assetAttach' | 'assetImport' | 'facetUpsert' | 'facetValueUpsert' | 'stockLocationUpsert' | 'inventoryAdjust';
|
|
1135
|
+
export type UpdateCatalogLoaders = 'productUpsert' | 'variantUpsert' | 'stockAdjust' | 'collectionUpsert' | 'assetAttach' | 'assetImport' | 'facetUpsert' | 'facetValueUpsert' | 'stockLocationUpsert' | 'inventoryAdjust' | 'entityDeletion';
|
|
976
1136
|
|
|
977
1137
|
/** Loader adapter codes that require UpdateCustomer permission */
|
|
978
1138
|
export type UpdateCustomerLoaders = 'customerUpsert' | 'customerGroupUpsert';
|
package/shared/types/index.ts
CHANGED
|
@@ -305,6 +305,16 @@ export type {
|
|
|
305
305
|
} from './runtime-config.types';
|
|
306
306
|
|
|
307
307
|
export type {
|
|
308
|
+
AddressesMode,
|
|
309
|
+
FacetValuesMode,
|
|
310
|
+
LinesMode,
|
|
311
|
+
AssetsMode,
|
|
312
|
+
FeaturedAssetMode,
|
|
313
|
+
OptionsMode,
|
|
314
|
+
FiltersMode,
|
|
315
|
+
ConditionsMode,
|
|
316
|
+
ActionsMode,
|
|
317
|
+
GroupsMode,
|
|
308
318
|
CsvExtractorConfig,
|
|
309
319
|
JsonExtractorConfig,
|
|
310
320
|
ExcelExtractorConfig,
|
|
@@ -330,6 +340,7 @@ export type {
|
|
|
330
340
|
ProductUpsertLoaderConfig,
|
|
331
341
|
VariantUpsertLoaderConfig,
|
|
332
342
|
CustomerUpsertLoaderConfig,
|
|
343
|
+
OrderUpsertLoaderConfig,
|
|
333
344
|
StockAdjustLoaderConfig,
|
|
334
345
|
RestPostLoaderConfig,
|
|
335
346
|
GraphqlMutationLoaderConfig,
|
|
@@ -349,6 +360,7 @@ export type {
|
|
|
349
360
|
CustomerGroupUpsertLoaderConfig,
|
|
350
361
|
StockLocationUpsertLoaderConfig,
|
|
351
362
|
InventoryAdjustLoaderConfig,
|
|
363
|
+
EntityDeletionLoaderConfig,
|
|
352
364
|
GenericLoaderConfig,
|
|
353
365
|
TypedLoaderConfig,
|
|
354
366
|
CsvExportConfig,
|
|
@@ -23,6 +23,8 @@ export interface LoaderOptions {
|
|
|
23
23
|
skipDuplicates?: boolean;
|
|
24
24
|
/** Language code for translations */
|
|
25
25
|
languageCode?: string;
|
|
26
|
+
/** Loader-specific configuration (e.g., nested entity modes) */
|
|
27
|
+
config?: Record<string, unknown>;
|
|
26
28
|
}
|
|
27
29
|
|
|
28
30
|
// LOAD RESULT (Entity-specific, distinct from pipeline LoadResult)
|
|
@@ -51,6 +53,8 @@ export interface EntityValidationResult {
|
|
|
51
53
|
valid: boolean;
|
|
52
54
|
errors: EntityValidationError[];
|
|
53
55
|
warnings: EntityValidationWarning[];
|
|
56
|
+
/** Formatted error message with full context (only present when valid=false) */
|
|
57
|
+
errorMessage?: string;
|
|
54
58
|
}
|
|
55
59
|
|
|
56
60
|
export interface EntityValidationError {
|
|
@@ -192,6 +192,12 @@ export interface PipelineEdge {
|
|
|
192
192
|
condition?: string;
|
|
193
193
|
/** Display label for the edge */
|
|
194
194
|
label?: string;
|
|
195
|
+
/**
|
|
196
|
+
* When true, this edge enforces execution ordering only — records
|
|
197
|
+
* from the source step are NOT passed as input to the target step.
|
|
198
|
+
* Useful for "must run after" semantics without data flow.
|
|
199
|
+
*/
|
|
200
|
+
dependencyOnly?: boolean;
|
|
195
201
|
}
|
|
196
202
|
|
|
197
203
|
/**
|
|
@@ -253,8 +253,6 @@ export interface TriggerConfig {
|
|
|
253
253
|
retryDelayMs?: number;
|
|
254
254
|
/** Timeout for trigger execution in milliseconds */
|
|
255
255
|
timeoutMs?: number;
|
|
256
|
-
/** Event type for event triggers (shorthand) */
|
|
257
|
-
eventType?: string;
|
|
258
256
|
}
|
|
259
257
|
|
|
260
258
|
/**
|
|
@@ -300,6 +298,4 @@ export interface PipelineTrigger extends TriggerConfig {
|
|
|
300
298
|
rateLimit?: number;
|
|
301
299
|
/** Require idempotency key (webhook triggers) */
|
|
302
300
|
requireIdempotencyKey?: boolean;
|
|
303
|
-
/** Event type (event triggers) */
|
|
304
|
-
eventType?: string;
|
|
305
301
|
}
|