@oronts/vendure-data-hub-plugin 0.1.4 → 0.1.6
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 +60 -3
- package/CONTRIBUTING.md +2 -2
- package/README.md +5 -2
- package/dashboard/components/common/ConnectionConfigEditor.tsx +42 -5
- package/dashboard/components/pipelines/PipelineImport.tsx +3 -2
- package/dashboard/components/pipelines/ReactFlowPipelineEditor.tsx +8 -10
- package/dashboard/components/pipelines/shared/NodePropertiesPanel.tsx +1 -1
- package/dashboard/components/pipelines/shared/PipelineNode.tsx +2 -2
- package/dashboard/components/shared/step-config/AdapterRequiredWarning.tsx +3 -3
- package/dashboard/components/shared/step-config/AdvancedEditors.tsx +2 -2
- package/dashboard/components/shared/step-config/EnrichConfigComponent.tsx +1 -1
- package/dashboard/components/shared/step-config/GateConfigComponent.tsx +0 -1
- package/dashboard/components/shared/step-config/OperatorFieldInput.tsx +1 -1
- package/dashboard/components/shared/step-config/RouteConfigComponent.tsx +3 -4
- package/dashboard/components/shared/step-config/StepConfigPanel.tsx +20 -17
- package/dashboard/components/shared/step-config/ValidateConfigComponent.tsx +4 -9
- package/dashboard/components/templates/TemplateGallery.tsx +0 -3
- package/dashboard/components/wizards/export-wizard/ReviewStep.tsx +2 -2
- package/dashboard/components/wizards/import-wizard/ImportWizard.tsx +3 -6
- package/dashboard/components/wizards/import-wizard/MappingStep.tsx +3 -5
- package/dashboard/components/wizards/import-wizard/ReviewStep.tsx +2 -2
- package/dashboard/components/wizards/import-wizard/SourceStep.tsx +3 -3
- package/dashboard/components/wizards/import-wizard/StrategyStep.tsx +1 -2
- package/dashboard/components/wizards/import-wizard/TargetStep.tsx +1 -2
- package/dashboard/components/wizards/import-wizard/TriggerStep.tsx +1 -2
- package/dashboard/constants/colors.ts +1 -1
- package/dashboard/constants/file-format-registry.ts +22 -46
- package/dashboard/constants/ui-types.ts +5 -5
- package/dashboard/gql/gql.ts +3 -3
- package/dashboard/gql/graphql.ts +43 -16
- package/dashboard/hooks/api/use-config-options.ts +4 -6
- package/dashboard/hooks/index.ts +1 -1
- package/dashboard/hooks/use-adapter-catalog.ts +1 -3
- package/dashboard/hooks/use-import-templates.ts +1 -4
- package/dashboard/routes/connections/ConnectionDetail.tsx +22 -7
- package/dashboard/routes/hooks/Hooks.tsx +8 -7
- package/dashboard/routes/logs/Logs.tsx +4 -4
- package/dashboard/routes/logs/components/LogDetailDrawer.tsx +3 -3
- package/dashboard/routes/logs/components/LogExplorerTab.tsx +18 -22
- package/dashboard/routes/logs/components/LogTableRow.tsx +4 -3
- package/dashboard/routes/logs/components/LogsOverviewTab.tsx +3 -3
- package/dashboard/routes/logs/components/RealtimeLogTab.tsx +2 -2
- package/dashboard/routes/pipelines/ImportWizardPage.tsx +1 -1
- package/dashboard/routes/pipelines/PipelineRunsBlock.tsx +6 -6
- package/dashboard/routes/pipelines/RunDetailsPanel.tsx +0 -1
- package/dashboard/routes/pipelines/RunErrorsList.tsx +10 -6
- package/dashboard/routes/pipelines/StepSummaryTable.tsx +3 -4
- package/dashboard/routes/pipelines/components/DryRunDialog.tsx +8 -12
- package/dashboard/routes/pipelines/components/PipelineWebhookInfo.tsx +5 -4
- package/dashboard/routes/pipelines/components/ValidationPanel.tsx +6 -4
- package/dashboard/routes/pipelines/components/VersionHistoryDialog.tsx +1 -1
- package/dashboard/routes/queues/ConsumersTable.tsx +1 -1
- package/dashboard/routes/queues/FailedRunsTable.tsx +1 -1
- package/dashboard/routes/queues/QueuesPage.tsx +5 -3
- package/dashboard/routes/secrets/SecretDetail.tsx +18 -3
- package/dashboard/routes/settings/Settings.tsx +3 -5
- package/dashboard/types/ui-types.ts +1 -2
- package/dashboard/utils/formatters.ts +8 -16
- package/dashboard/utils/icon-resolver.ts +2 -2
- package/dashboard/utils/index.ts +0 -1
- package/dashboard/utils/trigger-sync.ts +0 -8
- package/dashboard/utils/wizard-to-pipeline.ts +35 -14
- package/dist/connectors/registry.d.ts.map +1 -1
- package/dist/connectors/registry.js +22 -5
- package/dist/connectors/registry.js.map +1 -1
- package/dist/dashboard/components/common/ConnectionConfigEditor.tsx +42 -5
- package/dist/dashboard/components/pipelines/PipelineImport.tsx +3 -2
- package/dist/dashboard/components/pipelines/ReactFlowPipelineEditor.tsx +8 -10
- package/dist/dashboard/components/pipelines/shared/NodePropertiesPanel.tsx +1 -1
- package/dist/dashboard/components/pipelines/shared/PipelineNode.tsx +2 -2
- package/dist/dashboard/components/shared/step-config/AdapterRequiredWarning.tsx +3 -3
- package/dist/dashboard/components/shared/step-config/AdvancedEditors.tsx +2 -2
- package/dist/dashboard/components/shared/step-config/EnrichConfigComponent.tsx +1 -1
- package/dist/dashboard/components/shared/step-config/GateConfigComponent.tsx +0 -1
- package/dist/dashboard/components/shared/step-config/OperatorFieldInput.tsx +1 -1
- package/dist/dashboard/components/shared/step-config/RouteConfigComponent.tsx +3 -4
- package/dist/dashboard/components/shared/step-config/StepConfigPanel.tsx +20 -17
- package/dist/dashboard/components/shared/step-config/ValidateConfigComponent.tsx +4 -9
- package/dist/dashboard/components/templates/TemplateGallery.tsx +0 -3
- package/dist/dashboard/components/wizards/export-wizard/ReviewStep.tsx +2 -2
- package/dist/dashboard/components/wizards/import-wizard/ImportWizard.tsx +3 -6
- package/dist/dashboard/components/wizards/import-wizard/MappingStep.tsx +3 -5
- package/dist/dashboard/components/wizards/import-wizard/ReviewStep.tsx +2 -2
- package/dist/dashboard/components/wizards/import-wizard/SourceStep.tsx +3 -3
- package/dist/dashboard/components/wizards/import-wizard/StrategyStep.tsx +1 -2
- package/dist/dashboard/components/wizards/import-wizard/TargetStep.tsx +1 -2
- package/dist/dashboard/components/wizards/import-wizard/TriggerStep.tsx +1 -2
- package/dist/dashboard/constants/colors.ts +1 -1
- package/dist/dashboard/constants/file-format-registry.ts +22 -46
- package/dist/dashboard/constants/ui-types.ts +5 -5
- package/dist/dashboard/gql/gql.ts +3 -3
- package/dist/dashboard/gql/graphql.ts +43 -16
- package/dist/dashboard/hooks/api/use-config-options.ts +4 -6
- package/dist/dashboard/hooks/index.ts +1 -1
- package/dist/dashboard/hooks/use-adapter-catalog.ts +1 -3
- package/dist/dashboard/hooks/use-import-templates.ts +1 -4
- package/dist/dashboard/routes/connections/ConnectionDetail.tsx +22 -7
- package/dist/dashboard/routes/hooks/Hooks.tsx +8 -7
- package/dist/dashboard/routes/logs/Logs.tsx +4 -4
- package/dist/dashboard/routes/logs/components/LogDetailDrawer.tsx +3 -3
- package/dist/dashboard/routes/logs/components/LogExplorerTab.tsx +18 -22
- package/dist/dashboard/routes/logs/components/LogTableRow.tsx +4 -3
- package/dist/dashboard/routes/logs/components/LogsOverviewTab.tsx +3 -3
- package/dist/dashboard/routes/logs/components/RealtimeLogTab.tsx +2 -2
- package/dist/dashboard/routes/pipelines/ImportWizardPage.tsx +1 -1
- package/dist/dashboard/routes/pipelines/PipelineRunsBlock.tsx +6 -6
- package/dist/dashboard/routes/pipelines/RunDetailsPanel.tsx +0 -1
- package/dist/dashboard/routes/pipelines/RunErrorsList.tsx +10 -6
- package/dist/dashboard/routes/pipelines/StepSummaryTable.tsx +3 -4
- package/dist/dashboard/routes/pipelines/components/DryRunDialog.tsx +8 -12
- package/dist/dashboard/routes/pipelines/components/PipelineWebhookInfo.tsx +5 -4
- package/dist/dashboard/routes/pipelines/components/ValidationPanel.tsx +6 -4
- package/dist/dashboard/routes/pipelines/components/VersionHistoryDialog.tsx +1 -1
- package/dist/dashboard/routes/queues/ConsumersTable.tsx +1 -1
- package/dist/dashboard/routes/queues/FailedRunsTable.tsx +1 -1
- package/dist/dashboard/routes/queues/QueuesPage.tsx +5 -3
- package/dist/dashboard/routes/secrets/SecretDetail.tsx +18 -3
- package/dist/dashboard/routes/settings/Settings.tsx +3 -5
- package/dist/dashboard/types/ui-types.ts +1 -2
- package/dist/dashboard/utils/formatters.ts +8 -16
- package/dist/dashboard/utils/icon-resolver.ts +2 -2
- package/dist/dashboard/utils/index.ts +0 -1
- package/dist/dashboard/utils/trigger-sync.ts +0 -8
- package/dist/dashboard/utils/wizard-to-pipeline.ts +35 -14
- package/dist/shared/constants/step-type-configs.d.ts +1 -1
- package/dist/shared/constants/step-type-configs.js +2 -2
- package/dist/shared/constants/step-type-configs.js.map +1 -1
- package/dist/shared/types/adapter-config.types.d.ts +3 -3
- package/dist/shared/types/adapter-config.types.d.ts.map +1 -1
- package/dist/shared/types/adapter.types.d.ts +1 -1
- package/dist/shared/types/execution.types.d.ts +2 -6
- package/dist/shared/types/execution.types.d.ts.map +1 -1
- package/dist/shared/types/extractor.types.d.ts +1 -1
- package/dist/shared/types/extractor.types.d.ts.map +1 -1
- package/dist/shared/types/index.d.ts +2 -2
- package/dist/shared/types/index.d.ts.map +1 -1
- package/dist/shared/types/pipeline.types.d.ts +2 -3
- package/dist/shared/types/pipeline.types.d.ts.map +1 -1
- package/dist/shared/types/step.types.d.ts +2 -2
- package/dist/shared/types/step.types.d.ts.map +1 -1
- package/dist/shared/types/trigger.types.d.ts +4 -27
- package/dist/shared/types/trigger.types.d.ts.map +1 -1
- package/dist/shared/utils/csv-parse.js +2 -2
- package/dist/shared/utils/csv-parse.js.map +1 -1
- package/dist/shared/utils/validation.js +1 -1
- package/dist/shared/utils/validation.js.map +1 -1
- package/dist/shared/vendure-schemas.d.ts +1 -1
- package/dist/shared/vendure-schemas.js +1 -1
- package/dist/src/adapters/registry.d.ts +1 -1
- package/dist/src/adapters/registry.js +1 -1
- package/dist/src/adapters/registry.js.map +1 -1
- package/dist/src/api/controllers/file-upload.controller.d.ts +1 -0
- package/dist/src/api/controllers/file-upload.controller.d.ts.map +1 -1
- package/dist/src/api/controllers/file-upload.controller.js +62 -64
- package/dist/src/api/controllers/file-upload.controller.js.map +1 -1
- package/dist/src/api/controllers/webhook.controller.d.ts.map +1 -1
- package/dist/src/api/controllers/webhook.controller.js +38 -11
- package/dist/src/api/controllers/webhook.controller.js.map +1 -1
- package/dist/src/api/resolvers/analytics.resolver.d.ts +19 -1
- package/dist/src/api/resolvers/analytics.resolver.d.ts.map +1 -1
- package/dist/src/api/resolvers/analytics.resolver.js +18 -1
- package/dist/src/api/resolvers/analytics.resolver.js.map +1 -1
- package/dist/src/api/resolvers/connection.resolver.d.ts +3 -1
- package/dist/src/api/resolvers/connection.resolver.d.ts.map +1 -1
- package/dist/src/api/resolvers/connection.resolver.js +19 -7
- package/dist/src/api/resolvers/connection.resolver.js.map +1 -1
- package/dist/src/api/resolvers/entity-schema.resolver.js +2 -2
- package/dist/src/api/resolvers/entity-schema.resolver.js.map +1 -1
- package/dist/src/api/resolvers/error.resolver.js +1 -1
- package/dist/src/api/resolvers/error.resolver.js.map +1 -1
- package/dist/src/api/resolvers/log.resolver.js +1 -1
- package/dist/src/api/resolvers/log.resolver.js.map +1 -1
- package/dist/src/api/resolvers/pipeline.resolver.d.ts +1 -3
- package/dist/src/api/resolvers/pipeline.resolver.d.ts.map +1 -1
- package/dist/src/api/resolvers/pipeline.resolver.js +10 -27
- package/dist/src/api/resolvers/pipeline.resolver.js.map +1 -1
- package/dist/src/api/resolvers/secret.resolver.d.ts +5 -1
- package/dist/src/api/resolvers/secret.resolver.d.ts.map +1 -1
- package/dist/src/api/resolvers/secret.resolver.js +37 -10
- package/dist/src/api/resolvers/secret.resolver.js.map +1 -1
- package/dist/src/api/schema/connection.schema.d.ts +2 -2
- package/dist/src/api/schema/connection.schema.d.ts.map +1 -1
- package/dist/src/api/schema/connection.schema.js +1 -8
- package/dist/src/api/schema/connection.schema.js.map +1 -1
- package/dist/src/api/schema/log.schema.d.ts +2 -2
- package/dist/src/api/schema/log.schema.d.ts.map +1 -1
- package/dist/src/api/schema/log.schema.js +1 -8
- package/dist/src/api/schema/log.schema.js.map +1 -1
- package/dist/src/api/schema/pipeline.schema.d.ts +2 -2
- package/dist/src/api/schema/pipeline.schema.d.ts.map +1 -1
- package/dist/src/api/schema/pipeline.schema.js +2 -18
- package/dist/src/api/schema/pipeline.schema.js.map +1 -1
- package/dist/src/api/schema/secret.schema.d.ts +2 -2
- package/dist/src/api/schema/secret.schema.d.ts.map +1 -1
- package/dist/src/api/schema/secret.schema.js +1 -9
- package/dist/src/api/schema/secret.schema.js.map +1 -1
- package/dist/src/api/types/index.d.ts +0 -1
- package/dist/src/api/types/index.d.ts.map +1 -1
- package/dist/src/api/types/index.js +0 -1
- package/dist/src/api/types/index.js.map +1 -1
- package/dist/src/api/types/outputs.d.ts +1 -1
- package/dist/src/api/types/outputs.js +1 -1
- package/dist/src/bootstrap/initialization.d.ts.map +1 -1
- package/dist/src/bootstrap/initialization.js +0 -4
- package/dist/src/bootstrap/initialization.js.map +1 -1
- package/dist/src/bootstrap/seed-data.d.ts +3 -1
- package/dist/src/bootstrap/seed-data.d.ts.map +1 -1
- package/dist/src/bootstrap/seed-data.js +50 -29
- package/dist/src/bootstrap/seed-data.js.map +1 -1
- package/dist/src/constants/adapter-schema-options.d.ts +4 -4
- package/dist/src/constants/adapter-schema-options.d.ts.map +1 -1
- package/dist/src/constants/adapter-schema-options.js +21 -14
- package/dist/src/constants/adapter-schema-options.js.map +1 -1
- package/dist/src/constants/adapters.d.ts +1 -1
- package/dist/src/constants/adapters.js +1 -1
- package/dist/src/constants/connection-schemas.d.ts.map +1 -1
- package/dist/src/constants/connection-schemas.js +2 -1
- package/dist/src/constants/connection-schemas.js.map +1 -1
- package/dist/src/constants/core.d.ts +2 -0
- package/dist/src/constants/core.d.ts.map +1 -1
- package/dist/src/constants/core.js +2 -0
- package/dist/src/constants/core.js.map +1 -1
- package/dist/src/constants/defaults/index.d.ts +0 -5
- package/dist/src/constants/defaults/index.d.ts.map +1 -1
- package/dist/src/constants/defaults/index.js +0 -5
- package/dist/src/constants/defaults/index.js.map +1 -1
- package/dist/src/constants/defaults/reliability-defaults.d.ts +8 -2
- package/dist/src/constants/defaults/reliability-defaults.d.ts.map +1 -1
- package/dist/src/constants/defaults/reliability-defaults.js +8 -2
- package/dist/src/constants/defaults/reliability-defaults.js.map +1 -1
- package/dist/src/constants/defaults/scheduler-defaults.d.ts +2 -0
- package/dist/src/constants/defaults/scheduler-defaults.d.ts.map +1 -1
- package/dist/src/constants/defaults/scheduler-defaults.js +2 -0
- package/dist/src/constants/defaults/scheduler-defaults.js.map +1 -1
- package/dist/src/constants/defaults/sink-defaults.d.ts +2 -0
- package/dist/src/constants/defaults/sink-defaults.d.ts.map +1 -1
- package/dist/src/constants/defaults/sink-defaults.js +2 -0
- package/dist/src/constants/defaults/sink-defaults.js.map +1 -1
- package/dist/src/constants/defaults/storage-defaults.d.ts +20 -0
- package/dist/src/constants/defaults/storage-defaults.d.ts.map +1 -1
- package/dist/src/constants/defaults/storage-defaults.js +21 -1
- package/dist/src/constants/defaults/storage-defaults.js.map +1 -1
- package/dist/src/constants/defaults/ui-defaults.d.ts +4 -0
- package/dist/src/constants/defaults/ui-defaults.d.ts.map +1 -1
- package/dist/src/constants/defaults/ui-defaults.js +4 -0
- package/dist/src/constants/defaults/ui-defaults.js.map +1 -1
- package/dist/src/constants/enums.d.ts +11 -2
- package/dist/src/constants/enums.d.ts.map +1 -1
- package/dist/src/constants/enums.js +9 -0
- package/dist/src/constants/enums.js.map +1 -1
- package/dist/src/constants/file-format-metadata.js +3 -3
- package/dist/src/constants/file-format-metadata.js.map +1 -1
- package/dist/src/constants/services.d.ts +1 -0
- package/dist/src/constants/services.d.ts.map +1 -1
- package/dist/src/constants/services.js +1 -0
- package/dist/src/constants/services.js.map +1 -1
- package/dist/src/data-hub.plugin.d.ts.map +1 -1
- package/dist/src/data-hub.plugin.js +3 -5
- package/dist/src/data-hub.plugin.js.map +1 -1
- package/dist/src/entities/data/checkpoint.entity.d.ts +1 -1
- package/dist/src/entities/data/checkpoint.entity.d.ts.map +1 -1
- package/dist/src/entities/data/checkpoint.entity.js +3 -4
- package/dist/src/entities/data/checkpoint.entity.js.map +1 -1
- package/dist/src/entities/data/error-record.entity.d.ts +2 -2
- package/dist/src/entities/data/error-record.entity.d.ts.map +1 -1
- package/dist/src/entities/data/error-record.entity.js +3 -3
- package/dist/src/entities/data/error-record.entity.js.map +1 -1
- package/dist/src/entities/data/retry-audit.entity.d.ts +1 -1
- package/dist/src/entities/data/retry-audit.entity.d.ts.map +1 -1
- package/dist/src/entities/data/retry-audit.entity.js +2 -2
- package/dist/src/entities/data/retry-audit.entity.js.map +1 -1
- package/dist/src/entities/pipeline/pipeline-log.entity.js +1 -1
- package/dist/src/entities/pipeline/pipeline-log.entity.js.map +1 -1
- package/dist/src/entities/pipeline/pipeline-revision.entity.d.ts +1 -1
- package/dist/src/entities/pipeline/pipeline-revision.entity.d.ts.map +1 -1
- package/dist/src/entities/pipeline/pipeline-revision.entity.js +2 -2
- package/dist/src/entities/pipeline/pipeline-revision.entity.js.map +1 -1
- package/dist/src/entities/pipeline/pipeline-run.entity.d.ts +3 -3
- package/dist/src/entities/pipeline/pipeline-run.entity.d.ts.map +1 -1
- package/dist/src/entities/pipeline/pipeline-run.entity.js +4 -4
- package/dist/src/entities/pipeline/pipeline-run.entity.js.map +1 -1
- package/dist/src/entities/pipeline/pipeline.entity.d.ts.map +1 -1
- package/dist/src/entities/pipeline/pipeline.entity.js +1 -4
- package/dist/src/entities/pipeline/pipeline.entity.js.map +1 -1
- package/dist/src/extractors/cdc/cdc.extractor.js +7 -6
- package/dist/src/extractors/cdc/cdc.extractor.js.map +1 -1
- package/dist/src/extractors/database/connection-pool.d.ts +1 -1
- package/dist/src/extractors/database/connection-pool.d.ts.map +1 -1
- package/dist/src/extractors/database/connection-pool.js +84 -7
- package/dist/src/extractors/database/connection-pool.js.map +1 -1
- package/dist/src/extractors/database/database.extractor.d.ts.map +1 -1
- package/dist/src/extractors/database/database.extractor.js +1 -3
- package/dist/src/extractors/database/database.extractor.js.map +1 -1
- package/dist/src/extractors/database/query-builder.d.ts.map +1 -1
- package/dist/src/extractors/database/query-builder.js +15 -19
- package/dist/src/extractors/database/query-builder.js.map +1 -1
- package/dist/src/extractors/ftp/connection.d.ts.map +1 -1
- package/dist/src/extractors/ftp/connection.js +36 -18
- package/dist/src/extractors/ftp/connection.js.map +1 -1
- package/dist/src/extractors/graphql/graphql.extractor.d.ts.map +1 -1
- package/dist/src/extractors/graphql/graphql.extractor.js +8 -1
- package/dist/src/extractors/graphql/graphql.extractor.js.map +1 -1
- package/dist/src/extractors/graphql/helpers.d.ts.map +1 -1
- package/dist/src/extractors/graphql/helpers.js +0 -1
- package/dist/src/extractors/graphql/helpers.js.map +1 -1
- package/dist/src/extractors/graphql/schema.d.ts.map +1 -1
- package/dist/src/extractors/graphql/schema.js +3 -36
- package/dist/src/extractors/graphql/schema.js.map +1 -1
- package/dist/src/extractors/http-api/http-api.extractor.d.ts.map +1 -1
- package/dist/src/extractors/http-api/http-api.extractor.js +3 -1
- package/dist/src/extractors/http-api/http-api.extractor.js.map +1 -1
- package/dist/src/extractors/http-api/response-parser.d.ts.map +1 -1
- package/dist/src/extractors/http-api/response-parser.js +11 -1
- package/dist/src/extractors/http-api/response-parser.js.map +1 -1
- package/dist/src/extractors/http-api/schema.d.ts.map +1 -1
- package/dist/src/extractors/http-api/schema.js +0 -6
- package/dist/src/extractors/http-api/schema.js.map +1 -1
- package/dist/src/extractors/s3/client.d.ts.map +1 -1
- package/dist/src/extractors/s3/client.js +17 -3
- package/dist/src/extractors/s3/client.js.map +1 -1
- package/dist/src/extractors/shared/file-format.utils.d.ts +1 -1
- package/dist/src/extractors/shared/file-format.utils.js +2 -2
- package/dist/src/extractors/shared/file-format.utils.js.map +1 -1
- package/dist/src/feeds/feed-generator.service.d.ts.map +1 -1
- package/dist/src/feeds/feed-generator.service.js +4 -2
- package/dist/src/feeds/feed-generator.service.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 +4 -4
- package/dist/src/feeds/generators/csv-feed.generator.js.map +1 -1
- package/dist/src/feeds/generators/feed-helpers.d.ts.map +1 -1
- package/dist/src/feeds/generators/feed-helpers.js +5 -4
- package/dist/src/feeds/generators/feed-helpers.js.map +1 -1
- package/dist/src/feeds/generators/json-feed.generator.js +1 -1
- package/dist/src/feeds/generators/json-feed.generator.js.map +1 -1
- package/dist/src/gql/generated.d.ts +41 -14
- 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 +19 -5
- package/dist/src/index.js.map +1 -1
- package/dist/src/jobs/handlers/schedule.handler.d.ts.map +1 -1
- package/dist/src/jobs/handlers/schedule.handler.js +6 -4
- package/dist/src/jobs/handlers/schedule.handler.js.map +1 -1
- package/dist/src/jobs/processors/job-processor.js +1 -1
- package/dist/src/jobs/processors/job-processor.js.map +1 -1
- package/dist/src/loaders/asset/asset.loader.d.ts +3 -18
- package/dist/src/loaders/asset/asset.loader.d.ts.map +1 -1
- package/dist/src/loaders/asset/asset.loader.js +4 -20
- package/dist/src/loaders/asset/asset.loader.js.map +1 -1
- package/dist/src/loaders/asset/helpers.d.ts.map +1 -1
- package/dist/src/loaders/asset/helpers.js +19 -9
- package/dist/src/loaders/asset/helpers.js.map +1 -1
- package/dist/src/loaders/base/base-loader.js +1 -1
- package/dist/src/loaders/base/base-loader.js.map +1 -1
- package/dist/src/loaders/base/validation-builder.d.ts.map +1 -1
- package/dist/src/loaders/base/validation-builder.js +0 -1
- package/dist/src/loaders/base/validation-builder.js.map +1 -1
- package/dist/src/loaders/channel/channel.loader.d.ts +3 -27
- package/dist/src/loaders/channel/channel.loader.d.ts.map +1 -1
- package/dist/src/loaders/channel/channel.loader.js +4 -30
- package/dist/src/loaders/channel/channel.loader.js.map +1 -1
- package/dist/src/loaders/channel/helpers.d.ts.map +1 -1
- package/dist/src/loaders/channel/helpers.js +4 -5
- package/dist/src/loaders/channel/helpers.js.map +1 -1
- package/dist/src/loaders/collection/collection.loader.d.ts +3 -17
- package/dist/src/loaders/collection/collection.loader.d.ts.map +1 -1
- package/dist/src/loaders/collection/collection.loader.js +6 -18
- package/dist/src/loaders/collection/collection.loader.js.map +1 -1
- package/dist/src/loaders/collection/helpers.d.ts.map +1 -1
- package/dist/src/loaders/collection/helpers.js +4 -5
- package/dist/src/loaders/collection/helpers.js.map +1 -1
- package/dist/src/loaders/customer/customer.loader.d.ts +3 -15
- package/dist/src/loaders/customer/customer.loader.d.ts.map +1 -1
- package/dist/src/loaders/customer/customer.loader.js +6 -17
- package/dist/src/loaders/customer/customer.loader.js.map +1 -1
- package/dist/src/loaders/customer/helpers.d.ts +0 -1
- package/dist/src/loaders/customer/helpers.d.ts.map +1 -1
- package/dist/src/loaders/customer/helpers.js +9 -12
- package/dist/src/loaders/customer/helpers.js.map +1 -1
- package/dist/src/loaders/customer-group/customer-group.loader.d.ts +3 -15
- package/dist/src/loaders/customer-group/customer-group.loader.d.ts.map +1 -1
- package/dist/src/loaders/customer-group/customer-group.loader.js +3 -16
- package/dist/src/loaders/customer-group/customer-group.loader.js.map +1 -1
- package/dist/src/loaders/facet/facet.loader.d.ts +3 -15
- package/dist/src/loaders/facet/facet.loader.d.ts.map +1 -1
- package/dist/src/loaders/facet/facet.loader.js +4 -17
- package/dist/src/loaders/facet/facet.loader.js.map +1 -1
- package/dist/src/loaders/facet-value/facet-value.loader.d.ts +1 -7
- package/dist/src/loaders/facet-value/facet-value.loader.d.ts.map +1 -1
- package/dist/src/loaders/facet-value/facet-value.loader.js +4 -10
- package/dist/src/loaders/facet-value/facet-value.loader.js.map +1 -1
- package/dist/src/loaders/inventory/inventory.loader.d.ts +4 -13
- package/dist/src/loaders/inventory/inventory.loader.d.ts.map +1 -1
- package/dist/src/loaders/inventory/inventory.loader.js +13 -18
- package/dist/src/loaders/inventory/inventory.loader.js.map +1 -1
- package/dist/src/loaders/order/helpers.d.ts +1 -6
- package/dist/src/loaders/order/helpers.d.ts.map +1 -1
- package/dist/src/loaders/order/helpers.js +12 -31
- package/dist/src/loaders/order/helpers.js.map +1 -1
- package/dist/src/loaders/order/order.loader.d.ts +1 -6
- package/dist/src/loaders/order/order.loader.d.ts.map +1 -1
- package/dist/src/loaders/order/order.loader.js +26 -25
- package/dist/src/loaders/order/order.loader.js.map +1 -1
- package/dist/src/loaders/order/types.d.ts +3 -3
- package/dist/src/loaders/order/types.js +1 -1
- package/dist/src/loaders/payment-method/payment-method.loader.d.ts +3 -33
- package/dist/src/loaders/payment-method/payment-method.loader.d.ts.map +1 -1
- package/dist/src/loaders/payment-method/payment-method.loader.js +10 -42
- package/dist/src/loaders/payment-method/payment-method.loader.js.map +1 -1
- package/dist/src/loaders/product/product.loader.d.ts +3 -15
- package/dist/src/loaders/product/product.loader.d.ts.map +1 -1
- package/dist/src/loaders/product/product.loader.js +3 -16
- package/dist/src/loaders/product/product.loader.js.map +1 -1
- package/dist/src/loaders/product-variant/helpers.d.ts.map +1 -1
- package/dist/src/loaders/product-variant/helpers.js +2 -1
- package/dist/src/loaders/product-variant/helpers.js.map +1 -1
- package/dist/src/loaders/product-variant/product-variant.loader.d.ts +1 -12
- package/dist/src/loaders/product-variant/product-variant.loader.d.ts.map +1 -1
- package/dist/src/loaders/product-variant/product-variant.loader.js +4 -16
- package/dist/src/loaders/product-variant/product-variant.loader.js.map +1 -1
- package/dist/src/loaders/promotion/helpers.d.ts +2 -22
- package/dist/src/loaders/promotion/helpers.d.ts.map +1 -1
- package/dist/src/loaders/promotion/helpers.js +7 -28
- package/dist/src/loaders/promotion/helpers.js.map +1 -1
- package/dist/src/loaders/promotion/promotion.loader.d.ts +3 -15
- package/dist/src/loaders/promotion/promotion.loader.d.ts.map +1 -1
- package/dist/src/loaders/promotion/promotion.loader.js +11 -23
- package/dist/src/loaders/promotion/promotion.loader.js.map +1 -1
- package/dist/src/loaders/shared-helpers.d.ts.map +1 -1
- package/dist/src/loaders/shared-helpers.js +17 -8
- package/dist/src/loaders/shared-helpers.js.map +1 -1
- package/dist/src/loaders/shipping-method/shipping-method.loader.d.ts +3 -15
- package/dist/src/loaders/shipping-method/shipping-method.loader.d.ts.map +1 -1
- package/dist/src/loaders/shipping-method/shipping-method.loader.js +10 -24
- package/dist/src/loaders/shipping-method/shipping-method.loader.js.map +1 -1
- package/dist/src/loaders/stock-location/stock-location.loader.d.ts +3 -15
- package/dist/src/loaders/stock-location/stock-location.loader.d.ts.map +1 -1
- package/dist/src/loaders/stock-location/stock-location.loader.js +3 -16
- package/dist/src/loaders/stock-location/stock-location.loader.js.map +1 -1
- package/dist/src/loaders/tax-rate/helpers.d.ts.map +1 -1
- package/dist/src/loaders/tax-rate/helpers.js +3 -2
- package/dist/src/loaders/tax-rate/helpers.js.map +1 -1
- package/dist/src/loaders/tax-rate/tax-rate.loader.d.ts +3 -23
- package/dist/src/loaders/tax-rate/tax-rate.loader.d.ts.map +1 -1
- package/dist/src/loaders/tax-rate/tax-rate.loader.js +5 -25
- package/dist/src/loaders/tax-rate/tax-rate.loader.js.map +1 -1
- package/dist/src/mappers/helpers/mapping-helpers.d.ts.map +1 -1
- package/dist/src/mappers/helpers/mapping-helpers.js +0 -2
- package/dist/src/mappers/helpers/mapping-helpers.js.map +1 -1
- package/dist/src/mappers/transformers/string/string-transformers.js +2 -2
- package/dist/src/mappers/transformers/string/string-transformers.js.map +1 -1
- package/dist/src/operators/aggregation/helpers.d.ts.map +1 -1
- package/dist/src/operators/aggregation/helpers.js +2 -3
- package/dist/src/operators/aggregation/helpers.js.map +1 -1
- package/dist/src/operators/date/helpers.js +1 -1
- package/dist/src/operators/date/helpers.js.map +1 -1
- package/dist/src/operators/enrichment/helpers.d.ts.map +1 -1
- package/dist/src/operators/enrichment/helpers.js +6 -8
- package/dist/src/operators/enrichment/helpers.js.map +1 -1
- package/dist/src/operators/helpers.d.ts.map +1 -1
- package/dist/src/operators/helpers.js +5 -4
- package/dist/src/operators/helpers.js.map +1 -1
- package/dist/src/operators/index.d.ts +1 -1
- package/dist/src/operators/index.d.ts.map +1 -1
- package/dist/src/operators/index.js +1 -1
- package/dist/src/operators/index.js.map +1 -1
- package/dist/src/operators/json/helpers.js +1 -1
- package/dist/src/operators/json/helpers.js.map +1 -1
- package/dist/src/operators/logic/helpers.d.ts.map +1 -1
- package/dist/src/operators/logic/helpers.js +4 -3
- package/dist/src/operators/logic/helpers.js.map +1 -1
- package/dist/src/operators/numeric/helpers.js +1 -1
- package/dist/src/operators/numeric/helpers.js.map +1 -1
- package/dist/src/operators/script/script.operators.d.ts.map +1 -1
- package/dist/src/operators/script/script.operators.js +17 -8
- package/dist/src/operators/script/script.operators.js.map +1 -1
- package/dist/src/operators/string/helpers.js +3 -3
- package/dist/src/operators/string/helpers.js.map +1 -1
- package/dist/src/parsers/formats/json.parser.d.ts.map +1 -1
- package/dist/src/parsers/formats/json.parser.js +6 -7
- package/dist/src/parsers/formats/json.parser.js.map +1 -1
- package/dist/src/parsers/formats/xml.parser.d.ts.map +1 -1
- package/dist/src/parsers/formats/xml.parser.js +5 -7
- package/dist/src/parsers/formats/xml.parser.js.map +1 -1
- package/dist/src/parsers/helpers/encoding.d.ts.map +1 -1
- package/dist/src/parsers/helpers/encoding.js +4 -3
- package/dist/src/parsers/helpers/encoding.js.map +1 -1
- package/dist/src/parsers/types.d.ts +2 -2
- package/dist/src/parsers/types.js +2 -2
- package/dist/src/runtime/adapter-runtime.service.d.ts +1 -0
- package/dist/src/runtime/adapter-runtime.service.d.ts.map +1 -1
- package/dist/src/runtime/adapter-runtime.service.js +62 -43
- package/dist/src/runtime/adapter-runtime.service.js.map +1 -1
- package/dist/src/runtime/executors/context-adapters.d.ts +4 -9
- package/dist/src/runtime/executors/context-adapters.d.ts.map +1 -1
- package/dist/src/runtime/executors/context-adapters.js +4 -4
- package/dist/src/runtime/executors/context-adapters.js.map +1 -1
- package/dist/src/runtime/executors/export.executor.d.ts.map +1 -1
- package/dist/src/runtime/executors/export.executor.js +10 -7
- 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 +0 -8
- package/dist/src/runtime/executors/exporters/export-handler-registry.js.map +1 -1
- package/dist/src/runtime/executors/exporters/export-helpers.js +1 -1
- package/dist/src/runtime/executors/exporters/export-helpers.js.map +1 -1
- package/dist/src/runtime/executors/exporters/http-export.handler.js +2 -2
- package/dist/src/runtime/executors/exporters/http-export.handler.js.map +1 -1
- package/dist/src/runtime/executors/extract.executor.d.ts.map +1 -1
- package/dist/src/runtime/executors/extract.executor.js +0 -1
- package/dist/src/runtime/executors/extract.executor.js.map +1 -1
- package/dist/src/runtime/executors/extractors/file-extract.handler.d.ts +2 -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 +24 -5
- package/dist/src/runtime/executors/extractors/file-extract.handler.js.map +1 -1
- package/dist/src/runtime/executors/extractors/graphql-extract.handler.d.ts.map +1 -1
- package/dist/src/runtime/executors/extractors/graphql-extract.handler.js +67 -10
- package/dist/src/runtime/executors/extractors/graphql-extract.handler.js.map +1 -1
- package/dist/src/runtime/executors/extractors/rest-extract.handler.d.ts +2 -1
- package/dist/src/runtime/executors/extractors/rest-extract.handler.d.ts.map +1 -1
- package/dist/src/runtime/executors/extractors/rest-extract.handler.js +133 -27
- package/dist/src/runtime/executors/extractors/rest-extract.handler.js.map +1 -1
- package/dist/src/runtime/executors/feed.executor.d.ts +1 -1
- package/dist/src/runtime/executors/feed.executor.js +5 -5
- 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 +0 -13
- package/dist/src/runtime/executors/feeds/feed-handler-registry.js.map +1 -1
- package/dist/src/runtime/executors/gate.executor.d.ts.map +1 -1
- package/dist/src/runtime/executors/gate.executor.js +16 -9
- package/dist/src/runtime/executors/gate.executor.js.map +1 -1
- package/dist/src/runtime/executors/load.executor.js +2 -2
- package/dist/src/runtime/executors/load.executor.js.map +1 -1
- package/dist/src/runtime/executors/loaders/channel-handler.d.ts.map +1 -1
- package/dist/src/runtime/executors/loaders/channel-handler.js +16 -20
- package/dist/src/runtime/executors/loaders/channel-handler.js.map +1 -1
- package/dist/src/runtime/executors/loaders/customer-handler.d.ts +1 -1
- package/dist/src/runtime/executors/loaders/customer-handler.d.ts.map +1 -1
- package/dist/src/runtime/executors/loaders/customer-handler.js +20 -20
- package/dist/src/runtime/executors/loaders/customer-handler.js.map +1 -1
- package/dist/src/runtime/executors/loaders/deletion-handler.d.ts.map +1 -1
- package/dist/src/runtime/executors/loaders/deletion-handler.js +16 -14
- package/dist/src/runtime/executors/loaders/deletion-handler.js.map +1 -1
- package/dist/src/runtime/executors/loaders/inventory-handler.d.ts.map +1 -1
- package/dist/src/runtime/executors/loaders/inventory-handler.js +15 -20
- 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 +0 -11
- package/dist/src/runtime/executors/loaders/loader-handler-registry.js.map +1 -1
- package/dist/src/runtime/executors/loaders/order-handler.d.ts +2 -1
- package/dist/src/runtime/executors/loaders/order-handler.d.ts.map +1 -1
- package/dist/src/runtime/executors/loaders/order-handler.js +20 -10
- package/dist/src/runtime/executors/loaders/order-handler.js.map +1 -1
- package/dist/src/runtime/executors/loaders/product-handler.d.ts +0 -4
- package/dist/src/runtime/executors/loaders/product-handler.d.ts.map +1 -1
- package/dist/src/runtime/executors/loaders/product-handler.js +2 -8
- package/dist/src/runtime/executors/loaders/product-handler.js.map +1 -1
- package/dist/src/runtime/executors/loaders/promotion-handler.js +10 -10
- package/dist/src/runtime/executors/loaders/promotion-handler.js.map +1 -1
- package/dist/src/runtime/executors/loaders/shared-http-client.js +1 -1
- package/dist/src/runtime/executors/loaders/shared-http-client.js.map +1 -1
- package/dist/src/runtime/executors/loaders/shared-lookups.d.ts.map +1 -1
- package/dist/src/runtime/executors/loaders/shared-lookups.js +3 -4
- package/dist/src/runtime/executors/loaders/shared-lookups.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 +27 -19
- package/dist/src/runtime/executors/loaders/variant-handler.js.map +1 -1
- package/dist/src/runtime/executors/sink-handler-registry.d.ts +2 -0
- package/dist/src/runtime/executors/sink-handler-registry.d.ts.map +1 -1
- package/dist/src/runtime/executors/sink-handler-registry.js +82 -49
- package/dist/src/runtime/executors/sink-handler-registry.js.map +1 -1
- package/dist/src/runtime/executors/sink.executor.js +4 -4
- package/dist/src/runtime/executors/sink.executor.js.map +1 -1
- package/dist/src/runtime/executors/transform.executor.d.ts +1 -1
- package/dist/src/runtime/executors/transform.executor.d.ts.map +1 -1
- package/dist/src/runtime/executors/transform.executor.js +44 -30
- package/dist/src/runtime/executors/transform.executor.js.map +1 -1
- package/dist/src/runtime/helpers/dry-run-simulator.js +4 -4
- package/dist/src/runtime/helpers/dry-run-simulator.js.map +1 -1
- package/dist/src/runtime/helpers/execution-lifecycle.d.ts +1 -0
- package/dist/src/runtime/helpers/execution-lifecycle.d.ts.map +1 -1
- package/dist/src/runtime/helpers/execution-lifecycle.js +2 -2
- package/dist/src/runtime/helpers/execution-lifecycle.js.map +1 -1
- package/dist/src/runtime/orchestration/graph-executor.d.ts +1 -0
- package/dist/src/runtime/orchestration/graph-executor.d.ts.map +1 -1
- package/dist/src/runtime/orchestration/graph-executor.js +31 -36
- package/dist/src/runtime/orchestration/graph-executor.js.map +1 -1
- package/dist/src/runtime/orchestration/linear-executor.d.ts +3 -0
- package/dist/src/runtime/orchestration/linear-executor.d.ts.map +1 -1
- package/dist/src/runtime/orchestration/linear-executor.js +3 -13
- 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 +17 -3
- package/dist/src/runtime/orchestration/replay-executor.js.map +1 -1
- package/dist/src/runtime/orchestration/throughput-controller.d.ts.map +1 -1
- package/dist/src/runtime/orchestration/throughput-controller.js +0 -5
- package/dist/src/runtime/orchestration/throughput-controller.js.map +1 -1
- package/dist/src/runtime/sandbox/safe-evaluator.d.ts.map +1 -1
- package/dist/src/runtime/sandbox/safe-evaluator.js +3 -6
- package/dist/src/runtime/sandbox/safe-evaluator.js.map +1 -1
- package/dist/src/runtime/utils.d.ts +1 -1
- package/dist/src/runtime/utils.d.ts.map +1 -1
- package/dist/src/runtime/utils.js +7 -4
- package/dist/src/runtime/utils.js.map +1 -1
- package/dist/src/sdk/adapters/queue/internal.adapter.d.ts +3 -14
- package/dist/src/sdk/adapters/queue/internal.adapter.d.ts.map +1 -1
- package/dist/src/sdk/adapters/queue/internal.adapter.js +41 -27
- package/dist/src/sdk/adapters/queue/internal.adapter.js.map +1 -1
- package/dist/src/sdk/adapters/queue/queue-adapter.interface.d.ts +24 -23
- package/dist/src/sdk/adapters/queue/queue-adapter.interface.d.ts.map +1 -1
- package/dist/src/sdk/adapters/queue/rabbitmq-amqp.adapter.d.ts.map +1 -1
- package/dist/src/sdk/adapters/queue/rabbitmq-amqp.adapter.js +1 -3
- package/dist/src/sdk/adapters/queue/rabbitmq-amqp.adapter.js.map +1 -1
- package/dist/src/sdk/adapters/queue/rabbitmq.adapter.d.ts +2 -17
- package/dist/src/sdk/adapters/queue/rabbitmq.adapter.d.ts.map +1 -1
- package/dist/src/sdk/adapters/queue/rabbitmq.adapter.js +9 -20
- package/dist/src/sdk/adapters/queue/rabbitmq.adapter.js.map +1 -1
- package/dist/src/sdk/adapters/queue/redis-streams.adapter.d.ts.map +1 -1
- package/dist/src/sdk/adapters/queue/redis-streams.adapter.js +11 -3
- package/dist/src/sdk/adapters/queue/redis-streams.adapter.js.map +1 -1
- package/dist/src/sdk/adapters/queue/sqs.adapter.d.ts +1 -1
- package/dist/src/sdk/adapters/queue/sqs.adapter.d.ts.map +1 -1
- package/dist/src/sdk/adapters/queue/sqs.adapter.js +5 -4
- package/dist/src/sdk/adapters/queue/sqs.adapter.js.map +1 -1
- package/dist/src/sdk/constants.d.ts +1 -1
- package/dist/src/sdk/constants.d.ts.map +1 -1
- package/dist/src/sdk/constants.js +2 -1
- package/dist/src/sdk/constants.js.map +1 -1
- package/dist/src/sdk/dsl/pipeline-builder.js +1 -1
- package/dist/src/sdk/dsl/pipeline-builder.js.map +1 -1
- package/dist/src/sdk/dsl/step-configs.d.ts +51 -10
- package/dist/src/sdk/dsl/step-configs.d.ts.map +1 -1
- package/dist/src/sdk/dsl/transform-builder.d.ts +2 -2
- package/dist/src/sdk/dsl/transform-builder.d.ts.map +1 -1
- package/dist/src/sdk/dsl/transform-builder.js +2 -2
- package/dist/src/sdk/dsl/transform-builder.js.map +1 -1
- package/dist/src/sdk/dsl/validation-helpers.js +3 -3
- package/dist/src/sdk/dsl/validation-helpers.js.map +1 -1
- package/dist/src/sdk/registry.service.js +2 -2
- package/dist/src/sdk/registry.service.js.map +1 -1
- package/dist/src/sdk/types/connection-types.d.ts +1 -1
- package/dist/src/sdk/types/connection-types.d.ts.map +1 -1
- package/dist/src/services/analytics/time-series.helpers.d.ts.map +1 -1
- package/dist/src/services/analytics/time-series.helpers.js +4 -6
- package/dist/src/services/analytics/time-series.helpers.js.map +1 -1
- package/dist/src/services/config/connection.service.d.ts.map +1 -1
- package/dist/src/services/config/connection.service.js +11 -1
- package/dist/src/services/config/connection.service.js.map +1 -1
- package/dist/src/services/config/secret.service.d.ts +1 -1
- package/dist/src/services/config/secret.service.d.ts.map +1 -1
- package/dist/src/services/config/secret.service.js +15 -8
- package/dist/src/services/config/secret.service.js.map +1 -1
- package/dist/src/services/config/settings.service.d.ts.map +1 -1
- package/dist/src/services/config/settings.service.js +0 -2
- package/dist/src/services/config/settings.service.js.map +1 -1
- package/dist/src/services/data/checkpoint.service.d.ts.map +1 -1
- package/dist/src/services/data/checkpoint.service.js +14 -8
- package/dist/src/services/data/checkpoint.service.js.map +1 -1
- package/dist/src/services/data/record-error.service.d.ts.map +1 -1
- package/dist/src/services/data/record-error.service.js +0 -13
- package/dist/src/services/data/record-error.service.js.map +1 -1
- package/dist/src/services/destinations/delivery-utils.d.ts +1 -1
- package/dist/src/services/destinations/delivery-utils.d.ts.map +1 -1
- package/dist/src/services/destinations/delivery-utils.js +4 -2
- package/dist/src/services/destinations/delivery-utils.js.map +1 -1
- package/dist/src/services/destinations/destination-handler-registry.d.ts.map +1 -1
- package/dist/src/services/destinations/destination-handler-registry.js +9 -5
- package/dist/src/services/destinations/destination-handler-registry.js.map +1 -1
- package/dist/src/services/destinations/email.handler.js +1 -1
- package/dist/src/services/destinations/email.handler.js.map +1 -1
- package/dist/src/services/destinations/ftp.handler.js +1 -1
- package/dist/src/services/destinations/ftp.handler.js.map +1 -1
- package/dist/src/services/destinations/http.handler.d.ts.map +1 -1
- package/dist/src/services/destinations/http.handler.js +1 -0
- package/dist/src/services/destinations/http.handler.js.map +1 -1
- package/dist/src/services/destinations/s3.handler.d.ts.map +1 -1
- package/dist/src/services/destinations/s3.handler.js +25 -11
- package/dist/src/services/destinations/s3.handler.js.map +1 -1
- package/dist/src/services/events/consumer-discovery.d.ts.map +1 -1
- package/dist/src/services/events/consumer-discovery.js +13 -12
- package/dist/src/services/events/consumer-discovery.js.map +1 -1
- package/dist/src/services/events/domain-events.service.d.ts.map +1 -1
- package/dist/src/services/events/domain-events.service.js +2 -2
- package/dist/src/services/events/domain-events.service.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 +56 -9
- package/dist/src/services/events/event-trigger.service.js.map +1 -1
- package/dist/src/services/events/file-watch.service.d.ts +6 -1
- package/dist/src/services/events/file-watch.service.d.ts.map +1 -1
- package/dist/src/services/events/file-watch.service.js +133 -48
- package/dist/src/services/events/file-watch.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 +64 -12
- package/dist/src/services/events/hook.service.js.map +1 -1
- package/dist/src/services/events/message-consumer.service.d.ts +3 -1
- package/dist/src/services/events/message-consumer.service.d.ts.map +1 -1
- package/dist/src/services/events/message-consumer.service.js +6 -4
- package/dist/src/services/events/message-consumer.service.js.map +1 -1
- package/dist/src/services/events/message-processing.d.ts +4 -1
- package/dist/src/services/events/message-processing.d.ts.map +1 -1
- package/dist/src/services/events/message-processing.js +47 -6
- package/dist/src/services/events/message-processing.js.map +1 -1
- package/dist/src/services/logger/sanitizer.d.ts.map +1 -1
- package/dist/src/services/logger/sanitizer.js +4 -5
- package/dist/src/services/logger/sanitizer.js.map +1 -1
- package/dist/src/services/pipeline/pipeline-log.service.d.ts +0 -4
- package/dist/src/services/pipeline/pipeline-log.service.d.ts.map +1 -1
- package/dist/src/services/pipeline/pipeline-log.service.js +2 -14
- package/dist/src/services/pipeline/pipeline-log.service.js.map +1 -1
- package/dist/src/services/pipeline/pipeline-runner.service.d.ts +6 -1
- package/dist/src/services/pipeline/pipeline-runner.service.d.ts.map +1 -1
- package/dist/src/services/pipeline/pipeline-runner.service.js +111 -17
- package/dist/src/services/pipeline/pipeline-runner.service.js.map +1 -1
- package/dist/src/services/pipeline/pipeline.service.d.ts +8 -4
- package/dist/src/services/pipeline/pipeline.service.d.ts.map +1 -1
- package/dist/src/services/pipeline/pipeline.service.js +51 -35
- package/dist/src/services/pipeline/pipeline.service.js.map +1 -1
- package/dist/src/services/rate-limit/rate-limit.service.d.ts.map +1 -1
- package/dist/src/services/rate-limit/rate-limit.service.js +3 -5
- package/dist/src/services/rate-limit/rate-limit.service.js.map +1 -1
- package/dist/src/services/runtime/batch-rollback.service.d.ts.map +1 -1
- package/dist/src/services/runtime/batch-rollback.service.js +1 -6
- package/dist/src/services/runtime/batch-rollback.service.js.map +1 -1
- package/dist/src/services/runtime/distributed-lock.service.d.ts.map +1 -1
- package/dist/src/services/runtime/distributed-lock.service.js +10 -12
- package/dist/src/services/runtime/distributed-lock.service.js.map +1 -1
- package/dist/src/services/runtime/lock-backends/lock-backend.factory.d.ts +1 -1
- package/dist/src/services/runtime/lock-backends/lock-backend.factory.d.ts.map +1 -1
- package/dist/src/services/runtime/lock-backends/lock-backend.factory.js +5 -4
- package/dist/src/services/runtime/lock-backends/lock-backend.factory.js.map +1 -1
- package/dist/src/services/storage/storage-backend.factory.d.ts.map +1 -1
- package/dist/src/services/storage/storage-backend.factory.js +2 -1
- package/dist/src/services/storage/storage-backend.factory.js.map +1 -1
- package/dist/src/services/validation/adapter-validation.js +2 -2
- package/dist/src/services/validation/adapter-validation.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 +1 -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 +23 -29
- package/dist/src/services/validation/trigger-validation.js.map +1 -1
- package/dist/src/services/versioning/field-detection.d.ts.map +1 -1
- package/dist/src/services/versioning/field-detection.js +0 -1
- package/dist/src/services/versioning/field-detection.js.map +1 -1
- package/dist/src/services/versioning/impact-collectors.d.ts.map +1 -1
- package/dist/src/services/versioning/impact-collectors.js +26 -11
- package/dist/src/services/versioning/impact-collectors.js.map +1 -1
- package/dist/src/services/versioning/revision.service.d.ts.map +1 -1
- package/dist/src/services/versioning/revision.service.js +4 -1
- package/dist/src/services/versioning/revision.service.js.map +1 -1
- package/dist/src/services/versioning/sandbox/load-operation-simulator.d.ts.map +1 -1
- package/dist/src/services/versioning/sandbox/load-operation-simulator.js +26 -10
- package/dist/src/services/versioning/sandbox/load-operation-simulator.js.map +1 -1
- package/dist/src/services/webhooks/webhook-retry.service.d.ts +1 -1
- package/dist/src/services/webhooks/webhook-retry.service.d.ts.map +1 -1
- package/dist/src/services/webhooks/webhook-retry.service.js +27 -22
- package/dist/src/services/webhooks/webhook-retry.service.js.map +1 -1
- package/dist/src/services/webhooks/webhook.helpers.js +1 -1
- package/dist/src/services/webhooks/webhook.helpers.js.map +1 -1
- package/dist/src/templates/defaults.js +6 -6
- package/dist/src/templates/defaults.js.map +1 -1
- package/dist/src/templates/imports/types.d.ts +1 -1
- package/dist/src/templates/imports/types.js +1 -1
- package/dist/src/transforms/field/date-transforms.js +15 -15
- package/dist/src/transforms/field/date-transforms.js.map +1 -1
- package/dist/src/transforms/field/number-transforms.d.ts +0 -26
- package/dist/src/transforms/field/number-transforms.d.ts.map +1 -1
- package/dist/src/transforms/field/number-transforms.js +0 -26
- package/dist/src/transforms/field/number-transforms.js.map +1 -1
- package/dist/src/transforms/helpers/expression-eval.d.ts +0 -1
- package/dist/src/transforms/helpers/expression-eval.d.ts.map +1 -1
- package/dist/src/transforms/helpers/expression-eval.js +15 -26
- package/dist/src/transforms/helpers/expression-eval.js.map +1 -1
- package/dist/src/transforms/record/lookup-transforms.js +1 -1
- package/dist/src/transforms/record/lookup-transforms.js.map +1 -1
- package/dist/src/types/loader-configs.d.ts +6 -6
- package/dist/src/types/loader-configs.d.ts.map +1 -1
- package/dist/src/types/plugin-options.d.ts +0 -10
- package/dist/src/types/plugin-options.d.ts.map +1 -1
- package/dist/src/types/step-configs.d.ts +13 -5
- package/dist/src/types/step-configs.d.ts.map +1 -1
- package/dist/src/types/step-configs.js.map +1 -1
- package/dist/src/types/typed-config.js +1 -1
- package/dist/src/types/typed-config.js.map +1 -1
- package/dist/src/utils/code-security.utils.d.ts.map +1 -1
- package/dist/src/utils/code-security.utils.js +11 -13
- package/dist/src/utils/code-security.utils.js.map +1 -1
- package/dist/src/utils/encryption.utils.d.ts +2 -2
- package/dist/src/utils/encryption.utils.d.ts.map +1 -1
- package/dist/src/utils/encryption.utils.js +13 -17
- package/dist/src/utils/encryption.utils.js.map +1 -1
- package/dist/src/utils/object-path.utils.d.ts.map +1 -1
- package/dist/src/utils/object-path.utils.js +22 -6
- package/dist/src/utils/object-path.utils.js.map +1 -1
- package/dist/src/utils/retry.utils.js +14 -14
- package/dist/src/utils/retry.utils.js.map +1 -1
- package/dist/src/utils/sql-security.utils.d.ts.map +1 -1
- package/dist/src/utils/sql-security.utils.js +6 -3
- package/dist/src/utils/sql-security.utils.js.map +1 -1
- package/dist/src/utils/url-security.utils.d.ts +21 -0
- package/dist/src/utils/url-security.utils.d.ts.map +1 -1
- package/dist/src/utils/url-security.utils.js +71 -3
- package/dist/src/utils/url-security.utils.js.map +1 -1
- package/dist/src/validation/pipeline-definition.validator.js +3 -11
- package/dist/src/validation/pipeline-definition.validator.js.map +1 -1
- package/docs/deployment/README.md +1 -1
- package/docs/deployment/configuration.md +4 -4
- package/docs/deployment/migrations.md +2 -3
- package/docs/deployment/permissions.md +1 -1
- package/docs/deployment/production.md +4 -4
- package/docs/deployment/troubleshooting.md +27 -18
- package/docs/developer-guide/architecture.md +2 -2
- package/docs/developer-guide/extending/README.md +6 -6
- package/docs/developer-guide/extending/events.md +2 -2
- package/docs/developer-guide/graphql-api.md +36 -117
- package/docs/examples/validation-error-messages.md +1 -1
- package/docs/getting-started/quick-start.md +1 -1
- package/docs/guides/multi-entity.md +0 -1
- package/docs/reference/extractors.md +19 -24
- package/docs/reference/operators-complete.md +1 -1
- package/docs/user-guide/external-integrations.md +1 -1
- package/docs/user-guide/queue-messaging.md +14 -11
- package/docs/user-guide/recipes.md +0 -1
- package/docs/user-guide/wizards.md +0 -1
- package/package.json +3 -1
- package/sdk/types/connection-types.ts +9 -0
- package/shared/constants/step-type-configs.ts +2 -2
- package/shared/types/adapter-config.types.ts +3 -3
- package/shared/types/adapter.types.ts +1 -1
- package/shared/types/execution.types.ts +2 -5
- package/shared/types/extractor.types.ts +1 -1
- package/shared/types/index.ts +1 -1
- package/shared/types/pipeline.types.ts +2 -3
- package/shared/types/step.types.ts +3 -4
- package/shared/types/trigger.types.ts +4 -28
- package/shared/utils/csv-parse.ts +2 -2
- package/shared/utils/validation.ts +1 -1
- package/shared/vendure-schemas.ts +1 -1
- package/dist/src/api/types/args.d.ts +0 -12
- package/dist/src/api/types/args.d.ts.map +0 -1
- package/dist/src/api/types/args.js +0 -13
- package/dist/src/api/types/args.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,62 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to the Data Hub Plugin are documented here.
|
|
4
4
|
|
|
5
|
+
## [0.1.6] - 2026-03-29
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
- **Auto-generated list query types**: Vendure now auto-generates `SortParameter`, `FilterParameter`, and `ListOptions` input types for Pipeline, Log, Connection, and Secret list queries — enabling typed sort/filter on all list endpoints
|
|
9
|
+
- **Direct load strategy support in import wizard**: Strategy step now accepts all backend `LoadStrategy` values (CREATE, UPDATE, UPSERT, MERGE, SOFT_DELETE, HARD_DELETE) in addition to wizard-internal mappings
|
|
10
|
+
- **Wizard field mapping for loader configs**: Import wizard now correctly maps user-facing field names (e.g. `sku`, `name`) to loader config keys (e.g. `skuField`, `nameField`) using suffix-based resolution
|
|
11
|
+
- **SSRF protection for database connection strings**: DSN/key-value connection strings are now parsed and validated against the hostname blocklist (PostgreSQL `host=`, MSSQL `Server=`, Oracle `Data Source=`)
|
|
12
|
+
- **Database extractor SSL support**: Full SSL/TLS configuration for PostgreSQL and MySQL connections with CA/cert/key secret references
|
|
13
|
+
- **Improved secret management**: Secret resolver now masks values in API responses, edit form shows "Existing value retained" guidance
|
|
14
|
+
- **Connection config editor improvements**: Dynamic form fields per connection type, header editor with add/remove, auth type switching with field caching
|
|
15
|
+
- **Pipeline run metrics**: Step summary table with per-step record counts, duration, and adapter info in run detail panel
|
|
16
|
+
- **Dry run enhancements**: Summary tab with record counts, Record Diff tab showing field-level changes, Simulate tab with execution preview
|
|
17
|
+
|
|
18
|
+
### Fixed
|
|
19
|
+
- **List query sort/filter**: Replaced manual `sort: JSON` / `filter: JSON` schema definitions with Vendure auto-generated typed parameters — sort queries no longer crash with "Cannot read properties of undefined"
|
|
20
|
+
- **Import wizard strategy mapping**: Selecting UPSERT, CREATE, MERGE, SOFT_DELETE, or HARD_DELETE in the strategy step no longer throws "Unknown strategy" error
|
|
21
|
+
- **Connection create default type**: Creating a new connection without changing the type dropdown now correctly submits `type: "HTTP"` instead of an empty string
|
|
22
|
+
- **Secret create default provider**: Creating a new secret without changing the provider dropdown now correctly submits `provider: "INLINE"` instead of an empty string
|
|
23
|
+
- **Null options crash on list queries**: Passing no options to `dataHubPipelines`, `dataHubLogs`, `dataHubConnections`, or `dataHubSecrets` no longer crashes with null reference error
|
|
24
|
+
- **Entity schema field type enum**: `dataHubLoaderEntitySchemas` now returns uppercase enum values (`STRING`, `NUMBER`, `LOCALIZED_STRING`) matching the GraphQL schema
|
|
25
|
+
- **Record retry crash**: `retryDataHubRecord` mutation no longer crashes when accessing run relation — uses direct `runId` column instead
|
|
26
|
+
- **Checkpoint query relation**: `dataHubCheckpoint` query now loads the pipeline relation to satisfy non-nullable GraphQL field
|
|
27
|
+
- **Queue producer secret resolution**: Sink queue producer now resolves connection secrets before publishing messages
|
|
28
|
+
- **Webhook delivery queue cap**: Queue eviction now protects in-flight deliveries and rejects new deliveries when at capacity
|
|
29
|
+
- **REST extractor connection types**: REST extractor now accepts REST and GRAPHQL connection types alongside HTTP
|
|
30
|
+
|
|
31
|
+
### Changed
|
|
32
|
+
- **277 files updated** across backend, dashboard, and shared modules
|
|
33
|
+
- **Dashboard codegen regenerated** with typed sort/filter parameters for all list queries
|
|
34
|
+
- **Loader handlers**: Improved error diagnostics with SKU and variant ID context in error messages
|
|
35
|
+
- **Security hardening**: URL security utils, SQL security, code security, and encryption utilities updated
|
|
36
|
+
|
|
37
|
+
## [0.1.5] - 2026-03-05
|
|
38
|
+
|
|
39
|
+
### Added
|
|
40
|
+
- **Operation-aware sink CRUD**: Sink executor partitions records by `__operation` field (UPSERT/DELETE) and dispatches to appropriate handlers. Delete handlers for all 7 sink engines: MeiliSearch, Elasticsearch, OpenSearch, Algolia, Typesense, Webhook, Queue Producer
|
|
41
|
+
- **Event trigger operation injection**: Vendure entity events (ProductEvent, OrderEvent, etc.) now inject `__operation` (CREATE/UPDATE/DELETE) into seed records, enabling operation-aware pipelines
|
|
42
|
+
- **BEFORE_SINK / AFTER_SINK hooks**: Sink step strategy now supports record-modifying interceptor hooks before and after search index operations
|
|
43
|
+
- **5 hook demo pipelines**: Interceptor demo, Script demo (DI closure), Search enrichment (BEFORE_SINK), Multi-hook chain (proves modifications flow through all stages), All-stages demo (hooks at every step boundary)
|
|
44
|
+
- **Hook stage metadata**: Extended hook stage constants with sink-specific stages and error handling stages
|
|
45
|
+
- **117 e2e test implementations** across 14 loader test files: customer addresses (5 modes), product facet values (4 modes), product assets (4 modes + featured), variant modes (facets/assets/options), order lines (4 modes), collection modes (assets + filters), promotion modes (conditions + actions) — all using shared test helpers
|
|
46
|
+
- **All 257 e2e tests passing** (was 204/259 in v0.1.4)
|
|
47
|
+
|
|
48
|
+
### Fixed
|
|
49
|
+
- Shared-helpers `updateViaService()` for ProductVariantService array signature
|
|
50
|
+
- Product variant loader `updateEntity()` uses translations array correctly
|
|
51
|
+
- Security and operator tests: query vs mutation, uppercase adapter types
|
|
52
|
+
- Pipeline execution + error recovery tests: isolated `beforeAll`/`afterAll` per block
|
|
53
|
+
- Variant/collection/promotion mode tests: use correct loader classes (not raw handlers)
|
|
54
|
+
- Customer address handler: UPDATE_BY_ID falls back to APPEND_ONLY correctly
|
|
55
|
+
- Order lines: customer setup + linesMode propagation
|
|
56
|
+
- 14 unused imports removed, `let` → `const` fixes, lint-clean codebase
|
|
57
|
+
|
|
58
|
+
### Changed
|
|
59
|
+
- **DRY feed generators**: Extracted `buildBaseFeedItem()` shared across Google/Facebook generators, `flattenTranslationFields()` + `isJsonPrimitive()` in vendure-query helpers, `MAX_SERIALIZATION_DEPTH` constant
|
|
60
|
+
|
|
5
61
|
## [0.1.4] - 2026-03-03
|
|
6
62
|
|
|
7
63
|
### Added
|
|
@@ -52,7 +108,7 @@ Initial production release of the Data Hub Plugin for Vendure.
|
|
|
52
108
|
|
|
53
109
|
#### ETL Pipeline Engine
|
|
54
110
|
- **Full pipeline orchestration**: Extract → Transform → Validate → Enrich → Route → Load → Export/Feed/Sink
|
|
55
|
-
- **
|
|
111
|
+
- **11 step types**: TRIGGER, EXTRACT, TRANSFORM, VALIDATE, ENRICH, ROUTE, LOAD, EXPORT, FEED, SINK, GATE
|
|
56
112
|
- **2 execution modes**: Linear (sequential) and Graph (parallel DAG)
|
|
57
113
|
- **Checkpoint system**: Resumable pipeline runs with state persistence
|
|
58
114
|
- **Error handling**: Quarantine, retry, replay, dead letter queue
|
|
@@ -243,7 +299,7 @@ import { createPipeline, DataHubPlugin } from '@oronts/vendure-data-hub-plugin';
|
|
|
243
299
|
const productSync = createPipeline()
|
|
244
300
|
.name('Product Import')
|
|
245
301
|
.description('Daily product sync from ERP')
|
|
246
|
-
.trigger('
|
|
302
|
+
.trigger('start', { type: 'SCHEDULE', cron: '0 2 * * *' })
|
|
247
303
|
.extract('fetch-products', {
|
|
248
304
|
adapterCode: 'httpApi',
|
|
249
305
|
'connection.endpoint': 'https://erp.example.com/api/products',
|
|
@@ -313,7 +369,7 @@ DataHubPlugin.init({
|
|
|
313
369
|
|
|
314
370
|
### API
|
|
315
371
|
|
|
316
|
-
**GraphQL API** (
|
|
372
|
+
**GraphQL API** (22 resolvers):
|
|
317
373
|
- Pipeline CRUD operations
|
|
318
374
|
- Run execution and monitoring
|
|
319
375
|
- Connection management
|
|
@@ -471,4 +527,5 @@ Pre-built integration for Pimcore PIM/DAM → Vendure sync:
|
|
|
471
527
|
|
|
472
528
|
## Version History
|
|
473
529
|
|
|
530
|
+
- **0.1.5** (2026-03-05) - Operation-aware sink CRUD, hook demos, 257 e2e tests passing
|
|
474
531
|
- **0.1.0** (2026-02-24) - Initial production release
|
package/CONTRIBUTING.md
CHANGED
|
@@ -49,7 +49,7 @@ data-hub/
|
|
|
49
49
|
│ ├── entities/ # TypeORM entities (Pipeline, PipelineRun, etc.)
|
|
50
50
|
│ ├── extractors/ # Data source extractors (REST, GraphQL, CSV, etc.)
|
|
51
51
|
│ ├── feeds/ # Product feed generators (Google, Meta, Amazon, Custom)
|
|
52
|
-
│ ├── jobs/ #
|
|
52
|
+
│ ├── jobs/ # Pipeline execution handlers
|
|
53
53
|
│ ├── loaders/ # Entity loaders (Product, Customer, Order, etc.)
|
|
54
54
|
│ ├── mappers/ # Field mapping utilities
|
|
55
55
|
│ ├── operators/ # Transform operators (string, numeric, date, etc.)
|
|
@@ -149,7 +149,7 @@ Types:
|
|
|
149
149
|
|
|
150
150
|
1. Create a new file in `src/loaders/`
|
|
151
151
|
2. Implement the `LoaderAdapter` interface
|
|
152
|
-
3. Register it in `src/loaders/registry.ts`
|
|
152
|
+
3. Register it in `src/runtime/executors/loaders/loader-handler-registry.ts`
|
|
153
153
|
4. Add tests
|
|
154
154
|
|
|
155
155
|
### Adding a Transform Operator
|
package/README.md
CHANGED
|
@@ -25,9 +25,12 @@
|
|
|
25
25
|
<a href="#operators">Operators</a> •
|
|
26
26
|
<a href="#loaders">Loaders</a> •
|
|
27
27
|
<a href="#hooks">Hooks</a> •
|
|
28
|
-
<a href="#documentation">Docs</a>
|
|
28
|
+
<a href="#documentation">Docs</a> •
|
|
29
|
+
<a href="#license">License</a>
|
|
29
30
|
</p>
|
|
30
31
|
|
|
32
|
+
> **License**: Commercial plugin — free for personal, learning, and non-commercial use. Commercial use requires a license. Contact **office@oronts.com** for details. See [License](#license).
|
|
33
|
+
|
|
31
34
|
---
|
|
32
35
|
|
|
33
36
|
A full-featured ETL (Extract, Transform, Load) plugin for [Vendure](https://www.vendure.io/) e-commerce. Build data pipelines to import products, sync inventory, generate product feeds, index to search engines, and integrate with external systems.
|
|
@@ -886,7 +889,7 @@ The plugin includes a full-featured admin dashboard:
|
|
|
886
889
|
- `completedAt` and `errorMessage` fields on pipeline runs for precise tracking
|
|
887
890
|
|
|
888
891
|
### Queue Management
|
|
889
|
-
- View pending, running, and failed
|
|
892
|
+
- View pending, running, and failed pipeline runs
|
|
890
893
|
- Dead letter queue for quarantined records
|
|
891
894
|
- Retry failed records with payload patching
|
|
892
895
|
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
} from '../../constants';
|
|
10
10
|
import { useOptionValues, useConnectionSchemas } from '../../hooks/api/use-config-options';
|
|
11
11
|
import type { ConnectionSchemaField } from '../../hooks/api/use-config-options';
|
|
12
|
-
import { validateUrl, validatePort
|
|
12
|
+
import { validateUrl, validatePort } from '../../utils';
|
|
13
13
|
import { FieldError } from './ValidationFeedback';
|
|
14
14
|
import type { UIConnectionType, HttpConnectionConfig, DataHubSecret } from '../../types';
|
|
15
15
|
|
|
@@ -150,9 +150,11 @@ function HttpConnectionFields({
|
|
|
150
150
|
return rows;
|
|
151
151
|
}, [normalized.headers]);
|
|
152
152
|
|
|
153
|
+
const [pendingEmptyRow, setPendingEmptyRow] = React.useState<HeaderRow | null>(null);
|
|
154
|
+
|
|
153
155
|
const commitHeaders = (rows: HeaderRow[]) => {
|
|
154
|
-
const
|
|
155
|
-
const next =
|
|
156
|
+
const withContent = rows.filter(row => row.name.trim());
|
|
157
|
+
const next = withContent.length ? Object.fromEntries(withContent.map(row => [row.name.trim(), row.value])) : undefined;
|
|
156
158
|
updateConfig({ headers: next });
|
|
157
159
|
};
|
|
158
160
|
|
|
@@ -215,7 +217,7 @@ function HttpConnectionFields({
|
|
|
215
217
|
type="button"
|
|
216
218
|
variant="outline"
|
|
217
219
|
size="sm"
|
|
218
|
-
onClick={() =>
|
|
220
|
+
onClick={() => setPendingEmptyRow(createHeaderRow())}
|
|
219
221
|
disabled={disabled}
|
|
220
222
|
aria-label="Add new HTTP header"
|
|
221
223
|
>
|
|
@@ -223,7 +225,7 @@ function HttpConnectionFields({
|
|
|
223
225
|
Add header
|
|
224
226
|
</Button>
|
|
225
227
|
</div>
|
|
226
|
-
{headerRows.length === 0 && <p className="text-sm text-muted-foreground">No headers configured.</p>}
|
|
228
|
+
{headerRows.length === 0 && !pendingEmptyRow && <p className="text-sm text-muted-foreground">No headers configured.</p>}
|
|
227
229
|
{headerRows.map(row => (
|
|
228
230
|
<div key={row.id} className="grid grid-cols-[1fr,1fr,auto] gap-3">
|
|
229
231
|
<Input
|
|
@@ -256,6 +258,41 @@ function HttpConnectionFields({
|
|
|
256
258
|
</Button>
|
|
257
259
|
</div>
|
|
258
260
|
))}
|
|
261
|
+
{pendingEmptyRow && (
|
|
262
|
+
<div key={pendingEmptyRow.id} className="grid grid-cols-[1fr,1fr,auto] gap-3">
|
|
263
|
+
<Input
|
|
264
|
+
placeholder={PLACEHOLDERS.HEADER_NAME}
|
|
265
|
+
value={pendingEmptyRow.name}
|
|
266
|
+
autoFocus
|
|
267
|
+
onChange={e => {
|
|
268
|
+
const name = e.target.value;
|
|
269
|
+
if (name.trim()) {
|
|
270
|
+
commitHeaders([...headerRows, { ...pendingEmptyRow, name }]);
|
|
271
|
+
setPendingEmptyRow(null);
|
|
272
|
+
} else {
|
|
273
|
+
setPendingEmptyRow({ ...pendingEmptyRow, name });
|
|
274
|
+
}
|
|
275
|
+
}}
|
|
276
|
+
disabled={disabled}
|
|
277
|
+
/>
|
|
278
|
+
<Input
|
|
279
|
+
placeholder={PLACEHOLDERS.HEADER_VALUE}
|
|
280
|
+
value={pendingEmptyRow.value}
|
|
281
|
+
onChange={e => setPendingEmptyRow({ ...pendingEmptyRow, value: e.target.value })}
|
|
282
|
+
disabled={disabled}
|
|
283
|
+
/>
|
|
284
|
+
<Button
|
|
285
|
+
type="button"
|
|
286
|
+
variant="ghost"
|
|
287
|
+
size="icon"
|
|
288
|
+
onClick={() => setPendingEmptyRow(null)}
|
|
289
|
+
disabled={disabled}
|
|
290
|
+
aria-label="Remove header"
|
|
291
|
+
>
|
|
292
|
+
<Trash2 className="w-4 h-4" />
|
|
293
|
+
</Button>
|
|
294
|
+
</div>
|
|
295
|
+
)}
|
|
259
296
|
</div>
|
|
260
297
|
|
|
261
298
|
<div className="space-y-3" role="group" aria-labelledby="authentication-label">
|
|
@@ -21,11 +21,12 @@ export function PipelineImportDialog({ onImport }: Readonly<Props>) {
|
|
|
21
21
|
setParsed(null);
|
|
22
22
|
try {
|
|
23
23
|
const def = JSON.parse(text);
|
|
24
|
-
const result = await validateMutation.mutateAsync(def);
|
|
24
|
+
const result = await validateMutation.mutateAsync({ definition: def });
|
|
25
25
|
if (result?.isValid) {
|
|
26
26
|
setParsed(def);
|
|
27
27
|
} else {
|
|
28
|
-
|
|
28
|
+
const issueMessages = (result?.issues as Array<{ message: string }> | undefined)?.map(i => i.message) ?? ['Invalid definition'];
|
|
29
|
+
setErrors(issueMessages);
|
|
29
30
|
}
|
|
30
31
|
} catch (e) {
|
|
31
32
|
setErrors([getErrorMessage(e)]);
|
|
@@ -63,6 +63,8 @@ export function ReactFlowPipelineEditor({
|
|
|
63
63
|
const reactFlowRef = React.useRef<HTMLDivElement>(null);
|
|
64
64
|
|
|
65
65
|
const isUpdatingRef = React.useRef(false);
|
|
66
|
+
const nodesRef = React.useRef(nodes);
|
|
67
|
+
nodesRef.current = nodes;
|
|
66
68
|
|
|
67
69
|
const getDefinitionKey = React.useCallback((def: VisualPipelineDefinition | null) => {
|
|
68
70
|
if (!def) return '';
|
|
@@ -90,7 +92,7 @@ export function ReactFlowPipelineEditor({
|
|
|
90
92
|
if (newKey !== currentKey) {
|
|
91
93
|
lastSyncedKeyRef.current = newKey;
|
|
92
94
|
|
|
93
|
-
const positionMap = new Map(
|
|
95
|
+
const positionMap = new Map(nodesRef.current.map(n => [n.id, n.position]));
|
|
94
96
|
|
|
95
97
|
const updatedNodes = definition.nodes.map(n => ({
|
|
96
98
|
...n,
|
|
@@ -100,7 +102,7 @@ export function ReactFlowPipelineEditor({
|
|
|
100
102
|
setNodes(updatedNodes);
|
|
101
103
|
setEdges(definition.edges);
|
|
102
104
|
}
|
|
103
|
-
}, [definition,
|
|
105
|
+
}, [definition, getDefinitionKey]);
|
|
104
106
|
|
|
105
107
|
const notifyChange = React.useCallback((newNodes: Node<PipelineNodeData>[], newEdges: Edge[]) => {
|
|
106
108
|
isUpdatingRef.current = true;
|
|
@@ -139,7 +141,7 @@ export function ReactFlowPipelineEditor({
|
|
|
139
141
|
event.dataTransfer.effectAllowed = 'move';
|
|
140
142
|
}, []);
|
|
141
143
|
|
|
142
|
-
/** Add a node directly to the canvas center
|
|
144
|
+
/** Add a node directly to the canvas center. Used by keyboard accessibility path
|
|
143
145
|
* where a real drag-drop gesture is not possible. */
|
|
144
146
|
const addNodeToCanvas = React.useCallback((nodeType: string, category: string, label: string) => {
|
|
145
147
|
const bounds = reactFlowRef.current?.getBoundingClientRect();
|
|
@@ -149,7 +151,7 @@ export function ReactFlowPipelineEditor({
|
|
|
149
151
|
};
|
|
150
152
|
|
|
151
153
|
const newNode: Node<PipelineNodeData> = {
|
|
152
|
-
id: `node-${Date.now()}`,
|
|
154
|
+
id: `node-${Date.now()}-${Math.random().toString(36).slice(2, 7)}`,
|
|
153
155
|
type: category,
|
|
154
156
|
position,
|
|
155
157
|
data: {
|
|
@@ -187,7 +189,7 @@ export function ReactFlowPipelineEditor({
|
|
|
187
189
|
};
|
|
188
190
|
|
|
189
191
|
const newNode: Node<PipelineNodeData> = {
|
|
190
|
-
id: `node-${Date.now()}`,
|
|
192
|
+
id: `node-${Date.now()}-${Math.random().toString(36).slice(2, 7)}`,
|
|
191
193
|
type: category,
|
|
192
194
|
position,
|
|
193
195
|
data: {
|
|
@@ -249,10 +251,6 @@ export function ReactFlowPipelineEditor({
|
|
|
249
251
|
setSelectedNode(null);
|
|
250
252
|
}, []);
|
|
251
253
|
|
|
252
|
-
const handleAutoLayout = React.useCallback(() => {
|
|
253
|
-
autoLayout();
|
|
254
|
-
}, [autoLayout]);
|
|
255
|
-
|
|
256
254
|
const issueMap = React.useMemo(() => {
|
|
257
255
|
const issueCountMap = new Map<string, number>();
|
|
258
256
|
for (const issue of issues) {
|
|
@@ -279,7 +277,7 @@ export function ReactFlowPipelineEditor({
|
|
|
279
277
|
<Badge variant="outline">{nodes.length} nodes</Badge>
|
|
280
278
|
<Badge variant="outline">{edges.length} connections</Badge>
|
|
281
279
|
{!readOnly && (
|
|
282
|
-
<Button variant="ghost" size="sm" onClick={
|
|
280
|
+
<Button variant="ghost" size="sm" onClick={autoLayout} className="gap-1 text-xs" data-testid="datahub-pipeline-editor-auto-layout-button" aria-label="Auto-layout pipeline nodes">
|
|
283
281
|
<LayoutGrid className="w-3 h-3" />
|
|
284
282
|
Auto-layout
|
|
285
283
|
</Button>
|
|
@@ -63,7 +63,7 @@ function NodePropertiesPanelComponent({
|
|
|
63
63
|
const startW = width;
|
|
64
64
|
const onMove = (ev: MouseEvent) => {
|
|
65
65
|
if (!dragging.current) return;
|
|
66
|
-
// Panel opens from right
|
|
66
|
+
// Panel opens from right, dragging left increases width
|
|
67
67
|
const delta = startX - ev.clientX;
|
|
68
68
|
setWidth(Math.max(MIN_PANEL_WIDTH, Math.min(window.innerWidth * 0.9, startW + delta)));
|
|
69
69
|
};
|
|
@@ -2,7 +2,7 @@ import * as React from 'react';
|
|
|
2
2
|
import { Handle, Position, NodeProps, Node } from '@xyflow/react';
|
|
3
3
|
import { Badge } from '@vendure/dashboard';
|
|
4
4
|
import type { PipelineNodeData, VisualNodeCategory } from '../../../types';
|
|
5
|
-
import { getVisualNodeConfig
|
|
5
|
+
import { getVisualNodeConfig } from './visual-node-config';
|
|
6
6
|
import { FALLBACK_COLORS, BRANCH_COLORS, NODE_DIMENSIONS, ICON_SIZES, TEST_STATUS } from '../../../constants';
|
|
7
7
|
|
|
8
8
|
export function createPipelineNode(category: VisualNodeCategory) {
|
|
@@ -117,7 +117,7 @@ function StatusBadge({ status }: { status: PipelineNodeData['status'] }) {
|
|
|
117
117
|
case TEST_STATUS.WARNING:
|
|
118
118
|
return (
|
|
119
119
|
<div className="px-3 pb-2" role="status" aria-live="polite">
|
|
120
|
-
<Badge variant="outline" className="border-amber-500 text-amber-500">Warning</Badge>
|
|
120
|
+
<Badge variant="outline" className="border-amber-500 dark:border-amber-400 text-amber-500 dark:text-amber-400">Warning</Badge>
|
|
121
121
|
</div>
|
|
122
122
|
);
|
|
123
123
|
default:
|
|
@@ -15,10 +15,10 @@ export const AdapterRequiredWarning = memo(function AdapterRequiredWarning({
|
|
|
15
15
|
<div className={`bg-amber-50 dark:bg-amber-950/30 border border-amber-200 dark:border-amber-800 rounded-md ${compact ? 'p-2.5' : 'p-3'}`}>
|
|
16
16
|
<div className="flex items-center gap-2 text-amber-800 dark:text-amber-400">
|
|
17
17
|
<AlertTriangle className={`${compact ? 'h-4 w-4 shrink-0' : 'h-4 w-4'}`} />
|
|
18
|
-
<span className="text-sm font-medium">Select {
|
|
18
|
+
<span className="text-sm font-medium">Select {'aeiouAEIOU'.includes(adapterTypeLabel[0]) ? 'an' : 'a'} {adapterTypeLabel}</span>
|
|
19
19
|
</div>
|
|
20
|
-
<p className={`text-xs text-amber-700 mt-1 ${compact ? 'ml-6' : ''}`}>
|
|
21
|
-
This step requires {
|
|
20
|
+
<p className={`text-xs text-amber-700 dark:text-amber-500 mt-1 ${compact ? 'ml-6' : ''}`}>
|
|
21
|
+
This step requires {'aeiouAEIOU'.includes(adapterTypeLabel[0]) ? 'an' : 'a'} {adapterTypeLabel} to be configured.
|
|
22
22
|
</p>
|
|
23
23
|
</div>
|
|
24
24
|
);
|
|
@@ -207,7 +207,7 @@ export function AdvancedMapEditor({ config, onChange }: { config: JsonRecord; on
|
|
|
207
207
|
<div>
|
|
208
208
|
<Label className="text-xs font-medium">Sample Input (JSON array)</Label>
|
|
209
209
|
<Textarea className="font-mono text-xs min-h-[140px]" value={sample} onChange={e => setSample(e.target.value)} />
|
|
210
|
-
{!sampleValid && (<p className="text-[11px] text-amber-600 mt-1">Enter a valid JSON array of records</p>)}
|
|
210
|
+
{!sampleValid && (<p className="text-[11px] text-amber-600 dark:text-amber-400 mt-1">Enter a valid JSON array of records</p>)}
|
|
211
211
|
{pathList.length > 0 && (
|
|
212
212
|
<div className="mt-2">
|
|
213
213
|
<Label className="text-xs font-medium">Field Picker</Label>
|
|
@@ -442,7 +442,7 @@ const RuleValueCell = React.memo(function RuleValueCell({ condition: c, ruleInde
|
|
|
442
442
|
<Input value={valStr} onChange={onValChange} placeholder={placeholder} />
|
|
443
443
|
{(inError || regexError) && (
|
|
444
444
|
<div className="col-span-3 -mt-1">
|
|
445
|
-
<p className="text-[11px] text-amber-600">{inError || regexError}</p>
|
|
445
|
+
<p className="text-[11px] text-amber-600 dark:text-amber-400">{inError || regexError}</p>
|
|
446
446
|
</div>
|
|
447
447
|
)}
|
|
448
448
|
</>
|
|
@@ -163,7 +163,7 @@ interface EnrichSchemaFieldProps {
|
|
|
163
163
|
removeDefault: (index: number) => void;
|
|
164
164
|
}
|
|
165
165
|
|
|
166
|
-
/** Field type renderer registry
|
|
166
|
+
/** Field type renderer registry: maps field.type to a render function. */
|
|
167
167
|
type EnrichFieldRenderer = (props: EnrichSchemaFieldProps) => React.JSX.Element;
|
|
168
168
|
|
|
169
169
|
const ENRICH_FIELD_RENDERERS: Record<string, EnrichFieldRenderer> = {
|
|
@@ -80,7 +80,7 @@ export function OperatorFieldInput({ field, value, onChange }: OperatorFieldInpu
|
|
|
80
80
|
);
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
-
// Code field type
|
|
83
|
+
// Code field type: full code editor with line numbers, Tab support, and expand dialog
|
|
84
84
|
if (field.type === FIELD_TYPE.CODE || field.type === FIELD_TYPE.EXPRESSION) {
|
|
85
85
|
return (
|
|
86
86
|
<div className="space-y-1.5">
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
SelectValue,
|
|
12
12
|
} from '@vendure/dashboard';
|
|
13
13
|
import { ROUTE_BRANCH_DEFAULTS, ERROR_MESSAGES } from '../../../constants';
|
|
14
|
-
import { useStableKeys } from '../../../hooks';
|
|
14
|
+
import { useStableKeys, useStableIndexIds } from '../../../hooks';
|
|
15
15
|
import { useComparisonOperators } from '../../../hooks/api/use-config-options';
|
|
16
16
|
import type { ComparisonOperatorOption } from '../../../hooks/api/use-config-options';
|
|
17
17
|
|
|
@@ -147,6 +147,7 @@ function BranchEditor({
|
|
|
147
147
|
index,
|
|
148
148
|
}: BranchEditorProps) {
|
|
149
149
|
const conditions = branch.when ?? [];
|
|
150
|
+
const conditionKeys = useStableIndexIds(conditions, `branch-${index}-cond`);
|
|
150
151
|
const [expanded, setExpanded] = React.useState(conditions.length > 0);
|
|
151
152
|
|
|
152
153
|
const addCondition = useCallback(() => {
|
|
@@ -167,7 +168,6 @@ function BranchEditor({
|
|
|
167
168
|
|
|
168
169
|
return (
|
|
169
170
|
<div className="border rounded-md overflow-hidden">
|
|
170
|
-
{/* Branch header: name + delete */}
|
|
171
171
|
<div className="flex items-center gap-2 p-2 bg-muted/30">
|
|
172
172
|
<button
|
|
173
173
|
type="button"
|
|
@@ -202,7 +202,6 @@ function BranchEditor({
|
|
|
202
202
|
</Button>
|
|
203
203
|
</div>
|
|
204
204
|
|
|
205
|
-
{/* Conditions section */}
|
|
206
205
|
{expanded && (
|
|
207
206
|
<div className="p-2 space-y-2 border-t">
|
|
208
207
|
{conditions.length === 0 ? (
|
|
@@ -216,7 +215,7 @@ function BranchEditor({
|
|
|
216
215
|
</p>
|
|
217
216
|
{conditions.map((cond, ci) => (
|
|
218
217
|
<ConditionRow
|
|
219
|
-
key={ci}
|
|
218
|
+
key={conditionKeys[ci]}
|
|
220
219
|
condition={cond}
|
|
221
220
|
comparisonOperators={comparisonOperators}
|
|
222
221
|
onUpdate={(patch) => updateCondition(ci, patch)}
|
|
@@ -10,17 +10,15 @@ import {
|
|
|
10
10
|
Label,
|
|
11
11
|
Separator,
|
|
12
12
|
} from '@vendure/dashboard';
|
|
13
|
-
import { Trash2
|
|
13
|
+
import { Trash2 } from 'lucide-react';
|
|
14
14
|
|
|
15
15
|
import { SchemaFormRenderer } from '../schema-form';
|
|
16
|
-
import {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
GateConfigComponent,
|
|
23
|
-
} from './index';
|
|
16
|
+
import { AdapterSelector } from './AdapterSelector';
|
|
17
|
+
import { AdapterRequiredWarning } from './AdapterRequiredWarning';
|
|
18
|
+
import { ValidateConfigComponent } from './ValidateConfigComponent';
|
|
19
|
+
import { RouteConfigComponent } from './RouteConfigComponent';
|
|
20
|
+
import { EnrichConfigComponent } from './EnrichConfigComponent';
|
|
21
|
+
import { GateConfigComponent } from './GateConfigComponent';
|
|
24
22
|
import { TriggerForm } from '../trigger-config';
|
|
25
23
|
import { OperatorCheatSheetButton } from './OperatorCheatSheetButton';
|
|
26
24
|
import {
|
|
@@ -37,7 +35,6 @@ import { getAdapterTypeLabel, prepareDynamicFields, normalizeStepType, getAdapte
|
|
|
37
35
|
import {
|
|
38
36
|
STEP_TYPE,
|
|
39
37
|
ADAPTER_TYPES,
|
|
40
|
-
NODE_CATEGORIES,
|
|
41
38
|
PANEL_VARIANT,
|
|
42
39
|
FALLBACK_COLORS,
|
|
43
40
|
} from '../../../constants';
|
|
@@ -240,7 +237,7 @@ export function StepConfigPanel({
|
|
|
240
237
|
}, [dynamicFields, updateConfigBatch]);
|
|
241
238
|
|
|
242
239
|
const handleTriggerChange = useCallback((trigger: PipelineTrigger) => {
|
|
243
|
-
|
|
240
|
+
const batch: Record<string, unknown> = {
|
|
244
241
|
type: trigger.type,
|
|
245
242
|
enabled: trigger.enabled,
|
|
246
243
|
cron: trigger.cron,
|
|
@@ -248,8 +245,12 @@ export function StepConfigPanel({
|
|
|
248
245
|
webhookCode: trigger.webhookCode,
|
|
249
246
|
authentication: trigger.authentication,
|
|
250
247
|
secretCode: trigger.secretCode,
|
|
251
|
-
event: trigger.
|
|
252
|
-
}
|
|
248
|
+
event: trigger.event,
|
|
249
|
+
};
|
|
250
|
+
// Preserve nested config objects (message, fileWatch) for complex triggers
|
|
251
|
+
if (trigger.message) batch.message = trigger.message;
|
|
252
|
+
if (trigger.fileWatch) batch.fileWatch = trigger.fileWatch;
|
|
253
|
+
updateConfigBatch(batch);
|
|
253
254
|
}, [updateConfigBatch]);
|
|
254
255
|
|
|
255
256
|
const triggerValue = useMemo(() => ({
|
|
@@ -260,8 +261,10 @@ export function StepConfigPanel({
|
|
|
260
261
|
webhookCode: data.config?.webhookCode as string,
|
|
261
262
|
authentication: data.config?.authentication as PipelineTrigger['authentication'],
|
|
262
263
|
secretCode: data.config?.secretCode as string,
|
|
263
|
-
|
|
264
|
-
|
|
264
|
+
event: data.config?.event as string,
|
|
265
|
+
message: data.config?.message as Record<string, unknown> | undefined,
|
|
266
|
+
fileWatch: data.config?.fileWatch as Record<string, unknown> | undefined,
|
|
267
|
+
}), [data.config?.type, data.config?.enabled, data.config?.cron, data.config?.timezone, data.config?.webhookCode, data.config?.authentication, data.config?.secretCode, data.config?.event, data.config?.message, data.config?.fileWatch]);
|
|
265
268
|
|
|
266
269
|
const renderHeader = () => {
|
|
267
270
|
if (!showHeader) return null;
|
|
@@ -377,9 +380,9 @@ export function StepConfigPanel({
|
|
|
377
380
|
);
|
|
378
381
|
}
|
|
379
382
|
|
|
380
|
-
// Steps with built-in config editors
|
|
383
|
+
// Steps with built-in config editors handle their own source/type selection
|
|
381
384
|
const hasBuiltInConfig = stepType in SPECIAL_CONFIG_EDITORS;
|
|
382
|
-
if (hasBuiltInConfig
|
|
385
|
+
if (hasBuiltInConfig) return null;
|
|
383
386
|
|
|
384
387
|
return (
|
|
385
388
|
<div className={compact ? 'space-y-2' : 'space-y-3'}>
|
|
@@ -73,11 +73,9 @@ export function ValidateConfigComponent({
|
|
|
73
73
|
showRulesEditor = true,
|
|
74
74
|
}: ValidateConfigComponentProps) {
|
|
75
75
|
const { schemas: ruleTypeSchemas } = useValidationRuleSchemas();
|
|
76
|
-
const ruleTypes = ruleTypeSchemas;
|
|
77
76
|
const { options: validationModes } = useOptionValues('validationModes');
|
|
78
|
-
const
|
|
79
|
-
const
|
|
80
|
-
const validationMode = (config.validationMode as string) || 'STRICT';
|
|
77
|
+
const errorHandlingMode = (config.errorHandlingMode as string) || '';
|
|
78
|
+
const validationMode = (config.validationMode as string) || '';
|
|
81
79
|
const rawRules = (config.rules as ValidationRule[]) || [];
|
|
82
80
|
const stableIds = useStableIndexIds(rawRules, 'validation-rule');
|
|
83
81
|
const rules = useMemo<ValidationRuleWithId[]>(() =>
|
|
@@ -152,7 +150,7 @@ export function ValidateConfigComponent({
|
|
|
152
150
|
<SelectValue />
|
|
153
151
|
</SelectTrigger>
|
|
154
152
|
<SelectContent>
|
|
155
|
-
{
|
|
153
|
+
{validationModes.map((mode) => (
|
|
156
154
|
<SelectItem key={mode.value} value={mode.value}>
|
|
157
155
|
{mode.label}
|
|
158
156
|
</SelectItem>
|
|
@@ -192,7 +190,6 @@ export function ValidateConfigComponent({
|
|
|
192
190
|
key={rule.id}
|
|
193
191
|
rule={rule}
|
|
194
192
|
index={index}
|
|
195
|
-
ruleTypes={ruleTypes}
|
|
196
193
|
ruleTypeSchemas={ruleTypeSchemas}
|
|
197
194
|
updateRule={updateRule}
|
|
198
195
|
removeRule={removeRule}
|
|
@@ -207,7 +204,6 @@ export function ValidateConfigComponent({
|
|
|
207
204
|
interface ValidationRuleRowProps {
|
|
208
205
|
rule: ValidationRuleWithId;
|
|
209
206
|
index: number;
|
|
210
|
-
ruleTypes: TypedOptionValue[];
|
|
211
207
|
ruleTypeSchemas: TypedOptionValue[];
|
|
212
208
|
updateRule: (index: number, spec: ValidationRule['spec']) => void;
|
|
213
209
|
removeRule: (index: number) => void;
|
|
@@ -216,7 +212,6 @@ interface ValidationRuleRowProps {
|
|
|
216
212
|
const ValidationRuleRow = memo(function ValidationRuleRow({
|
|
217
213
|
rule,
|
|
218
214
|
index,
|
|
219
|
-
ruleTypes,
|
|
220
215
|
ruleTypeSchemas,
|
|
221
216
|
updateRule,
|
|
222
217
|
removeRule,
|
|
@@ -262,7 +257,7 @@ const ValidationRuleRow = memo(function ValidationRuleRow({
|
|
|
262
257
|
<SelectValue />
|
|
263
258
|
</SelectTrigger>
|
|
264
259
|
<SelectContent>
|
|
265
|
-
{
|
|
260
|
+
{ruleTypeSchemas.map((rt) => (
|
|
266
261
|
<SelectItem key={rt.value} value={rt.value}>
|
|
267
262
|
{rt.label}
|
|
268
263
|
</SelectItem>
|
|
@@ -18,7 +18,6 @@ export interface TemplateGalleryProps {
|
|
|
18
18
|
categories: CategoryInfo[];
|
|
19
19
|
selectedTemplate?: ImportTemplate | null;
|
|
20
20
|
onSelectTemplate: (template: ImportTemplate) => void;
|
|
21
|
-
onUseTemplate?: (template: ImportTemplate) => void;
|
|
22
21
|
}
|
|
23
22
|
|
|
24
23
|
function TemplateCardComponent({
|
|
@@ -127,12 +126,10 @@ function TemplateGalleryComponent({
|
|
|
127
126
|
const filteredTemplates = React.useMemo(() => {
|
|
128
127
|
let filtered = templates;
|
|
129
128
|
|
|
130
|
-
// Filter by category
|
|
131
129
|
if (selectedCategory !== 'all') {
|
|
132
130
|
filtered = filtered.filter(t => t.category === selectedCategory);
|
|
133
131
|
}
|
|
134
132
|
|
|
135
|
-
// Filter by search query
|
|
136
133
|
return filterTemplates(filtered, searchQuery);
|
|
137
134
|
}, [templates, selectedCategory, searchQuery]);
|
|
138
135
|
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
} from 'lucide-react';
|
|
15
15
|
import { VENDURE_ENTITY_LIST } from '../../../../shared';
|
|
16
16
|
import { useDestinationSchemas } from '../../../hooks/api/use-config-options';
|
|
17
|
-
import {
|
|
17
|
+
import { formatKey } from '../../../utils/formatters';
|
|
18
18
|
import { WizardStepContainer } from '../shared';
|
|
19
19
|
import { ConfigurationNameCard, SummaryCard, SummaryCardGrid, SummaryField } from '../../shared/wizard';
|
|
20
20
|
import { STEP_CONTENT, EXPORT_PLACEHOLDERS } from './constants';
|
|
@@ -224,7 +224,7 @@ function renderGenericConfigFields(destination: DestinationConfig): React.ReactN
|
|
|
224
224
|
return Object.entries(config)
|
|
225
225
|
.filter(([, v]) => v != null && v !== '' && v !== false)
|
|
226
226
|
.map(([key, value]) => (
|
|
227
|
-
<SummaryField key={key} label={
|
|
227
|
+
<SummaryField key={key} label={formatKey(key)}>
|
|
228
228
|
{typeof value === 'object' ? JSON.stringify(value) : String(value)}
|
|
229
229
|
</SummaryField>
|
|
230
230
|
));
|