@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.
Files changed (842) hide show
  1. package/CHANGELOG.md +60 -3
  2. package/CONTRIBUTING.md +2 -2
  3. package/README.md +5 -2
  4. package/dashboard/components/common/ConnectionConfigEditor.tsx +42 -5
  5. package/dashboard/components/pipelines/PipelineImport.tsx +3 -2
  6. package/dashboard/components/pipelines/ReactFlowPipelineEditor.tsx +8 -10
  7. package/dashboard/components/pipelines/shared/NodePropertiesPanel.tsx +1 -1
  8. package/dashboard/components/pipelines/shared/PipelineNode.tsx +2 -2
  9. package/dashboard/components/shared/step-config/AdapterRequiredWarning.tsx +3 -3
  10. package/dashboard/components/shared/step-config/AdvancedEditors.tsx +2 -2
  11. package/dashboard/components/shared/step-config/EnrichConfigComponent.tsx +1 -1
  12. package/dashboard/components/shared/step-config/GateConfigComponent.tsx +0 -1
  13. package/dashboard/components/shared/step-config/OperatorFieldInput.tsx +1 -1
  14. package/dashboard/components/shared/step-config/RouteConfigComponent.tsx +3 -4
  15. package/dashboard/components/shared/step-config/StepConfigPanel.tsx +20 -17
  16. package/dashboard/components/shared/step-config/ValidateConfigComponent.tsx +4 -9
  17. package/dashboard/components/templates/TemplateGallery.tsx +0 -3
  18. package/dashboard/components/wizards/export-wizard/ReviewStep.tsx +2 -2
  19. package/dashboard/components/wizards/import-wizard/ImportWizard.tsx +3 -6
  20. package/dashboard/components/wizards/import-wizard/MappingStep.tsx +3 -5
  21. package/dashboard/components/wizards/import-wizard/ReviewStep.tsx +2 -2
  22. package/dashboard/components/wizards/import-wizard/SourceStep.tsx +3 -3
  23. package/dashboard/components/wizards/import-wizard/StrategyStep.tsx +1 -2
  24. package/dashboard/components/wizards/import-wizard/TargetStep.tsx +1 -2
  25. package/dashboard/components/wizards/import-wizard/TriggerStep.tsx +1 -2
  26. package/dashboard/constants/colors.ts +1 -1
  27. package/dashboard/constants/file-format-registry.ts +22 -46
  28. package/dashboard/constants/ui-types.ts +5 -5
  29. package/dashboard/gql/gql.ts +3 -3
  30. package/dashboard/gql/graphql.ts +43 -16
  31. package/dashboard/hooks/api/use-config-options.ts +4 -6
  32. package/dashboard/hooks/index.ts +1 -1
  33. package/dashboard/hooks/use-adapter-catalog.ts +1 -3
  34. package/dashboard/hooks/use-import-templates.ts +1 -4
  35. package/dashboard/routes/connections/ConnectionDetail.tsx +22 -7
  36. package/dashboard/routes/hooks/Hooks.tsx +8 -7
  37. package/dashboard/routes/logs/Logs.tsx +4 -4
  38. package/dashboard/routes/logs/components/LogDetailDrawer.tsx +3 -3
  39. package/dashboard/routes/logs/components/LogExplorerTab.tsx +18 -22
  40. package/dashboard/routes/logs/components/LogTableRow.tsx +4 -3
  41. package/dashboard/routes/logs/components/LogsOverviewTab.tsx +3 -3
  42. package/dashboard/routes/logs/components/RealtimeLogTab.tsx +2 -2
  43. package/dashboard/routes/pipelines/ImportWizardPage.tsx +1 -1
  44. package/dashboard/routes/pipelines/PipelineRunsBlock.tsx +6 -6
  45. package/dashboard/routes/pipelines/RunDetailsPanel.tsx +0 -1
  46. package/dashboard/routes/pipelines/RunErrorsList.tsx +10 -6
  47. package/dashboard/routes/pipelines/StepSummaryTable.tsx +3 -4
  48. package/dashboard/routes/pipelines/components/DryRunDialog.tsx +8 -12
  49. package/dashboard/routes/pipelines/components/PipelineWebhookInfo.tsx +5 -4
  50. package/dashboard/routes/pipelines/components/ValidationPanel.tsx +6 -4
  51. package/dashboard/routes/pipelines/components/VersionHistoryDialog.tsx +1 -1
  52. package/dashboard/routes/queues/ConsumersTable.tsx +1 -1
  53. package/dashboard/routes/queues/FailedRunsTable.tsx +1 -1
  54. package/dashboard/routes/queues/QueuesPage.tsx +5 -3
  55. package/dashboard/routes/secrets/SecretDetail.tsx +18 -3
  56. package/dashboard/routes/settings/Settings.tsx +3 -5
  57. package/dashboard/types/ui-types.ts +1 -2
  58. package/dashboard/utils/formatters.ts +8 -16
  59. package/dashboard/utils/icon-resolver.ts +2 -2
  60. package/dashboard/utils/index.ts +0 -1
  61. package/dashboard/utils/trigger-sync.ts +0 -8
  62. package/dashboard/utils/wizard-to-pipeline.ts +35 -14
  63. package/dist/connectors/registry.d.ts.map +1 -1
  64. package/dist/connectors/registry.js +22 -5
  65. package/dist/connectors/registry.js.map +1 -1
  66. package/dist/dashboard/components/common/ConnectionConfigEditor.tsx +42 -5
  67. package/dist/dashboard/components/pipelines/PipelineImport.tsx +3 -2
  68. package/dist/dashboard/components/pipelines/ReactFlowPipelineEditor.tsx +8 -10
  69. package/dist/dashboard/components/pipelines/shared/NodePropertiesPanel.tsx +1 -1
  70. package/dist/dashboard/components/pipelines/shared/PipelineNode.tsx +2 -2
  71. package/dist/dashboard/components/shared/step-config/AdapterRequiredWarning.tsx +3 -3
  72. package/dist/dashboard/components/shared/step-config/AdvancedEditors.tsx +2 -2
  73. package/dist/dashboard/components/shared/step-config/EnrichConfigComponent.tsx +1 -1
  74. package/dist/dashboard/components/shared/step-config/GateConfigComponent.tsx +0 -1
  75. package/dist/dashboard/components/shared/step-config/OperatorFieldInput.tsx +1 -1
  76. package/dist/dashboard/components/shared/step-config/RouteConfigComponent.tsx +3 -4
  77. package/dist/dashboard/components/shared/step-config/StepConfigPanel.tsx +20 -17
  78. package/dist/dashboard/components/shared/step-config/ValidateConfigComponent.tsx +4 -9
  79. package/dist/dashboard/components/templates/TemplateGallery.tsx +0 -3
  80. package/dist/dashboard/components/wizards/export-wizard/ReviewStep.tsx +2 -2
  81. package/dist/dashboard/components/wizards/import-wizard/ImportWizard.tsx +3 -6
  82. package/dist/dashboard/components/wizards/import-wizard/MappingStep.tsx +3 -5
  83. package/dist/dashboard/components/wizards/import-wizard/ReviewStep.tsx +2 -2
  84. package/dist/dashboard/components/wizards/import-wizard/SourceStep.tsx +3 -3
  85. package/dist/dashboard/components/wizards/import-wizard/StrategyStep.tsx +1 -2
  86. package/dist/dashboard/components/wizards/import-wizard/TargetStep.tsx +1 -2
  87. package/dist/dashboard/components/wizards/import-wizard/TriggerStep.tsx +1 -2
  88. package/dist/dashboard/constants/colors.ts +1 -1
  89. package/dist/dashboard/constants/file-format-registry.ts +22 -46
  90. package/dist/dashboard/constants/ui-types.ts +5 -5
  91. package/dist/dashboard/gql/gql.ts +3 -3
  92. package/dist/dashboard/gql/graphql.ts +43 -16
  93. package/dist/dashboard/hooks/api/use-config-options.ts +4 -6
  94. package/dist/dashboard/hooks/index.ts +1 -1
  95. package/dist/dashboard/hooks/use-adapter-catalog.ts +1 -3
  96. package/dist/dashboard/hooks/use-import-templates.ts +1 -4
  97. package/dist/dashboard/routes/connections/ConnectionDetail.tsx +22 -7
  98. package/dist/dashboard/routes/hooks/Hooks.tsx +8 -7
  99. package/dist/dashboard/routes/logs/Logs.tsx +4 -4
  100. package/dist/dashboard/routes/logs/components/LogDetailDrawer.tsx +3 -3
  101. package/dist/dashboard/routes/logs/components/LogExplorerTab.tsx +18 -22
  102. package/dist/dashboard/routes/logs/components/LogTableRow.tsx +4 -3
  103. package/dist/dashboard/routes/logs/components/LogsOverviewTab.tsx +3 -3
  104. package/dist/dashboard/routes/logs/components/RealtimeLogTab.tsx +2 -2
  105. package/dist/dashboard/routes/pipelines/ImportWizardPage.tsx +1 -1
  106. package/dist/dashboard/routes/pipelines/PipelineRunsBlock.tsx +6 -6
  107. package/dist/dashboard/routes/pipelines/RunDetailsPanel.tsx +0 -1
  108. package/dist/dashboard/routes/pipelines/RunErrorsList.tsx +10 -6
  109. package/dist/dashboard/routes/pipelines/StepSummaryTable.tsx +3 -4
  110. package/dist/dashboard/routes/pipelines/components/DryRunDialog.tsx +8 -12
  111. package/dist/dashboard/routes/pipelines/components/PipelineWebhookInfo.tsx +5 -4
  112. package/dist/dashboard/routes/pipelines/components/ValidationPanel.tsx +6 -4
  113. package/dist/dashboard/routes/pipelines/components/VersionHistoryDialog.tsx +1 -1
  114. package/dist/dashboard/routes/queues/ConsumersTable.tsx +1 -1
  115. package/dist/dashboard/routes/queues/FailedRunsTable.tsx +1 -1
  116. package/dist/dashboard/routes/queues/QueuesPage.tsx +5 -3
  117. package/dist/dashboard/routes/secrets/SecretDetail.tsx +18 -3
  118. package/dist/dashboard/routes/settings/Settings.tsx +3 -5
  119. package/dist/dashboard/types/ui-types.ts +1 -2
  120. package/dist/dashboard/utils/formatters.ts +8 -16
  121. package/dist/dashboard/utils/icon-resolver.ts +2 -2
  122. package/dist/dashboard/utils/index.ts +0 -1
  123. package/dist/dashboard/utils/trigger-sync.ts +0 -8
  124. package/dist/dashboard/utils/wizard-to-pipeline.ts +35 -14
  125. package/dist/shared/constants/step-type-configs.d.ts +1 -1
  126. package/dist/shared/constants/step-type-configs.js +2 -2
  127. package/dist/shared/constants/step-type-configs.js.map +1 -1
  128. package/dist/shared/types/adapter-config.types.d.ts +3 -3
  129. package/dist/shared/types/adapter-config.types.d.ts.map +1 -1
  130. package/dist/shared/types/adapter.types.d.ts +1 -1
  131. package/dist/shared/types/execution.types.d.ts +2 -6
  132. package/dist/shared/types/execution.types.d.ts.map +1 -1
  133. package/dist/shared/types/extractor.types.d.ts +1 -1
  134. package/dist/shared/types/extractor.types.d.ts.map +1 -1
  135. package/dist/shared/types/index.d.ts +2 -2
  136. package/dist/shared/types/index.d.ts.map +1 -1
  137. package/dist/shared/types/pipeline.types.d.ts +2 -3
  138. package/dist/shared/types/pipeline.types.d.ts.map +1 -1
  139. package/dist/shared/types/step.types.d.ts +2 -2
  140. package/dist/shared/types/step.types.d.ts.map +1 -1
  141. package/dist/shared/types/trigger.types.d.ts +4 -27
  142. package/dist/shared/types/trigger.types.d.ts.map +1 -1
  143. package/dist/shared/utils/csv-parse.js +2 -2
  144. package/dist/shared/utils/csv-parse.js.map +1 -1
  145. package/dist/shared/utils/validation.js +1 -1
  146. package/dist/shared/utils/validation.js.map +1 -1
  147. package/dist/shared/vendure-schemas.d.ts +1 -1
  148. package/dist/shared/vendure-schemas.js +1 -1
  149. package/dist/src/adapters/registry.d.ts +1 -1
  150. package/dist/src/adapters/registry.js +1 -1
  151. package/dist/src/adapters/registry.js.map +1 -1
  152. package/dist/src/api/controllers/file-upload.controller.d.ts +1 -0
  153. package/dist/src/api/controllers/file-upload.controller.d.ts.map +1 -1
  154. package/dist/src/api/controllers/file-upload.controller.js +62 -64
  155. package/dist/src/api/controllers/file-upload.controller.js.map +1 -1
  156. package/dist/src/api/controllers/webhook.controller.d.ts.map +1 -1
  157. package/dist/src/api/controllers/webhook.controller.js +38 -11
  158. package/dist/src/api/controllers/webhook.controller.js.map +1 -1
  159. package/dist/src/api/resolvers/analytics.resolver.d.ts +19 -1
  160. package/dist/src/api/resolvers/analytics.resolver.d.ts.map +1 -1
  161. package/dist/src/api/resolvers/analytics.resolver.js +18 -1
  162. package/dist/src/api/resolvers/analytics.resolver.js.map +1 -1
  163. package/dist/src/api/resolvers/connection.resolver.d.ts +3 -1
  164. package/dist/src/api/resolvers/connection.resolver.d.ts.map +1 -1
  165. package/dist/src/api/resolvers/connection.resolver.js +19 -7
  166. package/dist/src/api/resolvers/connection.resolver.js.map +1 -1
  167. package/dist/src/api/resolvers/entity-schema.resolver.js +2 -2
  168. package/dist/src/api/resolvers/entity-schema.resolver.js.map +1 -1
  169. package/dist/src/api/resolvers/error.resolver.js +1 -1
  170. package/dist/src/api/resolvers/error.resolver.js.map +1 -1
  171. package/dist/src/api/resolvers/log.resolver.js +1 -1
  172. package/dist/src/api/resolvers/log.resolver.js.map +1 -1
  173. package/dist/src/api/resolvers/pipeline.resolver.d.ts +1 -3
  174. package/dist/src/api/resolvers/pipeline.resolver.d.ts.map +1 -1
  175. package/dist/src/api/resolvers/pipeline.resolver.js +10 -27
  176. package/dist/src/api/resolvers/pipeline.resolver.js.map +1 -1
  177. package/dist/src/api/resolvers/secret.resolver.d.ts +5 -1
  178. package/dist/src/api/resolvers/secret.resolver.d.ts.map +1 -1
  179. package/dist/src/api/resolvers/secret.resolver.js +37 -10
  180. package/dist/src/api/resolvers/secret.resolver.js.map +1 -1
  181. package/dist/src/api/schema/connection.schema.d.ts +2 -2
  182. package/dist/src/api/schema/connection.schema.d.ts.map +1 -1
  183. package/dist/src/api/schema/connection.schema.js +1 -8
  184. package/dist/src/api/schema/connection.schema.js.map +1 -1
  185. package/dist/src/api/schema/log.schema.d.ts +2 -2
  186. package/dist/src/api/schema/log.schema.d.ts.map +1 -1
  187. package/dist/src/api/schema/log.schema.js +1 -8
  188. package/dist/src/api/schema/log.schema.js.map +1 -1
  189. package/dist/src/api/schema/pipeline.schema.d.ts +2 -2
  190. package/dist/src/api/schema/pipeline.schema.d.ts.map +1 -1
  191. package/dist/src/api/schema/pipeline.schema.js +2 -18
  192. package/dist/src/api/schema/pipeline.schema.js.map +1 -1
  193. package/dist/src/api/schema/secret.schema.d.ts +2 -2
  194. package/dist/src/api/schema/secret.schema.d.ts.map +1 -1
  195. package/dist/src/api/schema/secret.schema.js +1 -9
  196. package/dist/src/api/schema/secret.schema.js.map +1 -1
  197. package/dist/src/api/types/index.d.ts +0 -1
  198. package/dist/src/api/types/index.d.ts.map +1 -1
  199. package/dist/src/api/types/index.js +0 -1
  200. package/dist/src/api/types/index.js.map +1 -1
  201. package/dist/src/api/types/outputs.d.ts +1 -1
  202. package/dist/src/api/types/outputs.js +1 -1
  203. package/dist/src/bootstrap/initialization.d.ts.map +1 -1
  204. package/dist/src/bootstrap/initialization.js +0 -4
  205. package/dist/src/bootstrap/initialization.js.map +1 -1
  206. package/dist/src/bootstrap/seed-data.d.ts +3 -1
  207. package/dist/src/bootstrap/seed-data.d.ts.map +1 -1
  208. package/dist/src/bootstrap/seed-data.js +50 -29
  209. package/dist/src/bootstrap/seed-data.js.map +1 -1
  210. package/dist/src/constants/adapter-schema-options.d.ts +4 -4
  211. package/dist/src/constants/adapter-schema-options.d.ts.map +1 -1
  212. package/dist/src/constants/adapter-schema-options.js +21 -14
  213. package/dist/src/constants/adapter-schema-options.js.map +1 -1
  214. package/dist/src/constants/adapters.d.ts +1 -1
  215. package/dist/src/constants/adapters.js +1 -1
  216. package/dist/src/constants/connection-schemas.d.ts.map +1 -1
  217. package/dist/src/constants/connection-schemas.js +2 -1
  218. package/dist/src/constants/connection-schemas.js.map +1 -1
  219. package/dist/src/constants/core.d.ts +2 -0
  220. package/dist/src/constants/core.d.ts.map +1 -1
  221. package/dist/src/constants/core.js +2 -0
  222. package/dist/src/constants/core.js.map +1 -1
  223. package/dist/src/constants/defaults/index.d.ts +0 -5
  224. package/dist/src/constants/defaults/index.d.ts.map +1 -1
  225. package/dist/src/constants/defaults/index.js +0 -5
  226. package/dist/src/constants/defaults/index.js.map +1 -1
  227. package/dist/src/constants/defaults/reliability-defaults.d.ts +8 -2
  228. package/dist/src/constants/defaults/reliability-defaults.d.ts.map +1 -1
  229. package/dist/src/constants/defaults/reliability-defaults.js +8 -2
  230. package/dist/src/constants/defaults/reliability-defaults.js.map +1 -1
  231. package/dist/src/constants/defaults/scheduler-defaults.d.ts +2 -0
  232. package/dist/src/constants/defaults/scheduler-defaults.d.ts.map +1 -1
  233. package/dist/src/constants/defaults/scheduler-defaults.js +2 -0
  234. package/dist/src/constants/defaults/scheduler-defaults.js.map +1 -1
  235. package/dist/src/constants/defaults/sink-defaults.d.ts +2 -0
  236. package/dist/src/constants/defaults/sink-defaults.d.ts.map +1 -1
  237. package/dist/src/constants/defaults/sink-defaults.js +2 -0
  238. package/dist/src/constants/defaults/sink-defaults.js.map +1 -1
  239. package/dist/src/constants/defaults/storage-defaults.d.ts +20 -0
  240. package/dist/src/constants/defaults/storage-defaults.d.ts.map +1 -1
  241. package/dist/src/constants/defaults/storage-defaults.js +21 -1
  242. package/dist/src/constants/defaults/storage-defaults.js.map +1 -1
  243. package/dist/src/constants/defaults/ui-defaults.d.ts +4 -0
  244. package/dist/src/constants/defaults/ui-defaults.d.ts.map +1 -1
  245. package/dist/src/constants/defaults/ui-defaults.js +4 -0
  246. package/dist/src/constants/defaults/ui-defaults.js.map +1 -1
  247. package/dist/src/constants/enums.d.ts +11 -2
  248. package/dist/src/constants/enums.d.ts.map +1 -1
  249. package/dist/src/constants/enums.js +9 -0
  250. package/dist/src/constants/enums.js.map +1 -1
  251. package/dist/src/constants/file-format-metadata.js +3 -3
  252. package/dist/src/constants/file-format-metadata.js.map +1 -1
  253. package/dist/src/constants/services.d.ts +1 -0
  254. package/dist/src/constants/services.d.ts.map +1 -1
  255. package/dist/src/constants/services.js +1 -0
  256. package/dist/src/constants/services.js.map +1 -1
  257. package/dist/src/data-hub.plugin.d.ts.map +1 -1
  258. package/dist/src/data-hub.plugin.js +3 -5
  259. package/dist/src/data-hub.plugin.js.map +1 -1
  260. package/dist/src/entities/data/checkpoint.entity.d.ts +1 -1
  261. package/dist/src/entities/data/checkpoint.entity.d.ts.map +1 -1
  262. package/dist/src/entities/data/checkpoint.entity.js +3 -4
  263. package/dist/src/entities/data/checkpoint.entity.js.map +1 -1
  264. package/dist/src/entities/data/error-record.entity.d.ts +2 -2
  265. package/dist/src/entities/data/error-record.entity.d.ts.map +1 -1
  266. package/dist/src/entities/data/error-record.entity.js +3 -3
  267. package/dist/src/entities/data/error-record.entity.js.map +1 -1
  268. package/dist/src/entities/data/retry-audit.entity.d.ts +1 -1
  269. package/dist/src/entities/data/retry-audit.entity.d.ts.map +1 -1
  270. package/dist/src/entities/data/retry-audit.entity.js +2 -2
  271. package/dist/src/entities/data/retry-audit.entity.js.map +1 -1
  272. package/dist/src/entities/pipeline/pipeline-log.entity.js +1 -1
  273. package/dist/src/entities/pipeline/pipeline-log.entity.js.map +1 -1
  274. package/dist/src/entities/pipeline/pipeline-revision.entity.d.ts +1 -1
  275. package/dist/src/entities/pipeline/pipeline-revision.entity.d.ts.map +1 -1
  276. package/dist/src/entities/pipeline/pipeline-revision.entity.js +2 -2
  277. package/dist/src/entities/pipeline/pipeline-revision.entity.js.map +1 -1
  278. package/dist/src/entities/pipeline/pipeline-run.entity.d.ts +3 -3
  279. package/dist/src/entities/pipeline/pipeline-run.entity.d.ts.map +1 -1
  280. package/dist/src/entities/pipeline/pipeline-run.entity.js +4 -4
  281. package/dist/src/entities/pipeline/pipeline-run.entity.js.map +1 -1
  282. package/dist/src/entities/pipeline/pipeline.entity.d.ts.map +1 -1
  283. package/dist/src/entities/pipeline/pipeline.entity.js +1 -4
  284. package/dist/src/entities/pipeline/pipeline.entity.js.map +1 -1
  285. package/dist/src/extractors/cdc/cdc.extractor.js +7 -6
  286. package/dist/src/extractors/cdc/cdc.extractor.js.map +1 -1
  287. package/dist/src/extractors/database/connection-pool.d.ts +1 -1
  288. package/dist/src/extractors/database/connection-pool.d.ts.map +1 -1
  289. package/dist/src/extractors/database/connection-pool.js +84 -7
  290. package/dist/src/extractors/database/connection-pool.js.map +1 -1
  291. package/dist/src/extractors/database/database.extractor.d.ts.map +1 -1
  292. package/dist/src/extractors/database/database.extractor.js +1 -3
  293. package/dist/src/extractors/database/database.extractor.js.map +1 -1
  294. package/dist/src/extractors/database/query-builder.d.ts.map +1 -1
  295. package/dist/src/extractors/database/query-builder.js +15 -19
  296. package/dist/src/extractors/database/query-builder.js.map +1 -1
  297. package/dist/src/extractors/ftp/connection.d.ts.map +1 -1
  298. package/dist/src/extractors/ftp/connection.js +36 -18
  299. package/dist/src/extractors/ftp/connection.js.map +1 -1
  300. package/dist/src/extractors/graphql/graphql.extractor.d.ts.map +1 -1
  301. package/dist/src/extractors/graphql/graphql.extractor.js +8 -1
  302. package/dist/src/extractors/graphql/graphql.extractor.js.map +1 -1
  303. package/dist/src/extractors/graphql/helpers.d.ts.map +1 -1
  304. package/dist/src/extractors/graphql/helpers.js +0 -1
  305. package/dist/src/extractors/graphql/helpers.js.map +1 -1
  306. package/dist/src/extractors/graphql/schema.d.ts.map +1 -1
  307. package/dist/src/extractors/graphql/schema.js +3 -36
  308. package/dist/src/extractors/graphql/schema.js.map +1 -1
  309. package/dist/src/extractors/http-api/http-api.extractor.d.ts.map +1 -1
  310. package/dist/src/extractors/http-api/http-api.extractor.js +3 -1
  311. package/dist/src/extractors/http-api/http-api.extractor.js.map +1 -1
  312. package/dist/src/extractors/http-api/response-parser.d.ts.map +1 -1
  313. package/dist/src/extractors/http-api/response-parser.js +11 -1
  314. package/dist/src/extractors/http-api/response-parser.js.map +1 -1
  315. package/dist/src/extractors/http-api/schema.d.ts.map +1 -1
  316. package/dist/src/extractors/http-api/schema.js +0 -6
  317. package/dist/src/extractors/http-api/schema.js.map +1 -1
  318. package/dist/src/extractors/s3/client.d.ts.map +1 -1
  319. package/dist/src/extractors/s3/client.js +17 -3
  320. package/dist/src/extractors/s3/client.js.map +1 -1
  321. package/dist/src/extractors/shared/file-format.utils.d.ts +1 -1
  322. package/dist/src/extractors/shared/file-format.utils.js +2 -2
  323. package/dist/src/extractors/shared/file-format.utils.js.map +1 -1
  324. package/dist/src/feeds/feed-generator.service.d.ts.map +1 -1
  325. package/dist/src/feeds/feed-generator.service.js +4 -2
  326. package/dist/src/feeds/feed-generator.service.js.map +1 -1
  327. package/dist/src/feeds/generators/csv-feed.generator.d.ts.map +1 -1
  328. package/dist/src/feeds/generators/csv-feed.generator.js +4 -4
  329. package/dist/src/feeds/generators/csv-feed.generator.js.map +1 -1
  330. package/dist/src/feeds/generators/feed-helpers.d.ts.map +1 -1
  331. package/dist/src/feeds/generators/feed-helpers.js +5 -4
  332. package/dist/src/feeds/generators/feed-helpers.js.map +1 -1
  333. package/dist/src/feeds/generators/json-feed.generator.js +1 -1
  334. package/dist/src/feeds/generators/json-feed.generator.js.map +1 -1
  335. package/dist/src/gql/generated.d.ts +41 -14
  336. package/dist/src/gql/generated.d.ts.map +1 -1
  337. package/dist/src/gql/generated.js.map +1 -1
  338. package/dist/src/index.d.ts +3 -1
  339. package/dist/src/index.d.ts.map +1 -1
  340. package/dist/src/index.js +19 -5
  341. package/dist/src/index.js.map +1 -1
  342. package/dist/src/jobs/handlers/schedule.handler.d.ts.map +1 -1
  343. package/dist/src/jobs/handlers/schedule.handler.js +6 -4
  344. package/dist/src/jobs/handlers/schedule.handler.js.map +1 -1
  345. package/dist/src/jobs/processors/job-processor.js +1 -1
  346. package/dist/src/jobs/processors/job-processor.js.map +1 -1
  347. package/dist/src/loaders/asset/asset.loader.d.ts +3 -18
  348. package/dist/src/loaders/asset/asset.loader.d.ts.map +1 -1
  349. package/dist/src/loaders/asset/asset.loader.js +4 -20
  350. package/dist/src/loaders/asset/asset.loader.js.map +1 -1
  351. package/dist/src/loaders/asset/helpers.d.ts.map +1 -1
  352. package/dist/src/loaders/asset/helpers.js +19 -9
  353. package/dist/src/loaders/asset/helpers.js.map +1 -1
  354. package/dist/src/loaders/base/base-loader.js +1 -1
  355. package/dist/src/loaders/base/base-loader.js.map +1 -1
  356. package/dist/src/loaders/base/validation-builder.d.ts.map +1 -1
  357. package/dist/src/loaders/base/validation-builder.js +0 -1
  358. package/dist/src/loaders/base/validation-builder.js.map +1 -1
  359. package/dist/src/loaders/channel/channel.loader.d.ts +3 -27
  360. package/dist/src/loaders/channel/channel.loader.d.ts.map +1 -1
  361. package/dist/src/loaders/channel/channel.loader.js +4 -30
  362. package/dist/src/loaders/channel/channel.loader.js.map +1 -1
  363. package/dist/src/loaders/channel/helpers.d.ts.map +1 -1
  364. package/dist/src/loaders/channel/helpers.js +4 -5
  365. package/dist/src/loaders/channel/helpers.js.map +1 -1
  366. package/dist/src/loaders/collection/collection.loader.d.ts +3 -17
  367. package/dist/src/loaders/collection/collection.loader.d.ts.map +1 -1
  368. package/dist/src/loaders/collection/collection.loader.js +6 -18
  369. package/dist/src/loaders/collection/collection.loader.js.map +1 -1
  370. package/dist/src/loaders/collection/helpers.d.ts.map +1 -1
  371. package/dist/src/loaders/collection/helpers.js +4 -5
  372. package/dist/src/loaders/collection/helpers.js.map +1 -1
  373. package/dist/src/loaders/customer/customer.loader.d.ts +3 -15
  374. package/dist/src/loaders/customer/customer.loader.d.ts.map +1 -1
  375. package/dist/src/loaders/customer/customer.loader.js +6 -17
  376. package/dist/src/loaders/customer/customer.loader.js.map +1 -1
  377. package/dist/src/loaders/customer/helpers.d.ts +0 -1
  378. package/dist/src/loaders/customer/helpers.d.ts.map +1 -1
  379. package/dist/src/loaders/customer/helpers.js +9 -12
  380. package/dist/src/loaders/customer/helpers.js.map +1 -1
  381. package/dist/src/loaders/customer-group/customer-group.loader.d.ts +3 -15
  382. package/dist/src/loaders/customer-group/customer-group.loader.d.ts.map +1 -1
  383. package/dist/src/loaders/customer-group/customer-group.loader.js +3 -16
  384. package/dist/src/loaders/customer-group/customer-group.loader.js.map +1 -1
  385. package/dist/src/loaders/facet/facet.loader.d.ts +3 -15
  386. package/dist/src/loaders/facet/facet.loader.d.ts.map +1 -1
  387. package/dist/src/loaders/facet/facet.loader.js +4 -17
  388. package/dist/src/loaders/facet/facet.loader.js.map +1 -1
  389. package/dist/src/loaders/facet-value/facet-value.loader.d.ts +1 -7
  390. package/dist/src/loaders/facet-value/facet-value.loader.d.ts.map +1 -1
  391. package/dist/src/loaders/facet-value/facet-value.loader.js +4 -10
  392. package/dist/src/loaders/facet-value/facet-value.loader.js.map +1 -1
  393. package/dist/src/loaders/inventory/inventory.loader.d.ts +4 -13
  394. package/dist/src/loaders/inventory/inventory.loader.d.ts.map +1 -1
  395. package/dist/src/loaders/inventory/inventory.loader.js +13 -18
  396. package/dist/src/loaders/inventory/inventory.loader.js.map +1 -1
  397. package/dist/src/loaders/order/helpers.d.ts +1 -6
  398. package/dist/src/loaders/order/helpers.d.ts.map +1 -1
  399. package/dist/src/loaders/order/helpers.js +12 -31
  400. package/dist/src/loaders/order/helpers.js.map +1 -1
  401. package/dist/src/loaders/order/order.loader.d.ts +1 -6
  402. package/dist/src/loaders/order/order.loader.d.ts.map +1 -1
  403. package/dist/src/loaders/order/order.loader.js +26 -25
  404. package/dist/src/loaders/order/order.loader.js.map +1 -1
  405. package/dist/src/loaders/order/types.d.ts +3 -3
  406. package/dist/src/loaders/order/types.js +1 -1
  407. package/dist/src/loaders/payment-method/payment-method.loader.d.ts +3 -33
  408. package/dist/src/loaders/payment-method/payment-method.loader.d.ts.map +1 -1
  409. package/dist/src/loaders/payment-method/payment-method.loader.js +10 -42
  410. package/dist/src/loaders/payment-method/payment-method.loader.js.map +1 -1
  411. package/dist/src/loaders/product/product.loader.d.ts +3 -15
  412. package/dist/src/loaders/product/product.loader.d.ts.map +1 -1
  413. package/dist/src/loaders/product/product.loader.js +3 -16
  414. package/dist/src/loaders/product/product.loader.js.map +1 -1
  415. package/dist/src/loaders/product-variant/helpers.d.ts.map +1 -1
  416. package/dist/src/loaders/product-variant/helpers.js +2 -1
  417. package/dist/src/loaders/product-variant/helpers.js.map +1 -1
  418. package/dist/src/loaders/product-variant/product-variant.loader.d.ts +1 -12
  419. package/dist/src/loaders/product-variant/product-variant.loader.d.ts.map +1 -1
  420. package/dist/src/loaders/product-variant/product-variant.loader.js +4 -16
  421. package/dist/src/loaders/product-variant/product-variant.loader.js.map +1 -1
  422. package/dist/src/loaders/promotion/helpers.d.ts +2 -22
  423. package/dist/src/loaders/promotion/helpers.d.ts.map +1 -1
  424. package/dist/src/loaders/promotion/helpers.js +7 -28
  425. package/dist/src/loaders/promotion/helpers.js.map +1 -1
  426. package/dist/src/loaders/promotion/promotion.loader.d.ts +3 -15
  427. package/dist/src/loaders/promotion/promotion.loader.d.ts.map +1 -1
  428. package/dist/src/loaders/promotion/promotion.loader.js +11 -23
  429. package/dist/src/loaders/promotion/promotion.loader.js.map +1 -1
  430. package/dist/src/loaders/shared-helpers.d.ts.map +1 -1
  431. package/dist/src/loaders/shared-helpers.js +17 -8
  432. package/dist/src/loaders/shared-helpers.js.map +1 -1
  433. package/dist/src/loaders/shipping-method/shipping-method.loader.d.ts +3 -15
  434. package/dist/src/loaders/shipping-method/shipping-method.loader.d.ts.map +1 -1
  435. package/dist/src/loaders/shipping-method/shipping-method.loader.js +10 -24
  436. package/dist/src/loaders/shipping-method/shipping-method.loader.js.map +1 -1
  437. package/dist/src/loaders/stock-location/stock-location.loader.d.ts +3 -15
  438. package/dist/src/loaders/stock-location/stock-location.loader.d.ts.map +1 -1
  439. package/dist/src/loaders/stock-location/stock-location.loader.js +3 -16
  440. package/dist/src/loaders/stock-location/stock-location.loader.js.map +1 -1
  441. package/dist/src/loaders/tax-rate/helpers.d.ts.map +1 -1
  442. package/dist/src/loaders/tax-rate/helpers.js +3 -2
  443. package/dist/src/loaders/tax-rate/helpers.js.map +1 -1
  444. package/dist/src/loaders/tax-rate/tax-rate.loader.d.ts +3 -23
  445. package/dist/src/loaders/tax-rate/tax-rate.loader.d.ts.map +1 -1
  446. package/dist/src/loaders/tax-rate/tax-rate.loader.js +5 -25
  447. package/dist/src/loaders/tax-rate/tax-rate.loader.js.map +1 -1
  448. package/dist/src/mappers/helpers/mapping-helpers.d.ts.map +1 -1
  449. package/dist/src/mappers/helpers/mapping-helpers.js +0 -2
  450. package/dist/src/mappers/helpers/mapping-helpers.js.map +1 -1
  451. package/dist/src/mappers/transformers/string/string-transformers.js +2 -2
  452. package/dist/src/mappers/transformers/string/string-transformers.js.map +1 -1
  453. package/dist/src/operators/aggregation/helpers.d.ts.map +1 -1
  454. package/dist/src/operators/aggregation/helpers.js +2 -3
  455. package/dist/src/operators/aggregation/helpers.js.map +1 -1
  456. package/dist/src/operators/date/helpers.js +1 -1
  457. package/dist/src/operators/date/helpers.js.map +1 -1
  458. package/dist/src/operators/enrichment/helpers.d.ts.map +1 -1
  459. package/dist/src/operators/enrichment/helpers.js +6 -8
  460. package/dist/src/operators/enrichment/helpers.js.map +1 -1
  461. package/dist/src/operators/helpers.d.ts.map +1 -1
  462. package/dist/src/operators/helpers.js +5 -4
  463. package/dist/src/operators/helpers.js.map +1 -1
  464. package/dist/src/operators/index.d.ts +1 -1
  465. package/dist/src/operators/index.d.ts.map +1 -1
  466. package/dist/src/operators/index.js +1 -1
  467. package/dist/src/operators/index.js.map +1 -1
  468. package/dist/src/operators/json/helpers.js +1 -1
  469. package/dist/src/operators/json/helpers.js.map +1 -1
  470. package/dist/src/operators/logic/helpers.d.ts.map +1 -1
  471. package/dist/src/operators/logic/helpers.js +4 -3
  472. package/dist/src/operators/logic/helpers.js.map +1 -1
  473. package/dist/src/operators/numeric/helpers.js +1 -1
  474. package/dist/src/operators/numeric/helpers.js.map +1 -1
  475. package/dist/src/operators/script/script.operators.d.ts.map +1 -1
  476. package/dist/src/operators/script/script.operators.js +17 -8
  477. package/dist/src/operators/script/script.operators.js.map +1 -1
  478. package/dist/src/operators/string/helpers.js +3 -3
  479. package/dist/src/operators/string/helpers.js.map +1 -1
  480. package/dist/src/parsers/formats/json.parser.d.ts.map +1 -1
  481. package/dist/src/parsers/formats/json.parser.js +6 -7
  482. package/dist/src/parsers/formats/json.parser.js.map +1 -1
  483. package/dist/src/parsers/formats/xml.parser.d.ts.map +1 -1
  484. package/dist/src/parsers/formats/xml.parser.js +5 -7
  485. package/dist/src/parsers/formats/xml.parser.js.map +1 -1
  486. package/dist/src/parsers/helpers/encoding.d.ts.map +1 -1
  487. package/dist/src/parsers/helpers/encoding.js +4 -3
  488. package/dist/src/parsers/helpers/encoding.js.map +1 -1
  489. package/dist/src/parsers/types.d.ts +2 -2
  490. package/dist/src/parsers/types.js +2 -2
  491. package/dist/src/runtime/adapter-runtime.service.d.ts +1 -0
  492. package/dist/src/runtime/adapter-runtime.service.d.ts.map +1 -1
  493. package/dist/src/runtime/adapter-runtime.service.js +62 -43
  494. package/dist/src/runtime/adapter-runtime.service.js.map +1 -1
  495. package/dist/src/runtime/executors/context-adapters.d.ts +4 -9
  496. package/dist/src/runtime/executors/context-adapters.d.ts.map +1 -1
  497. package/dist/src/runtime/executors/context-adapters.js +4 -4
  498. package/dist/src/runtime/executors/context-adapters.js.map +1 -1
  499. package/dist/src/runtime/executors/export.executor.d.ts.map +1 -1
  500. package/dist/src/runtime/executors/export.executor.js +10 -7
  501. package/dist/src/runtime/executors/export.executor.js.map +1 -1
  502. package/dist/src/runtime/executors/exporters/export-handler-registry.d.ts.map +1 -1
  503. package/dist/src/runtime/executors/exporters/export-handler-registry.js +0 -8
  504. package/dist/src/runtime/executors/exporters/export-handler-registry.js.map +1 -1
  505. package/dist/src/runtime/executors/exporters/export-helpers.js +1 -1
  506. package/dist/src/runtime/executors/exporters/export-helpers.js.map +1 -1
  507. package/dist/src/runtime/executors/exporters/http-export.handler.js +2 -2
  508. package/dist/src/runtime/executors/exporters/http-export.handler.js.map +1 -1
  509. package/dist/src/runtime/executors/extract.executor.d.ts.map +1 -1
  510. package/dist/src/runtime/executors/extract.executor.js +0 -1
  511. package/dist/src/runtime/executors/extract.executor.js.map +1 -1
  512. package/dist/src/runtime/executors/extractors/file-extract.handler.d.ts +2 -1
  513. package/dist/src/runtime/executors/extractors/file-extract.handler.d.ts.map +1 -1
  514. package/dist/src/runtime/executors/extractors/file-extract.handler.js +24 -5
  515. package/dist/src/runtime/executors/extractors/file-extract.handler.js.map +1 -1
  516. package/dist/src/runtime/executors/extractors/graphql-extract.handler.d.ts.map +1 -1
  517. package/dist/src/runtime/executors/extractors/graphql-extract.handler.js +67 -10
  518. package/dist/src/runtime/executors/extractors/graphql-extract.handler.js.map +1 -1
  519. package/dist/src/runtime/executors/extractors/rest-extract.handler.d.ts +2 -1
  520. package/dist/src/runtime/executors/extractors/rest-extract.handler.d.ts.map +1 -1
  521. package/dist/src/runtime/executors/extractors/rest-extract.handler.js +133 -27
  522. package/dist/src/runtime/executors/extractors/rest-extract.handler.js.map +1 -1
  523. package/dist/src/runtime/executors/feed.executor.d.ts +1 -1
  524. package/dist/src/runtime/executors/feed.executor.js +5 -5
  525. package/dist/src/runtime/executors/feed.executor.js.map +1 -1
  526. package/dist/src/runtime/executors/feeds/feed-handler-registry.d.ts.map +1 -1
  527. package/dist/src/runtime/executors/feeds/feed-handler-registry.js +0 -13
  528. package/dist/src/runtime/executors/feeds/feed-handler-registry.js.map +1 -1
  529. package/dist/src/runtime/executors/gate.executor.d.ts.map +1 -1
  530. package/dist/src/runtime/executors/gate.executor.js +16 -9
  531. package/dist/src/runtime/executors/gate.executor.js.map +1 -1
  532. package/dist/src/runtime/executors/load.executor.js +2 -2
  533. package/dist/src/runtime/executors/load.executor.js.map +1 -1
  534. package/dist/src/runtime/executors/loaders/channel-handler.d.ts.map +1 -1
  535. package/dist/src/runtime/executors/loaders/channel-handler.js +16 -20
  536. package/dist/src/runtime/executors/loaders/channel-handler.js.map +1 -1
  537. package/dist/src/runtime/executors/loaders/customer-handler.d.ts +1 -1
  538. package/dist/src/runtime/executors/loaders/customer-handler.d.ts.map +1 -1
  539. package/dist/src/runtime/executors/loaders/customer-handler.js +20 -20
  540. package/dist/src/runtime/executors/loaders/customer-handler.js.map +1 -1
  541. package/dist/src/runtime/executors/loaders/deletion-handler.d.ts.map +1 -1
  542. package/dist/src/runtime/executors/loaders/deletion-handler.js +16 -14
  543. package/dist/src/runtime/executors/loaders/deletion-handler.js.map +1 -1
  544. package/dist/src/runtime/executors/loaders/inventory-handler.d.ts.map +1 -1
  545. package/dist/src/runtime/executors/loaders/inventory-handler.js +15 -20
  546. package/dist/src/runtime/executors/loaders/inventory-handler.js.map +1 -1
  547. package/dist/src/runtime/executors/loaders/loader-handler-registry.d.ts.map +1 -1
  548. package/dist/src/runtime/executors/loaders/loader-handler-registry.js +0 -11
  549. package/dist/src/runtime/executors/loaders/loader-handler-registry.js.map +1 -1
  550. package/dist/src/runtime/executors/loaders/order-handler.d.ts +2 -1
  551. package/dist/src/runtime/executors/loaders/order-handler.d.ts.map +1 -1
  552. package/dist/src/runtime/executors/loaders/order-handler.js +20 -10
  553. package/dist/src/runtime/executors/loaders/order-handler.js.map +1 -1
  554. package/dist/src/runtime/executors/loaders/product-handler.d.ts +0 -4
  555. package/dist/src/runtime/executors/loaders/product-handler.d.ts.map +1 -1
  556. package/dist/src/runtime/executors/loaders/product-handler.js +2 -8
  557. package/dist/src/runtime/executors/loaders/product-handler.js.map +1 -1
  558. package/dist/src/runtime/executors/loaders/promotion-handler.js +10 -10
  559. package/dist/src/runtime/executors/loaders/promotion-handler.js.map +1 -1
  560. package/dist/src/runtime/executors/loaders/shared-http-client.js +1 -1
  561. package/dist/src/runtime/executors/loaders/shared-http-client.js.map +1 -1
  562. package/dist/src/runtime/executors/loaders/shared-lookups.d.ts.map +1 -1
  563. package/dist/src/runtime/executors/loaders/shared-lookups.js +3 -4
  564. package/dist/src/runtime/executors/loaders/shared-lookups.js.map +1 -1
  565. package/dist/src/runtime/executors/loaders/variant-handler.d.ts.map +1 -1
  566. package/dist/src/runtime/executors/loaders/variant-handler.js +27 -19
  567. package/dist/src/runtime/executors/loaders/variant-handler.js.map +1 -1
  568. package/dist/src/runtime/executors/sink-handler-registry.d.ts +2 -0
  569. package/dist/src/runtime/executors/sink-handler-registry.d.ts.map +1 -1
  570. package/dist/src/runtime/executors/sink-handler-registry.js +82 -49
  571. package/dist/src/runtime/executors/sink-handler-registry.js.map +1 -1
  572. package/dist/src/runtime/executors/sink.executor.js +4 -4
  573. package/dist/src/runtime/executors/sink.executor.js.map +1 -1
  574. package/dist/src/runtime/executors/transform.executor.d.ts +1 -1
  575. package/dist/src/runtime/executors/transform.executor.d.ts.map +1 -1
  576. package/dist/src/runtime/executors/transform.executor.js +44 -30
  577. package/dist/src/runtime/executors/transform.executor.js.map +1 -1
  578. package/dist/src/runtime/helpers/dry-run-simulator.js +4 -4
  579. package/dist/src/runtime/helpers/dry-run-simulator.js.map +1 -1
  580. package/dist/src/runtime/helpers/execution-lifecycle.d.ts +1 -0
  581. package/dist/src/runtime/helpers/execution-lifecycle.d.ts.map +1 -1
  582. package/dist/src/runtime/helpers/execution-lifecycle.js +2 -2
  583. package/dist/src/runtime/helpers/execution-lifecycle.js.map +1 -1
  584. package/dist/src/runtime/orchestration/graph-executor.d.ts +1 -0
  585. package/dist/src/runtime/orchestration/graph-executor.d.ts.map +1 -1
  586. package/dist/src/runtime/orchestration/graph-executor.js +31 -36
  587. package/dist/src/runtime/orchestration/graph-executor.js.map +1 -1
  588. package/dist/src/runtime/orchestration/linear-executor.d.ts +3 -0
  589. package/dist/src/runtime/orchestration/linear-executor.d.ts.map +1 -1
  590. package/dist/src/runtime/orchestration/linear-executor.js +3 -13
  591. package/dist/src/runtime/orchestration/linear-executor.js.map +1 -1
  592. package/dist/src/runtime/orchestration/replay-executor.d.ts.map +1 -1
  593. package/dist/src/runtime/orchestration/replay-executor.js +17 -3
  594. package/dist/src/runtime/orchestration/replay-executor.js.map +1 -1
  595. package/dist/src/runtime/orchestration/throughput-controller.d.ts.map +1 -1
  596. package/dist/src/runtime/orchestration/throughput-controller.js +0 -5
  597. package/dist/src/runtime/orchestration/throughput-controller.js.map +1 -1
  598. package/dist/src/runtime/sandbox/safe-evaluator.d.ts.map +1 -1
  599. package/dist/src/runtime/sandbox/safe-evaluator.js +3 -6
  600. package/dist/src/runtime/sandbox/safe-evaluator.js.map +1 -1
  601. package/dist/src/runtime/utils.d.ts +1 -1
  602. package/dist/src/runtime/utils.d.ts.map +1 -1
  603. package/dist/src/runtime/utils.js +7 -4
  604. package/dist/src/runtime/utils.js.map +1 -1
  605. package/dist/src/sdk/adapters/queue/internal.adapter.d.ts +3 -14
  606. package/dist/src/sdk/adapters/queue/internal.adapter.d.ts.map +1 -1
  607. package/dist/src/sdk/adapters/queue/internal.adapter.js +41 -27
  608. package/dist/src/sdk/adapters/queue/internal.adapter.js.map +1 -1
  609. package/dist/src/sdk/adapters/queue/queue-adapter.interface.d.ts +24 -23
  610. package/dist/src/sdk/adapters/queue/queue-adapter.interface.d.ts.map +1 -1
  611. package/dist/src/sdk/adapters/queue/rabbitmq-amqp.adapter.d.ts.map +1 -1
  612. package/dist/src/sdk/adapters/queue/rabbitmq-amqp.adapter.js +1 -3
  613. package/dist/src/sdk/adapters/queue/rabbitmq-amqp.adapter.js.map +1 -1
  614. package/dist/src/sdk/adapters/queue/rabbitmq.adapter.d.ts +2 -17
  615. package/dist/src/sdk/adapters/queue/rabbitmq.adapter.d.ts.map +1 -1
  616. package/dist/src/sdk/adapters/queue/rabbitmq.adapter.js +9 -20
  617. package/dist/src/sdk/adapters/queue/rabbitmq.adapter.js.map +1 -1
  618. package/dist/src/sdk/adapters/queue/redis-streams.adapter.d.ts.map +1 -1
  619. package/dist/src/sdk/adapters/queue/redis-streams.adapter.js +11 -3
  620. package/dist/src/sdk/adapters/queue/redis-streams.adapter.js.map +1 -1
  621. package/dist/src/sdk/adapters/queue/sqs.adapter.d.ts +1 -1
  622. package/dist/src/sdk/adapters/queue/sqs.adapter.d.ts.map +1 -1
  623. package/dist/src/sdk/adapters/queue/sqs.adapter.js +5 -4
  624. package/dist/src/sdk/adapters/queue/sqs.adapter.js.map +1 -1
  625. package/dist/src/sdk/constants.d.ts +1 -1
  626. package/dist/src/sdk/constants.d.ts.map +1 -1
  627. package/dist/src/sdk/constants.js +2 -1
  628. package/dist/src/sdk/constants.js.map +1 -1
  629. package/dist/src/sdk/dsl/pipeline-builder.js +1 -1
  630. package/dist/src/sdk/dsl/pipeline-builder.js.map +1 -1
  631. package/dist/src/sdk/dsl/step-configs.d.ts +51 -10
  632. package/dist/src/sdk/dsl/step-configs.d.ts.map +1 -1
  633. package/dist/src/sdk/dsl/transform-builder.d.ts +2 -2
  634. package/dist/src/sdk/dsl/transform-builder.d.ts.map +1 -1
  635. package/dist/src/sdk/dsl/transform-builder.js +2 -2
  636. package/dist/src/sdk/dsl/transform-builder.js.map +1 -1
  637. package/dist/src/sdk/dsl/validation-helpers.js +3 -3
  638. package/dist/src/sdk/dsl/validation-helpers.js.map +1 -1
  639. package/dist/src/sdk/registry.service.js +2 -2
  640. package/dist/src/sdk/registry.service.js.map +1 -1
  641. package/dist/src/sdk/types/connection-types.d.ts +1 -1
  642. package/dist/src/sdk/types/connection-types.d.ts.map +1 -1
  643. package/dist/src/services/analytics/time-series.helpers.d.ts.map +1 -1
  644. package/dist/src/services/analytics/time-series.helpers.js +4 -6
  645. package/dist/src/services/analytics/time-series.helpers.js.map +1 -1
  646. package/dist/src/services/config/connection.service.d.ts.map +1 -1
  647. package/dist/src/services/config/connection.service.js +11 -1
  648. package/dist/src/services/config/connection.service.js.map +1 -1
  649. package/dist/src/services/config/secret.service.d.ts +1 -1
  650. package/dist/src/services/config/secret.service.d.ts.map +1 -1
  651. package/dist/src/services/config/secret.service.js +15 -8
  652. package/dist/src/services/config/secret.service.js.map +1 -1
  653. package/dist/src/services/config/settings.service.d.ts.map +1 -1
  654. package/dist/src/services/config/settings.service.js +0 -2
  655. package/dist/src/services/config/settings.service.js.map +1 -1
  656. package/dist/src/services/data/checkpoint.service.d.ts.map +1 -1
  657. package/dist/src/services/data/checkpoint.service.js +14 -8
  658. package/dist/src/services/data/checkpoint.service.js.map +1 -1
  659. package/dist/src/services/data/record-error.service.d.ts.map +1 -1
  660. package/dist/src/services/data/record-error.service.js +0 -13
  661. package/dist/src/services/data/record-error.service.js.map +1 -1
  662. package/dist/src/services/destinations/delivery-utils.d.ts +1 -1
  663. package/dist/src/services/destinations/delivery-utils.d.ts.map +1 -1
  664. package/dist/src/services/destinations/delivery-utils.js +4 -2
  665. package/dist/src/services/destinations/delivery-utils.js.map +1 -1
  666. package/dist/src/services/destinations/destination-handler-registry.d.ts.map +1 -1
  667. package/dist/src/services/destinations/destination-handler-registry.js +9 -5
  668. package/dist/src/services/destinations/destination-handler-registry.js.map +1 -1
  669. package/dist/src/services/destinations/email.handler.js +1 -1
  670. package/dist/src/services/destinations/email.handler.js.map +1 -1
  671. package/dist/src/services/destinations/ftp.handler.js +1 -1
  672. package/dist/src/services/destinations/ftp.handler.js.map +1 -1
  673. package/dist/src/services/destinations/http.handler.d.ts.map +1 -1
  674. package/dist/src/services/destinations/http.handler.js +1 -0
  675. package/dist/src/services/destinations/http.handler.js.map +1 -1
  676. package/dist/src/services/destinations/s3.handler.d.ts.map +1 -1
  677. package/dist/src/services/destinations/s3.handler.js +25 -11
  678. package/dist/src/services/destinations/s3.handler.js.map +1 -1
  679. package/dist/src/services/events/consumer-discovery.d.ts.map +1 -1
  680. package/dist/src/services/events/consumer-discovery.js +13 -12
  681. package/dist/src/services/events/consumer-discovery.js.map +1 -1
  682. package/dist/src/services/events/domain-events.service.d.ts.map +1 -1
  683. package/dist/src/services/events/domain-events.service.js +2 -2
  684. package/dist/src/services/events/domain-events.service.js.map +1 -1
  685. package/dist/src/services/events/event-trigger.service.d.ts.map +1 -1
  686. package/dist/src/services/events/event-trigger.service.js +56 -9
  687. package/dist/src/services/events/event-trigger.service.js.map +1 -1
  688. package/dist/src/services/events/file-watch.service.d.ts +6 -1
  689. package/dist/src/services/events/file-watch.service.d.ts.map +1 -1
  690. package/dist/src/services/events/file-watch.service.js +133 -48
  691. package/dist/src/services/events/file-watch.service.js.map +1 -1
  692. package/dist/src/services/events/hook.service.d.ts.map +1 -1
  693. package/dist/src/services/events/hook.service.js +64 -12
  694. package/dist/src/services/events/hook.service.js.map +1 -1
  695. package/dist/src/services/events/message-consumer.service.d.ts +3 -1
  696. package/dist/src/services/events/message-consumer.service.d.ts.map +1 -1
  697. package/dist/src/services/events/message-consumer.service.js +6 -4
  698. package/dist/src/services/events/message-consumer.service.js.map +1 -1
  699. package/dist/src/services/events/message-processing.d.ts +4 -1
  700. package/dist/src/services/events/message-processing.d.ts.map +1 -1
  701. package/dist/src/services/events/message-processing.js +47 -6
  702. package/dist/src/services/events/message-processing.js.map +1 -1
  703. package/dist/src/services/logger/sanitizer.d.ts.map +1 -1
  704. package/dist/src/services/logger/sanitizer.js +4 -5
  705. package/dist/src/services/logger/sanitizer.js.map +1 -1
  706. package/dist/src/services/pipeline/pipeline-log.service.d.ts +0 -4
  707. package/dist/src/services/pipeline/pipeline-log.service.d.ts.map +1 -1
  708. package/dist/src/services/pipeline/pipeline-log.service.js +2 -14
  709. package/dist/src/services/pipeline/pipeline-log.service.js.map +1 -1
  710. package/dist/src/services/pipeline/pipeline-runner.service.d.ts +6 -1
  711. package/dist/src/services/pipeline/pipeline-runner.service.d.ts.map +1 -1
  712. package/dist/src/services/pipeline/pipeline-runner.service.js +111 -17
  713. package/dist/src/services/pipeline/pipeline-runner.service.js.map +1 -1
  714. package/dist/src/services/pipeline/pipeline.service.d.ts +8 -4
  715. package/dist/src/services/pipeline/pipeline.service.d.ts.map +1 -1
  716. package/dist/src/services/pipeline/pipeline.service.js +51 -35
  717. package/dist/src/services/pipeline/pipeline.service.js.map +1 -1
  718. package/dist/src/services/rate-limit/rate-limit.service.d.ts.map +1 -1
  719. package/dist/src/services/rate-limit/rate-limit.service.js +3 -5
  720. package/dist/src/services/rate-limit/rate-limit.service.js.map +1 -1
  721. package/dist/src/services/runtime/batch-rollback.service.d.ts.map +1 -1
  722. package/dist/src/services/runtime/batch-rollback.service.js +1 -6
  723. package/dist/src/services/runtime/batch-rollback.service.js.map +1 -1
  724. package/dist/src/services/runtime/distributed-lock.service.d.ts.map +1 -1
  725. package/dist/src/services/runtime/distributed-lock.service.js +10 -12
  726. package/dist/src/services/runtime/distributed-lock.service.js.map +1 -1
  727. package/dist/src/services/runtime/lock-backends/lock-backend.factory.d.ts +1 -1
  728. package/dist/src/services/runtime/lock-backends/lock-backend.factory.d.ts.map +1 -1
  729. package/dist/src/services/runtime/lock-backends/lock-backend.factory.js +5 -4
  730. package/dist/src/services/runtime/lock-backends/lock-backend.factory.js.map +1 -1
  731. package/dist/src/services/storage/storage-backend.factory.d.ts.map +1 -1
  732. package/dist/src/services/storage/storage-backend.factory.js +2 -1
  733. package/dist/src/services/storage/storage-backend.factory.js.map +1 -1
  734. package/dist/src/services/validation/adapter-validation.js +2 -2
  735. package/dist/src/services/validation/adapter-validation.js.map +1 -1
  736. package/dist/src/services/validation/definition-validation.service.d.ts.map +1 -1
  737. package/dist/src/services/validation/definition-validation.service.js +1 -1
  738. package/dist/src/services/validation/definition-validation.service.js.map +1 -1
  739. package/dist/src/services/validation/trigger-validation.d.ts.map +1 -1
  740. package/dist/src/services/validation/trigger-validation.js +23 -29
  741. package/dist/src/services/validation/trigger-validation.js.map +1 -1
  742. package/dist/src/services/versioning/field-detection.d.ts.map +1 -1
  743. package/dist/src/services/versioning/field-detection.js +0 -1
  744. package/dist/src/services/versioning/field-detection.js.map +1 -1
  745. package/dist/src/services/versioning/impact-collectors.d.ts.map +1 -1
  746. package/dist/src/services/versioning/impact-collectors.js +26 -11
  747. package/dist/src/services/versioning/impact-collectors.js.map +1 -1
  748. package/dist/src/services/versioning/revision.service.d.ts.map +1 -1
  749. package/dist/src/services/versioning/revision.service.js +4 -1
  750. package/dist/src/services/versioning/revision.service.js.map +1 -1
  751. package/dist/src/services/versioning/sandbox/load-operation-simulator.d.ts.map +1 -1
  752. package/dist/src/services/versioning/sandbox/load-operation-simulator.js +26 -10
  753. package/dist/src/services/versioning/sandbox/load-operation-simulator.js.map +1 -1
  754. package/dist/src/services/webhooks/webhook-retry.service.d.ts +1 -1
  755. package/dist/src/services/webhooks/webhook-retry.service.d.ts.map +1 -1
  756. package/dist/src/services/webhooks/webhook-retry.service.js +27 -22
  757. package/dist/src/services/webhooks/webhook-retry.service.js.map +1 -1
  758. package/dist/src/services/webhooks/webhook.helpers.js +1 -1
  759. package/dist/src/services/webhooks/webhook.helpers.js.map +1 -1
  760. package/dist/src/templates/defaults.js +6 -6
  761. package/dist/src/templates/defaults.js.map +1 -1
  762. package/dist/src/templates/imports/types.d.ts +1 -1
  763. package/dist/src/templates/imports/types.js +1 -1
  764. package/dist/src/transforms/field/date-transforms.js +15 -15
  765. package/dist/src/transforms/field/date-transforms.js.map +1 -1
  766. package/dist/src/transforms/field/number-transforms.d.ts +0 -26
  767. package/dist/src/transforms/field/number-transforms.d.ts.map +1 -1
  768. package/dist/src/transforms/field/number-transforms.js +0 -26
  769. package/dist/src/transforms/field/number-transforms.js.map +1 -1
  770. package/dist/src/transforms/helpers/expression-eval.d.ts +0 -1
  771. package/dist/src/transforms/helpers/expression-eval.d.ts.map +1 -1
  772. package/dist/src/transforms/helpers/expression-eval.js +15 -26
  773. package/dist/src/transforms/helpers/expression-eval.js.map +1 -1
  774. package/dist/src/transforms/record/lookup-transforms.js +1 -1
  775. package/dist/src/transforms/record/lookup-transforms.js.map +1 -1
  776. package/dist/src/types/loader-configs.d.ts +6 -6
  777. package/dist/src/types/loader-configs.d.ts.map +1 -1
  778. package/dist/src/types/plugin-options.d.ts +0 -10
  779. package/dist/src/types/plugin-options.d.ts.map +1 -1
  780. package/dist/src/types/step-configs.d.ts +13 -5
  781. package/dist/src/types/step-configs.d.ts.map +1 -1
  782. package/dist/src/types/step-configs.js.map +1 -1
  783. package/dist/src/types/typed-config.js +1 -1
  784. package/dist/src/types/typed-config.js.map +1 -1
  785. package/dist/src/utils/code-security.utils.d.ts.map +1 -1
  786. package/dist/src/utils/code-security.utils.js +11 -13
  787. package/dist/src/utils/code-security.utils.js.map +1 -1
  788. package/dist/src/utils/encryption.utils.d.ts +2 -2
  789. package/dist/src/utils/encryption.utils.d.ts.map +1 -1
  790. package/dist/src/utils/encryption.utils.js +13 -17
  791. package/dist/src/utils/encryption.utils.js.map +1 -1
  792. package/dist/src/utils/object-path.utils.d.ts.map +1 -1
  793. package/dist/src/utils/object-path.utils.js +22 -6
  794. package/dist/src/utils/object-path.utils.js.map +1 -1
  795. package/dist/src/utils/retry.utils.js +14 -14
  796. package/dist/src/utils/retry.utils.js.map +1 -1
  797. package/dist/src/utils/sql-security.utils.d.ts.map +1 -1
  798. package/dist/src/utils/sql-security.utils.js +6 -3
  799. package/dist/src/utils/sql-security.utils.js.map +1 -1
  800. package/dist/src/utils/url-security.utils.d.ts +21 -0
  801. package/dist/src/utils/url-security.utils.d.ts.map +1 -1
  802. package/dist/src/utils/url-security.utils.js +71 -3
  803. package/dist/src/utils/url-security.utils.js.map +1 -1
  804. package/dist/src/validation/pipeline-definition.validator.js +3 -11
  805. package/dist/src/validation/pipeline-definition.validator.js.map +1 -1
  806. package/docs/deployment/README.md +1 -1
  807. package/docs/deployment/configuration.md +4 -4
  808. package/docs/deployment/migrations.md +2 -3
  809. package/docs/deployment/permissions.md +1 -1
  810. package/docs/deployment/production.md +4 -4
  811. package/docs/deployment/troubleshooting.md +27 -18
  812. package/docs/developer-guide/architecture.md +2 -2
  813. package/docs/developer-guide/extending/README.md +6 -6
  814. package/docs/developer-guide/extending/events.md +2 -2
  815. package/docs/developer-guide/graphql-api.md +36 -117
  816. package/docs/examples/validation-error-messages.md +1 -1
  817. package/docs/getting-started/quick-start.md +1 -1
  818. package/docs/guides/multi-entity.md +0 -1
  819. package/docs/reference/extractors.md +19 -24
  820. package/docs/reference/operators-complete.md +1 -1
  821. package/docs/user-guide/external-integrations.md +1 -1
  822. package/docs/user-guide/queue-messaging.md +14 -11
  823. package/docs/user-guide/recipes.md +0 -1
  824. package/docs/user-guide/wizards.md +0 -1
  825. package/package.json +3 -1
  826. package/sdk/types/connection-types.ts +9 -0
  827. package/shared/constants/step-type-configs.ts +2 -2
  828. package/shared/types/adapter-config.types.ts +3 -3
  829. package/shared/types/adapter.types.ts +1 -1
  830. package/shared/types/execution.types.ts +2 -5
  831. package/shared/types/extractor.types.ts +1 -1
  832. package/shared/types/index.ts +1 -1
  833. package/shared/types/pipeline.types.ts +2 -3
  834. package/shared/types/step.types.ts +3 -4
  835. package/shared/types/trigger.types.ts +4 -28
  836. package/shared/utils/csv-parse.ts +2 -2
  837. package/shared/utils/validation.ts +1 -1
  838. package/shared/vendure-schemas.ts +1 -1
  839. package/dist/src/api/types/args.d.ts +0 -12
  840. package/dist/src/api/types/args.d.ts.map +0 -1
  841. package/dist/src/api/types/args.js +0 -13
  842. 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
- - **10 step types**: TRIGGER, EXTRACT, TRANSFORM, VALIDATE, ENRICH, ROUTE, LOAD, EXPORT, FEED, SINK, GATE
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('SCHEDULE', { cronExpression: '0 2 * * *' })
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** (18 resolvers):
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/ # Background job handlers
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 jobs
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, validateHostname } from '../../utils';
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 cleaned = rows.filter(row => row.name.trim() && row.value.trim());
155
- const next = cleaned.length ? Object.fromEntries(cleaned.map(row => [row.name.trim(), row.value])) : undefined;
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={() => commitHeaders([...headerRows, createHeaderRow()])}
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
- setErrors(result?.errors ?? ['Invalid definition']);
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(nodes.map(n => [n.id, n.position]));
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, nodes, setNodes, setEdges, getDefinitionKey]);
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 -- used by keyboard accessibility path
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={handleAutoLayout} className="gap-1 text-xs" data-testid="datahub-pipeline-editor-auto-layout-button" aria-label="Auto-layout pipeline nodes">
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 dragging left increases width
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, VisualNodeConfig } from './visual-node-config';
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 {adapterTypeLabel.startsWith('a') ? 'an' : 'a'} {adapterTypeLabel}</span>
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 {adapterTypeLabel.startsWith('a') ? 'an' : 'a'} {adapterTypeLabel} to be configured.
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 -- maps field.type to a render function. */
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> = {
@@ -1,4 +1,3 @@
1
- import * as React from 'react';
2
1
  import { useCallback, useEffect, useRef } from 'react';
3
2
  import {
4
3
  Label,
@@ -80,7 +80,7 @@ export function OperatorFieldInput({ field, value, onChange }: OperatorFieldInpu
80
80
  );
81
81
  }
82
82
 
83
- // Code field type full code editor with line numbers, Tab support, and expand dialog
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, Settings2 } from 'lucide-react';
13
+ import { Trash2 } from 'lucide-react';
14
14
 
15
15
  import { SchemaFormRenderer } from '../schema-form';
16
- import {
17
- AdapterSelector,
18
- AdapterRequiredWarning,
19
- ValidateConfigComponent,
20
- RouteConfigComponent,
21
- EnrichConfigComponent,
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
- updateConfigBatch({
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.eventType,
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
- eventType: (data.config?.event as string) || (data.config?.eventType as string),
264
- }), [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?.eventType]);
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 don't need the adapter selector empty state
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 && availableAdapters.length === 0) return null;
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 errorHandlingOptions = validationModes;
79
- const errorHandlingMode = (config.errorHandlingMode as string) || 'FAIL_FAST';
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
- {errorHandlingOptions.map((mode) => (
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
- {ruleTypes.map((rt) => (
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 { formatFieldLabel } from '../../../utils/formatters';
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={formatFieldLabel(key)}>
227
+ <SummaryField key={key} label={formatKey(key)}>
228
228
  {typeof value === 'object' ? JSON.stringify(value) : String(value)}
229
229
  </SummaryField>
230
230
  ));