@hszrdm/core 1.4.0 → 1.5.0

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 (141) hide show
  1. package/.medusa/server/src/admin/index.js +5582 -3769
  2. package/.medusa/server/src/admin/index.mjs +5582 -3769
  3. package/.medusa/server/src/api/admin/back-in-stock/route.d.ts +2 -0
  4. package/.medusa/server/src/api/admin/back-in-stock/route.js +70 -0
  5. package/.medusa/server/src/api/admin/customer-activation/route.d.ts +2 -0
  6. package/.medusa/server/src/api/admin/customer-activation/route.js +97 -0
  7. package/.medusa/server/src/api/admin/customer-import/route.d.ts +2 -0
  8. package/.medusa/server/src/api/admin/customer-import/route.js +166 -0
  9. package/.medusa/server/src/api/admin/order-export/route.d.ts +2 -0
  10. package/.medusa/server/src/api/admin/order-export/route.js +88 -0
  11. package/.medusa/server/src/api/admin/product-migration/inventory/route.d.ts +3 -0
  12. package/.medusa/server/src/api/admin/product-migration/inventory/route.js +164 -0
  13. package/.medusa/server/src/api/admin/product-migration/price-list-prices/route.d.ts +3 -0
  14. package/.medusa/server/src/api/admin/product-migration/price-list-prices/route.js +204 -0
  15. package/.medusa/server/src/api/admin/product-migration/products/route.d.ts +2 -0
  16. package/.medusa/server/src/api/admin/product-migration/products/route.js +24 -0
  17. package/.medusa/server/src/api/admin/product-reviews/[id]/route.js +36 -4
  18. package/.medusa/server/src/api/admin/product-reviews/settings/route.d.ts +3 -0
  19. package/.medusa/server/src/api/admin/product-reviews/settings/route.js +63 -0
  20. package/.medusa/server/src/api/admin/system-runtime/route.d.ts +2 -0
  21. package/.medusa/server/src/api/admin/system-runtime/route.js +18 -0
  22. package/.medusa/server/src/api/hooks/packeta/status/route.d.ts +2 -0
  23. package/.medusa/server/src/api/hooks/packeta/status/route.js +55 -0
  24. package/.medusa/server/src/api/middlewares.js +16 -1
  25. package/.medusa/server/src/api/store/abandoned-cart/recover/route.d.ts +2 -0
  26. package/.medusa/server/src/api/store/abandoned-cart/recover/route.js +37 -0
  27. package/.medusa/server/src/api/store/back-in-stock/route.d.ts +8 -0
  28. package/.medusa/server/src/api/store/back-in-stock/route.js +124 -0
  29. package/.medusa/server/src/api/store/customer-activation/complete/route.d.ts +2 -0
  30. package/.medusa/server/src/api/store/customer-activation/complete/route.js +96 -0
  31. package/.medusa/server/src/api/store/customer-activation/route.d.ts +2 -0
  32. package/.medusa/server/src/api/store/customer-activation/route.js +34 -0
  33. package/.medusa/server/src/api/store/products/[id]/reviews/route.d.ts +1 -0
  34. package/.medusa/server/src/api/store/products/[id]/reviews/route.js +76 -34
  35. package/.medusa/server/src/api/store/review-request/route.d.ts +2 -0
  36. package/.medusa/server/src/api/store/review-request/route.js +60 -0
  37. package/.medusa/server/src/core/abandoned-cart.d.ts +64 -0
  38. package/.medusa/server/src/core/abandoned-cart.js +197 -0
  39. package/.medusa/server/src/core/back-in-stock.d.ts +51 -0
  40. package/.medusa/server/src/core/back-in-stock.js +107 -0
  41. package/.medusa/server/src/core/checkout-contract.d.ts +1 -0
  42. package/.medusa/server/src/core/checkout-contract.js +2 -1
  43. package/.medusa/server/src/core/customer-account-contract.d.ts +3 -0
  44. package/.medusa/server/src/core/customer-account-contract.js +4 -1
  45. package/.medusa/server/src/core/customer-activation.d.ts +120 -0
  46. package/.medusa/server/src/core/customer-activation.js +169 -0
  47. package/.medusa/server/src/core/customer-email.d.ts +1 -1
  48. package/.medusa/server/src/core/customer-email.js +4 -1
  49. package/.medusa/server/src/core/native-migration-export.d.ts +6 -0
  50. package/.medusa/server/src/core/native-migration-export.js +105 -0
  51. package/.medusa/server/src/core/order-export.d.ts +11 -0
  52. package/.medusa/server/src/core/order-export.js +297 -0
  53. package/.medusa/server/src/core/review-request.d.ts +61 -0
  54. package/.medusa/server/src/core/review-request.js +105 -0
  55. package/.medusa/server/src/core/review-reward.d.ts +94 -0
  56. package/.medusa/server/src/core/review-reward.js +124 -0
  57. package/.medusa/server/src/core/runtime-health.d.ts +39 -0
  58. package/.medusa/server/src/core/runtime-health.js +250 -0
  59. package/.medusa/server/src/core/storefront-core-config.d.ts +10 -0
  60. package/.medusa/server/src/core/storefront-core-config.js +26 -1
  61. package/.medusa/server/src/core/version.d.ts +2 -2
  62. package/.medusa/server/src/core/version.js +2 -2
  63. package/.medusa/server/src/jobs/abandoned-cart-recovery.d.ts +23 -0
  64. package/.medusa/server/src/jobs/abandoned-cart-recovery.js +138 -0
  65. package/.medusa/server/src/jobs/back-in-stock-reconciliation.d.ts +15 -0
  66. package/.medusa/server/src/jobs/back-in-stock-reconciliation.js +90 -0
  67. package/.medusa/server/src/jobs/dpd-statusdata-sync.d.ts +17 -0
  68. package/.medusa/server/src/jobs/dpd-statusdata-sync.js +107 -0
  69. package/.medusa/server/src/jobs/mpl-push-tracking.d.ts +19 -0
  70. package/.medusa/server/src/jobs/mpl-push-tracking.js +183 -0
  71. package/.medusa/server/src/jobs/mpl-status-sync.d.ts +8 -2
  72. package/.medusa/server/src/jobs/mpl-status-sync.js +12 -7
  73. package/.medusa/server/src/jobs/product-review-request-dispatch.d.ts +28 -0
  74. package/.medusa/server/src/jobs/product-review-request-dispatch.js +84 -0
  75. package/.medusa/server/src/jobs/runtime-heartbeat.d.ts +12 -0
  76. package/.medusa/server/src/jobs/runtime-heartbeat.js +13 -0
  77. package/.medusa/server/src/jobs/shipping-status-sync.d.ts +8 -2
  78. package/.medusa/server/src/jobs/shipping-status-sync.js +11 -14
  79. package/.medusa/server/src/lib/modules/shipping/idempotency.js +3 -3
  80. package/.medusa/server/src/lib/modules/shipping/index.d.ts +1 -0
  81. package/.medusa/server/src/lib/modules/shipping/index.js +2 -1
  82. package/.medusa/server/src/lib/modules/shipping/tracking.d.ts +48 -0
  83. package/.medusa/server/src/lib/modules/shipping/tracking.js +368 -0
  84. package/.medusa/server/src/lib/modules/shipping/webhooks.d.ts +6 -9
  85. package/.medusa/server/src/lib/modules/shipping/webhooks.js +24 -137
  86. package/.medusa/server/src/modules/back-in-stock/index.d.ts +23 -0
  87. package/.medusa/server/src/modules/back-in-stock/index.js +16 -0
  88. package/.medusa/server/src/modules/back-in-stock/migrations/Migration20261101202000.d.ts +5 -0
  89. package/.medusa/server/src/modules/back-in-stock/migrations/Migration20261101202000.js +18 -0
  90. package/.medusa/server/src/modules/back-in-stock/models/back-in-stock-subscription.d.ts +13 -0
  91. package/.medusa/server/src/modules/back-in-stock/models/back-in-stock-subscription.js +23 -0
  92. package/.medusa/server/src/modules/back-in-stock/service.d.ts +22 -0
  93. package/.medusa/server/src/modules/back-in-stock/service.js +12 -0
  94. package/.medusa/server/src/modules/email-center/abandoned-cart-registration.d.ts +1 -0
  95. package/.medusa/server/src/modules/email-center/abandoned-cart-registration.js +27 -0
  96. package/.medusa/server/src/modules/email-center/back-in-stock-registration.d.ts +1 -0
  97. package/.medusa/server/src/modules/email-center/back-in-stock-registration.js +27 -0
  98. package/.medusa/server/src/modules/email-center/defaults.js +7 -1
  99. package/.medusa/server/src/modules/email-center/index.d.ts +2 -0
  100. package/.medusa/server/src/modules/email-center/index.js +3 -1
  101. package/.medusa/server/src/modules/integration-settings/abandoned-cart-registration.d.ts +1 -0
  102. package/.medusa/server/src/modules/integration-settings/abandoned-cart-registration.js +30 -0
  103. package/.medusa/server/src/modules/integration-settings/index.d.ts +1 -0
  104. package/.medusa/server/src/modules/integration-settings/index.js +2 -1
  105. package/.medusa/server/src/modules/integration-settings/storefront-public-registration.js +15 -1
  106. package/.medusa/server/src/modules/product-review/index.d.ts +14 -0
  107. package/.medusa/server/src/modules/product-review/migrations/Migration20261101113000.d.ts +5 -0
  108. package/.medusa/server/src/modules/product-review/migrations/Migration20261101113000.js +28 -0
  109. package/.medusa/server/src/modules/product-review/migrations/Migration20261101114500.d.ts +5 -0
  110. package/.medusa/server/src/modules/product-review/migrations/Migration20261101114500.js +20 -0
  111. package/.medusa/server/src/modules/product-review/migrations/Migration20261101121500.d.ts +5 -0
  112. package/.medusa/server/src/modules/product-review/migrations/Migration20261101121500.js +18 -0
  113. package/.medusa/server/src/modules/product-review/models/product-review-settings.d.ts +15 -0
  114. package/.medusa/server/src/modules/product-review/models/product-review-settings.js +19 -0
  115. package/.medusa/server/src/modules/product-review/models/product-review.d.ts +6 -2
  116. package/.medusa/server/src/modules/product-review/models/product-review.js +7 -3
  117. package/.medusa/server/src/modules/product-review/service.d.ts +22 -1
  118. package/.medusa/server/src/modules/product-review/service.js +3 -2
  119. package/.medusa/server/src/providers/dpd/index.d.ts +2 -0
  120. package/.medusa/server/src/providers/dpd/index.js +3 -1
  121. package/.medusa/server/src/providers/dpd/statusdata-ftp.d.ts +16 -0
  122. package/.medusa/server/src/providers/dpd/statusdata-ftp.js +268 -0
  123. package/.medusa/server/src/providers/dpd/statusdata.d.ts +14 -0
  124. package/.medusa/server/src/providers/dpd/statusdata.js +161 -0
  125. package/.medusa/server/src/providers/mpl/client.d.ts +3 -1
  126. package/.medusa/server/src/providers/mpl/client.js +154 -2
  127. package/.medusa/server/src/providers/mpl/service.js +31 -20
  128. package/.medusa/server/src/providers/mpl/types.d.ts +25 -0
  129. package/.medusa/server/src/providers/mpl/types.js +1 -1
  130. package/.medusa/server/src/providers/packeta/index.d.ts +1 -0
  131. package/.medusa/server/src/providers/packeta/index.js +2 -1
  132. package/.medusa/server/src/providers/packeta/push-tracking.d.ts +8 -0
  133. package/.medusa/server/src/providers/packeta/push-tracking.js +96 -0
  134. package/.medusa/server/src/providers/packeta/service.js +22 -2
  135. package/.medusa/server/src/scripts/core-init.d.ts +1 -1
  136. package/.medusa/server/src/scripts/core-init.js +3 -2
  137. package/.medusa/server/src/subscribers/back-in-stock-inventory-changed.d.ts +7 -0
  138. package/.medusa/server/src/subscribers/back-in-stock-inventory-changed.js +65 -0
  139. package/.medusa/server/src/workflows/link-migrated-customer.d.ts +8 -0
  140. package/.medusa/server/src/workflows/link-migrated-customer.js +17 -0
  141. package/package.json +2 -1
@@ -0,0 +1,2 @@
1
+ import type { MedusaRequest, MedusaResponse } from "@medusajs/framework/http";
2
+ export declare function GET(req: MedusaRequest, res: MedusaResponse): Promise<MedusaResponse>;
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GET = GET;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const back_in_stock_1 = require("../../../modules/back-in-stock");
6
+ async function GET(req, res) {
7
+ const status = text(req.query?.status);
8
+ const productId = text(req.query?.product_id);
9
+ const variantId = text(req.query?.variant_id);
10
+ const email = text(req.query?.email).toLowerCase();
11
+ const limit = clampInt(req.query?.limit, 50, 1, 200);
12
+ const offset = clampInt(req.query?.offset, 0, 0, 100000);
13
+ const filters = {};
14
+ if (status)
15
+ filters.status = status;
16
+ if (productId)
17
+ filters.product_id = productId;
18
+ if (variantId)
19
+ filters.variant_id = variantId;
20
+ if (email)
21
+ filters.email = email;
22
+ const service = req.scope.resolve(back_in_stock_1.BACK_IN_STOCK_MODULE);
23
+ const [subscriptions, count] = await service.listAndCountBackInStockSubscriptions(filters, { take: limit, skip: offset, order: { created_at: "DESC" } });
24
+ const variantIds = [...new Set(subscriptions.map((item) => String(item.variant_id || "")).filter(Boolean))];
25
+ const variantMap = new Map();
26
+ if (variantIds.length) {
27
+ const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
28
+ const { data } = await query.graph({
29
+ entity: "product_variant",
30
+ fields: ["id", "title", "sku", "product.id", "product.title", "product.handle"],
31
+ filters: { id: variantIds },
32
+ });
33
+ for (const variant of data)
34
+ variantMap.set(String(variant.id), variant);
35
+ }
36
+ return res.json({
37
+ subscriptions: subscriptions.map((item) => {
38
+ const variant = variantMap.get(String(item.variant_id)) || {};
39
+ return {
40
+ id: item.id,
41
+ email: item.email,
42
+ status: item.status,
43
+ locale: item.locale,
44
+ product_id: item.product_id,
45
+ product_title: variant.product?.title || null,
46
+ product_handle: variant.product?.handle || null,
47
+ variant_id: item.variant_id,
48
+ variant_title: variant.title || null,
49
+ variant_sku: variant.sku || null,
50
+ notified_at: item.notified_at || null,
51
+ last_error: item.last_error || null,
52
+ created_at: item.created_at,
53
+ updated_at: item.updated_at,
54
+ };
55
+ }),
56
+ count,
57
+ limit,
58
+ offset,
59
+ });
60
+ }
61
+ function text(value) {
62
+ return typeof value === "string" ? value.trim() : "";
63
+ }
64
+ function clampInt(value, fallback, min, max) {
65
+ const number = Number(value);
66
+ if (!Number.isFinite(number))
67
+ return fallback;
68
+ return Math.max(min, Math.min(max, Math.trunc(number)));
69
+ }
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2JhY2staW4tc3RvY2svcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFJQSxrQkF5REM7QUE1REQscURBQXFFO0FBQ3JFLGtFQUE4RjtBQUV2RixLQUFLLFVBQVUsR0FBRyxDQUFDLEdBQWtCLEVBQUUsR0FBbUI7SUFDL0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUE7SUFDdEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUE7SUFDN0MsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUE7SUFDN0MsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUE7SUFDbEQsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUE7SUFDcEQsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUE7SUFFeEQsTUFBTSxPQUFPLEdBQTRCLEVBQUUsQ0FBQTtJQUMzQyxJQUFJLE1BQU07UUFBRSxPQUFPLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQTtJQUNuQyxJQUFJLFNBQVM7UUFBRSxPQUFPLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQTtJQUM3QyxJQUFJLFNBQVM7UUFBRSxPQUFPLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQTtJQUM3QyxJQUFJLEtBQUs7UUFBRSxPQUFPLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtJQUVoQyxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxvQ0FBb0IsQ0FBdUIsQ0FBQTtJQUM3RSxNQUFNLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxHQUFHLE1BQU0sT0FBTyxDQUFDLG9DQUFvQyxDQUMvRSxPQUFnQixFQUNoQixFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEVBQVcsQ0FDbkIsQ0FBQTtJQUVwRCxNQUFNLFVBQVUsR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQzNHLE1BQU0sVUFBVSxHQUFHLElBQUksR0FBRyxFQUErQixDQUFBO0lBRXpELElBQUksVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3RCLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBUSxDQUFBO1FBQ3ZFLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDakMsTUFBTSxFQUFFLGlCQUFpQjtZQUN6QixNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixDQUFDO1lBQy9FLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUU7U0FDNUIsQ0FBeUMsQ0FBQTtRQUMxQyxLQUFLLE1BQU0sT0FBTyxJQUFJLElBQUk7WUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUE7SUFDekUsQ0FBQztJQUVELE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQztRQUNkLGFBQWEsRUFBRSxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDeEMsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFBO1lBQzdELE9BQU87Z0JBQ0wsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO2dCQUNYLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztnQkFDakIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO2dCQUNuQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07Z0JBQ25CLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtnQkFDM0IsYUFBYSxFQUFFLE9BQU8sQ0FBQyxPQUFPLEVBQUUsS0FBSyxJQUFJLElBQUk7Z0JBQzdDLGNBQWMsRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFFLE1BQU0sSUFBSSxJQUFJO2dCQUMvQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7Z0JBQzNCLGFBQWEsRUFBRSxPQUFPLENBQUMsS0FBSyxJQUFJLElBQUk7Z0JBQ3BDLFdBQVcsRUFBRSxPQUFPLENBQUMsR0FBRyxJQUFJLElBQUk7Z0JBQ2hDLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUk7Z0JBQ3JDLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUk7Z0JBQ25DLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtnQkFDM0IsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO2FBQzVCLENBQUE7UUFDSCxDQUFDLENBQUM7UUFDRixLQUFLO1FBQ0wsS0FBSztRQUNMLE1BQU07S0FDUCxDQUFDLENBQUE7QUFDSixDQUFDO0FBRUQsU0FBUyxJQUFJLENBQUMsS0FBYztJQUMxQixPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7QUFDdEQsQ0FBQztBQUVELFNBQVMsUUFBUSxDQUFDLEtBQWMsRUFBRSxRQUFnQixFQUFFLEdBQVcsRUFBRSxHQUFXO0lBQzFFLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUM1QixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7UUFBRSxPQUFPLFFBQVEsQ0FBQTtJQUM3QyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQ3pELENBQUMifQ==
@@ -0,0 +1,2 @@
1
+ import type { MedusaRequest, MedusaResponse } from "@medusajs/framework/http";
2
+ export declare function POST(req: MedusaRequest, res: MedusaResponse): Promise<MedusaResponse>;
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.POST = POST;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const customer_activation_1 = require("../../../core/customer-activation");
6
+ async function POST(req, res) {
7
+ const body = (req.body || {});
8
+ const ids = Array.from(new Set((Array.isArray(body.customer_ids) ? body.customer_ids : [])
9
+ .map((value) => String(value || "").trim())
10
+ .filter(Boolean)));
11
+ if (!ids.length) {
12
+ return res.status(400).json({ message: "Nincs aktiválandó vevő kiválasztva." });
13
+ }
14
+ if (ids.length > 5_000) {
15
+ return res.status(400).json({ message: "Egy aktiválási kampány legfeljebb 5 000 vevőt tartalmazhat." });
16
+ }
17
+ const expiresHours = numberBetween(body.expires_hours, 1, 168, 72);
18
+ const reward = body.reward;
19
+ const sendEmail = body.send_email !== false;
20
+ const customerService = req.scope.resolve(utils_1.Modules.CUSTOMER);
21
+ const result = {
22
+ total: ids.length,
23
+ issued: 0,
24
+ emailed: 0,
25
+ email_skipped: 0,
26
+ skipped: 0,
27
+ failed: 0,
28
+ warnings: [],
29
+ errors: [],
30
+ };
31
+ for (const customerId of ids) {
32
+ let customer;
33
+ try {
34
+ customer = await customerService.retrieveCustomer(customerId);
35
+ if (!customer?.has_account) {
36
+ result.skipped++;
37
+ result.warnings.push({
38
+ customer_id: customerId,
39
+ email: customer?.email,
40
+ message: "Vendég vevőhöz nem küldünk fiókaktiválást.",
41
+ });
42
+ continue;
43
+ }
44
+ if (!customer?.email) {
45
+ result.skipped++;
46
+ result.warnings.push({ customer_id: customerId, message: "A vevőhöz nem tartozik e-mail cím." });
47
+ continue;
48
+ }
49
+ const issued = (0, customer_activation_1.issueCustomerActivation)(customer, { expiresHours, reward });
50
+ await customerService.updateCustomers(customerId, {
51
+ metadata: issued.metadata,
52
+ });
53
+ result.issued++;
54
+ if (!sendEmail)
55
+ continue;
56
+ const mail = await (0, customer_activation_1.sendCustomerActivationEmail)({
57
+ container: req.scope,
58
+ customer,
59
+ token: issued.token,
60
+ expiresAt: issued.state.expires_at,
61
+ });
62
+ if (mail?.skipped) {
63
+ result.email_skipped++;
64
+ result.warnings.push({
65
+ customer_id: customerId,
66
+ email: customer.email,
67
+ message: "Az aktiváló token létrejött, de az e-mail küldése ki lett hagyva az e-mail konfiguráció miatt.",
68
+ });
69
+ continue;
70
+ }
71
+ const sentState = {
72
+ ...issued.state,
73
+ email_sent_at: new Date().toISOString(),
74
+ };
75
+ await customerService.updateCustomers(customerId, {
76
+ metadata: (0, customer_activation_1.mergeActivationMetadata)(customer.metadata, sentState),
77
+ });
78
+ result.emailed++;
79
+ }
80
+ catch (cause) {
81
+ result.failed++;
82
+ result.errors.push({
83
+ customer_id: customerId,
84
+ email: customer?.email,
85
+ message: cause instanceof Error ? cause.message : "Ismeretlen aktiválási hiba.",
86
+ });
87
+ }
88
+ }
89
+ return res.json(result);
90
+ }
91
+ function numberBetween(value, min, max, fallback) {
92
+ const number = Number(value);
93
+ if (!Number.isFinite(number))
94
+ return fallback;
95
+ return Math.min(Math.max(number, min), max);
96
+ }
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2N1c3RvbWVyLWFjdGl2YXRpb24vcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFRQSxvQkE4RkM7QUFyR0QscURBQW1EO0FBQ25ELDJFQUkwQztBQUVuQyxLQUFLLFVBQVUsSUFBSSxDQUFDLEdBQWtCLEVBQUUsR0FBbUI7SUFDaEUsTUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBNEIsQ0FBQTtJQUN4RCxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUM1QixDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7U0FDeEQsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1NBQzFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FDbkIsQ0FBQyxDQUFBO0lBRUYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNoQixPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLENBQUMsQ0FBQTtJQUNqRixDQUFDO0lBQ0QsSUFBSSxHQUFHLENBQUMsTUFBTSxHQUFHLEtBQUssRUFBRSxDQUFDO1FBQ3ZCLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsNkRBQTZELEVBQUUsQ0FBQyxDQUFBO0lBQ3pHLENBQUM7SUFFRCxNQUFNLFlBQVksR0FBRyxhQUFhLENB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
@@ -0,0 +1,2 @@
1
+ import type { MedusaRequest, MedusaResponse } from "@medusajs/framework/http";
2
+ export declare function POST(req: MedusaRequest, res: MedusaResponse): Promise<MedusaResponse>;
@@ -0,0 +1,166 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.POST = POST;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ async function POST(req, res) {
6
+ const body = (req.body || {});
7
+ const rows = Array.isArray(body.rows) ? body.rows : [];
8
+ const dryRun = body.dry_run !== false;
9
+ const mode = body.mode === "update" ? "update" : "skip";
10
+ if (!rows.length)
11
+ return res.status(400).json({ message: "Nincs importálható vevő a kérésben." });
12
+ if (rows.length > 10_000)
13
+ return res.status(400).json({ message: "Egy import legfeljebb 10 000 sort tartalmazhat." });
14
+ const customerService = req.scope.resolve(utils_1.Modules.CUSTOMER);
15
+ const result = {
16
+ dry_run: dryRun,
17
+ mode,
18
+ total: rows.length,
19
+ created: 0,
20
+ updated: 0,
21
+ skipped: 0,
22
+ failed: 0,
23
+ activation_eligible: 0,
24
+ activation_customer_ids: [],
25
+ warnings: [],
26
+ errors: [],
27
+ };
28
+ for (let index = 0; index < rows.length; index++) {
29
+ const source = rows[index] || {};
30
+ const row = index + 2;
31
+ const email = text(source.email).toLowerCase();
32
+ try {
33
+ if (!email || !email.includes("@"))
34
+ throw new Error("Érvénytelen vagy hiányzó e-mail cím.");
35
+ if (source.password !== undefined && text(source.password)) {
36
+ result.warnings.push({ row, email, message: "A jelszó oszlop biztonsági okból figyelmen kívül lett hagyva." });
37
+ }
38
+ const existingList = await customerService.listCustomers({ email }, { take: 1 });
39
+ const existing = Array.isArray(existingList) ? existingList[0] : null;
40
+ if (existing && mode === "skip") {
41
+ result.skipped++;
42
+ continue;
43
+ }
44
+ const taxNumber = nullable(source.tax_number);
45
+ const metadata = {
46
+ ...(existing?.metadata || {}),
47
+ imported_by: "hszrdm-customer-import",
48
+ ...(taxNumber ? { tax_number: taxNumber } : {}),
49
+ };
50
+ const hasAccountInput = text(source.has_account);
51
+ const requestedHasAccount = hasAccountInput ? boolean(source.has_account) : false;
52
+ const customerData = withoutUndefined({
53
+ email,
54
+ first_name: nullable(source.first_name),
55
+ last_name: nullable(source.last_name),
56
+ phone: nullable(source.phone),
57
+ company_name: nullable(source.company_name),
58
+ ...(existing ? {} : { has_account: requestedHasAccount }),
59
+ metadata,
60
+ });
61
+ const activationEligible = existing?.has_account === true || (!existing && requestedHasAccount);
62
+ if (existing && requestedHasAccount && existing.has_account !== true) {
63
+ result.warnings.push({
64
+ row,
65
+ email,
66
+ message: "A meglévő vendég vevő Medusában nem alakítható át update művelettel regisztrált vevővé, ezért nem került az aktiválási listába.",
67
+ });
68
+ }
69
+ if (dryRun) {
70
+ if (existing)
71
+ result.updated++;
72
+ else
73
+ result.created++;
74
+ if (activationEligible)
75
+ result.activation_eligible++;
76
+ continue;
77
+ }
78
+ const customer = existing
79
+ ? await customerService.updateCustomers(existing.id, customerData)
80
+ : await customerService.createCustomers(customerData);
81
+ const customerId = customer?.id || existing?.id;
82
+ if (!customerId)
83
+ throw new Error("A vevő létrehozása után nem érkezett vevőazonosító.");
84
+ await ensureAddress(customerService, customerId, source, "billing");
85
+ await ensureAddress(customerService, customerId, source, "shipping");
86
+ await ensureGroup(customerService, customerId, text(source.customer_group));
87
+ if (activationEligible) {
88
+ result.activation_eligible++;
89
+ result.activation_customer_ids.push(customerId);
90
+ }
91
+ if (existing)
92
+ result.updated++;
93
+ else
94
+ result.created++;
95
+ }
96
+ catch (cause) {
97
+ result.failed++;
98
+ result.errors.push({ row, email: email || undefined, message: cause instanceof Error ? cause.message : "Ismeretlen importálási hiba." });
99
+ }
100
+ }
101
+ return res.json(result);
102
+ }
103
+ async function ensureAddress(service, customerId, row, kind) {
104
+ const prefix = `${kind}_`;
105
+ const address1 = text(row[`${prefix}address_1`]);
106
+ if (!address1)
107
+ return;
108
+ const data = withoutUndefined({
109
+ customer_id: customerId,
110
+ first_name: nullable(row[`${prefix}first_name`]) || nullable(row.first_name),
111
+ last_name: nullable(row[`${prefix}last_name`]) || nullable(row.last_name),
112
+ company: nullable(row[`${prefix}company`]) || nullable(row.company_name),
113
+ address_1: address1,
114
+ address_2: nullable(row[`${prefix}address_2`]),
115
+ city: nullable(row[`${prefix}city`]),
116
+ postal_code: nullable(row[`${prefix}postal_code`]),
117
+ province: nullable(row[`${prefix}province`]),
118
+ country_code: text(row[`${prefix}country_code`]).toLowerCase() || undefined,
119
+ phone: nullable(row[`${prefix}phone`]) || nullable(row.phone),
120
+ is_default_billing: kind === "billing",
121
+ is_default_shipping: kind === "shipping",
122
+ });
123
+ const existingAddresses = await service.listCustomerAddresses({ customer_id: customerId });
124
+ const current = Array.isArray(existingAddresses)
125
+ ? existingAddresses.find((address) => kind === "billing" ? address.is_default_billing : address.is_default_shipping)
126
+ : null;
127
+ if (current?.id)
128
+ await service.updateCustomerAddresses(current.id, data);
129
+ else
130
+ await service.createCustomerAddresses(data);
131
+ }
132
+ async function ensureGroup(service, customerId, groupName) {
133
+ if (!groupName)
134
+ return;
135
+ const groups = await service.listCustomerGroups({ name: groupName }, { take: 1 });
136
+ const group = Array.isArray(groups) && groups[0] ? groups[0] : await service.createCustomerGroups({ name: groupName });
137
+ if (!group?.id)
138
+ return;
139
+ try {
140
+ await service.addCustomerToGroup({ customer_id: customerId, customer_group_id: group.id });
141
+ }
142
+ catch (cause) {
143
+ const message = cause instanceof Error ? cause.message.toLowerCase() : "";
144
+ if (!message.includes("already") && !message.includes("exists"))
145
+ throw cause;
146
+ }
147
+ }
148
+ function text(value) {
149
+ if (value === null || value === undefined)
150
+ return "";
151
+ return String(value).trim();
152
+ }
153
+ function nullable(value) {
154
+ const valueText = text(value);
155
+ return valueText || undefined;
156
+ }
157
+ function boolean(value) {
158
+ if (typeof value === "boolean")
159
+ return value;
160
+ const normalized = text(value).toLowerCase();
161
+ return ["1", "true", "yes", "igen", "registered", "regisztralt", "regisztrált"].includes(normalized);
162
+ }
163
+ function withoutUndefined(value) {
164
+ return Object.fromEntries(Object.entries(value).filter(([, item]) => item !== undefined));
165
+ }
166
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2N1c3RvbWVyLWltcG9ydC9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXdDQSxvQkFtR0M7QUExSUQscURBQW1EO0FBdUM1QyxLQUFLLFVBQVUsSUFBSSxDQUFDLEdBQWtCLEVBQUUsR0FBbUI7SUFDaEUsTUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBNEIsQ0FBQTtJQUN4RCxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQW1CLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtJQUNyRSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxLQUFLLEtBQUssQ0FBQTtJQUNyQyxNQUFNLElBQUksR0FBZSxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUE7SUFFbkUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNO1FBQUUsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxDQUFDLENBQUE7SUFDakcsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU07UUFBRSxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLGlEQUFpRCxFQUFFLENBQUMsQ0FBQTtJQUVySCxNQUFNLGVBQWUsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFPLENBQUMsUUFBUSxDQUFRLENBQUE7SUFDbEUsTUFBTSxNQUFNLEdBQUc7UUFDYixPQUFPLEVBQUUsTUFB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
@@ -0,0 +1,2 @@
1
+ import type { MedusaRequest, MedusaResponse } from "@medusajs/framework/http";
2
+ export declare function POST(req: MedusaRequest, res: MedusaResponse): Promise<MedusaResponse>;
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.POST = POST;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const order_export_1 = require("../../../core/order-export");
6
+ const ORDER_FIELDS = [
7
+ "id",
8
+ "display_id",
9
+ "created_at",
10
+ "status",
11
+ "currency_code",
12
+ "email",
13
+ "customer_id",
14
+ "subtotal",
15
+ "shipping_total",
16
+ "discount_total",
17
+ "tax_total",
18
+ "total",
19
+ "metadata",
20
+ "customer.*",
21
+ "billing_address.*",
22
+ "shipping_address.*",
23
+ "items.*",
24
+ "items.tax_lines.*",
25
+ "shipping_methods.*",
26
+ "shipping_methods.tax_lines.*",
27
+ "payment_collections.*",
28
+ "payment_collections.payments.*",
29
+ "payment_collections.payment_sessions.*",
30
+ "fulfillments.*",
31
+ ];
32
+ const PAGE_SIZE = 100;
33
+ const MAX_ORDERS = 10_000;
34
+ async function POST(req, res) {
35
+ const body = (req.body || {});
36
+ const from = cleanDate(body.from);
37
+ const to = cleanDate(body.to, true);
38
+ const status = cleanText(body.status);
39
+ const createdAt = {};
40
+ if (from)
41
+ createdAt.$gte = from;
42
+ if (to)
43
+ createdAt.$lte = to;
44
+ const filters = {
45
+ status: status || { $ne: "draft" },
46
+ };
47
+ if (Object.keys(createdAt).length)
48
+ filters.created_at = createdAt;
49
+ const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
50
+ const orders = [];
51
+ let skip = 0;
52
+ while (orders.length < MAX_ORDERS) {
53
+ const take = Math.min(PAGE_SIZE, MAX_ORDERS - orders.length);
54
+ const { data } = await query.graph({
55
+ entity: "order",
56
+ fields: ORDER_FIELDS,
57
+ filters,
58
+ pagination: { skip, take },
59
+ });
60
+ orders.push(...data);
61
+ if (data.length < take)
62
+ break;
63
+ skip += data.length;
64
+ }
65
+ const table = (0, order_export_1.ordersToAccountingTable)(orders);
66
+ return res.json({
67
+ ...table,
68
+ numeric_headers: [...order_export_1.ORDER_EXPORT_NUMERIC_HEADERS],
69
+ truncated: orders.length >= MAX_ORDERS,
70
+ filters: { from: from || null, to: to || null, status: status || null },
71
+ });
72
+ }
73
+ function cleanText(value) {
74
+ return typeof value === "string" ? value.trim() : "";
75
+ }
76
+ function cleanDate(value, endOfDay = false) {
77
+ const raw = cleanText(value);
78
+ if (!raw)
79
+ return "";
80
+ const dateOnly = /^\d{4}-\d{2}-\d{2}$/.test(raw);
81
+ const date = new Date(dateOnly
82
+ ? `${raw}T${endOfDay ? "23:59:59.999" : "00:00:00.000"}Z`
83
+ : raw);
84
+ if (Number.isNaN(date.getTime()))
85
+ return "";
86
+ return date.toISOString();
87
+ }
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL29yZGVyLWV4cG9ydC9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXFDQSxvQkF3Q0M7QUE1RUQscURBQXFFO0FBQ3JFLDZEQUdtQztBQUVuQyxNQUFNLFlBQVksR0FBRztJQUNuQixJQUFJO0lBQ0osWUFBWTtJQUNaLFlBQVk7SUFDWixRQUFRO0lBQ1IsZUFBZTtJQUNmLE9BQU87SUFDUCxhQUFhO0lBQ2IsVUFBVTtJQUNWLGdCQUFnQjtJQUNoQixnQkFBZ0I7SUFDaEIsV0FBVztJQUNYLE9BQU87SUFDUCxVQUFVO0lBQ1YsWUFBWTtJQUNaLG1CQUFtQjtJQUNuQixvQkFBb0I7SUFDcEIsU0FBUztJQUNULG1CQUFtQjtJQUNuQixvQkFBb0I7SUFDcEIsOEJBQThCO0lBQzlCLHVCQUF1QjtJQUN2QixnQ0FBZ0M7SUFDaEMsd0NBQXdDO0lBQ3hDLGdCQUFnQjtDQUNqQixDQUFBO0FBRUQsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFBO0FBQ3JCLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQTtBQUVsQixLQUFLLFVBQVUsSUFBSSxDQUFDLEdBQWtCLEVBQUUsR0FBbUI7SUFDaEUsTUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBNEIsQ0FBQTtJQUN4RCxNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ2pDLE1BQU0sRUFBRSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFBO0lBQ25DLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7SUFFckMsTUFBTSxTQUFTLEdBQTJCLEVBQUUsQ0FBQTtJQUM1QyxJQUFJLElBQUk7UUFBRSxTQUFTLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQTtJQUMvQixJQUFJLEVBQUU7UUFBRSxTQUFTLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQTtJQUUzQixNQUFNLE9BQU8sR0FBNEI7UUFDdkMsTUFBTSxFQUFFLE1BQU0sSUFBSSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUU7S0FDbkMsQ0FBQTtJQUNELElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNO1FBQUUsT0FBTyxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUE7SUFFakUsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFRLENBQUE7SUFDdkUsTUFBTSxNQUFNLEdBQTBCLEVBQUUsQ0FBQTtJQUN4QyxJQUFJLElBQUksR0FBRyxDQUFDLENBQUE7SUFFWixPQUFPLE1BQU0sQ0FBQyxNQUFNLEdBQUcsVUFBVSxFQUFFLENBQUM7UUFDbEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsVUFBVSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUM1RCxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQ2pDLE1BQU0sRUFBRSxPQUFPO1lBQ2YsTUFBTSxFQUFFLFlBQVk7WUFDcEIsT0FBTztZQUNQLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUU7U0FDM0IsQ0FBb0MsQ0FBQTtRQUVyQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUE7UUFDcEIsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUk7WUFBRSxNQUFLO1FBQzdCLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFBO0lBQ3JCLENBQUM7SUFFRCxNQUFNLEtBQUssR0FBRyxJQUFBLHNDQUF1QixFQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQzdDLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQztRQUNkLEdBQUcsS0FBSztRQUNSLGVBQWUsRUFBRSxDQUFDLEdBQUcsMkNBQTRCLENBQUM7UUFDbEQsU0FBUyxFQUFFLE1BQU0sQ0FBQyxNQUFNLElBQUksVUFBVTtRQUN0QyxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxJQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxJQUFJLElBQUksRUFBRTtLQUN4RSxDQUFDLENBQUE7QUFDSixDQUFDO0FBRUQsU0FBUyxTQUFTLENBQUMsS0FBYztJQUMvQixPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7QUFDdEQsQ0FBQztBQUVELFNBQVMsU0FBUyxDQUFDLEtBQWMsRUFBRSxRQUFRLEdBQUcsS0FBSztJQUNqRCxNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDNUIsSUFBSSxDQUFDLEdBQUc7UUFBRSxPQUFPLEVBQUUsQ0FBQTtJQUNuQixNQUFNLFFBQVEsR0FBRyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDaEQsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsUUFBUTtRQUM1QixDQUFDLENBQUMsR0FBRyxHQUFHLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLGNBQWMsR0FBRztRQUN6RCxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDUixJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQUUsT0FBTyxFQUFFLENBQUE7SUFDM0MsT0FBTyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUE7QUFDM0IsQ0FBQyJ9
@@ -0,0 +1,3 @@
1
+ import type { MedusaRequest, MedusaResponse } from "@medusajs/framework/http";
2
+ export declare function GET(req: MedusaRequest, res: MedusaResponse): Promise<MedusaResponse>;
3
+ export declare function POST(req: MedusaRequest, res: MedusaResponse): Promise<MedusaResponse>;