@mercurjs/core 2.3.5 → 2.3.6-canary.1

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 (106) hide show
  1. package/.medusa/server/src/api/admin/collections/validators.d.ts +12 -185
  2. package/.medusa/server/src/api/admin/collections/validators.js +3 -3
  3. package/.medusa/server/src/api/admin/commission-rates/validators.d.ts +21 -226
  4. package/.medusa/server/src/api/admin/customer-groups/validators.d.ts +6 -26
  5. package/.medusa/server/src/api/admin/members/validators.d.ts +1 -18
  6. package/.medusa/server/src/api/admin/offers/validators.d.ts +22 -261
  7. package/.medusa/server/src/api/admin/order-groups/validators.d.ts +9 -94
  8. package/.medusa/server/src/api/admin/orders/validators.d.ts +162 -1
  9. package/.medusa/server/src/api/admin/payouts/validators.d.ts +7 -86
  10. package/.medusa/server/src/api/admin/product-attributes/validators.d.ts +45 -398
  11. package/.medusa/server/src/api/admin/product-attributes/validators.js +8 -8
  12. package/.medusa/server/src/api/admin/product-categories/middlewares.js +4 -2
  13. package/.medusa/server/src/api/admin/product-categories/validators.d.ts +41 -376
  14. package/.medusa/server/src/api/admin/product-categories/validators.js +3 -3
  15. package/.medusa/server/src/api/admin/product-changes/validators.d.ts +2 -10
  16. package/.medusa/server/src/api/admin/products/middlewares.js +4 -2
  17. package/.medusa/server/src/api/admin/products/validators.d.ts +128 -1702
  18. package/.medusa/server/src/api/admin/products/validators.js +9 -9
  19. package/.medusa/server/src/api/admin/promotions/[id]/cost/validators.d.ts +6 -8
  20. package/.medusa/server/src/api/admin/reservations/validators.d.ts +2 -39
  21. package/.medusa/server/src/api/admin/reviews/validators.d.ts +24 -46
  22. package/.medusa/server/src/api/admin/sellers/validators.d.ts +32 -358
  23. package/.medusa/server/src/api/admin/sellers/validators.js +4 -4
  24. package/.medusa/server/src/api/store/carts/[id]/complete/validators.d.ts +1 -5
  25. package/.medusa/server/src/api/store/carts/[id]/line-items/validators.d.ts +1 -11
  26. package/.medusa/server/src/api/store/carts/[id]/line-items/validators.js +3 -3
  27. package/.medusa/server/src/api/store/offers/validators.d.ts +9 -112
  28. package/.medusa/server/src/api/store/order-groups/validators.d.ts +5 -80
  29. package/.medusa/server/src/api/store/product-attributes/validators.d.ts +19 -175
  30. package/.medusa/server/src/api/store/product-categories/validators.d.ts +21 -184
  31. package/.medusa/server/src/api/store/products/validators.d.ts +25 -210
  32. package/.medusa/server/src/api/store/reviews/validators.d.ts +7 -34
  33. package/.medusa/server/src/api/store/sellers/validators.d.ts +7 -92
  34. package/.medusa/server/src/api/vendor/campaigns/validators.d.ts +28 -165
  35. package/.medusa/server/src/api/vendor/campaigns/validators.js +4 -4
  36. package/.medusa/server/src/api/vendor/claims/validators.d.ts +23 -276
  37. package/.medusa/server/src/api/vendor/collections/validators.d.ts +8 -117
  38. package/.medusa/server/src/api/vendor/currencies/validators.d.ts +5 -32
  39. package/.medusa/server/src/api/vendor/customer-groups/validators.d.ts +11 -108
  40. package/.medusa/server/src/api/vendor/customer-groups/validators.js +3 -3
  41. package/.medusa/server/src/api/vendor/customers/validators.d.ts +11 -102
  42. package/.medusa/server/src/api/vendor/exchanges/validators.d.ts +17 -228
  43. package/.medusa/server/src/api/vendor/fulfillment-providers/validators.d.ts +4 -27
  44. package/.medusa/server/src/api/vendor/fulfillment-sets/validators.d.ts +18 -290
  45. package/.medusa/server/src/api/vendor/fulfillment-sets/validators.js +3 -3
  46. package/.medusa/server/src/api/vendor/inventory-items/validators.d.ts +48 -560
  47. package/.medusa/server/src/api/vendor/inventory-items/validators.js +3 -3
  48. package/.medusa/server/src/api/vendor/members/validators.d.ts +2 -18
  49. package/.medusa/server/src/api/vendor/offers/validators.d.ts +34 -497
  50. package/.medusa/server/src/api/vendor/order-edits/validators.d.ts +8 -118
  51. package/.medusa/server/src/api/vendor/order-edits/validators.js +6 -6
  52. package/.medusa/server/src/api/vendor/orders/validators.d.ts +17 -170
  53. package/.medusa/server/src/api/vendor/payments/validators.d.ts +11 -121
  54. package/.medusa/server/src/api/vendor/payout-accounts/validators.d.ts +4 -32
  55. package/.medusa/server/src/api/vendor/payout-accounts/validators.js +5 -5
  56. package/.medusa/server/src/api/vendor/payouts/validators.d.ts +5 -80
  57. package/.medusa/server/src/api/vendor/price-lists/validators.d.ts +21 -262
  58. package/.medusa/server/src/api/vendor/price-preferences/validators.d.ts +5 -30
  59. package/.medusa/server/src/api/vendor/product-attributes/validators.d.ts +33 -273
  60. package/.medusa/server/src/api/vendor/product-attributes/validators.js +5 -5
  61. package/.medusa/server/src/api/vendor/product-categories/validators.d.ts +34 -275
  62. package/.medusa/server/src/api/vendor/product-tags/validators.d.ts +12 -48
  63. package/.medusa/server/src/api/vendor/product-types/validators.d.ts +4 -27
  64. package/.medusa/server/src/api/vendor/product-variants/middlewares.js +7 -2
  65. package/.medusa/server/src/api/vendor/product-variants/validators.d.ts +38 -364
  66. package/.medusa/server/src/api/vendor/products/middlewares.js +5 -2
  67. package/.medusa/server/src/api/vendor/products/validators.d.ts +102 -1012
  68. package/.medusa/server/src/api/vendor/products/validators.js +13 -13
  69. package/.medusa/server/src/api/vendor/promotions/validators.d.ts +104 -1109
  70. package/.medusa/server/src/api/vendor/promotions/validators.js +3 -3
  71. package/.medusa/server/src/api/vendor/refund-reasons/validators.d.ts +5 -82
  72. package/.medusa/server/src/api/vendor/regions/validators.d.ts +7 -88
  73. package/.medusa/server/src/api/vendor/reservations/validators.d.ts +14 -207
  74. package/.medusa/server/src/api/vendor/return-reasons/validators.d.ts +9 -94
  75. package/.medusa/server/src/api/vendor/returns/validators.d.ts +26 -306
  76. package/.medusa/server/src/api/vendor/returns/validators.js +8 -8
  77. package/.medusa/server/src/api/vendor/reviews/validators.d.ts +19 -36
  78. package/.medusa/server/src/api/vendor/sales-channels/validators.d.ts +5 -32
  79. package/.medusa/server/src/api/vendor/sellers/validators.d.ts +17 -249
  80. package/.medusa/server/src/api/vendor/sellers/validators.js +4 -4
  81. package/.medusa/server/src/api/vendor/shipping-option-types/validators.d.ts +8 -91
  82. package/.medusa/server/src/api/vendor/shipping-options/validators.d.ts +59 -730
  83. package/.medusa/server/src/api/vendor/shipping-options/validators.js +5 -5
  84. package/.medusa/server/src/api/vendor/shipping-profiles/validators.d.ts +5 -86
  85. package/.medusa/server/src/api/vendor/stock-locations/validators.d.ts +14 -209
  86. package/.medusa/server/src/api/vendor/stock-locations/validators.js +3 -3
  87. package/.medusa/server/src/api/vendor/stores/validators.d.ts +4 -27
  88. package/.medusa/server/src/patches/index.js +12 -5
  89. package/.medusa/server/src/patches/manifest.js +13 -3
  90. package/.medusa/server/src/patches/patches/@medusajs+core-flows@2.21.0-payment-hooks.patch +89 -0
  91. package/.medusa/server/src/utils/disable-medusa-middlewares.d.ts +2 -0
  92. package/.medusa/server/src/utils/disable-medusa-middlewares.js +35 -10
  93. package/.medusa/server/src/workflows/commission/workflows/refresh-order-commission-lines.d.ts +8 -1
  94. package/.medusa/server/src/workflows/commission/workflows/refresh-order-commission-lines.js +6 -2
  95. package/.medusa/server/src/workflows/offer/workflows/index.d.ts +1 -0
  96. package/.medusa/server/src/workflows/offer/workflows/index.js +2 -1
  97. package/.medusa/server/src/workflows/offer/workflows/update-offers.js +9 -138
  98. package/.medusa/server/src/workflows/offer/workflows/upsert-offer-prices.d.ts +14 -0
  99. package/.medusa/server/src/workflows/offer/workflows/upsert-offer-prices.js +130 -0
  100. package/.medusa/server/src/workflows/order/workflows/confirm-return-receive.d.ts +15 -2
  101. package/.medusa/server/src/workflows/order/workflows/confirm-return-receive.js +14 -3
  102. package/.medusa/server/src/workflows/payment/workflows/index.d.ts +1 -0
  103. package/.medusa/server/src/workflows/payment/workflows/index.js +2 -1
  104. package/.medusa/server/src/workflows/payment/workflows/payment-hooks.d.ts +25 -0
  105. package/.medusa/server/src/workflows/payment/workflows/payment-hooks.js +10 -0
  106. package/package.json +17 -17
@@ -0,0 +1,89 @@
1
+ diff --git a/dist/payment/workflows/capture-payment.d.ts b/dist/payment/workflows/capture-payment.d.ts
2
+ index 1b495fa..1e2fe8c 100644
3
+ --- a/dist/payment/workflows/capture-payment.d.ts
4
+ +++ b/dist/payment/workflows/capture-payment.d.ts
5
+ @@ -36,5 +36,11 @@ export declare const capturePaymentWorkflowId = "capture-payment-workflow";
6
+ *
7
+ * Capture a payment.
8
+ */
9
+ -export declare const capturePaymentWorkflow: import("@medusajs/framework/workflows-sdk").ReturnWorkflow<CapturePaymentWorkflowInput, PaymentDTO, []>;
10
+ +export declare const capturePaymentWorkflow: import("@medusajs/framework/workflows-sdk").ReturnWorkflow<CapturePaymentWorkflowInput, PaymentDTO, [
11
+ + import("@medusajs/framework/workflows-sdk").Hook<"paymentCaptured", {
12
+ + payment: PaymentDTO;
13
+ + order_id: string | null;
14
+ + amount: BigNumberInput | null;
15
+ + }, unknown>
16
+ +]>;
17
+ //# sourceMappingURL=capture-payment.d.ts.map
18
+
19
+ diff --git a/dist/payment/workflows/capture-payment.js b/dist/payment/workflows/capture-payment.js
20
+ index 404cfaf..e069e4d 100644
21
+ --- a/dist/payment/workflows/capture-payment.js
22
+ +++ b/dist/payment/workflows/capture-payment.js
23
+ @@ -54,6 +54,16 @@ exports.capturePaymentWorkflow = (0, workflows_sdk_1.createWorkflow)(exports.cap
24
+ eventName: utils_1.PaymentEvents.CAPTURED,
25
+ data: { id: payment.id },
26
+ });
27
+ - return new workflows_sdk_1.WorkflowResponse(payment);
28
+ + // MERCUR: payment has no hook where order has orderCreated / orderCanceled.
29
+ + // A ledger that must record every capture in the capture's own transaction
30
+ + // needs one; an event fires after commit and cannot be compensated.
31
+ + const paymentCaptured = (0, workflows_sdk_1.createHook)("paymentCaptured", {
32
+ + payment,
33
+ + order_id: (0, workflows_sdk_1.transform)({ orderPayment }, ({ orderPayment }) => orderPayment?.order?.id ?? null),
34
+ + amount: (0, workflows_sdk_1.transform)({ input }, ({ input }) => input.amount ?? null),
35
+ + });
36
+ + return new workflows_sdk_1.WorkflowResponse(payment, {
37
+ + hooks: [paymentCaptured],
38
+ + });
39
+ });
40
+ //# sourceMappingURL=capture-payment.js.map
41
+
42
+ diff --git a/dist/payment/workflows/refund-payment.d.ts b/dist/payment/workflows/refund-payment.d.ts
43
+ index 3848939..7ff118d 100644
44
+ --- a/dist/payment/workflows/refund-payment.d.ts
45
+ +++ b/dist/payment/workflows/refund-payment.d.ts
46
+ @@ -58,5 +58,17 @@ export declare const refundPaymentWorkflowId = "refund-payment-workflow";
47
+ *
48
+ * Refund a payment.
49
+ */
50
+ -export declare const refundPaymentWorkflow: import("@medusajs/framework/workflows-sdk").ReturnWorkflow<RefundPaymentWorkflowInput, any, []>;
51
+ +export declare const refundPaymentWorkflow: import("@medusajs/framework/workflows-sdk").ReturnWorkflow<RefundPaymentWorkflowInput, any, [
52
+ + import("@medusajs/framework/workflows-sdk").Hook<"paymentRefunded", {
53
+ + payment: PaymentDTO;
54
+ + order_id: string | null;
55
+ + amount: BigNumberInput | null;
56
+ + credit_line_amount: BigNumberInput;
57
+ + refund_reason: {
58
+ + id: string;
59
+ + label: string;
60
+ + code: string | null;
61
+ + } | null;
62
+ + }, unknown>
63
+ +]>;
64
+ //# sourceMappingURL=refund-payment.d.ts.map
65
+
66
+ diff --git a/dist/payment/workflows/refund-payment.js b/dist/payment/workflows/refund-payment.js
67
+ index 5d19f53..dcd8b37 100644
68
+ --- a/dist/payment/workflows/refund-payment.js
69
+ +++ b/dist/payment/workflows/refund-payment.js
70
+ @@ -145,6 +145,17 @@ exports.refundPaymentWorkflow = (0, workflows_sdk_1.createWorkflow)(exports.refu
71
+ eventName: utils_1.PaymentEvents.REFUNDED,
72
+ data: { id: payment.id },
73
+ });
74
+ - return new workflows_sdk_1.WorkflowResponse(payment);
75
+ + // MERCUR: see capture-payment.js. A refund is the correction side of a
76
+ + // capture and needs the same in-transaction seam.
77
+ + const paymentRefunded = (0, workflows_sdk_1.createHook)("paymentRefunded", {
78
+ + payment: refundPayment,
79
+ + order_id: (0, workflows_sdk_1.transform)({ order }, ({ order }) => order?.id ?? null),
80
+ + amount: (0, workflows_sdk_1.transform)({ input }, ({ input }) => input.amount ?? null),
81
+ + credit_line_amount: creditLineAmount,
82
+ + refund_reason: (0, workflows_sdk_1.transform)({ refundReason }, ({ refundReason }) => refundReason ?? null),
83
+ + });
84
+ + return new workflows_sdk_1.WorkflowResponse(payment, {
85
+ + hooks: [paymentRefunded],
86
+ + });
87
+ });
88
+ //# sourceMappingURL=refund-payment.js.map
89
+
@@ -1,2 +1,4 @@
1
+ import type { MiddlewareRoute } from "@medusajs/framework/http";
1
2
  export declare const ORIGINAL_MIDDLEWARES: Record<string, unknown[]>;
2
3
  export declare function disableMedusaMiddlewares(): void;
4
+ export declare function withOriginalMiddlewares(file: string, overrides: MiddlewareRoute[]): MiddlewareRoute[];
@@ -5,24 +5,23 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.ORIGINAL_MIDDLEWARES = void 0;
7
7
  exports.disableMedusaMiddlewares = disableMedusaMiddlewares;
8
+ exports.withOriginalMiddlewares = withOriginalMiddlewares;
8
9
  const fs_1 = require("fs");
9
10
  const path_1 = require("path");
10
11
  const resolve_cwd_1 = __importDefault(require("resolve-cwd"));
11
12
  const pkg_dir_1 = __importDefault(require("pkg-dir"));
12
13
  // Medusa's `dist/api/middlewares.js` is a single aggregator that statically
13
14
  // requires every sub-middleware file (e.g. `./store/carts/middlewares`) and
14
- // spreads each one's exported array into a flat list. Mercur replaces some
15
- // of those modules wholesale (products), and partially overrides others
16
- // (carts). Overriding route handlers is trivial in Medusa (file-based,
15
+ // spreads each one's exported array into a flat list. Mercur overrides a
16
+ // subset of the routes in each of those modules. Overriding route handlers is trivial in Medusa (file-based,
17
17
  // plugin scanned after core), but middlewares can't be overridden the same
18
18
  // way — hence this patch.
19
19
  //
20
20
  // We preload each listed sub-middleware module and empty its exported array
21
21
  // in place BEFORE Medusa's aggregator runs. The aggregator then spreads an
22
- // empty array. For files where Mercur only overrides a subset of routes
23
- // (carts), the original entries are captured into `ORIGINAL_MIDDLEWARES`
22
+ // empty array. The original entries are captured into `ORIGINAL_MIDDLEWARES`
24
23
  // first so Mercur's own middlewares.ts can re-spread the non-overridden
25
- // ones.
24
+ // ones (see `withOriginalMiddlewares`).
26
25
  //
27
26
  // Bun deduplicates each transitive copy of `@medusajs/medusa` under
28
27
  // `node_modules/.bun/@medusajs+medusa@<ver>+<hash>/`. The framework can
@@ -33,7 +32,6 @@ const OVERRIDES = [
33
32
  "dist/api/admin/promotions/middlewares.js",
34
33
  "dist/api/admin/campaigns/middlewares.js",
35
34
  "dist/api/admin/price-lists/middlewares.js",
36
- "dist/api/admin/product-variants/middlewares.js",
37
35
  "dist/api/admin/product-categories/middlewares.js",
38
36
  "dist/api/admin/collections/middlewares.js",
39
37
  "dist/api/admin/customer-groups/middlewares.js",
@@ -45,7 +43,6 @@ const OVERRIDES = [
45
43
  "dist/api/admin/inventory-items/middlewares.js",
46
44
  "dist/api/store/products/middlewares.js",
47
45
  "dist/api/store/product-categories/middlewares.js",
48
- "dist/api/store/product-variants/middlewares.js",
49
46
  "dist/api/store/carts/middlewares.js",
50
47
  ];
51
48
  exports.ORIGINAL_MIDDLEWARES = {};
@@ -92,10 +89,38 @@ function disableMedusaMiddlewares() {
92
89
  const value = mod[key];
93
90
  if (!Array.isArray(value))
94
91
  continue;
95
- exports.ORIGINAL_MIDDLEWARES[file] = [...value];
92
+ // The first dir is the copy the app resolves; later copies (possibly
93
+ // other Medusa versions further up the tree) must not replace it.
94
+ if (!exports.ORIGINAL_MIDDLEWARES[file] && value.length) {
95
+ exports.ORIGINAL_MIDDLEWARES[file] = [...value];
96
+ }
96
97
  value.length = 0;
97
98
  }
98
99
  }
99
100
  }
100
101
  }
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzYWJsZS1tZWR1c2EtbWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdXRpbHMvZGlzYWJsZS1tZWR1c2EtbWlkZGxld2FyZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBZ0ZBLDREQXFCQztBQXJHRCwyQkFBNEM7QUFDNUMsK0JBQW9DO0FBQ3BDLDhEQUFvQztBQUNwQyxzREFBNEI7QUFFNUIsNEVBQTRFO0FBQzVFLDRFQUE0RTtBQUM1RSwyRUFBMkU7QUFDM0Usd0VBQXdFO0FBQ3hFLHVFQUF1RTtBQUN2RSwyRUFBMkU7QUFDM0UsMEJBQTBCO0FBQzFCLEVBQUU7QUFDRiw0RUFBNEU7QUFDNUUsMkVBQTJFO0FBQzNFLHdFQUF3RTtBQUN4RSx5RUFBeUU7QUFDekUsd0VBQXdFO0FBQ3hFLFFBQVE7QUFDUixFQUFFO0FBQ0Ysb0VBQW9FO0FBQ3BFLHdFQUF3RTtBQUN4RSwwRUFBMEU7QUFDMUUsZ0JBQWdCO0FBRWhCLE1BQU0sU0FBUyxHQUFhO0lBQzFCLHdDQUF3QztJQUN4QywwQ0FBMEM7SUFDMUMseUNBQXlDO0lBQ3pDLDJDQUEyQztJQUMzQyxnREFBZ0Q7SUFDaEQsa0RBQWtEO0lBQ2xELDJDQUEyQztJQUMzQywrQ0FBK0M7SUFDL0Msc0NBQXNDO0lBQ3RDLGdEQUFnRDtJQUNoRCxpREFBaUQ7SUFDakQsK0NBQStDO0lBQy9DLDRDQUE0QztJQUM1QywrQ0FBK0M7SUFDL0Msd0NBQXdDO0lBQ3hDLGtEQUFrRDtJQUNsRCxnREFBZ0Q7SUFDaEQscUNBQXFDO0NBQ3RDLENBQUE7QUFFWSxRQUFBLG9CQUFvQixHQUE4QixFQUFFLENBQUE7QUFFakUsU0FBUyxjQUFjO0lBQ3JCLE1BQU0sSUFBSSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUE7SUFFOUIsTUFBTSxLQUFLLEdBQUcsSUFBQSxxQkFBVSxFQUFDLGtCQUFrQixDQUFDLENBQUE7SUFDNUMsTUFBTSxPQUFPLEdBQUcsaUJBQU0sQ0FBQyxJQUFJLENBQUMsSUFBQSxjQUFPLEVBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtJQUMzQyxJQUFJLE9BQU87UUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBRTlCLDRFQUE0RTtJQUM1RSxJQUFJLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUE7SUFDMUIsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUNaLE1BQU0sTUFBTSxHQUFHLElBQUEsV0FBSSxFQUFDLE1BQU0sRUFBRSxjQUFjLEVBQUUsTUFBTSxDQUFDLENBQUE7UUFDbkQsSUFBSSxJQUFBLGVBQVUsRUFBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLEtBQUssTUFBTSxLQUFLLElBQUksSUFBQSxnQkFBVyxFQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUFDO29CQUFFLFNBQVE7Z0JBQ3BELE1BQU0sS0FBSyxHQUFHLElBQUEsV0FBSSxFQUNoQixNQUFNLEVBQ04sS0FBSyxFQUNMLGNBQWMsRUFDZCxXQUFXLEVBQ1gsUUFBUSxDQUNULENBQUE7Z0JBQ0QsSUFBSSxJQUFBLGVBQVUsRUFBQyxJQUFBLFdBQUksRUFBQyxLQUFLLEVBQUUsY0FBYyxDQUFDLENBQUM7b0JBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQTtZQUM5RCxDQUFDO1FBQ0gsQ0FBQztRQUNELE1BQU0sTUFBTSxHQUFHLElBQUEsY0FBTyxFQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQzlCLElBQUksTUFBTSxLQUFLLE1BQU07WUFBRSxNQUFLO1FBQzVCLE1BQU0sR0FBRyxNQUFNLENBQUE7SUFDakIsQ0FBQztJQUVELE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFBO0FBQ2xCLENBQUM7QUFFRCxTQUFnQix3QkFBd0I7SUFDdEMsS0FBSyxNQUFNLFNBQVMsSUFBSSxjQUFjLEVBQUUsRUFBRSxDQUFDO1FBQ3pDLEtBQUssTUFBTSxJQUFJLElBQUksU0FBUyxFQUFFLENBQUM7WUFDN0IsTUFBTSxRQUFRLEdBQUcsSUFBQSxXQUFJLEVBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFBO1lBQ3RDLElBQUksQ0FBQyxJQUFBLGVBQVUsRUFBQyxRQUFRLENBQUM7Z0JBQUUsU0FBUTtZQUVuQyxJQUFJLEdBQTRCLENBQUE7WUFDaEMsSUFBSSxDQUFDO2dCQUNILEdBQUcsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUE7WUFDekIsQ0FBQztZQUFDLE1BQU0sQ0FBQztnQkFDUCxTQUFRO1lBQ1YsQ0FBQztZQUVELEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNuQyxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7Z0JBQ3RCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztvQkFBRSxTQUFRO2dCQUNuQyw0QkFBb0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUE7Z0JBQ3ZDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFBO1lBQ2xCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUMifQ==
102
+ const toMethods = (route) => {
103
+ if (!route.method)
104
+ return undefined;
105
+ return Array.isArray(route.method) ? route.method : [route.method];
106
+ };
107
+ const collides = (original, override) => {
108
+ if (String(original.matcher) !== String(override.matcher))
109
+ return false;
110
+ const a = toMethods(original);
111
+ const b = toMethods(override);
112
+ if (!a || !b)
113
+ return true;
114
+ return a.some((method) => b.includes(method));
115
+ };
116
+ // Medusa's handlers for routes Mercur doesn't override still load and expect
117
+ // Medusa's validators/query config, so every original entry must be kept
118
+ // unless Mercur registers the same matcher + method itself.
119
+ function withOriginalMiddlewares(file, overrides) {
120
+ const original = (exports.ORIGINAL_MIDDLEWARES[file] ?? []);
121
+ return [
122
+ ...original.filter((route) => !overrides.some((override) => collides(route, override))),
123
+ ...overrides,
124
+ ];
125
+ }
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzYWJsZS1tZWR1c2EtbWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdXRpbHMvZGlzYWJsZS1tZWR1c2EtbWlkZGxld2FyZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBNkVBLDREQXlCQztBQWtCRCwwREFXQztBQW5JRCwyQkFBNEM7QUFDNUMsK0JBQW9DO0FBQ3BDLDhEQUFvQztBQUNwQyxzREFBNEI7QUFHNUIsNEVBQTRFO0FBQzVFLDRFQUE0RTtBQUM1RSx5RUFBeUU7QUFDekUsNkdBQTZHO0FBQzdHLDJFQUEyRTtBQUMzRSwwQkFBMEI7QUFDMUIsRUFBRTtBQUNGLDRFQUE0RTtBQUM1RSwyRUFBMkU7QUFDM0UsNkVBQTZFO0FBQzdFLHdFQUF3RTtBQUN4RSx3Q0FBd0M7QUFDeEMsRUFBRTtBQUNGLG9FQUFvRTtBQUNwRSx3RUFBd0U7QUFDeEUsMEVBQTBFO0FBQzFFLGdCQUFnQjtBQUVoQixNQUFNLFNBQVMsR0FBYTtJQUMxQix3Q0FBd0M7SUFDeEMsMENBQTBDO0lBQzFDLHlDQUF5QztJQUN6QywyQ0FBMkM7SUFDM0Msa0RBQWtEO0lBQ2xELDJDQUEyQztJQUMzQywrQ0FBK0M7SUFDL0Msc0NBQXNDO0lBQ3RDLGdEQUFnRDtJQUNoRCxpREFBaUQ7SUFDakQsK0NBQStDO0lBQy9DLDRDQUE0QztJQUM1QywrQ0FBK0M7SUFDL0Msd0NBQXdDO0lBQ3hDLGtEQUFrRDtJQUNsRCxxQ0FBcUM7Q0FDdEMsQ0FBQTtBQUVZLFFBQUEsb0JBQW9CLEdBQThCLEVBQUUsQ0FBQTtBQUVqRSxTQUFTLGNBQWM7SUFDckIsTUFBTSxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQTtJQUU5QixNQUFNLEtBQUssR0FBRyxJQUFBLHFCQUFVLEVBQUMsa0JBQWtCLENBQUMsQ0FBQTtJQUM1QyxNQUFNLE9BQU8sR0FBRyxpQkFBTSxDQUFDLElBQUksQ0FBQyxJQUFBLGNBQU8sRUFBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO0lBQzNDLElBQUksT0FBTztRQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUE7SUFFOUIsNEVBQTRFO0lBQzVFLElBQUksTUFBTSxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQTtJQUMxQixPQUFPLElBQUksRUFBRSxDQUFDO1FBQ1osTUFBTSxNQUFNLEdBQUcsSUFBQSxXQUFJLEVBQUMsTUFBTSxFQUFFLGNBQWMsRUFBRSxNQUFNLENBQUMsQ0FBQTtRQUNuRCxJQUFJLElBQUEsZUFBVSxFQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDdkIsS0FBSyxNQUFNLEtBQUssSUFBSSxJQUFBLGdCQUFXLEVBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztnQkFDeEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUM7b0JBQUUsU0FBUTtnQkFDcEQsTUFBTSxLQUFLLEdBQUcsSUFBQSxXQUFJLEVBQ2hCLE1BQU0sRUFDTixLQUFLLEVBQ0wsY0FBYyxFQUNkLFdBQVcsRUFDWCxRQUFRLENBQ1QsQ0FBQTtnQkFDRCxJQUFJLElBQUEsZUFBVSxFQUFDLElBQUEsV0FBSSxFQUFDLEtBQUssRUFBRSxjQUFjLENBQUMsQ0FBQztvQkFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQzlELENBQUM7UUFDSCxDQUFDO1FBQ0QsTUFBTSxNQUFNLEdBQUcsSUFBQSxjQUFPLEVBQUMsTUFBTSxDQUFDLENBQUE7UUFDOUIsSUFBSSxNQUFNLEtBQUssTUFBTTtZQUFFLE1BQUs7UUFDNUIsTUFBTSxHQUFHLE1BQU0sQ0FBQTtJQUNqQixDQUFDO0lBRUQsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUE7QUFDbEIsQ0FBQztBQUVELFNBQWdCLHdCQUF3QjtJQUN0QyxLQUFLLE1BQU0sU0FBUyxJQUFJLGNBQWMsRUFBRSxFQUFFLENBQUM7UUFDekMsS0FBSyxNQUFNLElBQUksSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUM3QixNQUFNLFFBQVEsR0FBRyxJQUFBLFdBQUksRUFBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUE7WUFDdEMsSUFBSSxDQUFDLElBQUEsZUFBVSxFQUFDLFFBQVEsQ0FBQztnQkFBRSxTQUFRO1lBRW5DLElBQUksR0FBNEIsQ0FBQTtZQUNoQyxJQUFJLENBQUM7Z0JBQ0gsR0FBRyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQTtZQUN6QixDQUFDO1lBQUMsTUFBTSxDQUFDO2dCQUNQLFNBQVE7WUFDVixDQUFDO1lBRUQsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ25DLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQTtnQkFDdEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO29CQUFFLFNBQVE7Z0JBQ25DLHFFQUFxRTtnQkFDckUsa0VBQWtFO2dCQUNsRSxJQUFJLENBQUMsNEJBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNoRCw0QkFBb0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUE7Z0JBQ3pDLENBQUM7Z0JBQ0QsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUE7WUFDbEIsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sU0FBUyxHQUFHLENBQUMsS0FBc0IsRUFBd0IsRUFBRTtJQUNqRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU07UUFBRSxPQUFPLFNBQVMsQ0FBQTtJQUNuQyxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQTtBQUNwRSxDQUFDLENBQUE7QUFFRCxNQUFNLFFBQVEsR0FBRyxDQUFDLFFBQXlCLEVBQUUsUUFBeUIsRUFBRSxFQUFFO0lBQ3hFLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztRQUFFLE9BQU8sS0FBSyxDQUFBO0lBQ3ZFLE1BQU0sQ0FBQyxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUM3QixNQUFNLENBQUMsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDN0IsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7UUFBRSxPQUFPLElBQUksQ0FBQTtJQUN6QixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQTtBQUMvQyxDQUFDLENBQUE7QUFFRCw2RUFBNkU7QUFDN0UseUVBQXlFO0FBQ3pFLDREQUE0RDtBQUM1RCxTQUFnQix1QkFBdUIsQ0FDckMsSUFBWSxFQUNaLFNBQTRCO0lBRTVCLE1BQU0sUUFBUSxHQUFHLENBQUMsNEJBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFzQixDQUFBO0lBQ3hFLE9BQU87UUFDTCxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQ2hCLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FDcEU7UUFDRCxHQUFHLFNBQVM7S0FDYixDQUFBO0FBQ0gsQ0FBQyJ9
@@ -8,10 +8,17 @@ export declare const refreshOrderCommissionLinesWorkflowId = "refresh-order-comm
8
8
  * `setCommissionContext` receives the contexts built from the orders. A
9
9
  * handler returns `new StepResponse(contexts)` with `additional_context`
10
10
  * filled in, or nothing to leave the contexts as they are.
11
+ *
12
+ * `commissionLinesUpserted` runs after the lines are written, inside the same
13
+ * transaction, so a consumer's failure rolls the refresh back.
11
14
  */
12
15
  export type RefreshOrderCommissionLinesWorkflowHooks = [
13
16
  Hook<"setCommissionContext", {
14
17
  contexts: CommissionCalculationContext[];
15
- }, CommissionCalculationContext[] | void>
18
+ }, CommissionCalculationContext[] | void>,
19
+ Hook<"commissionLinesUpserted", {
20
+ order_ids: string[];
21
+ commission_lines: CommissionLineDTO[];
22
+ }, unknown>
16
23
  ];
17
24
  export declare const refreshOrderCommissionLinesWorkflow: ReturnWorkflow<RefreshOrderCommissionLinesWorkflowInput, CommissionLineDTO[], RefreshOrderCommissionLinesWorkflowHooks>;
@@ -89,8 +89,12 @@ exports.refreshOrderCommissionLinesWorkflow = (0, workflows_sdk_1.createWorkflow
89
89
  const upsertedCommissionLines = (0, steps_1.upsertCommissionLinesStep)({
90
90
  commission_lines: commissionLines,
91
91
  });
92
+ const commissionLinesUpserted = (0, workflows_sdk_1.createHook)("commissionLinesUpserted", {
93
+ order_ids: input.order_ids,
94
+ commission_lines: upsertedCommissionLines,
95
+ });
92
96
  return new workflows_sdk_1.WorkflowResponse(upsertedCommissionLines, {
93
- hooks: [setCommissionContext],
97
+ hooks: [setCommissionContext, commissionLinesUpserted],
94
98
  });
95
99
  });
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmcmVzaC1vcmRlci1jb21taXNzaW9uLWxpbmVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9jb21taXNzaW9uL3dvcmtmbG93cy9yZWZyZXNoLW9yZGVyLWNvbW1pc3Npb24tbGluZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBUTBDO0FBQzFDLDREQUErRDtBQU0vRCxvQ0FBNEU7QUFFNUUsTUFBTSxXQUFXLEdBQUc7SUFDbEIsSUFBSTtJQUNKLFFBQVE7SUFDUixTQUFTO0lBQ1QsZUFBZTtJQUNmLE9BQU87SUFDUCxhQUFhO0lBQ2Isa0JBQWtCO0lBQ2xCLFdBQVc7SUFDWCxhQUFhO0lBQ2IsWUFBWTtJQUNaLG1CQUFtQjtJQUNuQixjQUFjO0lBQ2QsVUFBVTtJQUNWLFNBQVM7SUFDVCxnQkFBZ0I7SUFDaEIsaUJBQWlCO0lBQ2pCLGFBQWE7SUFDYixrQkFBa0I7SUFDbEIsNkJBQTZCO0lBQzdCLDZCQUE2QjtJQUM3Qix1QkFBdUI7SUFDdkIsdUJBQXVCO0lBQ3ZCLG1DQUFtQztJQUNuQyx1QkFBdUI7SUFDdkIscUJBQXFCO0lBQ3JCLG9CQUFvQjtJQUNwQix3QkFBd0I7SUFDeEIsMkJBQTJCO0lBQzNCLDRCQUE0QjtJQUM1QixnQ0FBZ0M7SUFDaEMscUNBQXFDO0lBQ3JDLG9CQUFvQjtDQUNyQixDQUFBO0FBTVksUUFBQSxxQ0FBcUMsR0FBRyxnQ0FBZ0MsQ0FBQTtBQWV4RSxRQUFBLG1DQUFtQyxHQUk1QyxJQUFBLDhCQUFjLEVBQ2hCLDZDQUFxQyxFQUNyQyxVQUNFLEtBQTZEO0lBRTdELE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBQSw4QkFBaUIsRUFBQztRQUN6QyxNQUFNLEVBQUUsT0FBTztRQUNmLE1BQU0sRUFBRSxXQUFXO1FBQ25CLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsU0FBUyxFQUFFO1FBQ2hD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
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmcmVzaC1vcmRlci1jb21taXNzaW9uLWxpbmVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9jb21taXNzaW9uL3dvcmtmbG93cy9yZWZyZXNoLW9yZGVyLWNvbW1pc3Npb24tbGluZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBUTBDO0FBQzFDLDREQUErRDtBQU0vRCxvQ0FBNEU7QUFFNUUsTUFBTSxXQUFXLEdBQUc7SUFDbEIsSUFBSTtJQUNKLFFBQVE7SUFDUixTQUFTO0lBQ1QsZUFBZTtJQUNmLE9BQU87SUFDUCxhQUFhO0lBQ2Isa0JBQWtCO0lBQ2xCLFdBQVc7SUFDWCxhQUFhO0lBQ2IsWUFBWTtJQUNaLG1CQUFtQjtJQUNuQixjQUFjO0lBQ2QsVUFBVTtJQUNWLFNBQVM7SUFDVCxnQkFBZ0I7SUFDaEIsaUJBQWlCO0lBQ2pCLGFBQWE7SUFDYixrQkFBa0I7SUFDbEIsNkJBQTZCO0lBQzdCLDZCQUE2QjtJQUM3Qix1QkFBdUI7SUFDdkIsdUJBQXVCO0lBQ3ZCLG1DQUFtQztJQUNuQyx1QkFBdUI7SUFDdkIscUJBQXFCO0lBQ3JCLG9CQUFvQjtJQUNwQix3QkFBd0I7SUFDeEIsMkJBQTJCO0lBQzNCLDRCQUE0QjtJQUM1QixnQ0FBZ0M7SUFDaEMscUNBQXFDO0lBQ3JDLG9CQUFvQjtDQUNyQixDQUFBO0FBTVksUUFBQSxxQ0FBcUMsR0FBRyxnQ0FBZ0MsQ0FBQTtBQXVCeEUsUUFBQSxtQ0FBbUMsR0FJNUMsSUFBQSw4QkFBYyxFQUNoQiw2Q0FBcUMsRUFDckMsVUFDRSxLQUE2RDtJQUU3RCxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUEsOEJBQWlCLEVBQUM7UUFDekMsTUFBTSxFQUFFLE9BQU87UUFDZixNQUFNLEVBQUUsV0FBVztRQUNuQixPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLFNBQVMsRUFBRTtRQUNo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
@@ -1,4 +1,5 @@
1
1
  export * from "./create-offers";
2
2
  export * from "./update-offers";
3
+ export * from "./upsert-offer-prices";
3
4
  export * from "./delete-offers";
4
5
  export * from "./batch-offer-inventory-items";
@@ -16,6 +16,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./create-offers"), exports);
18
18
  __exportStar(require("./update-offers"), exports);
19
+ __exportStar(require("./upsert-offer-prices"), exports);
19
20
  __exportStar(require("./delete-offers"), exports);
20
21
  __exportStar(require("./batch-offer-inventory-items"), exports);
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL29mZmVyL3dvcmtmbG93cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsa0RBQStCO0FBQy9CLGtEQUErQjtBQUMvQixrREFBK0I7QUFDL0IsZ0VBQTZDIn0=
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL29mZmVyL3dvcmtmbG93cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsa0RBQStCO0FBQy9CLGtEQUErQjtBQUMvQix3REFBcUM7QUFDckMsa0RBQStCO0FBQy9CLGdFQUE2QyJ9
@@ -3,10 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.updateOffersWorkflow = exports.updateOffersWorkflowId = void 0;
4
4
  const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
5
  const core_flows_1 = require("@medusajs/medusa/core-flows");
6
- const utils_1 = require("@medusajs/framework/utils");
7
- const types_1 = require("@mercurjs/types");
8
6
  const steps_1 = require("../steps");
9
- const utils_2 = require("../utils");
7
+ const upsert_offer_prices_1 = require("./upsert-offer-prices");
10
8
  const events_1 = require("../../events");
11
9
  exports.updateOffersWorkflowId = "update-offers";
12
10
  exports.updateOffersWorkflow = (0, workflows_sdk_1.createWorkflow)(exports.updateOffersWorkflowId, function (input) {
@@ -21,140 +19,13 @@ exports.updateOffersWorkflow = (0, workflows_sdk_1.createWorkflow)(exports.updat
21
19
  metadata: o.metadata,
22
20
  })));
23
21
  const offers = (0, steps_1.updateOffersStep)(rowUpdates);
24
- const offersWithPriceUpdates = (0, workflows_sdk_1.transform)({ input }, ({ input }) => input.offers
25
- .filter((o) => Array.isArray(o.prices))
26
- .map((o) => o.id));
27
- const { data: offerRows } = (0, core_flows_1.useQueryGraphStep)({
28
- entity: "offer",
29
- fields: [
30
- "id",
31
- "variant_id",
32
- "product_variant.price_set.id",
33
- "prices.id",
34
- "prices.amount",
35
- "prices.currency_code",
36
- "prices.min_quantity",
37
- "prices.max_quantity",
38
- "prices.price_rules.attribute",
39
- "prices.price_rules.value",
40
- ],
41
- filters: { id: offersWithPriceUpdates },
42
- }).config({ name: "get-offer-prices" });
43
- const pricingDiff = (0, workflows_sdk_1.transform)({ input, offerRows }, ({ input, offerRows }) => {
44
- const offerById = new Map(offerRows.map((o) => [o.id, o]));
45
- const priceSetUpserts = [];
46
- const toRemoveIds = [];
47
- const newPriceOwners = [];
48
- const removedLinks = [];
49
- for (const offer of input.offers) {
50
- if (!Array.isArray(offer.prices)) {
51
- continue;
52
- }
53
- const loaded = offerById.get(offer.id);
54
- if (!loaded) {
55
- throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, `Offer ${offer.id} was not found`);
56
- }
57
- const priceSetId = loaded.product_variant?.price_set?.id;
58
- if (!priceSetId) {
59
- throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, `Variant ${loaded.variant_id} has no PriceSet`);
60
- }
61
- // `prices` comes through the offer <-> price link, so a link row
62
- // whose price no longer resolves yields a null element. Such a
63
- // dangling link takes no part in the diff.
64
- const ownedIds = new Set((loaded.prices ?? [])
65
- .filter((p) => !!p?.id)
66
- .map((p) => p.id));
67
- const incomingIds = offer.prices
68
- .map((p) => p.id)
69
- .filter((id) => !!id);
70
- (0, utils_2.assertOfferPriceOwnership)({
71
- offer_id: offer.id,
72
- price_ids: incomingIds,
73
- owned_price_ids: ownedIds,
74
- });
75
- const keepIds = new Set(incomingIds);
76
- for (const ownedId of ownedIds) {
77
- if (!keepIds.has(ownedId)) {
78
- toRemoveIds.push(ownedId);
79
- removedLinks.push({
80
- [types_1.MercurModules.OFFER]: { offer_id: offer.id },
81
- [utils_1.Modules.PRICING]: { price_id: ownedId },
82
- });
83
- }
84
- }
85
- const upsertPrices = offer.prices.map((p) => {
86
- const base = {
87
- amount: p.amount,
88
- currency_code: p.currency_code,
89
- rules: { ...(p.rules ?? {}), offer_id: offer.id },
90
- };
91
- if (p.id) {
92
- base.id = p.id;
93
- }
94
- if (p.min_quantity !== undefined && p.min_quantity !== null) {
95
- base.min_quantity = p.min_quantity;
96
- }
97
- if (p.max_quantity !== undefined && p.max_quantity !== null) {
98
- base.max_quantity = p.max_quantity;
99
- }
100
- return base;
101
- });
102
- const newRowCount = offer.prices.filter((p) => !p.id).length;
103
- priceSetUpserts.push({
104
- id: priceSetId,
105
- prices: upsertPrices,
106
- });
107
- if (newRowCount > 0) {
108
- newPriceOwners.push({
109
- offer_id: offer.id,
110
- priceSetId,
111
- newRowCount,
112
- });
113
- }
114
- }
115
- return {
116
- price_sets: priceSetUpserts,
117
- toRemoveIds,
118
- newPriceOwners,
119
- removedLinks,
120
- };
121
- });
122
- const priceSetsPayload = (0, workflows_sdk_1.transform)({ pricingDiff }, ({ pricingDiff }) => ({ price_sets: pricingDiff.price_sets }));
123
- const upsertedPriceSets = (0, core_flows_1.updatePriceSetsStep)(priceSetsPayload);
124
- const toRemoveIds = (0, workflows_sdk_1.transform)({ pricingDiff }, ({ pricingDiff }) => pricingDiff.toRemoveIds);
125
- const removedLinks = (0, workflows_sdk_1.transform)({ pricingDiff }, ({ pricingDiff }) => pricingDiff.removedLinks);
126
- // Dismiss the links before deleting the prices: a failure between the two
127
- // then leaves an orphaned price rather than a dangling link, which would
128
- // make the offer permanently unupdatable.
129
- (0, core_flows_1.dismissRemoteLinkStep)(removedLinks).config({
130
- name: "dismiss-removed-offer-price-links",
131
- });
132
- (0, steps_1.removeOfferPricesStep)(toRemoveIds);
133
- const newLinks = (0, workflows_sdk_1.transform)({ pricingDiff, upsertedPriceSets }, ({ pricingDiff, upsertedPriceSets }) => {
134
- if (!pricingDiff.newPriceOwners.length) {
135
- return [];
136
- }
137
- const priceSetById = new Map((upsertedPriceSets ?? []).map((ps) => [ps.id, ps]));
138
- const links = [];
139
- for (const owner of pricingDiff.newPriceOwners) {
140
- const set = priceSetById.get(owner.priceSetId);
141
- if (!set)
142
- continue;
143
- const matchingPrices = (set.prices ?? []).filter((price) => {
144
- const rules = price.price_rules ?? [];
145
- return rules.some((r) => r.attribute === "offer_id" && r.value === owner.offer_id);
146
- });
147
- for (const price of matchingPrices) {
148
- links.push({
149
- [types_1.MercurModules.OFFER]: { offer_id: owner.offer_id },
150
- [utils_1.Modules.PRICING]: { price_id: price.id },
151
- });
152
- }
153
- }
154
- return links;
155
- });
156
- (0, core_flows_1.createRemoteLinkStep)(newLinks).config({
157
- name: "create-new-offer-price-links",
22
+ const offerPrices = (0, workflows_sdk_1.transform)({ input }, ({ input }) => ({
23
+ offers: input.offers
24
+ .filter((o) => Array.isArray(o.prices))
25
+ .map((o) => ({ id: o.id, prices: o.prices ?? [] })),
26
+ }));
27
+ (0, workflows_sdk_1.when)({ offerPrices }, ({ offerPrices }) => offerPrices.offers.length > 0).then(() => {
28
+ upsert_offer_prices_1.upsertOfferPricesWorkflow.runAsStep({ input: offerPrices });
158
29
  });
159
30
  const eventData = (0, workflows_sdk_1.transform)({ offers }, ({ offers }) => offers.map((o) => ({ id: o.id, product_id: o.product_id })));
160
31
  (0, core_flows_1.emitEventStep)({
@@ -169,4 +40,4 @@ exports.updateOffersWorkflow = (0, workflows_sdk_1.createWorkflow)(exports.updat
169
40
  hooks: [validate, offersUpdated],
170
41
  });
171
42
  });
172
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLW9mZmVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3Mvb2ZmZXIvd29ya2Zsb3dzL3VwZGF0ZS1vZmZlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBTzBDO0FBTTFDLDREQU1vQztBQUNwQyxxREFBZ0U7QUFDaEUsMkNBQXlFO0FBRXpFLG9DQUFrRTtBQUNsRSxvQ0FBb0Q7QUFDcEQseUNBQWtEO0FBa0JyQyxRQUFBLHNCQUFzQixHQUFHLGVBQWUsQ0FBQTtBQUV4QyxRQUFBLG9CQUFvQixHQUk3QixJQUFBLDhCQUFjLEVBQ2hCLDhCQUFzQixFQUN0QixVQUFVLEtBQWdDO0lBQ3hDLE1BQU0sUUFBUSxHQUFHLElBQUEsMEJBQVUsRUFBQyxVQUFVLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFBO0lBRWxELE1BQU0sVUFBVSxHQUFHLElBQUEseUJBQVMsRUFBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FDakQsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUU7UUFDUixHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUc7UUFDVixtQkFBbUIsRUFBRSxDQUFDLENBQUMsbUJBQW1CO1FBQzFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxnQkFBZ0I7UUFDcEMsZUFBZSxFQUFFLENBQUMsQ0FBQyxlQUFlO1FBQ2xDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxnQkFBZ0I7UUFDcEMsUUFBUSxFQUFFLENBQUMsQ0FBQyxRQUFRO0tBQ3JCLENBQUMsQ0FBQyxDQUNKLENBQUE7SUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFBLHdCQUFnQixFQUFDLFVBQVUsQ0FBQyxDQUFBO0lBRTNDLE1BQU0sc0JBQXNCLEdBQUcsSUFBQSx5QkFBUyxFQUFDLEVB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
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLW9mZmVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3Mvb2ZmZXIvd29ya2Zsb3dzL3VwZGF0ZS1vZmZlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBUTBDO0FBRTFDLDREQUEyRDtBQUczRCxvQ0FBMkM7QUFDM0MsK0RBQWlFO0FBQ2pFLHlDQUFrRDtBQWtCckMsUUFBQSxzQkFBc0IsR0FBRyxlQUFlLENBQUE7QUFFeEMsUUFBQSxvQkFBb0IsR0FJN0IsSUFBQSw4QkFBYyxFQUNoQiw4QkFBc0IsRUFDdEIsVUFBVSxLQUFnQztJQUN4QyxNQUFNLFFBQVEsR0FBRyxJQUFBLDBCQUFVLEVBQUMsVUFBVSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQTtJQUVsRCxNQUFNLFVBQVUsR0FBRyxJQUFBLHlCQUFTLEVBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQ2pELE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakIsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFO1FBQ1IsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHO1FBQ1YsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDLG1CQUFtQjtRQUMxQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsZ0JBQWdCO1FBQ3BDLGVBQWUsRUFBRSxDQUFDLENBQUMsZUFBZTtRQUNsQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsZ0JBQWdCO1FBQ3BDLFFBQVEsRUFBRSxDQUFDLENBQUMsUUFBUTtLQUNyQixDQUFDLENBQUMsQ0FDSixDQUFBO0lBRUQsTUFBTSxNQUFNLEdBQUcsSUFBQSx3QkFBZ0IsRUFBQyxVQUFVLENBQUMsQ0FBQTtJQUUzQyxNQUFNLFdBQVcsR0FBRyxJQUFBLHlCQUFTLEVBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdkQsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO2FBQ2pCLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDdEMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztLQUN0RCxDQUFDLENBQUMsQ0FBQTtJQUVILElBQUEsb0JBQUksRUFBQyxFQUFFLFdBQVcsRUFBRSxFQUFFLENBQUMsRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUM1RSxHQUFHLEVBQUU7UUFDSCwrQ0FBeUIsQ0FBQyxTQUFTLENBQUMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQTtJQUM3RCxDQUFDLENBQ0YsQ0FBQTtJQUVELE1BQU0sU0FBUyxHQUFHLElBQUEseUJBQVMsRUFBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQ3JELE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FDNUQsQ0FBQTtJQUVELElBQUEsMEJBQWEsRUFBQztRQUNaLFNBQVMsRUFBRSw0QkFBbUIsQ0FBQyxPQUFPO1FBQ3RDLElBQUksRUFBRSxTQUFTO0tBQ2hCLENBQUMsQ0FBQTtJQUVGLE1BQU0sYUFBYSxHQUFHLElBQUEsMEJBQVUsRUFBQyxlQUFlLEVBQUU7UUFDaEQsTUFBTTtRQUNOLGVBQWUsRUFBRSxLQUFLLENBQUMsZUFBZTtLQUN2QyxDQUFDLENBQUE7SUFFRixPQUFPLElBQUksZ0NBQWdCLENBQUMsTUFBTSxFQUFFO1FBQ2xDLEtBQUssRUFBRSxDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUM7S0FDakMsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUNGLENBQUEifQ==
@@ -0,0 +1,14 @@
1
+ import { UpsertOfferPriceDTO } from "@mercurjs/types";
2
+ export type UpsertOfferPricesWorkflowInput = {
3
+ offers: {
4
+ id: string;
5
+ prices: UpsertOfferPriceDTO[];
6
+ }[];
7
+ };
8
+ export declare const upsertOfferPricesWorkflowId = "upsert-offer-prices";
9
+ /**
10
+ * Replaces each offer's own prices. Offers on the same variant share its
11
+ * PriceSet, so prices are upserted by id instead of rewriting the set, which
12
+ * would drop the prices of every other offer on the variant.
13
+ */
14
+ export declare const upsertOfferPricesWorkflow: import("@medusajs/framework/workflows-sdk").ReturnWorkflow<UpsertOfferPricesWorkflowInput, import("../steps").AddOfferPricesStepOutput, []>;
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.upsertOfferPricesWorkflow = exports.upsertOfferPricesWorkflowId = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const core_flows_1 = require("@medusajs/medusa/core-flows");
6
+ const utils_1 = require("@medusajs/framework/utils");
7
+ const types_1 = require("@mercurjs/types");
8
+ const steps_1 = require("../steps");
9
+ const utils_2 = require("../utils");
10
+ exports.upsertOfferPricesWorkflowId = "upsert-offer-prices";
11
+ /**
12
+ * Replaces each offer's own prices. Offers on the same variant share its
13
+ * PriceSet, so prices are upserted by id instead of rewriting the set, which
14
+ * would drop the prices of every other offer on the variant.
15
+ */
16
+ exports.upsertOfferPricesWorkflow = (0, workflows_sdk_1.createWorkflow)(exports.upsertOfferPricesWorkflowId, function (input) {
17
+ const offerIds = (0, workflows_sdk_1.transform)({ input }, ({ input }) => input.offers.map((o) => o.id));
18
+ const { data: offerRows } = (0, core_flows_1.useQueryGraphStep)({
19
+ entity: "offer",
20
+ fields: [
21
+ "id",
22
+ "variant_id",
23
+ "product_variant.price_set.id",
24
+ "prices.id",
25
+ "prices.amount",
26
+ "prices.currency_code",
27
+ "prices.min_quantity",
28
+ "prices.max_quantity",
29
+ "prices.price_rules.attribute",
30
+ "prices.price_rules.value",
31
+ ],
32
+ filters: { id: offerIds },
33
+ }).config({ name: "get-offer-prices" });
34
+ const pricingDiff = (0, workflows_sdk_1.transform)({ input, offerRows }, ({ input, offerRows }) => {
35
+ const offerById = new Map(offerRows.map((o) => [o.id, o]));
36
+ const addPricesPayload = [];
37
+ const toRemoveIds = [];
38
+ const removedLinks = [];
39
+ for (const offer of input.offers) {
40
+ const loaded = offerById.get(offer.id);
41
+ if (!loaded) {
42
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, `Offer ${offer.id} was not found`);
43
+ }
44
+ const priceSetId = loaded.product_variant?.price_set?.id;
45
+ if (!priceSetId) {
46
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, `Variant ${loaded.variant_id} has no PriceSet`);
47
+ }
48
+ // `prices` comes through the offer <-> price link, so a link row
49
+ // whose price no longer resolves yields a null element. Such a
50
+ // dangling link takes no part in the diff.
51
+ const ownedIds = new Set((loaded.prices ?? [])
52
+ .filter((p) => !!p?.id)
53
+ .map((p) => p.id));
54
+ const incomingIds = offer.prices
55
+ .map((p) => p.id)
56
+ .filter((id) => !!id);
57
+ (0, utils_2.assertOfferPriceOwnership)({
58
+ offer_id: offer.id,
59
+ price_ids: incomingIds,
60
+ owned_price_ids: ownedIds,
61
+ });
62
+ const keepIds = new Set(incomingIds);
63
+ for (const ownedId of ownedIds) {
64
+ if (!keepIds.has(ownedId)) {
65
+ toRemoveIds.push(ownedId);
66
+ removedLinks.push({
67
+ [types_1.MercurModules.OFFER]: { offer_id: offer.id },
68
+ [utils_1.Modules.PRICING]: { price_id: ownedId },
69
+ });
70
+ }
71
+ }
72
+ const upsertPrices = offer.prices.map((p) => {
73
+ const base = {
74
+ amount: p.amount,
75
+ currency_code: p.currency_code,
76
+ rules: { ...(p.rules ?? {}), offer_id: offer.id },
77
+ };
78
+ if (p.id) {
79
+ base.id = p.id;
80
+ }
81
+ if (p.min_quantity !== undefined && p.min_quantity !== null) {
82
+ base.min_quantity = p.min_quantity;
83
+ }
84
+ if (p.max_quantity !== undefined && p.max_quantity !== null) {
85
+ base.max_quantity = p.max_quantity;
86
+ }
87
+ return base;
88
+ });
89
+ if (upsertPrices.length) {
90
+ addPricesPayload.push({
91
+ priceSetId,
92
+ prices: upsertPrices,
93
+ });
94
+ }
95
+ }
96
+ return {
97
+ addPricesPayload,
98
+ toRemoveIds,
99
+ removedLinks,
100
+ };
101
+ });
102
+ const toRemoveIds = (0, workflows_sdk_1.transform)({ pricingDiff }, ({ pricingDiff }) => pricingDiff.toRemoveIds);
103
+ const removedLinks = (0, workflows_sdk_1.transform)({ pricingDiff }, ({ pricingDiff }) => pricingDiff.removedLinks);
104
+ // Dismiss the links before deleting the prices: a failure between the two
105
+ // then leaves an orphaned price rather than a dangling link, which would
106
+ // make the offer permanently unupdatable.
107
+ (0, core_flows_1.dismissRemoteLinkStep)(removedLinks).config({
108
+ name: "dismiss-removed-offer-price-links",
109
+ });
110
+ (0, steps_1.removeOfferPricesStep)(toRemoveIds);
111
+ const addPricesPayload = (0, workflows_sdk_1.transform)({ pricingDiff }, ({ pricingDiff }) => pricingDiff.addPricesPayload);
112
+ const addedPrices = (0, steps_1.addOfferPricesStep)(addPricesPayload);
113
+ const newLinks = (0, workflows_sdk_1.transform)({ addedPrices }, ({ addedPrices }) => {
114
+ const links = [];
115
+ for (const entry of addedPrices) {
116
+ for (const priceId of entry.price_ids) {
117
+ links.push({
118
+ [types_1.MercurModules.OFFER]: { offer_id: entry.offer_id },
119
+ [utils_1.Modules.PRICING]: { price_id: priceId },
120
+ });
121
+ }
122
+ }
123
+ return links;
124
+ });
125
+ (0, core_flows_1.createRemoteLinkStep)(newLinks).config({
126
+ name: "create-new-offer-price-links",
127
+ });
128
+ return new workflows_sdk_1.WorkflowResponse(addedPrices);
129
+ });
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBzZXJ0LW9mZmVyLXByaWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3Mvb2ZmZXIvd29ya2Zsb3dzL3Vwc2VydC1vZmZlci1wcmljZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBSzBDO0FBRTFDLDREQUlvQztBQUNwQyxxREFBZ0U7QUFDaEUsMkNBQW9FO0FBRXBFLG9DQUlpQjtBQUNqQixvQ0FBb0Q7QUFTdkMsUUFBQSwyQkFBMkIsR0FBRyxxQkFBcUIsQ0FBQTtBQUVoRTs7OztHQUlHO0FBQ1UsUUFBQSx5QkFBeUIsR0FBRyxJQUFBLDhCQUFjLEVBQ3JELG1DQUEyQixFQUMzQixVQUFVLEtBQW1EO0lBQzNELE1BQU0sUUFBUSxHQUFHLElBQUEseUJBQVMsRUFBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQ2xELEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQzlCLENBQUE7SUFFRCxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLElBQUEsOEJBQWlCLEVBQUM7UUFDNUMsTUFBTSxFQUFFLE9BQU87UUFDZixNQUFNLEVBQUU7WUFDTixJQUFJO1lBQ0osWUFBWTtZQUNaLDhCQUE4QjtZQUM5QixXQUFXO1lBQ1gsZUFBZTtZQUNmLHNCQUFzQjtZQUN0QixxQkFBcUI7WUFDckIscUJBQXFCO1lBQ3JCLDhCQUE4QjtZQUM5QiwwQkFBMEI7U0FDM0I7UUFDRCxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFO0tBQzFCLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxDQUFBO0lBRXZDLE1BQU0sV0FBVyxHQUFHLElBQUEseUJBQVMsRUFDM0IsRUFB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
@@ -1,7 +1,20 @@
1
- import { OrderPreviewDTO } from "@medusajs/framework/types";
1
+ import { BigNumberInput, OrderPreviewDTO } from "@medusajs/framework/types";
2
+ import { Hook } from "@medusajs/framework/workflows-sdk";
2
3
  export type ConfirmReceiveReturnRequestWorkflowInput = {
3
4
  return_id: string;
4
5
  confirmed_by?: string;
5
6
  };
6
7
  export declare const confirmReturnReceiveWorkflowId = "mercur-confirm-return-receive";
7
- export declare const confirmReturnReceiveWorkflow: import("@medusajs/framework/workflows-sdk").ReturnWorkflow<ConfirmReceiveReturnRequestWorkflowInput, OrderPreviewDTO, []>;
8
+ export type ConfirmReturnReceiveWorkflowHooks = [
9
+ Hook<"returnReceived", {
10
+ order_id: string;
11
+ return_id: string;
12
+ seller_id: string | null;
13
+ items: {
14
+ id: string;
15
+ received_quantity: BigNumberInput;
16
+ damaged_quantity: BigNumberInput;
17
+ }[];
18
+ }, unknown>
19
+ ];
20
+ export declare const confirmReturnReceiveWorkflow: import("@medusajs/framework/workflows-sdk").ReturnWorkflow<ConfirmReceiveReturnRequestWorkflowInput, OrderPreviewDTO, ConfirmReturnReceiveWorkflowHooks>;