order-management 0.0.21 → 0.0.22

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 (34) hide show
  1. package/.medusa/server/src/admin/index.js +49 -23
  2. package/.medusa/server/src/admin/index.mjs +49 -23
  3. package/.medusa/server/src/api/admin/swaps/[id]/approve/route.js +69 -31
  4. package/.medusa/server/src/api/admin/swaps/health/route.js +150 -0
  5. package/.medusa/server/src/api/admin/swaps/route.js +6 -12
  6. package/.medusa/server/src/api/admin/swaps/validators.js +9 -13
  7. package/.medusa/server/src/api/store/orders/[order_id]/swaps/route.js +47 -2
  8. package/.medusa/server/src/api/store/swaps/[id]/cancel/route.js +8 -1
  9. package/.medusa/server/src/api/store/swaps/[id]/route.js +15 -4
  10. package/.medusa/server/src/api/store/swaps/route.js +53 -10
  11. package/.medusa/server/src/helpers/swaps.js +1 -1
  12. package/.medusa/server/src/modules/swap/migrations/Migration20260123144734.js +29 -0
  13. package/.medusa/server/src/modules/swap/migrations/Migration20260123162423.js +48 -0
  14. package/.medusa/server/src/modules/swap/migrations/Migration20260126114640.js +48 -0
  15. package/.medusa/server/src/modules/swap/models/swap.js +7 -2
  16. package/.medusa/server/src/modules/swap/service.js +259 -32
  17. package/.medusa/server/src/subscribers/exchange-created.js +171 -0
  18. package/.medusa/server/src/workflows/steps/swap/create-medusa-exchange-step.js +153 -19
  19. package/.medusa/server/src/workflows/steps/swap/create-medusa-return-step.js +62 -6
  20. package/.medusa/server/src/workflows/steps/swap/create-swap-step.js +7 -12
  21. package/.medusa/server/src/workflows/steps/swap/index.js +6 -4
  22. package/.medusa/server/src/workflows/steps/swap/rollback-return-step.js +70 -0
  23. package/.medusa/server/src/workflows/steps/swap/sync-medusa-status-step.js +49 -3
  24. package/.medusa/server/src/workflows/steps/swap/update-swap-exchange-details-step.js +27 -0
  25. package/.medusa/server/src/workflows/steps/swap/validate-eligibility-step.js +9 -4
  26. package/.medusa/server/src/workflows/steps/swap/validate-order-step.js +24 -1
  27. package/.medusa/server/src/workflows/swaps/approve-swap-workflow.js +19 -3
  28. package/.medusa/server/src/workflows/swaps/create-swap-workflow.js +3 -1
  29. package/.medusa/server/src/workflows/swaps/execute-swap-workflow.js +26 -4
  30. package/package.json +1 -1
  31. package/.medusa/server/src/api/admin/swaps/[id]/process-payment/route.js +0 -152
  32. package/.medusa/server/src/api/admin/swaps/[id]/status/route.js +0 -45
  33. package/.medusa/server/src/api/admin/swaps/[id]/sync/route.js +0 -148
  34. package/.medusa/server/src/workflows/steps/swap/handle-payment-difference-step.js +0 -102
@@ -31,7 +31,11 @@ const GET = async (req, res) => {
31
31
  }
32
32
  try {
33
33
  const swapService = req.scope.resolve(index_js_1.SWAP_MODULE);
34
- const swaps = await swapService.listSwaps({ order_id }, {
34
+ // Always filter by authenticated customer_id for security
35
+ const swaps = await swapService.listSwaps({
36
+ order_id,
37
+ customer_id: customerId,
38
+ }, {
35
39
  take: 100,
36
40
  skip: 0,
37
41
  });
@@ -78,6 +82,10 @@ const POST = async (req, res) => {
78
82
  });
79
83
  // Validate request body
80
84
  const body = CreateSwapSchema.parse(requestBody);
85
+ // Ensure workflow is available
86
+ if (!create_swap_workflow_js_1.createSwapWorkflow) {
87
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.UNEXPECTED_STATE, "Swap workflow is not available. Please ensure the plugin is properly installed.");
88
+ }
81
89
  const { result } = await (0, create_swap_workflow_js_1.createSwapWorkflow)(req.scope).run({
82
90
  input: {
83
91
  order_id,
@@ -127,6 +135,43 @@ const POST = async (req, res) => {
127
135
  }
128
136
  const errorMessage = error instanceof Error ? error.message : "Unknown error";
129
137
  const errorStack = error instanceof Error ? error.stack : undefined;
138
+ // Check for workflow resolution errors
139
+ if (errorMessage.includes("Could not resolve") ||
140
+ errorMessage.includes("Workflow not available") ||
141
+ errorMessage.includes("orderModuleService") ||
142
+ errorMessage.includes("createSwapWorkflow")) {
143
+ console.error("Workflow or service resolution error:", {
144
+ order_id,
145
+ customer_id: customerId,
146
+ error: errorMessage,
147
+ stack: errorStack,
148
+ body: req.body,
149
+ note: "This might indicate a plugin configuration issue. Ensure the plugin is properly installed and workflows are exported correctly.",
150
+ });
151
+ res.status(500).json({
152
+ message: "Failed to initialize swap workflow",
153
+ error: errorMessage,
154
+ hint: "Please ensure the order-management plugin is properly installed and configured.",
155
+ });
156
+ return;
157
+ }
158
+ // Check for specific error about orderModuleService.list
159
+ if (errorMessage.includes("orderModuleService.list") || errorMessage.includes(".list is not a function")) {
160
+ console.error("Order service method error:", {
161
+ order_id,
162
+ customer_id: customerId,
163
+ error: errorMessage,
164
+ stack: errorStack,
165
+ body: req.body,
166
+ note: "Order service does not have a .list() method. Use remoteQuery or listOrders instead.",
167
+ });
168
+ res.status(500).json({
169
+ message: "Failed to verify order",
170
+ error: errorMessage,
171
+ hint: "Order service method error. Please check order verification implementation.",
172
+ });
173
+ return;
174
+ }
130
175
  console.error("Failed to create swap:", {
131
176
  order_id,
132
177
  customer_id: customerId,
@@ -141,4 +186,4 @@ const POST = async (req, res) => {
141
186
  }
142
187
  };
143
188
  exports.POST = POST;
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL29yZGVycy9bb3JkZXJfaWRdL3N3YXBzL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHFEQUF1RDtBQUN2RCxvR0FBMkY7QUFDM0YsbUVBQWtFO0FBRWxFLDZCQUF1QjtBQUV2QixNQUFNLGdCQUFnQixHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7SUFDaEMsWUFBWSxFQUFFLE9BQUMsQ0FBQyxLQUFLLENBQ25CLE9BQUMsQ0FBQyxNQUFNLENBQUM7UUFDUCxFQUFFLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRTtRQUNkLFFBQVEsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO1FBQy9CLE1BQU0sRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0tBQzlCLENBQUMsQ0FDSDtJQUNELFNBQVMsRUFBRSxPQUFDLENBQUMsS0FBSyxDQUNoQixPQUFDLENBQUMsTUFBTSxDQUFDO1FBQ1AsVUFBVSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUU7UUFDdEIsUUFBUSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7S0FDaEMsQ0FBQyxDQUNIO0lBQ0QsTUFBTSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDN0IsSUFBSSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDNUIsQ0FBQyxDQUFBO0FBRUssTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUN0QixHQUFrQixFQUNsQixHQUFtQixFQUNKLEVBQUU7SUFDakIsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUE7SUFFL0IsbUNBQW1DO0lBQ25DLE1BQU0sV0FBVyxHQUFJLEdBRW5CLENBQUMsWUFBWSxDQUFB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
189
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL29yZGVycy9bb3JkZXJfaWRdL3N3YXBzL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHFEQUF1RDtBQUN2RCxvR0FBMkY7QUFDM0YsbUVBQWtFO0FBRWxFLDZCQUF1QjtBQUV2QixNQUFNLGdCQUFnQixHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7SUFDaEMsWUFBWSxFQUFFLE9BQUMsQ0FBQyxLQUFLLENBQ25CLE9BQUMsQ0FBQyxNQUFNLENBQUM7UUFDUCxFQUFFLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRTtRQUNkLFFBQVEsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO1FBQy9CLE1BQU0sRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0tBQzlCLENBQUMsQ0FDSDtJQUNELFNBQVMsRUFBRSxPQUFDLENBQUMsS0FBSyxDQUNoQixPQUFDLENBQUMsTUFBTSxDQUFDO1FBQ1AsVUFBVSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUU7UUFDdEIsUUFBUSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7S0FDaEMsQ0FBQyxDQUNIO0lBQ0QsTUFBTSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDN0IsSUFBSSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDNUIsQ0FBQyxDQUFBO0FBRUssTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUN0QixHQUFrQixFQUNsQixHQUFtQixFQUNKLEVBQUU7SUFDakIsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUE7SUFFL0IsbUNBQW1DO0lBQ25DLE1BQU0sV0FBVyxHQUFJLEdBRW5CLENBQUMsWUFBWSxDQUFB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
@@ -20,6 +20,13 @@ const POST = async (req, res) => {
20
20
  // Check current status
21
21
  const swap = await swapService.retrieveSwap(id);
22
22
  const swapData = swap;
23
+ // Verify swap belongs to authenticated customer
24
+ if (!swapData.customer_id || swapData.customer_id !== customerId) {
25
+ res.status(403).json({
26
+ message: "Forbidden: You can only cancel your own swap requests",
27
+ });
28
+ return;
29
+ }
23
30
  // Only allow cancellation if not completed
24
31
  if (swapData.status === "completed") {
25
32
  res.status(400).json({
@@ -61,4 +68,4 @@ const POST = async (req, res) => {
61
68
  }
62
69
  };
63
70
  exports.POST = POST;
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3N3YXBzL1tpZF0vY2FuY2VsL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHFEQUF1RDtBQUN2RCxrSEFBd0c7QUFDeEcsbUVBQWtFO0FBRzNELE1BQU0sSUFBSSxHQUFHLEtBQUssRUFDdkIsR0FBa0IsRUFDbEIsR0FBbUIsRUFDSixFQUFFO0lBQ2pCLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFBO0lBRXpCLG1DQUFtQztJQUNuQyxNQUFNLFdBQVcsR0FBSSxHQUVuQixDQUFDLFlBQVksQ0FBQTtJQUVmLE1BQU0sVUFBVSxHQUFHLFdBQVcsRUFBRSxRQUFRLENBQUE7SUFFeEMsSUFBSSxDQUFDLFVBQVUsSUFBSSxXQUFXLEVBQUUsVUFBVSxLQUFLLFVBQVUsRUFBRSxDQUFDO1FBQzFELEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ25CLE9BQU8sRUFBRSxtREFBbUQ7U0FDN0QsQ0FBQyxDQUFBO1FBQ0YsT0FBTTtJQUNSLENBQUM7SUFFRCxJQUFJLENBQUM7UUFDSCxNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBYyxzQkFBVyxDQUFDLENBQUE7UUFFL0QsdUJBQXVCO1FBQ3ZCLE1BQU0sSUFBSSxHQUFHLE1BQU0sV0FBVyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUMvQyxNQUFNLFFBQVEsR0FBRyxJQUEwQixDQUFBO1FBRTNDLDJDQUEyQztRQUMzQyxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDcEMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBQ25CLE9BQU8sRUFBRSxnQ0FBZ0M7YUFDMUMsQ0FBQyxDQUFBO1lBQ0YsT0FBTTtRQUNSLENBQUM7UUFFRCw2QkFBNkI7UUFDN0IsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBQSx5REFBd0IsRUFBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQy9ELEtBQUssRUFBRTtnQkFDTCxPQUFPLEVBQUUsRUFBRTtnQkFDWCxNQUFNLEVBQUUsV0FBVztnQkFDbkIsUUFBUSxFQUFFO29CQUNSLFlBQVksRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRTtvQkFDdEMsWUFBWSxFQUFFLFVBQVU7aUJBQ3pCO2FBQ0Y7U0FDRixDQUFDLENBQUE7UUFFRixHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ2xCLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsSUFBSSxLQUFLLFlBQVksbUJBQVcsRUFBRSxDQUFDO1lBQ2pDLE1BQU0sVUFBVSxHQUNkLEtBQUssQ0FBQyxJQUFJLEtBQUssbUJBQVcsQ0FBQyxLQUFLLENBQUMsU0FBUztnQkFDeEMsQ0FBQyxDQUFDLEdBQUc7Z0JBQ0wsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssbUJBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWTtvQkFDL0MsQ0FBQyxDQUFDLEdBQUc7b0JBQ0wsQ0FBQyxDQUFDLEdBQUcsQ0FBQTtZQUVULEdBQUcsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUMxQixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87Z0JBQ3RCLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTthQUNqQixDQUFDLENBQUE7WUFDRixPQUFNO1FBQ1IsQ0FBQztRQUVELE1BQU0sWUFBWSxHQUFHLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQTtRQUM3RSxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNuQixPQUFPLEVBQUUsdUJBQXVCO1lBQ2hDLEtBQUssRUFBRSxZQUFZO1NBQ3BCLENBQUMsQ0FBQTtJQUNKLENBQUM7QUFDSCxDQUFDLENBQUE7QUF0RVksUUFBQSxJQUFJLFFBc0VoQiJ9
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3N3YXBzL1tpZF0vY2FuY2VsL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHFEQUF1RDtBQUN2RCxrSEFBd0c7QUFDeEcsbUVBQWtFO0FBRzNELE1BQU0sSUFBSSxHQUFHLEtBQUssRUFDdkIsR0FBa0IsRUFDbEIsR0FBbUIsRUFDSixFQUFFO0lBQ2pCLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFBO0lBRXpCLG1DQUFtQztJQUNuQyxNQUFNLFdBQVcsR0FBSSxHQUVuQixDQUFDLFlBQVksQ0FBQTtJQUVmLE1BQU0sVUFBVSxHQUFHLFdBQVcsRUFBRSxRQUFRLENBQUE7SUFFeEMsSUFBSSxDQUFDLFVBQVUsSUFBSSxXQUFXLEVBQUUsVUFBVSxLQUFLLFVBQVUsRUFBRSxDQUFDO1FBQzFELEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ25CLE9BQU8sRUFBRSxtREFBbUQ7U0FDN0QsQ0FBQyxDQUFBO1FBQ0YsT0FBTTtJQUNSLENBQUM7SUFFRCxJQUFJLENBQUM7UUFDSCxNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBYyxzQkFBVyxDQUFDLENBQUE7UUFFL0QsdUJBQXVCO1FBQ3ZCLE1BQU0sSUFBSSxHQUFHLE1BQU0sV0FBVyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUMvQyxNQUFNLFFBQVEsR0FBRyxJQUFnRCxDQUFBO1FBRWpFLGdEQUFnRDtRQUNoRCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsSUFBSSxRQUFRLENBQUMsV0FBVyxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQ2pFLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUNuQixPQUFPLEVBQUUsdURBQXVEO2FBQ2pFLENBQUMsQ0FBQTtZQUNGLE9BQU07UUFDUixDQUFDO1FBRUQsMkNBQTJDO1FBQzNDLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUNwQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDbkIsT0FBTyxFQUFFLGdDQUFnQzthQUMxQyxDQUFDLENBQUE7WUFDRixPQUFNO1FBQ1IsQ0FBQztRQUVELDZCQUE2QjtRQUM3QixNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFBLHlEQUF3QixFQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUM7WUFDL0QsS0FBSyxFQUFFO2dCQUNMLE9BQU8sRUFBRSxFQUFFO2dCQUNYLE1BQU0sRUFBRSxXQUFXO2dCQUNuQixRQUFRLEVBQUU7b0JBQ1IsWUFBWSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFO29CQUN0QyxZQUFZLEVBQUUsVUFBVTtpQkFDekI7YUFDRjtTQUNGLENBQUMsQ0FBQTtRQUVGLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDbEIsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixJQUFJLEtBQUssWUFBWSxtQkFBVyxFQUFFLENBQUM7WUFDakMsTUFBTSxVQUFVLEdBQ2QsS0FBSyxDQUFDLElBQUksS0FBSyxtQkFBVyxDQUFDLEtBQUssQ0FBQyxTQUFTO2dCQUN4QyxDQUFDLENBQUMsR0FBRztnQkFDTCxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZO29CQUMvQyxDQUFDLENBQUMsR0FBRztvQkFDTCxDQUFDLENBQUMsR0FBRyxDQUFBO1lBRVQsR0FBRyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBQzFCLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztnQkFDdEIsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO2FBQ2pCLENBQUMsQ0FBQTtZQUNGLE9BQU07UUFDUixDQUFDO1FBRUQsTUFBTSxZQUFZLEdBQUcsS0FBSyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFBO1FBQzdFLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ25CLE9BQU8sRUFBRSx1QkFBdUI7WUFDaEMsS0FBSyxFQUFFLFlBQVk7U0FDcEIsQ0FBQyxDQUFBO0lBQ0osQ0FBQztBQUNILENBQUMsQ0FBQTtBQTlFWSxRQUFBLElBQUksUUE4RWhCIn0=
@@ -22,9 +22,13 @@ const GET = async (req, res) => {
22
22
  const swapService = req.scope.resolve(swap_1.SWAP_MODULE);
23
23
  const swap = await swapService.retrieveSwap(id);
24
24
  const swapData = swap;
25
- // Verify swap belongs to customer's order
26
- // We'd need to check order ownership - for now, just return swap
27
- // In production, add proper ownership validation
25
+ // Verify swap belongs to authenticated customer
26
+ if (!swapData.customer_id || swapData.customer_id !== customerId) {
27
+ res.status(403).json({
28
+ message: "Forbidden: You can only access your own swap requests",
29
+ });
30
+ return;
31
+ }
28
32
  res.json({ swap });
29
33
  }
30
34
  catch (error) {
@@ -62,6 +66,13 @@ const PATCH = async (req, res) => {
62
66
  // Only allow updating note if swap is in "requested" status
63
67
  const swap = await swapService.retrieveSwap(id);
64
68
  const swapData = swap;
69
+ // Verify swap belongs to authenticated customer
70
+ if (!swapData.customer_id || swapData.customer_id !== customerId) {
71
+ res.status(403).json({
72
+ message: "Forbidden: You can only update your own swap requests",
73
+ });
74
+ return;
75
+ }
65
76
  if (swapData.status !== "requested") {
66
77
  res.status(400).json({
67
78
  message: `Cannot update swap. Current status: ${swapData.status}`,
@@ -109,4 +120,4 @@ const PATCH = async (req, res) => {
109
120
  }
110
121
  };
111
122
  exports.PATCH = PATCH;
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3N3YXBzL1tpZF0vcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EscURBQXVEO0FBQ3ZELG1EQUFzRDtBQUV0RCw2QkFBdUI7QUFFdkIsTUFBTSxnQkFBZ0IsR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO0lBQ2hDLElBQUksRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0NBQzVCLENBQUMsQ0FBQTtBQUVLLE1BQU0sR0FBRyxHQUFHLEtBQUssRUFDdEIsR0FBa0IsRUFDbEIsR0FBbUIsRUFDSixFQUFFO0lBQ2pCLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFBO0lBRXpCLG1DQUFtQztJQUNuQyxNQUFNLFdBQVcsR0FBSSxHQUVuQixDQUFDLFlBQVksQ0FBQTtJQUVmLE1BQU0sVUFBVSxHQUFHLFdBQVcsRUFBRSxRQUFRLENBQUE7SUFFeEMsSUFBSSxDQUFDLFVBQVUsSUFBSSxXQUFXLEVBQUUsVUFBVSxLQUFLLFVBQVUsRUFBRSxDQUFDO1FBQzFELEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ25CLE9BQU8sRUFBRSxtREFBbUQ7U0FDN0QsQ0FBQyxDQUFBO1FBQ0YsT0FBTTtJQUNSLENBQUM7SUFFRCxJQUFJLENBQUM7UUFDSCxNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBYyxrQkFBVyxDQUFDLENBQUE7UUFFL0QsTUFBTSxJQUFJLEdBQUcsTUFBTSxXQUFXLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQy9DLE1BQU0sUUFBUSxHQUFHLElBQTZCLENBQUE7UUFFOUMsMENBQTBDO1FBQzFDLGlFQUFpRTtRQUNqRSxpREFBaUQ7UUFFakQsR0FBRyxDQUFDLElBQUks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
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3N3YXBzL1tpZF0vcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EscURBQXVEO0FBQ3ZELG1EQUFzRDtBQUV0RCw2QkFBdUI7QUFFdkIsTUFBTSxnQkFBZ0IsR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO0lBQ2hDLElBQUksRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0NBQzVCLENBQUMsQ0FBQTtBQUVLLE1BQU0sR0FBRyxHQUFHLEtBQUssRUFDdEIsR0FBa0IsRUFDbEIsR0FBbUIsRUFDSixFQUFFO0lBQ2pCLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFBO0lBRXpCLG1DQUFtQztJQUNuQyxNQUFNLFdBQVcsR0FBSSxHQUVuQixDQUFDLFlBQVksQ0FBQTtJQUVmLE1BQU0sVUFBVSxHQUFHLFdBQVcsRUFBRSxRQUFRLENBQUE7SUFFeEMsSUFBSSxDQUFDLFVBQVUsSUFBSSxXQUFXLEVBQUUsVUFBVSxLQUFLLFVBQVUsRUFBRSxDQUFDO1FBQzFELEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ25CLE9BQU8sRUFBRSxtREFBbUQ7U0FDN0QsQ0FBQyxDQUFBO1FBQ0YsT0FBTTtJQUNSLENBQUM7SUFFRCxJQUFJLENBQUM7UUFDSCxNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBYyxrQkFBVyxDQUFDLENBQUE7UUFFL0QsTUFBTSxJQUFJLEdBQUcsTUFBTSxXQUFXLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQy9DLE1BQU0sUUFBUSxHQUFHLElBQWdDLENBQUE7UUFFakQsZ0RBQWdEO1FBQ2hELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxJQUFJLFFBQVEsQ0FBQyxX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
@@ -33,21 +33,25 @@ const GET = async (req, res) => {
33
33
  const swapService = req.scope.resolve(swap_1.SWAP_MODULE);
34
34
  // Get query parameters
35
35
  const orderId = req.query.order_id;
36
- const filters = {};
36
+ const limit = req.query.limit ? parseInt(req.query.limit, 10) : 100;
37
+ const offset = req.query.offset ? parseInt(req.query.offset, 10) : 0;
38
+ // Always filter by authenticated customer_id for security
39
+ const filters = {
40
+ customer_id: customerId,
41
+ };
37
42
  if (orderId) {
38
43
  filters.order_id = orderId;
39
44
  }
40
- // Note: We'd need to add a method to filter by customer_id
41
- // For now, we'll list all swaps and filter client-side
42
- // In production, you'd want to add a proper filter method
43
45
  const swaps = await swapService.listSwaps(filters, {
44
- take: 100,
45
- skip: 0,
46
+ take: limit,
47
+ skip: offset,
46
48
  });
47
- // Filter by customer orders (would need order lookup)
48
- // For now, return all swaps - filtering should be done via order_id
49
+ const swapArray = Array.isArray(swaps) ? swaps : swaps ? [swaps] : [];
49
50
  res.json({
50
- swaps: Array.isArray(swaps) ? swaps : swaps ? [swaps] : [],
51
+ swaps: swapArray,
52
+ count: swapArray.length,
53
+ limit,
54
+ offset,
51
55
  });
52
56
  }
53
57
  catch (error) {
@@ -77,6 +81,10 @@ const POST = async (req, res) => {
77
81
  }
78
82
  // Validate request body
79
83
  const body = CreateSwapSchema.parse(requestBody);
84
+ // Ensure workflow is available
85
+ if (!create_swap_workflow_1.createSwapWorkflow) {
86
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.UNEXPECTED_STATE, "Swap workflow is not available. Please ensure the plugin is properly installed.");
87
+ }
80
88
  const { result } = await (0, create_swap_workflow_1.createSwapWorkflow)(req.scope).run({
81
89
  input: {
82
90
  order_id: body.order_id,
@@ -113,6 +121,41 @@ const POST = async (req, res) => {
113
121
  }
114
122
  const errorMessage = error instanceof Error ? error.message : "Unknown error";
115
123
  const errorStack = error instanceof Error ? error.stack : undefined;
124
+ // Check for workflow resolution errors
125
+ if (errorMessage.includes("Could not resolve") ||
126
+ errorMessage.includes("Workflow not available") ||
127
+ errorMessage.includes("orderModuleService") ||
128
+ errorMessage.includes("createSwapWorkflow")) {
129
+ console.error("Workflow or service resolution error:", {
130
+ customer_id: customerId,
131
+ error: errorMessage,
132
+ stack: errorStack,
133
+ body: req.body,
134
+ note: "This might indicate a plugin configuration issue. Ensure the plugin is properly installed and workflows are exported correctly.",
135
+ });
136
+ res.status(500).json({
137
+ message: "Failed to initialize swap workflow",
138
+ error: errorMessage,
139
+ hint: "Please ensure the order-management plugin is properly installed and configured.",
140
+ });
141
+ return;
142
+ }
143
+ // Check for specific error about orderModuleService.list
144
+ if (errorMessage.includes("orderModuleService.list") || errorMessage.includes(".list is not a function")) {
145
+ console.error("Order service method error:", {
146
+ customer_id: customerId,
147
+ error: errorMessage,
148
+ stack: errorStack,
149
+ body: req.body,
150
+ note: "Order service does not have a .list() method. Use remoteQuery or listOrders instead.",
151
+ });
152
+ res.status(500).json({
153
+ message: "Failed to verify order",
154
+ error: errorMessage,
155
+ hint: "Order service method error. Please check order verification implementation.",
156
+ });
157
+ return;
158
+ }
116
159
  console.error("Failed to create swap:", {
117
160
  customer_id: customerId,
118
161
  error: errorMessage,
@@ -126,4 +169,4 @@ const POST = async (req, res) => {
126
169
  }
127
170
  };
128
171
  exports.POST = POST;
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3N3YXBzL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHFEQUF1RDtBQUN2RCx3RkFBa0Y7QUFDbEYsZ0RBQW1EO0FBRW5ELDZCQUF1QjtBQUV2QixNQUFNLGdCQUFnQixHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7SUFDaEMsUUFBUSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUU7SUFDcEIsWUFBWSxFQUFFLE9BQUMsQ0FBQyxLQUFLLENBQ25CLE9BQUMsQ0FBQyxNQUFNLENBQUM7UUFDUCxFQUFFLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRTtRQUNkLFFBQVEsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO1FBQy9CLE1BQU0sRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0tBQzlCLENBQUMsQ0FDSDtJQUNELFNBQVMsRUFBRSxPQUFDLENBQUMsS0FBSyxDQUNoQixPQUFDLENBQUMsTUFBTSxDQUFDO1FBQ1AsVUFBVSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUU7UUFDdEIsUUFBUSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7S0FDaEMsQ0FBQyxDQUNIO0lBQ0QsTUFBTSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDN0IsSUFBSSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDNUIsQ0FBQyxDQUFBO0FBRUssTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUN0QixHQUFrQixFQUNsQixHQUFtQixFQUNKLEVBQUU7SUFDakIsbUNBQW1DO0lBQ25DLE1BQU0sV0FBVyxHQUFJLEdBRW5CLENBQUMsWUFBWSxDQUFBO0lBRWYsTUFBTSxVQUFVLEdBQUcsV0FBVyxFQUFFLFFBQVEsQ0FB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
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3N3YXBzL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHFEQUF1RDtBQUN2RCx3RkFBa0Y7QUFDbEYsZ0RBQW1EO0FBRW5ELDZCQUF1QjtBQUV2QixNQUFNLGdCQUFnQixHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7SUFDaEMsUUFBUSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUU7SUFDcEIsWUFBWSxFQUFFLE9BQUMsQ0FBQyxLQUFLLENBQ25CLE9BQUMsQ0FBQyxNQUFNLENBQUM7UUFDUCxFQUFFLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRTtRQUNkLFFBQVEsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO1FBQy9CLE1BQU0sRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0tBQzlCLENBQUMsQ0FDSDtJQUNELFNBQVMsRUFBRSxPQUFDLENBQUMsS0FBSyxDQUNoQixPQUFDLENBQUMsTUFBTSxDQUFDO1FBQ1AsVUFBVSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUU7UUFDdEIsUUFBUSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7S0FDaEMsQ0FBQyxDQUNIO0lBQ0QsTUFBTSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDN0IsSUFBSSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDNUIsQ0FBQyxDQUFBO0FBRUssTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUN0QixHQUFrQixFQUNsQixHQUFtQixFQUNKLEVBQUU7SUFDakIsbUNBQW1DO0lBQ25DLE1BQU0sV0FBVyxHQUFJLEdBRW5CLENBQUMsWUFBWSxDQUFBO0lBRWYsTUFBTSxVQUFVLEdBQUcsV0FBVyxFQUFFLFFBQVEsQ0FB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
@@ -85,4 +85,4 @@ async function cancelSwap(swapId, container) {
85
85
  const data = (await response.json());
86
86
  return data.swap;
87
87
  }
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dhcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaGVscGVycy9zd2Fwcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXVDQSw4Q0E0QkM7QUFLRCw0QkFxQkM7QUFLRCwwQkFtQkM7QUFLRCxnQ0FtQkM7QUF6R0Q7O0dBRUc7QUFDSSxLQUFLLFVBQVUsaUJBQWlCLENBQ3JDLEtBQTZCLEVBQzdCLFNBQTBCO0lBRTFCLE1BQU0sRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFBO0lBRTlELE1BQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLGNBQWMsRUFBRTtRQUMzQyxNQUFNLEVBQUUsTUFBTTtRQUNkLE9BQU8sRUFBRTtZQUNQLGNBQWMsRUFBRSxrQkFBa0I7U0FDbkM7UUFDRCxXQUFXLEVBQUUsU0FBUztRQUN0QixJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNuQixRQUFRLEVBQUUsT0FBTztZQUNqQixZQUFZLEVBQUUsV0FBVztZQUN6QixTQUFTLEVBQUUsUUFBUTtZQUNuQixNQUFNO1lBQ04sSUFBSTtTQUNMLENBQUM7S0FDSCxDQUFDLENBQUE7SUFFRixJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sS0FBSyxHQUFHLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFBO1FBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSwrQkFBK0IsQ0FBQyxDQUFBO0lBQ25FLENBQUM7SUFFRCxNQUFNLElBQUksR0FBRyxDQUFDLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFtQixDQUFBO0lBQ3RELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQTtBQUNsQixDQUFDO0FBRUQ7O0dBRUc7QUFDSSxLQUFLLFVBQVUsUUFBUSxDQUM1QixPQUFnQixFQUNoQixTQUEyQjtJQUUzQixNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFBO0lBRXZFLE1BQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLEdBQUcsRUFBRTtRQUNoQyxNQUFNLEVBQUUsS0FBSztRQUNiLE9BQU8sRUFBRTtZQUNQLGNBQWMsRUFBRSxrQkFBa0I7U0FDbkM7UUFDRCxXQUFXLEVBQUUsU0FBUztLQUN2QixDQUFDLENBQUE7SUFFRixJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sS0FBSyxHQUFHLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFBO1FBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSwwQkFBMEIsQ0FBQyxDQUFBO0lBQzlELENBQUM7SUFFRCxNQUFNLElBQUksR0FBRyxDQUFDLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFzQixDQUFBO0lBQ3pELE9BQU8sSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUE7QUFDekIsQ0FBQztBQUVEOztHQUVHO0FBQ0ksS0FBSyxVQUFVLE9BQU8sQ0FDM0IsTUFBYyxFQUNkLFNBQTJCO0lBRTNCLE1BQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLGdCQUFnQixNQUFNLEVBQUUsRUFBRTtRQUNyRCxNQUFNLEVBQUUsS0FBSztRQUNiLE9BQU8sRUFBRTtZQUNQLGNBQWMsRUFBRSxrQkFBa0I7U0FDbkM7UUFDRCxXQUFXLEVBQUUsU0FBUztLQUN2QixDQUFDLENBQUE7SUFFRixJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sS0FBSyxHQUFHLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFBO1FBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSx5QkFBeUIsQ0FBQyxDQUFBO0lBQzdELENBQUM7SUFFRCxNQUFNLElBQUksR0FBRyxDQUFDLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFtQixDQUFBO0lBQ3RELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQTtBQUNsQixDQUFDO0FBRUQ7O0dBRUc7QUFDSSxLQUFLLFVBQVUsVUFBVSxDQUM5QixNQUFjLEVBQ2QsU0FBMkI7SUFFM0IsTUFBTSxRQUFRLEdBQUcsTUFBTSxLQUFLLENBQUMsZ0JBQWdCLE1BQU0sU0FBUyxFQUFFO1FBQzVELE1BQU0sRUFBRSxNQUFNO1FBQ2QsT0FBTyxFQUFFO1lBQ1AsY0FBYyxFQUFFLGtCQUFrQjtTQUNuQztRQUNELFdBQVcsRUFBRSxTQUFTO0tBQ3ZCLENBQUMsQ0FBQTtJQUVGLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDakIsTUFBTSxLQUFLLEdBQUcsTUFBTSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUE7UUFDbkMsTUFBTSxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLHVCQUF1QixDQUFDLENBQUE7SUFDM0QsQ0FBQztJQUVELE1BQU0sSUFBSSxHQUFHLENBQUMsTUFBTSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQW1CLENBQUE7SUFDdEQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFBO0FBQ2xCLENBQUMifQ==
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dhcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaGVscGVycy9zd2Fwcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXdDQSw4Q0E0QkM7QUFLRCw0QkFxQkM7QUFLRCwwQkFtQkM7QUFLRCxnQ0FtQkM7QUF6R0Q7O0dBRUc7QUFDSSxLQUFLLFVBQVUsaUJBQWlCLENBQ3JDLEtBQTZCLEVBQzdCLFNBQTBCO0lBRTFCLE1BQU0sRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFBO0lBRTlELE1BQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLGNBQWMsRUFBRTtRQUMzQyxNQUFNLEVBQUUsTUFBTTtRQUNkLE9BQU8sRUFBRTtZQUNQLGNBQWMsRUFBRSxrQkFBa0I7U0FDbkM7UUFDRCxXQUFXLEVBQUUsU0FBUztRQUN0QixJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNuQixRQUFRLEVBQUUsT0FBTztZQUNqQixZQUFZLEVBQUUsV0FBVztZQUN6QixTQUFTLEVBQUUsUUFBUTtZQUNuQixNQUFNO1lBQ04sSUFBSTtTQUNMLENBQUM7S0FDSCxDQUFDLENBQUE7SUFFRixJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sS0FBSyxHQUFHLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFBO1FBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSwrQkFBK0IsQ0FBQyxDQUFBO0lBQ25FLENBQUM7SUFFRCxNQUFNLElBQUksR0FBRyxDQUFDLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFtQixDQUFBO0lBQ3RELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQTtBQUNsQixDQUFDO0FBRUQ7O0dBRUc7QUFDSSxLQUFLLFVBQVUsUUFBUSxDQUM1QixPQUFnQixFQUNoQixTQUEyQjtJQUUzQixNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFBO0lBRXZFLE1BQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLEdBQUcsRUFBRTtRQUNoQyxNQUFNLEVBQUUsS0FBSztRQUNiLE9BQU8sRUFBRTtZQUNQLGNBQWMsRUFBRSxrQkFBa0I7U0FDbkM7UUFDRCxXQUFXLEVBQUUsU0FBUztLQUN2QixDQUFDLENBQUE7SUFFRixJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sS0FBSyxHQUFHLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFBO1FBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSwwQkFBMEIsQ0FBQyxDQUFBO0lBQzlELENBQUM7SUFFRCxNQUFNLElBQUksR0FBRyxDQUFDLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFzQixDQUFBO0lBQ3pELE9BQU8sSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUE7QUFDekIsQ0FBQztBQUVEOztHQUVHO0FBQ0ksS0FBSyxVQUFVLE9BQU8sQ0FDM0IsTUFBYyxFQUNkLFNBQTJCO0lBRTNCLE1BQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLGdCQUFnQixNQUFNLEVBQUUsRUFBRTtRQUNyRCxNQUFNLEVBQUUsS0FBSztRQUNiLE9BQU8sRUFBRTtZQUNQLGNBQWMsRUFBRSxrQkFBa0I7U0FDbkM7UUFDRCxXQUFXLEVBQUUsU0FBUztLQUN2QixDQUFDLENBQUE7SUFFRixJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sS0FBSyxHQUFHLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFBO1FBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSx5QkFBeUIsQ0FBQyxDQUFBO0lBQzdELENBQUM7SUFFRCxNQUFNLElBQUksR0FBRyxDQUFDLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFtQixDQUFBO0lBQ3RELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQTtBQUNsQixDQUFDO0FBRUQ7O0dBRUc7QUFDSSxLQUFLLFVBQVUsVUFBVSxDQUM5QixNQUFjLEVBQ2QsU0FBMkI7SUFFM0IsTUFBTSxRQUFRLEdBQUcsTUFBTSxLQUFLLENBQUMsZ0JBQWdCLE1BQU0sU0FBUyxFQUFFO1FBQzVELE1BQU0sRUFBRSxNQUFNO1FBQ2QsT0FBTyxFQUFFO1lBQ1AsY0FBYyxFQUFFLGtCQUFrQjtTQUNuQztRQUNELFdBQVcsRUFBRSxTQUFTO0tBQ3ZCLENBQUMsQ0FBQTtJQUVGLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDakIsTUFBTSxLQUFLLEdBQUcsTUFBTSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUE7UUFDbkMsTUFBTSxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLHVCQUF1QixDQUFDLENBQUE7SUFDM0QsQ0FBQztJQUVELE1BQU0sSUFBSSxHQUFHLENBQUMsTUFBTSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQW1CLENBQUE7SUFDdEQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFBO0FBQ2xCLENBQUMifQ==
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Migration20260123144734 = void 0;
4
+ const migrations_1 = require("@medusajs/framework/mikro-orm/migrations");
5
+ class Migration20260123144734 extends migrations_1.Migration {
6
+ async up() {
7
+ // Add indexes on exchange_id and return_id for efficient subscriber queries
8
+ // These indexes significantly improve performance when subscribers look up swaps
9
+ // by Medusa exchange_id or return_id
10
+ this.addSql(`
11
+ CREATE INDEX IF NOT EXISTS "IDX_swap_exchange_id"
12
+ ON "swap" ("exchange_id") WHERE "deleted_at" IS NULL AND "exchange_id" IS NOT NULL;
13
+ `);
14
+ this.addSql(`
15
+ CREATE INDEX IF NOT EXISTS "IDX_swap_return_id"
16
+ ON "swap" ("return_id") WHERE "deleted_at" IS NULL AND "return_id" IS NOT NULL;
17
+ `);
18
+ }
19
+ async down() {
20
+ this.addSql(`
21
+ DROP INDEX IF EXISTS "IDX_swap_exchange_id";
22
+ `);
23
+ this.addSql(`
24
+ DROP INDEX IF EXISTS "IDX_swap_return_id";
25
+ `);
26
+ }
27
+ }
28
+ exports.Migration20260123144734 = Migration20260123144734;
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNjAxMjMxNDQ3MzQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9zd2FwL21pZ3JhdGlvbnMvTWlncmF0aW9uMjAyNjAxMjMxNDQ3MzQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUVBQW9FO0FBRXBFLE1BQWEsdUJBQXdCLFNBQVEsc0JBQVM7SUFDcEQsS0FBSyxDQUFDLEVBQUU7UUFDTiw0RUFBNEU7UUFDNUUsaUZBQWlGO1FBQ2pGLHFDQUFxQztRQUNyQyxJQUFJLENBQUMsTUFBTSxDQUFDOzs7S0FHWCxDQUFDLENBQUE7UUFFRixJQUFJLENBQUMsTUFBTSxDQUFDOzs7S0FHWCxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUk7UUFDUixJQUFJLENBQUMsTUFBTSxDQUFDOztLQUVYLENBQUMsQ0FBQTtRQUVGLElBQUksQ0FBQyxNQUFNLENBQUM7O0tBRVgsQ0FBQyxDQUFBO0lBQ0osQ0FBQztDQUNGO0FBekJELDBEQXlCQyJ9
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Migration20260123162423 = void 0;
4
+ const migrations_1 = require("@medusajs/framework/mikro-orm/migrations");
5
+ class Migration20260123162423 extends migrations_1.Migration {
6
+ async up() {
7
+ // Add customer_id column (nullable initially for backfill)
8
+ this.addSql(`
9
+ ALTER TABLE "swap"
10
+ ADD COLUMN IF NOT EXISTS "customer_id" text NULL;
11
+ `);
12
+ // Backfill customer_id from orders table for existing swaps
13
+ this.addSql(`
14
+ UPDATE "swap" s
15
+ SET "customer_id" = o."customer_id"
16
+ FROM "order" o
17
+ WHERE s."order_id" = o."id"
18
+ AND s."customer_id" IS NULL;
19
+ `);
20
+ // Delete any swaps that couldn't be backfilled (orphaned swaps without valid orders)
21
+ // This ensures data integrity before making customer_id NOT NULL
22
+ this.addSql(`
23
+ DELETE FROM "swap"
24
+ WHERE "customer_id" IS NULL;
25
+ `);
26
+ // Make customer_id NOT NULL after backfill
27
+ this.addSql(`
28
+ ALTER TABLE "swap"
29
+ ALTER COLUMN "customer_id" SET NOT NULL;
30
+ `);
31
+ // Add index on customer_id for efficient filtering
32
+ this.addSql(`
33
+ CREATE INDEX IF NOT EXISTS "IDX_swap_customer_id"
34
+ ON "swap" ("customer_id") WHERE "deleted_at" IS NULL;
35
+ `);
36
+ }
37
+ async down() {
38
+ this.addSql(`
39
+ DROP INDEX IF EXISTS "IDX_swap_customer_id";
40
+ `);
41
+ this.addSql(`
42
+ ALTER TABLE "swap"
43
+ DROP COLUMN IF EXISTS "customer_id";
44
+ `);
45
+ }
46
+ }
47
+ exports.Migration20260123162423 = Migration20260123162423;
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNjAxMjMxNjI0MjMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9zd2FwL21pZ3JhdGlvbnMvTWlncmF0aW9uMjAyNjAxMjMxNjI0MjMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUVBQW9FO0FBRXBFLE1BQWEsdUJBQXdCLFNBQVEsc0JBQVM7SUFDcEQsS0FBSyxDQUFDLEVBQUU7UUFDTiwyREFBMkQ7UUFDM0QsSUFBSSxDQUFDLE1BQU0sQ0FBQzs7O0tBR1gsQ0FBQyxDQUFBO1FBRUYsNERBQTREO1FBQzVELElBQUksQ0FBQyxNQUFNLENBQUM7Ozs7OztLQU1YLENBQUMsQ0FBQTtRQUVGLHFGQUFxRjtRQUNyRixpRUFBaUU7UUFDakUsSUFBSSxDQUFDLE1BQU0sQ0FBQzs7O0tBR1gsQ0FBQyxDQUFBO1FBRUYsMkNBQTJDO1FBQzNDLElBQUksQ0FBQyxNQUFNLENBQUM7OztLQUdYLENBQUMsQ0FBQTtRQUVGLG1EQUFtRDtRQUNuRCxJQUFJLENBQUMsTUFBTSxDQUFDOzs7S0FHWCxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUk7UUFDUixJQUFJLENBQUMsTUFBTSxDQUFDOztLQUVYLENBQUMsQ0FBQTtRQUVGLElBQUksQ0FBQyxNQUFNLENBQUM7OztLQUdYLENBQUMsQ0FBQTtJQUNKLENBQUM7Q0FDRjtBQS9DRCwwREErQ0MifQ==
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Migration20260126114640 = void 0;
4
+ const migrations_1 = require("@medusajs/framework/mikro-orm/migrations");
5
+ class Migration20260126114640 extends migrations_1.Migration {
6
+ async up() {
7
+ // Add return_location_id column
8
+ this.addSql(`
9
+ ALTER TABLE "swap"
10
+ ADD COLUMN IF NOT EXISTS "return_location_id" text NULL;
11
+ `);
12
+ // Add return_shipping_method_id column
13
+ this.addSql(`
14
+ ALTER TABLE "swap"
15
+ ADD COLUMN IF NOT EXISTS "return_shipping_method_id" text NULL;
16
+ `);
17
+ // Add outbound_shipping_method_id column
18
+ this.addSql(`
19
+ ALTER TABLE "swap"
20
+ ADD COLUMN IF NOT EXISTS "outbound_shipping_method_id" text NULL;
21
+ `);
22
+ // Add send_notification column
23
+ this.addSql(`
24
+ ALTER TABLE "swap"
25
+ ADD COLUMN IF NOT EXISTS "send_notification" boolean NULL DEFAULT false;
26
+ `);
27
+ }
28
+ async down() {
29
+ this.addSql(`
30
+ ALTER TABLE "swap"
31
+ DROP COLUMN IF EXISTS "send_notification";
32
+ `);
33
+ this.addSql(`
34
+ ALTER TABLE "swap"
35
+ DROP COLUMN IF EXISTS "outbound_shipping_method_id";
36
+ `);
37
+ this.addSql(`
38
+ ALTER TABLE "swap"
39
+ DROP COLUMN IF EXISTS "return_shipping_method_id";
40
+ `);
41
+ this.addSql(`
42
+ ALTER TABLE "swap"
43
+ DROP COLUMN IF EXISTS "return_location_id";
44
+ `);
45
+ }
46
+ }
47
+ exports.Migration20260126114640 = Migration20260126114640;
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNjAxMjYxMTQ2NDAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9zd2FwL21pZ3JhdGlvbnMvTWlncmF0aW9uMjAyNjAxMjYxMTQ2NDAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUVBQW9FO0FBRXBFLE1BQWEsdUJBQXdCLFNBQVEsc0JBQVM7SUFDcEQsS0FBSyxDQUFDLEVBQUU7UUFDTixnQ0FBZ0M7UUFDaEMsSUFBSSxDQUFDLE1BQU0sQ0FBQzs7O0tBR1gsQ0FBQyxDQUFBO1FBRUYsdUNBQXVDO1FBQ3ZDLElBQUksQ0FBQyxNQUFNLENBQUM7OztLQUdYLENBQUMsQ0FBQTtRQUVGLHlDQUF5QztRQUN6QyxJQUFJLENBQUMsTUFBTSxDQUFDOzs7S0FHWCxDQUFDLENBQUE7UUFFRiwrQkFBK0I7UUFDL0IsSUFBSSxDQUFDLE1BQU0sQ0FBQzs7O0tBR1gsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFJO1FBQ1IsSUFBSSxDQUFDLE1BQU0sQ0FBQzs7O0tBR1gsQ0FBQyxDQUFBO1FBRUYsSUFBSSxDQUFDLE1BQU0sQ0FBQzs7O0tBR1gsQ0FBQyxDQUFBO1FBRUYsSUFBSSxDQUFDLE1BQU0sQ0FBQzs7O0tBR1gsQ0FBQyxDQUFBO1FBRUYsSUFBSSxDQUFDLE1BQU0sQ0FBQzs7O0tBR1gsQ0FBQyxDQUFBO0lBQ0osQ0FBQztDQUNGO0FBaERELDBEQWdEQyJ9
@@ -5,7 +5,8 @@ const utils_1 = require("@medusajs/framework/utils");
5
5
  exports.Swap = utils_1.model.define("swap", {
6
6
  id: utils_1.model.id().primaryKey(),
7
7
  order_id: utils_1.model.text(),
8
- status: utils_1.model.text().default("requested"), // requested, approved, rejected, return_started, return_shipped, return_received, new_items_shipped, completed, cancelled
8
+ customer_id: utils_1.model.text(), // Customer who initiated the swap request
9
+ status: utils_1.model.text().default("requested"), // requested, approved, rejected
9
10
  return_items: utils_1.model.json().nullable(), // Array of { id: string, quantity: number, reason?: string }
10
11
  new_items: utils_1.model.json().nullable(), // Array of { variant_id: string, quantity: number }
11
12
  difference_due: utils_1.model.number().default(0), // Price difference (positive = customer owes, negative = refund)
@@ -13,9 +14,13 @@ exports.Swap = utils_1.model.define("swap", {
13
14
  fulfillment_status: utils_1.model.text().nullable(), // not_fulfilled, fulfilled, shipped, delivered, cancelled
14
15
  return_id: utils_1.model.text().nullable(), // Link to Medusa's return if created
15
16
  exchange_id: utils_1.model.text().nullable(), // Link to Medusa's exchange if created
17
+ return_location_id: utils_1.model.text().nullable(), // Stock location ID where returns should be sent
18
+ return_shipping_method_id: utils_1.model.text().nullable(), // Shipping method ID for return shipment
19
+ outbound_shipping_method_id: utils_1.model.text().nullable(), // Shipping method ID for outbound (new items) shipment
20
+ send_notification: utils_1.model.boolean().nullable(), // Whether to notify customer about exchange
16
21
  reason: utils_1.model.text().nullable(), // Reason for swap
17
22
  note: utils_1.model.text().nullable(), // Customer note
18
23
  metadata: utils_1.model.json().nullable(), // Status history, admin notes, etc.
19
24
  });
20
25
  exports.default = exports.Swap;
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dhcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL3N3YXAvbW9kZWxzL3N3YXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscURBQWlEO0FBRXBDLFFBQUEsSUFBSSxHQUFHLGFBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO0lBQ3ZDLEVBQUUsRUFBRSxhQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxFQUFFO0lBQzNCLFFBQVEsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFO0lBQ3RCLE1BQU0sRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFLDBIQUEwSDtJQUNySyxZQUFZLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFLDZEQUE2RDtJQUNwRyxTQUFTLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFLG9EQUFvRDtJQUN4RixjQUFjLEVBQUUsYUFBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxpRUFBaUU7SUFDNUcsY0FBYyxFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRSx5Q0FBeUM7SUFDbEYsa0JBQWtCLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFLDBEQUEwRDtJQUN2RyxTQUFTLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFLHFDQUFxQztJQUN6RSxXQUFXLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFLHVDQUF1QztJQUM3RSxNQUFNLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFLGtCQUFrQjtJQUNuRCxJQUFJLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFLGdCQUFnQjtJQUMvQyxRQUFRLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFLG9DQUFvQztDQUN4RSxDQUFDLENBQUE7QUFFRixrQkFBZSxZQUFJLENBQUEifQ==
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dhcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL3N3YXAvbW9kZWxzL3N3YXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscURBQWlEO0FBRXBDLFFBQUEsSUFBSSxHQUFHLGFBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO0lBQ3ZDLEVBQUUsRUFBRSxhQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxFQUFFO0lBQzNCLFFBQVEsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFO0lBQ3RCLFdBQVcsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLEVBQUUsMENBQTBDO0lBQ3JFLE1BQU0sRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFLGdDQUFnQztJQUMzRSxZQUFZLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFLDZEQUE2RDtJQUNwRyxTQUFTLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFLG9EQUFvRDtJQUN4RixjQUFjLEVBQUUsYUFBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxpRUFBaUU7SUFDNUcsY0FBYyxFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRSx5Q0FBeUM7SUFDbEYsa0JBQWtCLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFLDBEQUEwRDtJQUN2RyxTQUFTLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFLHFDQUFxQztJQUN6RSxXQUFXLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFLHVDQUF1QztJQUM3RSxrQkFBa0IsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUsaURBQWlEO0lBQzlGLHlCQUF5QixFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRSx5Q0FBeUM7SUFDN0YsMkJBQTJCLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFLHVEQUF1RDtJQUM3RyxpQkFBaUIsRUFBRSxhQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUsNENBQTRDO0lBQzNGLE1BQU0sRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUsa0JBQWtCO0lBQ25ELElBQUksRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUsZ0JBQWdCO0lBQy9DLFFBQVEsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUsb0NBQW9DO0NBQ3hFLENBQUMsQ0FBQTtBQUVGLGtCQUFlLFlBQUksQ0FBQSJ9