@oronts/vendure-data-hub-plugin 0.1.2 → 0.1.4

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 (534) hide show
  1. package/CHANGELOG.md +33 -1
  2. package/README.md +36 -10
  3. package/dashboard/components/pipelines/PipelineEditor.tsx +159 -5
  4. package/dashboard/components/pipelines/ReactFlowPipelineEditor.tsx +3 -3
  5. package/dashboard/components/pipelines/shared/NodePropertiesPanel.tsx +42 -4
  6. package/dashboard/components/pipelines/shared/StepListItem.tsx +2 -2
  7. package/dashboard/components/shared/CodeEditor.tsx +289 -0
  8. package/dashboard/components/shared/schema-form/fields/TextareaField.tsx +19 -4
  9. package/dashboard/components/shared/step-config/AdapterSelector.tsx +2 -2
  10. package/dashboard/components/shared/step-config/OperatorFieldInput.tsx +19 -0
  11. package/dashboard/components/shared/step-config/RouteConfigComponent.tsx +218 -29
  12. package/dashboard/components/shared/step-config/StepConfigPanel.tsx +24 -10
  13. package/dashboard/constants/ui-dimensions.ts +2 -1
  14. package/dashboard/constants/ui-states.ts +1 -0
  15. package/dashboard/gql/gql.ts +6 -6
  16. package/dashboard/gql/graphql.ts +9 -4
  17. package/dashboard/hooks/api/use-pipeline-runs.ts +1 -0
  18. package/dashboard/hooks/api/use-queues.ts +1 -0
  19. package/dashboard/hooks/use-adapter-catalog.ts +4 -32
  20. package/dashboard/routes/connections/ConnectionDetail.tsx +7 -1
  21. package/dashboard/routes/pipelines/RunDetailsPanel.tsx +1 -1
  22. package/dashboard/routes/pipelines/components/PipelineActionButtons.tsx +3 -3
  23. package/dashboard/routes/pipelines/utils/pipeline-conversion.ts +3 -5
  24. package/dashboard/utils/formatters.ts +6 -4
  25. package/dist/dashboard/components/pipelines/PipelineEditor.tsx +159 -5
  26. package/dist/dashboard/components/pipelines/ReactFlowPipelineEditor.tsx +3 -3
  27. package/dist/dashboard/components/pipelines/shared/NodePropertiesPanel.tsx +42 -4
  28. package/dist/dashboard/components/pipelines/shared/StepListItem.tsx +2 -2
  29. package/dist/dashboard/components/shared/CodeEditor.tsx +289 -0
  30. package/dist/dashboard/components/shared/schema-form/fields/TextareaField.tsx +19 -4
  31. package/dist/dashboard/components/shared/step-config/AdapterSelector.tsx +2 -2
  32. package/dist/dashboard/components/shared/step-config/OperatorFieldInput.tsx +19 -0
  33. package/dist/dashboard/components/shared/step-config/RouteConfigComponent.tsx +218 -29
  34. package/dist/dashboard/components/shared/step-config/StepConfigPanel.tsx +24 -10
  35. package/dist/dashboard/constants/ui-dimensions.ts +2 -1
  36. package/dist/dashboard/constants/ui-states.ts +1 -0
  37. package/dist/dashboard/gql/gql.ts +6 -6
  38. package/dist/dashboard/gql/graphql.ts +9 -4
  39. package/dist/dashboard/hooks/api/use-pipeline-runs.ts +1 -0
  40. package/dist/dashboard/hooks/api/use-queues.ts +1 -0
  41. package/dist/dashboard/hooks/use-adapter-catalog.ts +4 -32
  42. package/dist/dashboard/routes/connections/ConnectionDetail.tsx +7 -1
  43. package/dist/dashboard/routes/pipelines/RunDetailsPanel.tsx +1 -1
  44. package/dist/dashboard/routes/pipelines/components/PipelineActionButtons.tsx +3 -3
  45. package/dist/dashboard/routes/pipelines/utils/pipeline-conversion.ts +3 -5
  46. package/dist/dashboard/utils/formatters.ts +6 -4
  47. package/dist/shared/types/adapter-config.types.d.ts +400 -13
  48. package/dist/shared/types/adapter-config.types.d.ts.map +1 -1
  49. package/dist/shared/types/index.d.ts +1 -1
  50. package/dist/shared/types/index.d.ts.map +1 -1
  51. package/dist/shared/types/index.js.map +1 -1
  52. package/dist/shared/types/loader.types.d.ts +4 -0
  53. package/dist/shared/types/loader.types.d.ts.map +1 -1
  54. package/dist/shared/types/step.types.d.ts +6 -0
  55. package/dist/shared/types/step.types.d.ts.map +1 -1
  56. package/dist/shared/utils/error.d.ts +5 -0
  57. package/dist/shared/utils/error.d.ts.map +1 -1
  58. package/dist/shared/utils/error.js +11 -0
  59. package/dist/shared/utils/error.js.map +1 -1
  60. package/dist/src/adapters/registry.d.ts.map +1 -1
  61. package/dist/src/adapters/registry.js +2 -1
  62. package/dist/src/adapters/registry.js.map +1 -1
  63. package/dist/src/api/controllers/webhook.controller.d.ts +10 -0
  64. package/dist/src/api/controllers/webhook.controller.d.ts.map +1 -1
  65. package/dist/src/api/controllers/webhook.controller.js +50 -10
  66. package/dist/src/api/controllers/webhook.controller.js.map +1 -1
  67. package/dist/src/api/resolvers/queue.resolver.d.ts +3 -1
  68. package/dist/src/api/resolvers/queue.resolver.d.ts.map +1 -1
  69. package/dist/src/api/resolvers/queue.resolver.js +6 -5
  70. package/dist/src/api/resolvers/queue.resolver.js.map +1 -1
  71. package/dist/src/api/schema/pipeline.schema.d.ts +1 -1
  72. package/dist/src/api/schema/pipeline.schema.d.ts.map +1 -1
  73. package/dist/src/api/schema/pipeline.schema.js +6 -0
  74. package/dist/src/api/schema/pipeline.schema.js.map +1 -1
  75. package/dist/src/api/schema/test.schema.d.ts +1 -1
  76. package/dist/src/api/schema/test.schema.d.ts.map +1 -1
  77. package/dist/src/api/schema/test.schema.js +5 -1
  78. package/dist/src/api/schema/test.schema.js.map +1 -1
  79. package/dist/src/bootstrap/initialization.d.ts.map +1 -1
  80. package/dist/src/bootstrap/initialization.js +6 -0
  81. package/dist/src/bootstrap/initialization.js.map +1 -1
  82. package/dist/src/constants/adapter-schema-options.d.ts +65 -0
  83. package/dist/src/constants/adapter-schema-options.d.ts.map +1 -1
  84. package/dist/src/constants/adapter-schema-options.js +79 -3
  85. package/dist/src/constants/adapter-schema-options.js.map +1 -1
  86. package/dist/src/constants/builtin-adapters.d.ts +1 -1
  87. package/dist/src/constants/builtin-adapters.d.ts.map +1 -1
  88. package/dist/src/constants/builtin-adapters.js +19 -1
  89. package/dist/src/constants/builtin-adapters.js.map +1 -1
  90. package/dist/src/constants/core.d.ts +10 -0
  91. package/dist/src/constants/core.d.ts.map +1 -1
  92. package/dist/src/constants/core.js +10 -0
  93. package/dist/src/constants/core.js.map +1 -1
  94. package/dist/src/constants/defaults/webhook-defaults.d.ts +2 -0
  95. package/dist/src/constants/defaults/webhook-defaults.d.ts.map +1 -1
  96. package/dist/src/constants/defaults/webhook-defaults.js +2 -0
  97. package/dist/src/constants/defaults/webhook-defaults.js.map +1 -1
  98. package/dist/src/constants/enum-metadata.d.ts.map +1 -1
  99. package/dist/src/constants/enum-metadata.js +3 -0
  100. package/dist/src/constants/enum-metadata.js.map +1 -1
  101. package/dist/src/constants/hook-stage-metadata.d.ts.map +1 -1
  102. package/dist/src/constants/hook-stage-metadata.js +42 -0
  103. package/dist/src/constants/hook-stage-metadata.js.map +1 -1
  104. package/dist/src/constants/services.d.ts.map +1 -1
  105. package/dist/src/constants/services.js +7 -0
  106. package/dist/src/constants/services.js.map +1 -1
  107. package/dist/src/constants/time.d.ts +2 -0
  108. package/dist/src/constants/time.d.ts.map +1 -1
  109. package/dist/src/constants/time.js +2 -0
  110. package/dist/src/constants/time.js.map +1 -1
  111. package/dist/src/entities/data/error-record.entity.d.ts +1 -0
  112. package/dist/src/entities/data/error-record.entity.d.ts.map +1 -1
  113. package/dist/src/entities/data/error-record.entity.js +4 -0
  114. package/dist/src/entities/data/error-record.entity.js.map +1 -1
  115. package/dist/src/entities/pipeline/pipeline-run.entity.d.ts +4 -0
  116. package/dist/src/entities/pipeline/pipeline-run.entity.d.ts.map +1 -1
  117. package/dist/src/entities/pipeline/pipeline-run.entity.js +8 -0
  118. package/dist/src/entities/pipeline/pipeline-run.entity.js.map +1 -1
  119. package/dist/src/extractors/cdc/cdc.extractor.d.ts.map +1 -1
  120. package/dist/src/extractors/cdc/cdc.extractor.js +7 -2
  121. package/dist/src/extractors/cdc/cdc.extractor.js.map +1 -1
  122. package/dist/src/extractors/cdc/types.d.ts +1 -1
  123. package/dist/src/extractors/cdc/types.d.ts.map +1 -1
  124. package/dist/src/extractors/extractor-handler-registry.d.ts.map +1 -1
  125. package/dist/src/extractors/extractor-handler-registry.js +3 -0
  126. package/dist/src/extractors/extractor-handler-registry.js.map +1 -1
  127. package/dist/src/extractors/vendure-query/helpers.d.ts +9 -4
  128. package/dist/src/extractors/vendure-query/helpers.d.ts.map +1 -1
  129. package/dist/src/extractors/vendure-query/helpers.js +98 -32
  130. package/dist/src/extractors/vendure-query/helpers.js.map +1 -1
  131. package/dist/src/extractors/vendure-query/schema.d.ts.map +1 -1
  132. package/dist/src/extractors/vendure-query/schema.js +13 -0
  133. package/dist/src/extractors/vendure-query/schema.js.map +1 -1
  134. package/dist/src/feeds/generators/csv-feed.generator.d.ts.map +1 -1
  135. package/dist/src/feeds/generators/csv-feed.generator.js +5 -4
  136. package/dist/src/feeds/generators/csv-feed.generator.js.map +1 -1
  137. package/dist/src/feeds/generators/facebook-catalog.generator.d.ts.map +1 -1
  138. package/dist/src/feeds/generators/facebook-catalog.generator.js +83 -114
  139. package/dist/src/feeds/generators/facebook-catalog.generator.js.map +1 -1
  140. package/dist/src/feeds/generators/feed-constants.d.ts +1 -0
  141. package/dist/src/feeds/generators/feed-constants.d.ts.map +1 -1
  142. package/dist/src/feeds/generators/feed-constants.js +1 -0
  143. package/dist/src/feeds/generators/feed-constants.js.map +1 -1
  144. package/dist/src/feeds/generators/feed-helpers.d.ts +10 -8
  145. package/dist/src/feeds/generators/feed-helpers.d.ts.map +1 -1
  146. package/dist/src/feeds/generators/feed-helpers.js +23 -3
  147. package/dist/src/feeds/generators/feed-helpers.js.map +1 -1
  148. package/dist/src/feeds/generators/feed-item-builder.d.ts +59 -0
  149. package/dist/src/feeds/generators/feed-item-builder.d.ts.map +1 -0
  150. package/dist/src/feeds/generators/feed-item-builder.js +93 -0
  151. package/dist/src/feeds/generators/feed-item-builder.js.map +1 -0
  152. package/dist/src/feeds/generators/google-shopping.generator.d.ts.map +1 -1
  153. package/dist/src/feeds/generators/google-shopping.generator.js +52 -64
  154. package/dist/src/feeds/generators/google-shopping.generator.js.map +1 -1
  155. package/dist/src/feeds/generators/json-feed.generator.d.ts.map +1 -1
  156. package/dist/src/feeds/generators/json-feed.generator.js +4 -3
  157. package/dist/src/feeds/generators/json-feed.generator.js.map +1 -1
  158. package/dist/src/feeds/generators/xml-feed.generator.d.ts.map +1 -1
  159. package/dist/src/feeds/generators/xml-feed.generator.js +6 -5
  160. package/dist/src/feeds/generators/xml-feed.generator.js.map +1 -1
  161. package/dist/src/gql/generated.d.ts +5 -0
  162. package/dist/src/gql/generated.d.ts.map +1 -1
  163. package/dist/src/gql/generated.js.map +1 -1
  164. package/dist/src/index.d.ts +3 -1
  165. package/dist/src/index.d.ts.map +1 -1
  166. package/dist/src/index.js +7 -4
  167. package/dist/src/index.js.map +1 -1
  168. package/dist/src/loaders/asset/asset.loader.d.ts.map +1 -1
  169. package/dist/src/loaders/asset/asset.loader.js +5 -1
  170. package/dist/src/loaders/asset/asset.loader.js.map +1 -1
  171. package/dist/src/loaders/base/validation-builder.d.ts +128 -3
  172. package/dist/src/loaders/base/validation-builder.d.ts.map +1 -1
  173. package/dist/src/loaders/base/validation-builder.js +177 -6
  174. package/dist/src/loaders/base/validation-builder.js.map +1 -1
  175. package/dist/src/loaders/collection/collection.loader.d.ts.map +1 -1
  176. package/dist/src/loaders/collection/collection.loader.js +22 -1
  177. package/dist/src/loaders/collection/collection.loader.js.map +1 -1
  178. package/dist/src/loaders/collection/helpers.d.ts +16 -1
  179. package/dist/src/loaders/collection/helpers.d.ts.map +1 -1
  180. package/dist/src/loaders/collection/helpers.js +37 -0
  181. package/dist/src/loaders/collection/helpers.js.map +1 -1
  182. package/dist/src/loaders/customer/customer.loader.d.ts.map +1 -1
  183. package/dist/src/loaders/customer/customer.loader.js +13 -1
  184. package/dist/src/loaders/customer/customer.loader.js.map +1 -1
  185. package/dist/src/loaders/customer/helpers.d.ts +15 -3
  186. package/dist/src/loaders/customer/helpers.d.ts.map +1 -1
  187. package/dist/src/loaders/customer/helpers.js +188 -7
  188. package/dist/src/loaders/customer/helpers.js.map +1 -1
  189. package/dist/src/loaders/facet-value/facet-value.loader.d.ts.map +1 -1
  190. package/dist/src/loaders/facet-value/facet-value.loader.js +18 -0
  191. package/dist/src/loaders/facet-value/facet-value.loader.js.map +1 -1
  192. package/dist/src/loaders/facet-value/types.d.ts +1 -1
  193. package/dist/src/loaders/facet-value/types.js +1 -1
  194. package/dist/src/loaders/facet-value/types.js.map +1 -1
  195. package/dist/src/loaders/inventory/inventory.loader.d.ts.map +1 -1
  196. package/dist/src/loaders/inventory/inventory.loader.js +1 -2
  197. package/dist/src/loaders/inventory/inventory.loader.js.map +1 -1
  198. package/dist/src/loaders/order/helpers.d.ts +16 -2
  199. package/dist/src/loaders/order/helpers.d.ts.map +1 -1
  200. package/dist/src/loaders/order/helpers.js +108 -0
  201. package/dist/src/loaders/order/helpers.js.map +1 -1
  202. package/dist/src/loaders/order/order.loader.d.ts +38 -0
  203. package/dist/src/loaders/order/order.loader.d.ts.map +1 -1
  204. package/dist/src/loaders/order/order.loader.js +238 -24
  205. package/dist/src/loaders/order/order.loader.js.map +1 -1
  206. package/dist/src/loaders/order/types.d.ts +10 -3
  207. package/dist/src/loaders/order/types.d.ts.map +1 -1
  208. package/dist/src/loaders/order/types.js +13 -2
  209. package/dist/src/loaders/order/types.js.map +1 -1
  210. package/dist/src/loaders/product/product.loader.d.ts.map +1 -1
  211. package/dist/src/loaders/product/product.loader.js +18 -2
  212. package/dist/src/loaders/product/product.loader.js.map +1 -1
  213. package/dist/src/loaders/product-variant/helpers.d.ts +20 -0
  214. package/dist/src/loaders/product-variant/helpers.d.ts.map +1 -0
  215. package/dist/src/loaders/product-variant/helpers.js +103 -0
  216. package/dist/src/loaders/product-variant/helpers.js.map +1 -0
  217. package/dist/src/loaders/product-variant/product-variant.loader.d.ts.map +1 -1
  218. package/dist/src/loaders/product-variant/product-variant.loader.js +76 -10
  219. package/dist/src/loaders/product-variant/product-variant.loader.js.map +1 -1
  220. package/dist/src/loaders/product-variant/types.d.ts +7 -0
  221. package/dist/src/loaders/product-variant/types.d.ts.map +1 -1
  222. package/dist/src/loaders/product-variant/types.js.map +1 -1
  223. package/dist/src/loaders/promotion/helpers.d.ts +29 -0
  224. package/dist/src/loaders/promotion/helpers.d.ts.map +1 -1
  225. package/dist/src/loaders/promotion/helpers.js +68 -0
  226. package/dist/src/loaders/promotion/helpers.js.map +1 -1
  227. package/dist/src/loaders/promotion/promotion.loader.d.ts.map +1 -1
  228. package/dist/src/loaders/promotion/promotion.loader.js +12 -2
  229. package/dist/src/loaders/promotion/promotion.loader.js.map +1 -1
  230. package/dist/src/loaders/shared-helpers.d.ts +42 -2
  231. package/dist/src/loaders/shared-helpers.d.ts.map +1 -1
  232. package/dist/src/loaders/shared-helpers.js +384 -5
  233. package/dist/src/loaders/shared-helpers.js.map +1 -1
  234. package/dist/src/operators/data/copy.operator.js +2 -2
  235. package/dist/src/operators/data/copy.operator.js.map +1 -1
  236. package/dist/src/operators/data/rename.operator.js +1 -1
  237. package/dist/src/operators/data/rename.operator.js.map +1 -1
  238. package/dist/src/operators/helpers.d.ts.map +1 -1
  239. package/dist/src/operators/helpers.js +11 -1
  240. package/dist/src/operators/helpers.js.map +1 -1
  241. package/dist/src/operators/operator-runtime-registry.d.ts +2 -2
  242. package/dist/src/operators/operator-runtime-registry.d.ts.map +1 -1
  243. package/dist/src/operators/operator-runtime-registry.js +1 -1
  244. package/dist/src/operators/operator-runtime-registry.js.map +1 -1
  245. package/dist/src/operators/script/script.operators.d.ts.map +1 -1
  246. package/dist/src/operators/script/script.operators.js +9 -3
  247. package/dist/src/operators/script/script.operators.js.map +1 -1
  248. package/dist/src/runtime/config-types.d.ts +6 -0
  249. package/dist/src/runtime/config-types.d.ts.map +1 -1
  250. package/dist/src/runtime/executor-helpers.d.ts +77 -0
  251. package/dist/src/runtime/executor-helpers.d.ts.map +1 -0
  252. package/dist/src/runtime/executor-helpers.js +143 -0
  253. package/dist/src/runtime/executor-helpers.js.map +1 -0
  254. package/dist/src/runtime/executor-types.d.ts +3 -2
  255. package/dist/src/runtime/executor-types.d.ts.map +1 -1
  256. package/dist/src/runtime/executors/export.executor.d.ts +3 -1
  257. package/dist/src/runtime/executors/export.executor.d.ts.map +1 -1
  258. package/dist/src/runtime/executors/export.executor.js +15 -3
  259. package/dist/src/runtime/executors/export.executor.js.map +1 -1
  260. package/dist/src/runtime/executors/exporters/export-handler-registry.d.ts.map +1 -1
  261. package/dist/src/runtime/executors/exporters/export-handler-registry.js +5 -0
  262. package/dist/src/runtime/executors/exporters/export-handler-registry.js.map +1 -1
  263. package/dist/src/runtime/executors/exporters/export-handler.types.d.ts +3 -0
  264. package/dist/src/runtime/executors/exporters/export-handler.types.d.ts.map +1 -1
  265. package/dist/src/runtime/executors/exporters/export-handler.types.js.map +1 -1
  266. package/dist/src/runtime/executors/exporters/export-helpers.d.ts +1 -0
  267. package/dist/src/runtime/executors/exporters/export-helpers.d.ts.map +1 -1
  268. package/dist/src/runtime/executors/exporters/export-helpers.js +33 -4
  269. package/dist/src/runtime/executors/exporters/export-helpers.js.map +1 -1
  270. package/dist/src/runtime/executors/exporters/http-export.handler.js +4 -4
  271. package/dist/src/runtime/executors/exporters/http-export.handler.js.map +1 -1
  272. package/dist/src/runtime/executors/extractors/file-extract.handler.d.ts.map +1 -1
  273. package/dist/src/runtime/executors/extractors/file-extract.handler.js +33 -13
  274. package/dist/src/runtime/executors/extractors/file-extract.handler.js.map +1 -1
  275. package/dist/src/runtime/executors/extractors/memory-extract.handler.d.ts.map +1 -1
  276. package/dist/src/runtime/executors/extractors/memory-extract.handler.js +17 -9
  277. package/dist/src/runtime/executors/extractors/memory-extract.handler.js.map +1 -1
  278. package/dist/src/runtime/executors/feed.executor.d.ts.map +1 -1
  279. package/dist/src/runtime/executors/feed.executor.js +11 -2
  280. package/dist/src/runtime/executors/feed.executor.js.map +1 -1
  281. package/dist/src/runtime/executors/feeds/feed-handler-registry.d.ts.map +1 -1
  282. package/dist/src/runtime/executors/feeds/feed-handler-registry.js +4 -0
  283. package/dist/src/runtime/executors/feeds/feed-handler-registry.js.map +1 -1
  284. package/dist/src/runtime/executors/gate.executor.d.ts +3 -1
  285. package/dist/src/runtime/executors/gate.executor.d.ts.map +1 -1
  286. package/dist/src/runtime/executors/gate.executor.js +47 -26
  287. package/dist/src/runtime/executors/gate.executor.js.map +1 -1
  288. package/dist/src/runtime/executors/loaders/asset-handler.js +1 -1
  289. package/dist/src/runtime/executors/loaders/asset-handler.js.map +1 -1
  290. package/dist/src/runtime/executors/loaders/asset-import-handler.js +1 -1
  291. package/dist/src/runtime/executors/loaders/asset-import-handler.js.map +1 -1
  292. package/dist/src/runtime/executors/loaders/channel-handler.d.ts +3 -1
  293. package/dist/src/runtime/executors/loaders/channel-handler.d.ts.map +1 -1
  294. package/dist/src/runtime/executors/loaders/channel-handler.js +28 -5
  295. package/dist/src/runtime/executors/loaders/channel-handler.js.map +1 -1
  296. package/dist/src/runtime/executors/loaders/collection-handler.d.ts +14 -2
  297. package/dist/src/runtime/executors/loaders/collection-handler.d.ts.map +1 -1
  298. package/dist/src/runtime/executors/loaders/collection-handler.js +113 -23
  299. package/dist/src/runtime/executors/loaders/collection-handler.js.map +1 -1
  300. package/dist/src/runtime/executors/loaders/customer-group-handler.d.ts.map +1 -1
  301. package/dist/src/runtime/executors/loaders/customer-group-handler.js +2 -20
  302. package/dist/src/runtime/executors/loaders/customer-group-handler.js.map +1 -1
  303. package/dist/src/runtime/executors/loaders/customer-handler.d.ts +6 -1
  304. package/dist/src/runtime/executors/loaders/customer-handler.d.ts.map +1 -1
  305. package/dist/src/runtime/executors/loaders/customer-handler.js +128 -15
  306. package/dist/src/runtime/executors/loaders/customer-handler.js.map +1 -1
  307. package/dist/src/runtime/executors/loaders/deletion-handler.d.ts +39 -0
  308. package/dist/src/runtime/executors/loaders/deletion-handler.d.ts.map +1 -0
  309. package/dist/src/runtime/executors/loaders/deletion-handler.js +414 -0
  310. package/dist/src/runtime/executors/loaders/deletion-handler.js.map +1 -0
  311. package/dist/src/runtime/executors/loaders/facet-handler.d.ts +18 -3
  312. package/dist/src/runtime/executors/loaders/facet-handler.d.ts.map +1 -1
  313. package/dist/src/runtime/executors/loaders/facet-handler.js +161 -28
  314. package/dist/src/runtime/executors/loaders/facet-handler.js.map +1 -1
  315. package/dist/src/runtime/executors/loaders/graphql-mutation-handler.js +1 -1
  316. package/dist/src/runtime/executors/loaders/graphql-mutation-handler.js.map +1 -1
  317. package/dist/src/runtime/executors/loaders/index.d.ts +2 -0
  318. package/dist/src/runtime/executors/loaders/index.d.ts.map +1 -1
  319. package/dist/src/runtime/executors/loaders/index.js +5 -1
  320. package/dist/src/runtime/executors/loaders/index.js.map +1 -1
  321. package/dist/src/runtime/executors/loaders/inventory-adjust-handler.d.ts.map +1 -1
  322. package/dist/src/runtime/executors/loaders/inventory-adjust-handler.js +2 -21
  323. package/dist/src/runtime/executors/loaders/inventory-adjust-handler.js.map +1 -1
  324. package/dist/src/runtime/executors/loaders/inventory-handler.d.ts +2 -1
  325. package/dist/src/runtime/executors/loaders/inventory-handler.d.ts.map +1 -1
  326. package/dist/src/runtime/executors/loaders/inventory-handler.js +11 -9
  327. package/dist/src/runtime/executors/loaders/inventory-handler.js.map +1 -1
  328. package/dist/src/runtime/executors/loaders/loader-handler-registry.d.ts.map +1 -1
  329. package/dist/src/runtime/executors/loaders/loader-handler-registry.js +150 -11
  330. package/dist/src/runtime/executors/loaders/loader-handler-registry.js.map +1 -1
  331. package/dist/src/runtime/executors/loaders/order-handler.d.ts +32 -4
  332. package/dist/src/runtime/executors/loaders/order-handler.d.ts.map +1 -1
  333. package/dist/src/runtime/executors/loaders/order-handler.js +201 -18
  334. package/dist/src/runtime/executors/loaders/order-handler.js.map +1 -1
  335. package/dist/src/runtime/executors/loaders/order-upsert-handler.d.ts +15 -0
  336. package/dist/src/runtime/executors/loaders/order-upsert-handler.d.ts.map +1 -0
  337. package/dist/src/runtime/executors/loaders/order-upsert-handler.js +89 -0
  338. package/dist/src/runtime/executors/loaders/order-upsert-handler.js.map +1 -0
  339. package/dist/src/runtime/executors/loaders/payment-method-handler.d.ts +11 -2
  340. package/dist/src/runtime/executors/loaders/payment-method-handler.d.ts.map +1 -1
  341. package/dist/src/runtime/executors/loaders/payment-method-handler.js +92 -34
  342. package/dist/src/runtime/executors/loaders/payment-method-handler.js.map +1 -1
  343. package/dist/src/runtime/executors/loaders/product-handler.d.ts +20 -0
  344. package/dist/src/runtime/executors/loaders/product-handler.d.ts.map +1 -1
  345. package/dist/src/runtime/executors/loaders/product-handler.js +121 -31
  346. package/dist/src/runtime/executors/loaders/product-handler.js.map +1 -1
  347. package/dist/src/runtime/executors/loaders/promotion-handler.d.ts +9 -2
  348. package/dist/src/runtime/executors/loaders/promotion-handler.d.ts.map +1 -1
  349. package/dist/src/runtime/executors/loaders/promotion-handler.js +134 -68
  350. package/dist/src/runtime/executors/loaders/promotion-handler.js.map +1 -1
  351. package/dist/src/runtime/executors/loaders/rest-handler.js +1 -1
  352. package/dist/src/runtime/executors/loaders/rest-handler.js.map +1 -1
  353. package/dist/src/runtime/executors/loaders/shared-lookups.d.ts +62 -1
  354. package/dist/src/runtime/executors/loaders/shared-lookups.d.ts.map +1 -1
  355. package/dist/src/runtime/executors/loaders/shared-lookups.js +238 -0
  356. package/dist/src/runtime/executors/loaders/shared-lookups.js.map +1 -1
  357. package/dist/src/runtime/executors/loaders/shipping-method-handler.d.ts +11 -6
  358. package/dist/src/runtime/executors/loaders/shipping-method-handler.d.ts.map +1 -1
  359. package/dist/src/runtime/executors/loaders/shipping-method-handler.js +168 -54
  360. package/dist/src/runtime/executors/loaders/shipping-method-handler.js.map +1 -1
  361. package/dist/src/runtime/executors/loaders/stock-location-handler.d.ts.map +1 -1
  362. package/dist/src/runtime/executors/loaders/stock-location-handler.js +2 -20
  363. package/dist/src/runtime/executors/loaders/stock-location-handler.js.map +1 -1
  364. package/dist/src/runtime/executors/loaders/tax-rate-handler.d.ts.map +1 -1
  365. package/dist/src/runtime/executors/loaders/tax-rate-handler.js +14 -1
  366. package/dist/src/runtime/executors/loaders/tax-rate-handler.js.map +1 -1
  367. package/dist/src/runtime/executors/loaders/types.d.ts +2 -0
  368. package/dist/src/runtime/executors/loaders/types.d.ts.map +1 -1
  369. package/dist/src/runtime/executors/loaders/variant-handler.d.ts +24 -2
  370. package/dist/src/runtime/executors/loaders/variant-handler.d.ts.map +1 -1
  371. package/dist/src/runtime/executors/loaders/variant-handler.js +266 -47
  372. package/dist/src/runtime/executors/loaders/variant-handler.js.map +1 -1
  373. package/dist/src/runtime/executors/sink-handler-registry.d.ts +7 -11
  374. package/dist/src/runtime/executors/sink-handler-registry.d.ts.map +1 -1
  375. package/dist/src/runtime/executors/sink-handler-registry.js +376 -10
  376. package/dist/src/runtime/executors/sink-handler-registry.js.map +1 -1
  377. package/dist/src/runtime/executors/sink.executor.d.ts +1 -0
  378. package/dist/src/runtime/executors/sink.executor.d.ts.map +1 -1
  379. package/dist/src/runtime/executors/sink.executor.js +82 -12
  380. package/dist/src/runtime/executors/sink.executor.js.map +1 -1
  381. package/dist/src/runtime/executors/transform.executor.d.ts.map +1 -1
  382. package/dist/src/runtime/executors/transform.executor.js +31 -2
  383. package/dist/src/runtime/executors/transform.executor.js.map +1 -1
  384. package/dist/src/runtime/orchestration/graph-executor.d.ts.map +1 -1
  385. package/dist/src/runtime/orchestration/graph-executor.js +3 -2
  386. package/dist/src/runtime/orchestration/graph-executor.js.map +1 -1
  387. package/dist/src/runtime/orchestration/helpers.d.ts +4 -1
  388. package/dist/src/runtime/orchestration/helpers.d.ts.map +1 -1
  389. package/dist/src/runtime/orchestration/helpers.js +7 -2
  390. package/dist/src/runtime/orchestration/helpers.js.map +1 -1
  391. package/dist/src/runtime/orchestration/linear-executor.d.ts.map +1 -1
  392. package/dist/src/runtime/orchestration/linear-executor.js +3 -2
  393. package/dist/src/runtime/orchestration/linear-executor.js.map +1 -1
  394. package/dist/src/runtime/orchestration/replay-executor.d.ts.map +1 -1
  395. package/dist/src/runtime/orchestration/replay-executor.js +3 -2
  396. package/dist/src/runtime/orchestration/replay-executor.js.map +1 -1
  397. package/dist/src/runtime/orchestration/step-strategies/export-step.strategy.d.ts.map +1 -1
  398. package/dist/src/runtime/orchestration/step-strategies/export-step.strategy.js +12 -12
  399. package/dist/src/runtime/orchestration/step-strategies/export-step.strategy.js.map +1 -1
  400. package/dist/src/runtime/orchestration/step-strategies/feed-step.strategy.d.ts.map +1 -1
  401. package/dist/src/runtime/orchestration/step-strategies/feed-step.strategy.js +12 -12
  402. package/dist/src/runtime/orchestration/step-strategies/feed-step.strategy.js.map +1 -1
  403. package/dist/src/runtime/orchestration/step-strategies/load-step.strategy.js +2 -2
  404. package/dist/src/runtime/orchestration/step-strategies/load-step.strategy.js.map +1 -1
  405. package/dist/src/runtime/orchestration/step-strategies/sink-step.strategy.d.ts.map +1 -1
  406. package/dist/src/runtime/orchestration/step-strategies/sink-step.strategy.js +12 -12
  407. package/dist/src/runtime/orchestration/step-strategies/sink-step.strategy.js.map +1 -1
  408. package/dist/src/runtime/orchestration/step-strategies/step-dispatcher.d.ts.map +1 -1
  409. package/dist/src/runtime/orchestration/step-strategies/step-dispatcher.js +4 -3
  410. package/dist/src/runtime/orchestration/step-strategies/step-dispatcher.js.map +1 -1
  411. package/dist/src/runtime/orchestration/step-strategies/transform-step.strategy.js +4 -4
  412. package/dist/src/runtime/orchestration/step-strategies/transform-step.strategy.js.map +1 -1
  413. package/dist/src/runtime/orchestration/types.d.ts +1 -0
  414. package/dist/src/runtime/orchestration/types.d.ts.map +1 -1
  415. package/dist/src/runtime/utils.d.ts.map +1 -1
  416. package/dist/src/runtime/utils.js +8 -1
  417. package/dist/src/runtime/utils.js.map +1 -1
  418. package/dist/src/sdk/adapters/queue/index.d.ts +1 -0
  419. package/dist/src/sdk/adapters/queue/index.d.ts.map +1 -1
  420. package/dist/src/sdk/adapters/queue/index.js +1 -0
  421. package/dist/src/sdk/adapters/queue/index.js.map +1 -1
  422. package/dist/src/sdk/adapters/queue/internal.adapter.d.ts +32 -0
  423. package/dist/src/sdk/adapters/queue/internal.adapter.d.ts.map +1 -0
  424. package/dist/src/sdk/adapters/queue/internal.adapter.js +68 -0
  425. package/dist/src/sdk/adapters/queue/internal.adapter.js.map +1 -0
  426. package/dist/src/sdk/adapters/queue/queue-adapter.registry.d.ts.map +1 -1
  427. package/dist/src/sdk/adapters/queue/queue-adapter.registry.js +3 -0
  428. package/dist/src/sdk/adapters/queue/queue-adapter.registry.js.map +1 -1
  429. package/dist/src/sdk/adapters/queue/rabbitmq.adapter.d.ts.map +1 -1
  430. package/dist/src/sdk/adapters/queue/rabbitmq.adapter.js +2 -1
  431. package/dist/src/sdk/adapters/queue/rabbitmq.adapter.js.map +1 -1
  432. package/dist/src/sdk/constants.d.ts +2 -2
  433. package/dist/src/sdk/constants.d.ts.map +1 -1
  434. package/dist/src/sdk/dsl/pipeline-builder.d.ts +8 -2
  435. package/dist/src/sdk/dsl/pipeline-builder.d.ts.map +1 -1
  436. package/dist/src/sdk/dsl/pipeline-builder.js +115 -19
  437. package/dist/src/sdk/dsl/pipeline-builder.js.map +1 -1
  438. package/dist/src/sdk/dsl/step-configs.d.ts +24 -0
  439. package/dist/src/sdk/dsl/step-configs.d.ts.map +1 -1
  440. package/dist/src/services/data/record-error.service.d.ts +1 -1
  441. package/dist/src/services/data/record-error.service.d.ts.map +1 -1
  442. package/dist/src/services/data/record-error.service.js +4 -1
  443. package/dist/src/services/data/record-error.service.js.map +1 -1
  444. package/dist/src/services/events/consumer-discovery.d.ts.map +1 -1
  445. package/dist/src/services/events/consumer-discovery.js +2 -1
  446. package/dist/src/services/events/consumer-discovery.js.map +1 -1
  447. package/dist/src/services/events/consumer-lifecycle.d.ts.map +1 -1
  448. package/dist/src/services/events/consumer-lifecycle.js +19 -15
  449. package/dist/src/services/events/consumer-lifecycle.js.map +1 -1
  450. package/dist/src/services/events/event-trigger.service.d.ts.map +1 -1
  451. package/dist/src/services/events/event-trigger.service.js +9 -3
  452. package/dist/src/services/events/event-trigger.service.js.map +1 -1
  453. package/dist/src/services/events/hook.service.d.ts.map +1 -1
  454. package/dist/src/services/events/hook.service.js +7 -3
  455. package/dist/src/services/events/hook.service.js.map +1 -1
  456. package/dist/src/services/events/message-processing.d.ts.map +1 -1
  457. package/dist/src/services/events/message-processing.js +13 -8
  458. package/dist/src/services/events/message-processing.js.map +1 -1
  459. package/dist/src/services/logger/datahub-logger.d.ts +7 -0
  460. package/dist/src/services/logger/datahub-logger.d.ts.map +1 -1
  461. package/dist/src/services/logger/datahub-logger.js +9 -0
  462. package/dist/src/services/logger/datahub-logger.js.map +1 -1
  463. package/dist/src/services/logger/execution-logger.d.ts +1 -1
  464. package/dist/src/services/logger/execution-logger.d.ts.map +1 -1
  465. package/dist/src/services/logger/execution-logger.js +8 -4
  466. package/dist/src/services/logger/execution-logger.js.map +1 -1
  467. package/dist/src/services/pipeline/pipeline-runner.service.d.ts +3 -1
  468. package/dist/src/services/pipeline/pipeline-runner.service.d.ts.map +1 -1
  469. package/dist/src/services/pipeline/pipeline-runner.service.js +17 -7
  470. package/dist/src/services/pipeline/pipeline-runner.service.js.map +1 -1
  471. package/dist/src/services/pipeline/pipeline.service.d.ts.map +1 -1
  472. package/dist/src/services/pipeline/pipeline.service.js +8 -2
  473. package/dist/src/services/pipeline/pipeline.service.js.map +1 -1
  474. package/dist/src/services/storage/retention.service.d.ts.map +1 -1
  475. package/dist/src/services/storage/retention.service.js +22 -0
  476. package/dist/src/services/storage/retention.service.js.map +1 -1
  477. package/dist/src/services/testing/step-test.service.d.ts.map +1 -1
  478. package/dist/src/services/testing/step-test.service.js +17 -1
  479. package/dist/src/services/testing/step-test.service.js.map +1 -1
  480. package/dist/src/services/validation/definition-validation.service.d.ts.map +1 -1
  481. package/dist/src/services/validation/definition-validation.service.js +4 -1
  482. package/dist/src/services/validation/definition-validation.service.js.map +1 -1
  483. package/dist/src/services/validation/trigger-validation.d.ts.map +1 -1
  484. package/dist/src/services/validation/trigger-validation.js +76 -2
  485. package/dist/src/services/validation/trigger-validation.js.map +1 -1
  486. package/dist/src/types/index.d.ts +1 -0
  487. package/dist/src/types/index.d.ts.map +1 -1
  488. package/dist/src/types/index.js.map +1 -1
  489. package/dist/src/types/loader-configs.d.ts +1071 -0
  490. package/dist/src/types/loader-configs.d.ts.map +1 -0
  491. package/dist/src/types/loader-configs.js +54 -0
  492. package/dist/src/types/loader-configs.js.map +1 -0
  493. package/dist/src/types/step-configs.d.ts +1 -0
  494. package/dist/src/types/step-configs.d.ts.map +1 -1
  495. package/dist/src/types/step-configs.js +3 -0
  496. package/dist/src/types/step-configs.js.map +1 -1
  497. package/dist/src/utils/code-security.utils.d.ts +18 -0
  498. package/dist/src/utils/code-security.utils.d.ts.map +1 -1
  499. package/dist/src/utils/code-security.utils.js +125 -9
  500. package/dist/src/utils/code-security.utils.js.map +1 -1
  501. package/dist/src/utils/error.utils.d.ts +1 -1
  502. package/dist/src/utils/error.utils.d.ts.map +1 -1
  503. package/dist/src/utils/error.utils.js +2 -1
  504. package/dist/src/utils/error.utils.js.map +1 -1
  505. package/dist/src/utils/url-security.utils.d.ts +5 -3
  506. package/dist/src/utils/url-security.utils.d.ts.map +1 -1
  507. package/dist/src/utils/url-security.utils.js +20 -4
  508. package/dist/src/utils/url-security.utils.js.map +1 -1
  509. package/dist/src/validation/pipeline-definition.validator.js +2 -1
  510. package/dist/src/validation/pipeline-definition.validator.js.map +1 -1
  511. package/docs/developer-guide/README.md +2 -0
  512. package/docs/developer-guide/dsl/pipeline-builder.md +12 -0
  513. package/docs/developer-guide/extending/README.md +230 -10
  514. package/docs/developer-guide/extending/custom-sinks.md +87 -0
  515. package/docs/developer-guide/extending/events.md +4 -1
  516. package/docs/examples/validation-error-messages.md +246 -0
  517. package/docs/guides/multi-channel.md +1190 -0
  518. package/docs/guides/multi-currency.md +881 -0
  519. package/docs/guides/multi-entity.md +597 -0
  520. package/docs/guides/multi-language.md +957 -0
  521. package/docs/reference/README.md +11 -4
  522. package/docs/reference/extractors.md +30 -0
  523. package/docs/reference/loaders.md +396 -21
  524. package/docs/reference/operators-complete.md +1251 -0
  525. package/docs/reference/operators.md +36 -2
  526. package/docs/reference/sinks.md +7 -6
  527. package/docs/reference/step-types.md +12 -5
  528. package/docs/user-guide/pipelines.md +82 -13
  529. package/package.json +1 -1
  530. package/shared/types/adapter-config.types.ts +439 -10
  531. package/shared/types/index.ts +25 -0
  532. package/shared/types/loader.types.ts +4 -0
  533. package/shared/types/step.types.ts +6 -0
  534. package/shared/utils/error.ts +11 -0
@@ -18,8 +18,7 @@ exports.StockLocationHandler = void 0;
18
18
  * and delegates to the loader's load() method.
19
19
  */
20
20
  const common_1 = require("@nestjs/common");
21
- const executor_types_1 = require("../../executor-types");
22
- const enums_1 = require("../../../constants/enums");
21
+ const executor_helpers_1 = require("../../executor-helpers");
23
22
  const stock_location_1 = require("../../../loaders/stock-location");
24
23
  const shared_helpers_1 = require("../../../loaders/shared-helpers");
25
24
  /**
@@ -28,30 +27,13 @@ const shared_helpers_1 = require("../../../loaders/shared-helpers");
28
27
  function getConfig(config) {
29
28
  return config;
30
29
  }
31
- /**
32
- * Build a LoaderContext from executor parameters
33
- */
34
- function buildLoaderContext(ctx, cfg) {
35
- const operation = cfg.operation ?? enums_1.TARGET_OPERATION.UPSERT;
36
- return {
37
- ctx,
38
- pipelineId: executor_types_1.SANDBOX_PIPELINE_ID,
39
- runId: '0',
40
- operation: operation,
41
- lookupFields: cfg.lookupFields ?? ['name'],
42
- dryRun: false,
43
- options: {
44
- skipDuplicates: false,
45
- },
46
- };
47
- }
48
30
  let StockLocationHandler = class StockLocationHandler {
49
31
  constructor(stockLocationLoader) {
50
32
  this.stockLocationLoader = stockLocationLoader;
51
33
  }
52
34
  async execute(ctx, step, input, onRecordError, _errorHandling) {
53
35
  const cfg = getConfig(step.config);
54
- const loaderContext = buildLoaderContext(ctx, cfg);
36
+ const loaderContext = (0, executor_helpers_1.buildSandboxLoaderContext)(ctx, cfg, ['name']);
55
37
  // Remap input records using configurable field names
56
38
  const records = input.map(rec => this.remapRecord(rec, cfg));
57
39
  const result = await this.stockLocationLoader.load(loaderContext, records);
@@ -1 +1 @@
1
- {"version":3,"file":"stock-location-handler.js","sourceRoot":"","sources":["../../../../../src/runtime/executors/loaders/stock-location-handler.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;;;;GAMG;AACH,2CAA4C;AAG5C,yDAAiH;AAEjH,oDAA4D;AAC5D,oEAAsE;AAEtE,oEAAiE;AAYjE;;GAEG;AACH,SAAS,SAAS,CAAC,MAAkB;IACjC,OAAO,MAA+C,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,GAAmB,EAAE,GAA+B;IAC5E,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,IAAI,wBAAgB,CAAC,MAAM,CAAC;IAC3D,OAAO;QACH,GAAG;QACH,UAAU,EAAE,oCAAmB;QAC/B,KAAK,EAAE,GAAG;QACV,SAAS,EAAE,SAAuC;QAClD,YAAY,EAAE,GAAG,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC;QAC1C,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YACL,cAAc,EAAE,KAAK;SACxB;KACJ,CAAC;AACN,CAAC;AAGM,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAC7B,YACY,mBAAwC;QAAxC,wBAAmB,GAAnB,mBAAmB,CAAqB;IACjD,CAAC;IAEJ,KAAK,CAAC,OAAO,CACT,GAAmB,EACnB,IAA4B,EAC5B,KAAqB,EACrB,aAAqC,EACrC,cAAoC;QAEpC,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnC,MAAM,aAAa,GAAG,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAEnD,qDAAqD;QACrD,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAyB,CAAC;QAErF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAE3E,mDAAmD;QACnD,IAAI,aAAa,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAChC,MAAM,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,MAAsB,CAAC,CAAC;YAC/E,CAAC;QACL,CAAC;QAED,OAAO;YACH,EAAE,EAAE,MAAM,CAAC,SAAS;YACpB,IAAI,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC;IACN,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,GAAiB,EAAE,GAA+B;QAClE,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,IAAI,MAAM,CAAC;QAC1C,MAAM,gBAAgB,GAAG,GAAG,CAAC,gBAAgB,IAAI,aAAa,CAAC;QAE/D,OAAO;YACH,IAAI,EAAE,IAAA,+BAAc,EAAC,GAAG,EAAE,SAAS,CAAC;YACpC,WAAW,EAAE,IAAA,+BAAc,EAAC,GAAG,EAAE,gBAAgB,CAAC;YAClD,YAAY,EAAE,GAAG,CAAC,YAAY;SACjC,CAAC;IACN,CAAC;CACJ,CAAA;AA9CY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,mBAAU,GAAE;qCAGwB,oCAAmB;GAF3C,oBAAoB,CA8ChC"}
1
+ {"version":3,"file":"stock-location-handler.js","sourceRoot":"","sources":["../../../../../src/runtime/executors/loaders/stock-location-handler.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;;;;GAMG;AACH,2CAA4C;AAI5C,6DAAyF;AAGzF,oEAAsE;AAEtE,oEAAiE;AAWjE;;GAEG;AACH,SAAS,SAAS,CAAC,MAAkB;IACjC,OAAO,MAA+C,CAAC;AAC3D,CAAC;AAGM,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAC7B,YACY,mBAAwC;QAAxC,wBAAmB,GAAnB,mBAAmB,CAAqB;IACjD,CAAC;IAEJ,KAAK,CAAC,OAAO,CACT,GAAmB,EACnB,IAA4B,EAC5B,KAAqB,EACrB,aAAqC,EACrC,cAAoC;QAEpC,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnC,MAAM,aAAa,GAAG,IAAA,4CAAyB,EAAC,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QAEpE,qDAAqD;QACrD,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAyB,CAAC;QAErF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAE3E,mDAAmD;QACnD,IAAI,aAAa,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAChC,MAAM,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,MAAsB,CAAC,CAAC;YAC/E,CAAC;QACL,CAAC;QAED,OAAO;YACH,EAAE,EAAE,MAAM,CAAC,SAAS;YACpB,IAAI,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC;IACN,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,GAAiB,EAAE,GAA+B;QAClE,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,IAAI,MAAM,CAAC;QAC1C,MAAM,gBAAgB,GAAG,GAAG,CAAC,gBAAgB,IAAI,aAAa,CAAC;QAE/D,OAAO;YACH,IAAI,EAAE,IAAA,+BAAc,EAAC,GAAG,EAAE,SAAS,CAAC;YACpC,WAAW,EAAE,IAAA,+BAAc,EAAC,GAAG,EAAE,gBAAgB,CAAC;YAClD,YAAY,EAAE,GAAG,CAAC,YAAY;SACjC,CAAC;IACN,CAAC;CACJ,CAAA;AA9CY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,mBAAU,GAAE;qCAGwB,oCAAmB;GAF3C,oBAAoB,CA8ChC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tax-rate-handler.d.ts","sourceRoot":"","sources":["../../../../../src/runtime/executors/loaders/tax-rate-handler.ts"],"names":[],"mappings":"AAOA,OAAO,EACH,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,WAAW,EAGd,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAc,MAAM,sBAAsB,CAAC;AAC/F,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5F,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAwBxC,qBACa,cAAe,YAAW,aAAa;IAM5C,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,WAAW;IAPvB,8EAA8E;IAC9E,OAAO,CAAC,gBAAgB,CAAyB;IACjD,OAAO,CAAC,SAAS,CAAyB;gBAG9B,cAAc,EAAE,cAAc,EAC9B,kBAAkB,EAAE,kBAAkB,EACtC,WAAW,EAAE,WAAW;IAG9B,OAAO,CACT,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,sBAAsB,EAC5B,KAAK,EAAE,YAAY,EAAE,EACrB,aAAa,CAAC,EAAE,qBAAqB,EACrC,cAAc,CAAC,EAAE,mBAAmB,GACrC,OAAO,CAAC,eAAe,CAAC;YAiGb,kBAAkB;YAMlB,oBAAoB;YA0BpB,aAAa;CAsB9B"}
1
+ {"version":3,"file":"tax-rate-handler.d.ts","sourceRoot":"","sources":["../../../../../src/runtime/executors/loaders/tax-rate-handler.ts"],"names":[],"mappings":"AAOA,OAAO,EACH,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,WAAW,EAGd,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAc,MAAM,sBAAsB,CAAC;AAC/F,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5F,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AA0BxC,qBACa,cAAe,YAAW,aAAa;IAM5C,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,WAAW;IAPvB,8EAA8E;IAC9E,OAAO,CAAC,gBAAgB,CAAyB;IACjD,OAAO,CAAC,SAAS,CAAyB;gBAG9B,cAAc,EAAE,cAAc,EAC9B,kBAAkB,EAAE,kBAAkB,EACtC,WAAW,EAAE,WAAW;IAG9B,OAAO,CACT,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,sBAAsB,EAC5B,KAAK,EAAE,YAAY,EAAE,EACrB,aAAa,CAAC,EAAE,qBAAqB,EACrC,cAAc,CAAC,EAAE,mBAAmB,GACrC,OAAO,CAAC,eAAe,CAAC;YA6Gb,kBAAkB;YAMlB,oBAAoB;YA0BpB,aAAa;CAsB9B"}
@@ -18,6 +18,7 @@ exports.TaxRateHandler = void 0;
18
18
  */
19
19
  const common_1 = require("@nestjs/common");
20
20
  const core_1 = require("@vendure/core");
21
+ const enums_1 = require("../../../constants/enums");
21
22
  const error_utils_1 = require("../../../utils/error.utils");
22
23
  const shared_helpers_1 = require("../../../loaders/shared-helpers");
23
24
  /**
@@ -87,7 +88,12 @@ let TaxRateHandler = class TaxRateHandler {
87
88
  }
88
89
  // Find existing by name
89
90
  const existing = await this.findExistingByName(ctx, name);
91
+ const strategy = cfg.strategy ?? enums_1.LoadStrategy.UPSERT;
90
92
  if (existing) {
93
+ if (strategy === enums_1.LoadStrategy.CREATE) {
94
+ ok++;
95
+ continue;
96
+ }
91
97
  await this.taxRateService.update(ctx, {
92
98
  id: existing.id,
93
99
  name,
@@ -98,6 +104,13 @@ let TaxRateHandler = class TaxRateHandler {
98
104
  });
99
105
  }
100
106
  else {
107
+ if (strategy === enums_1.LoadStrategy.UPDATE) {
108
+ fail++;
109
+ if (onRecordError) {
110
+ await onRecordError(step.key, `Tax rate not found for update: ${name}`, rec);
111
+ }
112
+ continue;
113
+ }
101
114
  await this.taxRateService.create(ctx, {
102
115
  name,
103
116
  value,
@@ -110,7 +123,7 @@ let TaxRateHandler = class TaxRateHandler {
110
123
  }
111
124
  catch (e) {
112
125
  if (onRecordError) {
113
- await onRecordError(step.key, (0, error_utils_1.getErrorMessage)(e) || 'taxRateUpsert failed', rec);
126
+ await onRecordError(step.key, (0, error_utils_1.getErrorMessage)(e) || 'taxRateUpsert failed', rec, (0, error_utils_1.getErrorStack)(e));
114
127
  }
115
128
  fail++;
116
129
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tax-rate-handler.js","sourceRoot":"","sources":["../../../../../src/runtime/executors/loaders/tax-rate-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tax-rate-handler.js","sourceRoot":"","sources":["../../../../../src/runtime/executors/loaders/tax-rate-handler.ts"],"names":[],"mappings":"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"}
@@ -30,5 +30,7 @@ export interface CoercedProductFields {
30
30
  trackInventory?: boolean;
31
31
  stockOnHand?: number;
32
32
  stockByLocation?: Record<string, number>;
33
+ customFields?: Record<string, unknown>;
34
+ enabled?: boolean;
33
35
  }
34
36
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/runtime/executors/loaders/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5F;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B;;OAEG;IACH,OAAO,CACH,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,sBAAsB,EAC5B,KAAK,EAAE,YAAY,EAAE,EACrB,aAAa,CAAC,EAAE,qBAAqB,EACrC,aAAa,CAAC,EAAE,mBAAmB,GACpC,OAAO,CAAC,eAAe,CAAC,CAAC;IAE5B;;OAEG;IACH,QAAQ,CAAC,CACL,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,sBAAsB,EAC5B,KAAK,EAAE,YAAY,EAAE,GACtB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5C"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/runtime/executors/loaders/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5F;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B;;OAEG;IACH,OAAO,CACH,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,sBAAsB,EAC5B,KAAK,EAAE,YAAY,EAAE,EACrB,aAAa,CAAC,EAAE,qBAAqB,EACrC,aAAa,CAAC,EAAE,mBAAmB,GACpC,OAAO,CAAC,eAAe,CAAC,CAAC;IAE5B;;OAEG;IACH,QAAQ,CAAC,CACL,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,sBAAsB,EAC5B,KAAK,EAAE,YAAY,EAAE,GACtB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB"}
@@ -1,16 +1,38 @@
1
- import { RequestContext, ProductVariantService, RequestContextService, TaxCategoryService, ChannelService, StockLocationService } from '@vendure/core';
1
+ import { RequestContext, ProductService, ProductVariantService, ProductOptionGroupService, ProductOptionService, RequestContextService, TaxCategoryService, ChannelService, StockLocationService } from '@vendure/core';
2
2
  import { PipelineStepDefinition } from '../../../types/index';
3
3
  import { RecordObject, OnRecordErrorCallback, ExecutionResult } from '../../executor-types';
4
4
  import { LoaderHandler } from './types';
5
+ import { DataHubLoggerFactory } from '../../../services/logger';
5
6
  export declare class VariantHandler implements LoaderHandler {
7
+ private productService;
6
8
  private productVariantService;
9
+ private productOptionGroupService;
10
+ private productOptionService;
7
11
  private requestContextService;
8
12
  private taxCategoryService;
9
13
  private channelService;
10
14
  private stockLocationService;
11
15
  private readonly logger;
12
- constructor(productVariantService: ProductVariantService, requestContextService: RequestContextService, taxCategoryService: TaxCategoryService, channelService: ChannelService, stockLocationService: StockLocationService);
16
+ constructor(productService: ProductService, productVariantService: ProductVariantService, productOptionGroupService: ProductOptionGroupService, productOptionService: ProductOptionService, requestContextService: RequestContextService, taxCategoryService: TaxCategoryService, channelService: ChannelService, stockLocationService: StockLocationService, loggerFactory: DataHubLoggerFactory);
13
17
  execute(ctx: RequestContext, step: PipelineStepDefinition, input: RecordObject[], onRecordError?: OnRecordErrorCallback, _errorHandling?: unknown): Promise<ExecutionResult>;
18
+ /**
19
+ * Resolve the parent product ID from record fields.
20
+ * Checks: productSlug → productId → productName (in priority order).
21
+ */
22
+ private resolveProductId;
23
+ /**
24
+ * Resolve option IDs from all three input modes, merged into one array.
25
+ * Priority: optionGroupsField (auto-create) + optionCodesField (lookup) + optionIdsField (passthrough).
26
+ */
27
+ private resolveAllOptionIds;
28
+ /**
29
+ * Update an existing variant
30
+ */
31
+ private updateVariant;
32
+ /**
33
+ * Create a new variant under the given product
34
+ */
35
+ private createVariant;
14
36
  simulate(ctx: RequestContext, step: PipelineStepDefinition, input: RecordObject[]): Promise<Record<string, number>>;
15
37
  }
16
38
  //# sourceMappingURL=variant-handler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"variant-handler.d.ts","sourceRoot":"","sources":["../../../../../src/runtime/executors/loaders/variant-handler.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,cAAc,EAEd,oBAAoB,EAGvB,MAAM,eAAe,CAAC;AAQvB,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5F,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAqCxC,qBACa,cAAe,YAAW,aAAa;IAI5C,OAAO,CAAC,qBAAqB;IAC7B,OAAO,CAAC,qBAAqB;IAC7B,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,oBAAoB;IAPhC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmC;gBAG9C,qBAAqB,EAAE,qBAAqB,EAC5C,qBAAqB,EAAE,qBAAqB,EAC5C,kBAAkB,EAAE,kBAAkB,EACtC,cAAc,EAAE,cAAc,EAC9B,oBAAoB,EAAE,oBAAoB;IAGhD,OAAO,CACT,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,sBAAsB,EAC5B,KAAK,EAAE,YAAY,EAAE,EACrB,aAAa,CAAC,EAAE,qBAAqB,EACrC,cAAc,CAAC,EAAE,OAAO,GACzB,OAAO,CAAC,eAAe,CAAC;IAsHrB,QAAQ,CACV,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,sBAAsB,EAC5B,KAAK,EAAE,YAAY,EAAE,GACtB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAYrC"}
1
+ {"version":3,"file":"variant-handler.d.ts","sourceRoot":"","sources":["../../../../../src/runtime/executors/loaders/variant-handler.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,yBAAyB,EACzB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,cAAc,EAEd,oBAAoB,EAIvB,MAAM,eAAe,CAAC;AAUvB,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAG9D,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5F,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAexC,OAAO,EAAiB,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAqE/E,qBACa,cAAe,YAAW,aAAa;IAI5C,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,qBAAqB;IAC7B,OAAO,CAAC,yBAAyB;IACjC,OAAO,CAAC,oBAAoB;IAC5B,OAAO,CAAC,qBAAqB;IAC7B,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,oBAAoB;IAVhC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;gBAG3B,cAAc,EAAE,cAAc,EAC9B,qBAAqB,EAAE,qBAAqB,EAC5C,yBAAyB,EAAE,yBAAyB,EACpD,oBAAoB,EAAE,oBAAoB,EAC1C,qBAAqB,EAAE,qBAAqB,EAC5C,kBAAkB,EAAE,kBAAkB,EACtC,cAAc,EAAE,cAAc,EAC9B,oBAAoB,EAAE,oBAAoB,EAClD,aAAa,EAAE,oBAAoB;IAKjC,OAAO,CACT,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,sBAAsB,EAC5B,KAAK,EAAE,YAAY,EAAE,EACrB,aAAa,CAAC,EAAE,qBAAqB,EACrC,cAAc,CAAC,EAAE,OAAO,GACzB,OAAO,CAAC,eAAe,CAAC;IAiL3B;;;OAGG;YACW,gBAAgB;IA4B9B;;;OAGG;YACW,mBAAmB;IA8CjC;;OAEG;YACW,aAAa;IA2D3B;;OAEG;YACW,aAAa;IA8DrB,QAAQ,CACV,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,sBAAsB,EAC5B,KAAK,EAAE,YAAY,EAAE,GACtB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAYrC"}
@@ -8,7 +8,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
- var VariantHandler_1;
12
11
  Object.defineProperty(exports, "__esModule", { value: true });
13
12
  exports.VariantHandler = void 0;
14
13
  /**
@@ -17,9 +16,12 @@ exports.VariantHandler = void 0;
17
16
  const common_1 = require("@nestjs/common");
18
17
  const core_1 = require("@vendure/core");
19
18
  const index_1 = require("../../../constants/index");
19
+ const enums_1 = require("../../../constants/enums");
20
20
  const shared_lookups_1 = require("./shared-lookups");
21
21
  const error_utils_1 = require("../../../utils/error.utils");
22
22
  const shared_helpers_1 = require("../../../loaders/shared-helpers");
23
+ const index_2 = require("../../../constants/index");
24
+ const logger_1 = require("../../../services/logger");
23
25
  /**
24
26
  * Type guard to get config as VariantHandlerConfig
25
27
  */
@@ -32,17 +34,40 @@ function getStepConfig(step) {
32
34
  function variantHasChannelsLoaded(variant) {
33
35
  return 'channels' in variant && Array.isArray(variant.channels);
34
36
  }
35
- let VariantHandler = VariantHandler_1 = class VariantHandler {
36
- constructor(productVariantService, requestContextService, taxCategoryService, channelService, stockLocationService) {
37
+ /**
38
+ * Build variant translations — multi-language from record field or single-language fallback.
39
+ */
40
+ function buildVariantTranslations(opCtx, rec, config, name) {
41
+ if (config.translationsField) {
42
+ const raw = rec[config.translationsField];
43
+ if (raw) {
44
+ const parsed = (0, shared_lookups_1.parseTranslationsInput)(raw);
45
+ if (parsed.length > 0) {
46
+ return parsed.map(t => ({
47
+ languageCode: String(t.languageCode),
48
+ name: String(t.name ?? name),
49
+ }));
50
+ }
51
+ }
52
+ }
53
+ return [{ languageCode: opCtx.languageCode, name }];
54
+ }
55
+ let VariantHandler = class VariantHandler {
56
+ constructor(productService, productVariantService, productOptionGroupService, productOptionService, requestContextService, taxCategoryService, channelService, stockLocationService, loggerFactory) {
57
+ this.productService = productService;
37
58
  this.productVariantService = productVariantService;
59
+ this.productOptionGroupService = productOptionGroupService;
60
+ this.productOptionService = productOptionService;
38
61
  this.requestContextService = requestContextService;
39
62
  this.taxCategoryService = taxCategoryService;
40
63
  this.channelService = channelService;
41
64
  this.stockLocationService = stockLocationService;
42
- this.logger = new common_1.Logger(VariantHandler_1.name);
65
+ this.logger = loggerFactory.createLogger(index_2.LOGGER_CONTEXTS.PRODUCT_VARIANT_LOADER);
43
66
  }
44
67
  async execute(ctx, step, input, onRecordError, _errorHandling) {
45
68
  let ok = 0, fail = 0;
69
+ const optionCache = (0, shared_lookups_1.createOptionGroupCache)();
70
+ const channelCache = new Map();
46
71
  for (const rec of input) {
47
72
  try {
48
73
  const config = getStepConfig(step);
@@ -53,9 +78,26 @@ let VariantHandler = VariantHandler_1 = class VariantHandler {
53
78
  const taxCategoryName = config.taxCategoryName;
54
79
  const stockKey = config.stockField ?? 'stockOnHand';
55
80
  const stockLocKey = config.stockByLocationField;
81
+ const customFieldsKey = config.customFieldsField ?? 'customFields';
82
+ const optionGroupsKey = config.optionGroupsField;
83
+ const optionIdsKey = config.optionIdsField;
84
+ const optionCodesKey = config.optionCodesField;
56
85
  const sku = (0, shared_helpers_1.getStringValue)(rec, skuKey);
57
- const name = (0, shared_helpers_1.getStringValue)(rec, nameKey);
86
+ let name = (0, shared_helpers_1.getStringValue)(rec, nameKey);
87
+ // When translationsField is set and name is missing, extract from first translation
88
+ if (!name && config.translationsField) {
89
+ const raw = rec[config.translationsField];
90
+ if (raw) {
91
+ const parsed = (0, shared_lookups_1.parseTranslationsInput)(raw);
92
+ if (parsed.length > 0 && parsed[0].name)
93
+ name = String(parsed[0].name);
94
+ }
95
+ }
58
96
  if (!sku || !name) {
97
+ if (onRecordError) {
98
+ const missing = !sku ? 'sku' : 'name';
99
+ await onRecordError(step.key, `Missing required field "${missing}" for variantUpsert`, rec);
100
+ }
59
101
  fail++;
60
102
  continue;
61
103
  }
@@ -79,68 +121,241 @@ let VariantHandler = VariantHandler_1 = class VariantHandler {
79
121
  const priceMap = priceMapKey ? (0, shared_helpers_1.getObjectValue)(rec, priceMapKey) : undefined;
80
122
  const priceRaw = rec[priceKey];
81
123
  if (priceMap && typeof priceMap === 'object') {
82
- prices = Object.entries(priceMap).map(([cc, v]) => ({
83
- currencyCode: cc,
84
- price: Math.round(Number(v) * index_1.TRANSFORM_LIMITS.CURRENCY_MINOR_UNITS_MULTIPLIER),
85
- }));
124
+ // Validate currency codes against the channel's available currencies.
125
+ // Skip unavailable currencies with a WARN rather than failing the record.
126
+ const availableCurrencies = opCtx.channel?.availableCurrencyCodes ?? [];
127
+ const allPriceEntries = Object.entries(priceMap);
128
+ const validPrices = [];
129
+ for (const [cc, v] of allPriceEntries) {
130
+ if (availableCurrencies.length > 0 && !availableCurrencies.includes(cc)) {
131
+ this.logger.warn(`Currency "${cc}" is not available in channel "${opCtx.channel?.code ?? 'default'}" — skipping price for variant "${sku}". Available currencies: ${availableCurrencies.join(', ')}`);
132
+ continue;
133
+ }
134
+ validPrices.push({
135
+ currencyCode: cc,
136
+ price: Math.round(Number(v) * index_1.TRANSFORM_LIMITS.CURRENCY_MINOR_UNITS_MULTIPLIER),
137
+ });
138
+ }
139
+ if (validPrices.length > 0) {
140
+ prices = validPrices;
141
+ }
86
142
  }
87
- else if (priceRaw != null) {
143
+ if (priceRaw != null) {
88
144
  const priceValue = typeof priceRaw === 'number' ? priceRaw : Number(priceRaw);
89
145
  if (!Number.isNaN(priceValue))
90
146
  priceMinor = Math.round(priceValue * index_1.TRANSFORM_LIMITS.CURRENCY_MINOR_UNITS_MULTIPLIER);
91
147
  }
148
+ const stockOnHand = (0, shared_helpers_1.getNumberValue)(rec, stockKey);
149
+ const customFields = (0, shared_helpers_1.getObjectValue)(rec, customFieldsKey);
150
+ const enabledKey = config.enabledField ?? 'enabled';
151
+ const enabledRaw = rec[enabledKey];
152
+ const enabled = enabledRaw != null
153
+ ? (typeof enabledRaw === 'boolean' ? enabledRaw : String(enabledRaw).toLowerCase() === 'true')
154
+ : undefined;
155
+ const strategy = config.strategy ?? enums_1.LoadStrategy.UPSERT;
156
+ let variantId;
92
157
  if (existingVariant) {
93
- const update = {
94
- id: String(existingVariant.id),
95
- translations: [{ languageCode: opCtx.languageCode, name }],
96
- };
97
- if (prices && prices.length > 0) {
98
- update.prices = prices;
158
+ // Skip update if strategy is CREATE-only
159
+ if (strategy === enums_1.LoadStrategy.CREATE) {
160
+ ok++;
161
+ continue;
99
162
  }
100
- if (typeof priceMinor === 'number') {
101
- update.price = priceMinor;
102
- }
103
- const stockOnHand = (0, shared_helpers_1.getNumberValue)(rec, stockKey);
104
- if (typeof stockOnHand === 'number') {
105
- update.stockOnHand = Math.max(0, Math.floor(stockOnHand));
106
- }
107
- if (stockLevels && stockLevels.length > 0) {
108
- update.stockLevels = stockLevels;
163
+ const translations = buildVariantTranslations(opCtx, rec, config, name);
164
+ await this.updateVariant(opCtx, existingVariant, translations, prices, priceMinor, stockOnHand, stockLevels, taxCategoryId, customFields, channelCode, enabled);
165
+ variantId = existingVariant.id;
166
+ }
167
+ else {
168
+ // Skip creation if strategy is UPDATE-only
169
+ if (strategy === enums_1.LoadStrategy.UPDATE) {
170
+ if (onRecordError) {
171
+ await onRecordError(step.key, `Variant not found for update: ${sku}`, rec);
172
+ }
173
+ fail++;
174
+ continue;
109
175
  }
110
- if (taxCategoryId) {
111
- update.taxCategoryId = taxCategoryId;
176
+ // Resolve parent product from record fields: productSlug, productId, productName
177
+ const productId = await this.resolveProductId(opCtx, rec);
178
+ if (!productId) {
179
+ this.logger.warn(`Cannot create variant "${sku}" — no parent product found. Record should contain productSlug, productId, or productName`);
180
+ fail++;
181
+ continue;
112
182
  }
113
- const [updated] = await this.productVariantService.update(opCtx, [update]);
114
- if (channelCode) {
115
- try {
116
- const alreadyIn = variantHasChannelsLoaded(existingVariant) &&
117
- existingVariant.channels.some(c => c.id === opCtx.channelId);
118
- if (!alreadyIn) {
119
- await this.channelService.assignToChannels(opCtx, core_1.ProductVariant, updated.id, [opCtx.channelId]);
183
+ const optionIds = await this.resolveAllOptionIds(opCtx, rec, productId, optionGroupsKey, optionIdsKey, optionCodesKey, optionCache);
184
+ const translations = buildVariantTranslations(opCtx, rec, config, name);
185
+ variantId = await this.createVariant(opCtx, productId, sku, translations, prices, priceMinor, stockOnHand, stockLevels, taxCategoryId, customFields, channelCode, optionIds, enabled);
186
+ }
187
+ // Dynamic per-record channel assignment
188
+ if (config.channelsField && variantId) {
189
+ const rawChannels = rec[config.channelsField];
190
+ if (rawChannels != null) {
191
+ const channelIds = await (0, shared_lookups_1.resolveChannelIds)(this.channelService, opCtx, rawChannels, channelCache, this.logger);
192
+ if (channelIds.length > 0) {
193
+ try {
194
+ await this.channelService.assignToChannels(opCtx, core_1.ProductVariant, variantId, channelIds);
195
+ }
196
+ catch (error) {
197
+ this.logger.warn(`Failed to assign variant ${variantId} to record channels: ${(0, error_utils_1.getErrorMessage)(error)}`);
120
198
  }
121
- }
122
- catch (error) {
123
- this.logger.warn(`Failed to assign variant ${updated.id} to channel: ${(0, error_utils_1.getErrorMessage)(error)}`);
124
199
  }
125
200
  }
126
201
  }
127
- else {
128
- // Need a productId to create a variant; best-effort: try to find product by slug/name
129
- // Here we skip creation without product context
130
- fail++;
131
- continue;
132
- }
133
202
  ok++;
134
203
  }
135
204
  catch (e) {
136
205
  if (onRecordError) {
137
- await onRecordError(step.key, (0, error_utils_1.getErrorMessage)(e) || 'variantUpsert failed', rec);
206
+ await onRecordError(step.key, (0, error_utils_1.getErrorMessage)(e) || 'variantUpsert failed', rec, (0, error_utils_1.getErrorStack)(e));
138
207
  }
139
208
  fail++;
140
209
  }
141
210
  }
142
211
  return { ok, fail };
143
212
  }
213
+ /**
214
+ * Resolve the parent product ID from record fields.
215
+ * Checks: productSlug → productId → productName (in priority order).
216
+ */
217
+ async resolveProductId(ctx, rec) {
218
+ // 1. By slug
219
+ const slug = (0, shared_helpers_1.getStringValue)(rec, 'productSlug');
220
+ if (slug) {
221
+ const product = await this.productService.findOneBySlug(ctx, slug);
222
+ if (product)
223
+ return product.id;
224
+ }
225
+ // 2. By direct ID
226
+ const directId = rec['productId'];
227
+ if (directId != null) {
228
+ const product = await this.productService.findOne(ctx, directId);
229
+ if (product)
230
+ return product.id;
231
+ }
232
+ // 3. By name
233
+ const productName = (0, shared_helpers_1.getStringValue)(rec, 'productName');
234
+ if (productName) {
235
+ const result = await this.productService.findAll(ctx, {
236
+ filter: { name: { eq: productName } },
237
+ take: 1,
238
+ });
239
+ if (result.totalItems > 0)
240
+ return result.items[0].id;
241
+ }
242
+ return undefined;
243
+ }
244
+ /**
245
+ * Resolve option IDs from all three input modes, merged into one array.
246
+ * Priority: optionGroupsField (auto-create) + optionCodesField (lookup) + optionIdsField (passthrough).
247
+ */
248
+ async resolveAllOptionIds(ctx, rec, productId, optionGroupsKey, optionIdsKey, optionCodesKey, optionCache) {
249
+ const collected = [];
250
+ // 1. Auto-create from key-value map: { size: 'S', color: 'Blue' }
251
+ if (optionGroupsKey) {
252
+ const optionsMap = (0, shared_helpers_1.getObjectValue)(rec, optionGroupsKey);
253
+ if (optionsMap && typeof optionsMap === 'object' && Object.keys(optionsMap).length > 0) {
254
+ const ids = await (0, shared_lookups_1.resolveOptionGroups)(this.productOptionGroupService, this.productOptionService, this.productService, ctx, productId, optionsMap, optionCache, this.logger);
255
+ collected.push(...ids);
256
+ }
257
+ }
258
+ // 2. Resolve by option codes: ['size-s', 'color-blue']
259
+ if (optionCodesKey) {
260
+ const codes = rec[optionCodesKey];
261
+ if (Array.isArray(codes) && codes.length > 0) {
262
+ const ids = await (0, shared_lookups_1.resolveOptionCodes)(this.productOptionService, ctx, codes.map(String), optionCache, this.logger);
263
+ collected.push(...ids);
264
+ }
265
+ }
266
+ // 3. Direct passthrough of existing IDs: [1, 2, 3]
267
+ if (optionIdsKey) {
268
+ const directIds = rec[optionIdsKey];
269
+ if (Array.isArray(directIds) && directIds.length > 0) {
270
+ collected.push(...directIds.map(id => id));
271
+ }
272
+ }
273
+ return collected.length > 0 ? collected : undefined;
274
+ }
275
+ /**
276
+ * Update an existing variant
277
+ */
278
+ async updateVariant(opCtx, existingVariant, translations, prices, priceMinor, stockOnHand, stockLevels, taxCategoryId, customFields, channelCode, enabled) {
279
+ const update = {
280
+ id: existingVariant.id,
281
+ sku: existingVariant.sku,
282
+ translations,
283
+ ...(typeof enabled === 'boolean' ? { enabled } : {}),
284
+ };
285
+ if (prices && prices.length > 0) {
286
+ update.prices = prices;
287
+ }
288
+ if (typeof priceMinor === 'number') {
289
+ update.price = priceMinor;
290
+ }
291
+ if (typeof stockOnHand === 'number') {
292
+ update.stockOnHand = Math.max(0, Math.floor(stockOnHand));
293
+ }
294
+ if (stockLevels && stockLevels.length > 0) {
295
+ update.stockLevels = stockLevels;
296
+ }
297
+ if (taxCategoryId) {
298
+ update.taxCategoryId = taxCategoryId;
299
+ }
300
+ if (customFields) {
301
+ update.customFields = customFields;
302
+ }
303
+ const [updated] = await this.productVariantService.update(opCtx, [update]);
304
+ if (channelCode) {
305
+ try {
306
+ const alreadyIn = variantHasChannelsLoaded(existingVariant) &&
307
+ existingVariant.channels.some(c => c.id === opCtx.channelId);
308
+ if (!alreadyIn) {
309
+ await this.channelService.assignToChannels(opCtx, core_1.ProductVariant, updated.id, [opCtx.channelId]);
310
+ }
311
+ }
312
+ catch (error) {
313
+ this.logger.warn(`Failed to assign variant ${updated.id} to channel: ${(0, error_utils_1.getErrorMessage)(error)}`);
314
+ }
315
+ }
316
+ }
317
+ /**
318
+ * Create a new variant under the given product
319
+ */
320
+ async createVariant(opCtx, productId, sku, translations, prices, priceMinor, stockOnHand, stockLevels, taxCategoryId, customFields, channelCode, optionIds, enabled) {
321
+ const createInput = {
322
+ productId,
323
+ sku,
324
+ translations,
325
+ ...(typeof enabled === 'boolean' ? { enabled } : {}),
326
+ };
327
+ if (prices && prices.length > 0) {
328
+ createInput.prices = prices;
329
+ }
330
+ if (typeof priceMinor === 'number') {
331
+ createInput.price = priceMinor;
332
+ }
333
+ if (typeof stockOnHand === 'number') {
334
+ createInput.stockOnHand = Math.max(0, Math.floor(stockOnHand));
335
+ }
336
+ if (stockLevels && stockLevels.length > 0) {
337
+ createInput.stockLevels = stockLevels;
338
+ }
339
+ if (taxCategoryId) {
340
+ createInput.taxCategoryId = taxCategoryId;
341
+ }
342
+ if (customFields) {
343
+ createInput.customFields = customFields;
344
+ }
345
+ if (optionIds && optionIds.length > 0) {
346
+ createInput.optionIds = optionIds;
347
+ }
348
+ const [created] = await this.productVariantService.create(opCtx, [createInput]);
349
+ if (channelCode) {
350
+ try {
351
+ await this.channelService.assignToChannels(opCtx, core_1.ProductVariant, created.id, [opCtx.channelId]);
352
+ }
353
+ catch (error) {
354
+ this.logger.warn(`Failed to assign created variant ${created.id} to channel: ${(0, error_utils_1.getErrorMessage)(error)}`);
355
+ }
356
+ }
357
+ return created.id;
358
+ }
144
359
  async simulate(ctx, step, input) {
145
360
  let exists = 0, missing = 0;
146
361
  for (const rec of input) {
@@ -159,12 +374,16 @@ let VariantHandler = VariantHandler_1 = class VariantHandler {
159
374
  }
160
375
  };
161
376
  exports.VariantHandler = VariantHandler;
162
- exports.VariantHandler = VariantHandler = VariantHandler_1 = __decorate([
377
+ exports.VariantHandler = VariantHandler = __decorate([
163
378
  (0, common_1.Injectable)(),
164
- __metadata("design:paramtypes", [core_1.ProductVariantService,
379
+ __metadata("design:paramtypes", [core_1.ProductService,
380
+ core_1.ProductVariantService,
381
+ core_1.ProductOptionGroupService,
382
+ core_1.ProductOptionService,
165
383
  core_1.RequestContextService,
166
384
  core_1.TaxCategoryService,
167
385
  core_1.ChannelService,
168
- core_1.StockLocationService])
386
+ core_1.StockLocationService,
387
+ logger_1.DataHubLoggerFactory])
169
388
  ], VariantHandler);
170
389
  //# sourceMappingURL=variant-handler.js.map