@hszrdm/core 1.7.0 → 1.8.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 (183) hide show
  1. package/.medusa/server/src/admin/index.js +6223 -4784
  2. package/.medusa/server/src/admin/index.mjs +6224 -4785
  3. package/.medusa/server/src/api/admin/arukereso/marketplace-preview/route.d.ts +2 -0
  4. package/.medusa/server/src/api/admin/arukereso/marketplace-preview/route.js +26 -0
  5. package/.medusa/server/src/api/admin/billingo/advance/route.d.ts +8 -0
  6. package/.medusa/server/src/api/admin/billingo/advance/route.js +55 -0
  7. package/.medusa/server/src/api/admin/billingo/partial-credit/route.d.ts +8 -0
  8. package/.medusa/server/src/api/admin/billingo/partial-credit/route.js +69 -0
  9. package/.medusa/server/src/api/admin/documents/[id]/route.d.ts +22 -0
  10. package/.medusa/server/src/api/admin/documents/[id]/route.js +107 -0
  11. package/.medusa/server/src/api/admin/documents/route.d.ts +21 -0
  12. package/.medusa/server/src/api/admin/documents/route.js +117 -0
  13. package/.medusa/server/src/api/admin/google-ads/diagnostics/route.d.ts +2 -0
  14. package/.medusa/server/src/api/admin/google-ads/diagnostics/route.js +26 -0
  15. package/.medusa/server/src/api/admin/google-ads/oauth/start/route.d.ts +2 -0
  16. package/.medusa/server/src/api/admin/google-ads/oauth/start/route.js +27 -0
  17. package/.medusa/server/src/api/admin/google-merchant/data-source/sync/route.d.ts +2 -0
  18. package/.medusa/server/src/api/admin/google-merchant/data-source/sync/route.js +69 -0
  19. package/.medusa/server/src/api/admin/google-merchant/diagnostics/route.d.ts +2 -0
  20. package/.medusa/server/src/api/admin/google-merchant/diagnostics/route.js +26 -0
  21. package/.medusa/server/src/api/admin/google-merchant/oauth/start/route.d.ts +2 -0
  22. package/.medusa/server/src/api/admin/google-merchant/oauth/start/route.js +25 -0
  23. package/.medusa/server/src/api/admin/orders/[id]/shipping/route.js +28 -28
  24. package/.medusa/server/src/api/admin/shipping/mpl/close/route.d.ts +1 -1
  25. package/.medusa/server/src/api/admin/shipping/mpl/close/route.js +48 -70
  26. package/.medusa/server/src/api/auth/google-ads/callback/route.d.ts +2 -0
  27. package/.medusa/server/src/api/auth/google-ads/callback/route.js +58 -0
  28. package/.medusa/server/src/api/feeds/arukereso-marketplace.xml/route.d.ts +2 -0
  29. package/.medusa/server/src/api/feeds/arukereso-marketplace.xml/route.js +33 -0
  30. package/.medusa/server/src/api/feeds/google-merchant.xml/route.js +5 -3
  31. package/.medusa/server/src/api/hooks/arukereso/marketplace/order/route.d.ts +2 -0
  32. package/.medusa/server/src/api/hooks/arukereso/marketplace/order/route.js +211 -0
  33. package/.medusa/server/src/api/hooks/simplepay/ipn/route.js +113 -23
  34. package/.medusa/server/src/api/store/account/orders/[id]/reorder/route.d.ts +2 -0
  35. package/.medusa/server/src/api/store/account/orders/[id]/reorder/route.js +113 -0
  36. package/.medusa/server/src/api/store/arukereso/backlink/route.d.ts +2 -0
  37. package/.medusa/server/src/api/store/arukereso/backlink/route.js +73 -0
  38. package/.medusa/server/src/api/store/arukereso/trusted-shop/[id]/route.d.ts +2 -0
  39. package/.medusa/server/src/api/store/arukereso/trusted-shop/[id]/route.js +84 -0
  40. package/.medusa/server/src/api/store/arukereso/widget/route.d.ts +2 -0
  41. package/.medusa/server/src/api/store/arukereso/widget/route.js +64 -0
  42. package/.medusa/server/src/api/store/documents/route.d.ts +2 -0
  43. package/.medusa/server/src/api/store/documents/route.js +84 -0
  44. package/.medusa/server/src/api/store/google-merchant/oauth/callback/route.d.ts +2 -0
  45. package/.medusa/server/src/api/store/google-merchant/oauth/callback/route.js +50 -0
  46. package/.medusa/server/src/config.d.ts +3 -3
  47. package/.medusa/server/src/config.js +64 -87
  48. package/.medusa/server/src/core/documents.d.ts +31 -0
  49. package/.medusa/server/src/core/documents.js +47 -0
  50. package/.medusa/server/src/core/version.d.ts +2 -2
  51. package/.medusa/server/src/core/version.js +2 -2
  52. package/.medusa/server/src/lib/modules/arukereso/index.d.ts +1 -0
  53. package/.medusa/server/src/lib/modules/arukereso/index.js +2 -1
  54. package/.medusa/server/src/lib/modules/arukereso/marketplace-feed.d.ts +19 -0
  55. package/.medusa/server/src/lib/modules/arukereso/marketplace-feed.js +100 -0
  56. package/.medusa/server/src/lib/modules/billingo/actions.js +42 -12
  57. package/.medusa/server/src/lib/modules/billingo/advance.d.ts +68 -0
  58. package/.medusa/server/src/lib/modules/billingo/advance.js +309 -0
  59. package/.medusa/server/src/lib/modules/billingo/automation.js +49 -9
  60. package/.medusa/server/src/lib/modules/billingo/client.d.ts +5 -1
  61. package/.medusa/server/src/lib/modules/billingo/client.js +12 -6
  62. package/.medusa/server/src/lib/modules/billingo/index.d.ts +2 -0
  63. package/.medusa/server/src/lib/modules/billingo/index.js +3 -1
  64. package/.medusa/server/src/lib/modules/billingo/mapper.d.ts +38 -1
  65. package/.medusa/server/src/lib/modules/billingo/mapper.js +32 -1
  66. package/.medusa/server/src/lib/modules/billingo/partial-credit.d.ts +55 -0
  67. package/.medusa/server/src/lib/modules/billingo/partial-credit.js +338 -0
  68. package/.medusa/server/src/lib/modules/billingo/types.d.ts +7 -2
  69. package/.medusa/server/src/lib/modules/google-ads/adjustments.d.ts +21 -0
  70. package/.medusa/server/src/lib/modules/google-ads/adjustments.js +146 -0
  71. package/.medusa/server/src/lib/modules/google-ads/api.d.ts +23 -0
  72. package/.medusa/server/src/lib/modules/google-ads/api.js +171 -0
  73. package/.medusa/server/src/lib/modules/google-ads/diagnostics.d.ts +47 -0
  74. package/.medusa/server/src/lib/modules/google-ads/diagnostics.js +164 -0
  75. package/.medusa/server/src/lib/modules/google-merchant/category-fields.d.ts +7 -0
  76. package/.medusa/server/src/lib/modules/google-merchant/category-fields.js +210 -0
  77. package/.medusa/server/src/lib/modules/google-merchant/data-source.d.ts +17 -0
  78. package/.medusa/server/src/lib/modules/google-merchant/data-source.js +132 -0
  79. package/.medusa/server/src/lib/modules/google-merchant/diagnostics.d.ts +33 -0
  80. package/.medusa/server/src/lib/modules/google-merchant/diagnostics.js +113 -0
  81. package/.medusa/server/src/lib/modules/google-merchant/index.d.ts +5 -0
  82. package/.medusa/server/src/lib/modules/google-merchant/index.js +6 -1
  83. package/.medusa/server/src/lib/modules/google-merchant/merchant-api.d.ts +18 -0
  84. package/.medusa/server/src/lib/modules/google-merchant/merchant-api.js +120 -0
  85. package/.medusa/server/src/lib/modules/google-merchant/shipping.d.ts +13 -0
  86. package/.medusa/server/src/lib/modules/google-merchant/shipping.js +97 -0
  87. package/.medusa/server/src/lib/modules/google-tag-manager/api.d.ts +1 -0
  88. package/.medusa/server/src/lib/modules/google-tag-manager/api.js +3 -0
  89. package/.medusa/server/src/lib/modules/google-tag-manager/index.d.ts +1 -0
  90. package/.medusa/server/src/lib/modules/google-tag-manager/index.js +3 -0
  91. package/.medusa/server/src/lib/modules/google-tag-manager/sync.d.ts +1 -0
  92. package/.medusa/server/src/lib/modules/google-tag-manager/sync.js +3 -0
  93. package/.medusa/server/src/lib/modules/shipping/actions.js +163 -352
  94. package/.medusa/server/src/lib/modules/shipping/durable-create.d.ts +2 -1
  95. package/.medusa/server/src/lib/modules/shipping/durable-create.js +33 -5
  96. package/.medusa/server/src/lib/modules/shipping/idempotency.js +4 -2
  97. package/.medusa/server/src/lib/modules/shipping/types.d.ts +1 -1
  98. package/.medusa/server/src/modules/core-documents/index.d.ts +38 -0
  99. package/.medusa/server/src/modules/core-documents/index.js +18 -0
  100. package/.medusa/server/src/modules/core-documents/migrations/Migration20261102190000.d.ts +5 -0
  101. package/.medusa/server/src/modules/core-documents/migrations/Migration20261102190000.js +22 -0
  102. package/.medusa/server/src/modules/core-documents/models/core-document-assignment.d.ts +9 -0
  103. package/.medusa/server/src/modules/core-documents/models/core-document-assignment.js +18 -0
  104. package/.medusa/server/src/modules/core-documents/models/core-document.d.ts +18 -0
  105. package/.medusa/server/src/modules/core-documents/models/core-document.js +27 -0
  106. package/.medusa/server/src/modules/core-documents/service.d.ts +38 -0
  107. package/.medusa/server/src/modules/core-documents/service.js +13 -0
  108. package/.medusa/server/src/modules/integration-operation/state.d.ts +1 -0
  109. package/.medusa/server/src/modules/integration-operation/state.js +11 -50
  110. package/.medusa/server/src/modules/integration-operation/types.d.ts +1 -1
  111. package/.medusa/server/src/modules/integration-settings/arukereso-registration.js +19 -2
  112. package/.medusa/server/src/modules/integration-settings/connection-test.js +14 -1
  113. package/.medusa/server/src/modules/integration-settings/csomagpiac-definition.d.ts +2 -0
  114. package/.medusa/server/src/modules/integration-settings/csomagpiac-definition.js +49 -0
  115. package/.medusa/server/src/modules/integration-settings/csomagpiac-registration.d.ts +1 -0
  116. package/.medusa/server/src/modules/integration-settings/csomagpiac-registration.js +35 -0
  117. package/.medusa/server/src/modules/integration-settings/google-merchant-registration.js +23 -2
  118. package/.medusa/server/src/modules/integration-settings/hot-reload-registration.d.ts +1 -0
  119. package/.medusa/server/src/modules/integration-settings/hot-reload-registration.js +23 -0
  120. package/.medusa/server/src/modules/integration-settings/index.d.ts +4 -0
  121. package/.medusa/server/src/modules/integration-settings/index.js +5 -1
  122. package/.medusa/server/src/modules/integration-settings/manager.js +38 -4
  123. package/.medusa/server/src/modules/integration-settings/reloadable.d.ts +10 -0
  124. package/.medusa/server/src/modules/integration-settings/reloadable.js +58 -0
  125. package/.medusa/server/src/modules/integration-settings/runtime-snapshot.d.ts +9 -0
  126. package/.medusa/server/src/modules/integration-settings/runtime-snapshot.js +48 -3
  127. package/.medusa/server/src/modules/integration-settings/simplepay-registration.d.ts +1 -0
  128. package/.medusa/server/src/modules/integration-settings/simplepay-registration.js +18 -0
  129. package/.medusa/server/src/modules/integration-settings/storefront-public-registration.js +15 -5
  130. package/.medusa/server/src/providers/csomagpiac/client.d.ts +25 -0
  131. package/.medusa/server/src/providers/csomagpiac/client.js +144 -0
  132. package/.medusa/server/src/providers/csomagpiac/fulfillment-provider.d.ts +45 -0
  133. package/.medusa/server/src/providers/csomagpiac/fulfillment-provider.js +221 -0
  134. package/.medusa/server/src/providers/csomagpiac/index.d.ts +7 -0
  135. package/.medusa/server/src/providers/csomagpiac/index.js +30 -0
  136. package/.medusa/server/src/providers/csomagpiac/service.d.ts +46 -0
  137. package/.medusa/server/src/providers/csomagpiac/service.js +226 -0
  138. package/.medusa/server/src/providers/csomagpiac/types.d.ts +65 -0
  139. package/.medusa/server/src/providers/csomagpiac/types.js +27 -0
  140. package/.medusa/server/src/providers/dpd/fulfillment-provider.d.ts +2 -1
  141. package/.medusa/server/src/providers/dpd/fulfillment-provider.js +83 -25
  142. package/.medusa/server/src/providers/dpd/service.js +5 -3
  143. package/.medusa/server/src/providers/email/service.d.ts +7 -6
  144. package/.medusa/server/src/providers/email/service.js +51 -25
  145. package/.medusa/server/src/providers/foxpost/foxpost-service.js +5 -9
  146. package/.medusa/server/src/providers/foxpost/fulfillment-provider.d.ts +1 -0
  147. package/.medusa/server/src/providers/foxpost/fulfillment-provider.js +76 -66
  148. package/.medusa/server/src/providers/gls/fulfillment-provider.d.ts +1 -0
  149. package/.medusa/server/src/providers/gls/fulfillment-provider.js +76 -13
  150. package/.medusa/server/src/providers/gls/gls-service.d.ts +16 -0
  151. package/.medusa/server/src/providers/gls/gls-service.js +26 -65
  152. package/.medusa/server/src/providers/gls/types.d.ts +15 -0
  153. package/.medusa/server/src/providers/mpl/fulfillment-provider.d.ts +1 -0
  154. package/.medusa/server/src/providers/mpl/fulfillment-provider.js +61 -186
  155. package/.medusa/server/src/providers/mpl/index.d.ts +2 -0
  156. package/.medusa/server/src/providers/mpl/index.js +7 -2
  157. package/.medusa/server/src/providers/mpl/service.d.ts +35 -1
  158. package/.medusa/server/src/providers/mpl/service.js +82 -370
  159. package/.medusa/server/src/providers/mpl/types.d.ts +18 -0
  160. package/.medusa/server/src/providers/mpl/types.js +1 -1
  161. package/.medusa/server/src/providers/packeta/client.d.ts +2 -1
  162. package/.medusa/server/src/providers/packeta/client.js +24 -2
  163. package/.medusa/server/src/providers/packeta/fulfillment-provider.d.ts +1 -0
  164. package/.medusa/server/src/providers/packeta/fulfillment-provider.js +73 -5
  165. package/.medusa/server/src/providers/packeta/service.d.ts +1 -0
  166. package/.medusa/server/src/providers/packeta/service.js +85 -22
  167. package/.medusa/server/src/providers/packeta/types.d.ts +26 -0
  168. package/.medusa/server/src/providers/packeta/types.js +1 -1
  169. package/.medusa/server/src/providers/resilient-stripe/index.d.ts +19 -1
  170. package/.medusa/server/src/providers/resilient-stripe/index.js +55 -3
  171. package/.medusa/server/src/providers/simplepay/config.js +11 -1
  172. package/.medusa/server/src/providers/simplepay/index.d.ts +2 -0
  173. package/.medusa/server/src/providers/simplepay/index.js +5 -3
  174. package/.medusa/server/src/providers/simplepay/runtime-service.d.ts +13 -0
  175. package/.medusa/server/src/providers/simplepay/runtime-service.js +55 -0
  176. package/.medusa/server/src/providers/simplepay/service.d.ts +2 -0
  177. package/.medusa/server/src/providers/simplepay/service.js +40 -5
  178. package/.medusa/server/src/subscribers/google-ads-order-canceled.d.ts +7 -0
  179. package/.medusa/server/src/subscribers/google-ads-order-canceled.js +50 -0
  180. package/.medusa/server/src/subscribers/google-ads-payment-refunded.d.ts +7 -0
  181. package/.medusa/server/src/subscribers/google-ads-payment-refunded.js +181 -0
  182. package/.medusa/server/src/subscribers/simplepay-paid-order-recovery.js +14 -1
  183. package/package.json +6 -2
@@ -40,11 +40,31 @@ export type PacketaPacketPayload = {
40
40
  zip?: string;
41
41
  province?: string;
42
42
  };
43
+ export type PacketaReturnContext = {
44
+ email: string;
45
+ phone: string;
46
+ value: number;
47
+ currency: string;
48
+ consignCountry: string;
49
+ };
50
+ export type PacketaReturnClaimPayload = {
51
+ number: string;
52
+ email: string;
53
+ phone: string;
54
+ value: number;
55
+ currency: string;
56
+ eshop: string;
57
+ consignCountry: string;
58
+ sendEmailToCustomer: boolean;
59
+ };
43
60
  export type PacketaCreatePacketResult = {
44
61
  id: string;
45
62
  barcode?: string;
46
63
  barcodeText?: string;
47
64
  };
65
+ export type PacketaCreateReturnClaimResult = PacketaCreatePacketResult & {
66
+ password: string;
67
+ };
48
68
  export type PacketaStatusResult = {
49
69
  dateTime?: string;
50
70
  statusCode?: number;
@@ -97,6 +117,12 @@ export type PacketaShipmentData = {
97
117
  externalCarrierClass?: string;
98
118
  statusUpdatedAt?: string;
99
119
  apiRequestReference?: string;
120
+ returnContext?: PacketaReturnContext;
121
+ returnPacketId?: string;
122
+ returnBarcode?: string;
123
+ returnBarcodeText?: string;
124
+ returnPassword?: string;
125
+ returnCreatedAt?: string;
100
126
  };
101
127
  export declare class PacketaError extends Error {
102
128
  constructor(message: string);
@@ -29,4 +29,4 @@ class PacketaConflictError extends PacketaError {
29
29
  }
30
30
  }
31
31
  exports.PacketaConflictError = PacketaConflictError;
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3BhY2tldGEvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBOEdBLE1BQWEsWUFBYSxTQUFRLEtBQUs7SUFDckMsWUFBWSxPQUFlO1FBQ3pCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUNkLElBQUksQ0FBQyxJQUFJLEdBQUcsY0FBYyxDQUFBO0lBQzVCLENBQUM7Q0FDRjtBQUxELG9DQUtDO0FBRUQsTUFBYSxrQkFBbUIsU0FBUSxZQUFZO0lBQ2xELFlBQVksT0FBTyxHQUFHLHNEQUFzRDtRQUMxRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDZCxJQUFJLENBQUMsSUFBSSxHQUFHLG9CQUFvQixDQUFBO0lBQ2xDLENBQUM7Q0FDRjtBQUxELGdEQUtDO0FBRUQsTUFBYSxzQkFBdUIsU0FBUSxZQUFZO0lBQ3RELFlBQVksT0FBZTtRQUN6QixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDZCxJQUFJLENBQUMsSUFBSSxHQUFHLHdCQUF3QixDQUFBO0lBQ3RDLENBQUM7Q0FDRjtBQUxELHdEQUtDO0FBRUQsTUFBYSxvQkFBcUIsU0FBUSxZQUFZO0lBQ3BELFlBQVksT0FBZTtRQUN6QixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDZCxJQUFJLENBQUMsSUFBSSxHQUFHLHNCQUFzQixDQUFBO0lBQ3BDLENBQUM7Q0FDRjtBQUxELG9EQUtDIn0=
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3BhY2tldGEvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBMklBLE1BQWEsWUFBYSxTQUFRLEtBQUs7SUFDckMsWUFBWSxPQUFlO1FBQ3pCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUNkLElBQUksQ0FBQyxJQUFJLEdBQUcsY0FBYyxDQUFBO0lBQzVCLENBQUM7Q0FDRjtBQUxELG9DQUtDO0FBRUQsTUFBYSxrQkFBbUIsU0FBUSxZQUFZO0lBQ2xELFlBQVksT0FBTyxHQUFHLHNEQUFzRDtRQUMxRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDZCxJQUFJLENBQUMsSUFBSSxHQUFHLG9CQUFvQixDQUFBO0lBQ2xDLENBQUM7Q0FDRjtBQUxELGdEQUtDO0FBRUQsTUFBYSxzQkFBdUIsU0FBUSxZQUFZO0lBQ3RELFlBQVksT0FBZTtRQUN6QixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDZCxJQUFJLENBQUMsSUFBSSxHQUFHLHdCQUF3QixDQUFBO0lBQ3RDLENBQUM7Q0FDRjtBQUxELHdEQUtDO0FBRUQsTUFBYSxvQkFBcUIsU0FBUSxZQUFZO0lBQ3BELFlBQVksT0FBZTtRQUN6QixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDZCxJQUFJLENBQUMsSUFBSSxHQUFHLHNCQUFzQixDQUFBO0lBQ3BDLENBQUM7Q0FDRjtBQUxELG9EQUtDIn0=
@@ -19,7 +19,14 @@ type PaymentAccountHolder = {
19
19
  id: string;
20
20
  external_id?: string;
21
21
  data?: Record<string, unknown>;
22
- [key: string]: unknown;
22
+ };
23
+ type RuntimeStripeOptions = {
24
+ apiKey: string;
25
+ webhookSecret?: string;
26
+ capture?: boolean;
27
+ automaticPaymentMethods?: boolean;
28
+ paymentDescription?: string;
29
+ paymentMethodConfiguration?: string;
23
30
  };
24
31
  export declare function isMissingStripeCustomerError(error: StripeLikeError): boolean;
25
32
  export declare function isMissingPaymentIntentError(error: StripeLikeError): boolean;
@@ -43,5 +50,16 @@ export declare class ResilientStripeProviderService extends StripeProviderServic
43
50
  }>;
44
51
  getWebhookActionAndData(webhookData: any): Promise<import("@medusajs/types").WebhookActionResult>;
45
52
  }
53
+ /**
54
+ * Stripe's Medusa provider keeps both `options_` and `stripe_` on the service
55
+ * instance. Keep the provider registered, but resolve those fields lazily from
56
+ * the live integration settings so API key/webhook-secret rotation applies to
57
+ * the next payment or webhook without a backend restart.
58
+ */
59
+ export declare class RuntimeResilientStripeProviderService extends ResilientStripeProviderService {
60
+ static identifier: string;
61
+ static validateOptions(_options: RuntimeStripeOptions): void;
62
+ constructor(cradle: Record<string, unknown>, options?: RuntimeStripeOptions);
63
+ }
46
64
  declare const _default: import("@medusajs/types").ModuleProviderExports;
47
65
  export default _default;
@@ -3,10 +3,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ResilientStripeProviderService = void 0;
6
+ exports.RuntimeResilientStripeProviderService = exports.ResilientStripeProviderService = void 0;
7
7
  exports.isMissingStripeCustomerError = isMissingStripeCustomerError;
8
8
  exports.isMissingPaymentIntentError = isMissingPaymentIntentError;
9
9
  exports.withReplacementStripeCustomer = withReplacementStripeCustomer;
10
+ const stripe_1 = __importDefault(require("stripe"));
10
11
  const utils_1 = require("@medusajs/framework/utils");
11
12
  const stripe_provider_1 = __importDefault(require("@medusajs/payment-stripe/dist/services/stripe-provider"));
12
13
  const state_1 = require("../../modules/integration-operation/state");
@@ -166,7 +167,58 @@ class ResilientStripeProviderService extends stripe_provider_1.default {
166
167
  }
167
168
  exports.ResilientStripeProviderService = ResilientStripeProviderService;
168
169
  ResilientStripeProviderService.identifier = "stripe";
170
+ /**
171
+ * Stripe's Medusa provider keeps both `options_` and `stripe_` on the service
172
+ * instance. Keep the provider registered, but resolve those fields lazily from
173
+ * the live integration settings so API key/webhook-secret rotation applies to
174
+ * the next payment or webhook without a backend restart.
175
+ */
176
+ class RuntimeResilientStripeProviderService extends ResilientStripeProviderService {
177
+ static validateOptions(_options) {
178
+ // Integration Settings validates the configured credentials. Boot must also
179
+ // work before Stripe is connected so the provider can stay registered.
180
+ }
181
+ constructor(cradle, options = { apiKey: "" }) {
182
+ const bootstrap = runtimeStripeOptions(options, true);
183
+ super(cradle, bootstrap);
184
+ Object.defineProperty(this, "options_", {
185
+ configurable: true,
186
+ get: () => runtimeStripeOptions(options),
187
+ });
188
+ Object.defineProperty(this, "stripe_", {
189
+ configurable: true,
190
+ get: () => {
191
+ const current = runtimeStripeOptions(options);
192
+ if (!current.apiKey) {
193
+ throw new Error("Stripe nincs konfigurálva. Add meg a Stripe API key-t az Integrációkban.");
194
+ }
195
+ if (process.env.STRIPE_ENABLED === "false") {
196
+ throw new Error("A Stripe integráció ki van kapcsolva.");
197
+ }
198
+ return new stripe_1.default(current.apiKey);
199
+ },
200
+ });
201
+ }
202
+ }
203
+ exports.RuntimeResilientStripeProviderService = RuntimeResilientStripeProviderService;
204
+ RuntimeResilientStripeProviderService.identifier = "stripe";
205
+ function runtimeStripeOptions(fallback, bootstrap = false) {
206
+ const has = (name) => Object.prototype.hasOwnProperty.call(process.env, name);
207
+ const apiKey = has("STRIPE_API_KEY")
208
+ ? process.env.STRIPE_API_KEY?.trim() || ""
209
+ : fallback.apiKey || "";
210
+ const webhookSecret = has("STRIPE_WEBHOOK_SECRET")
211
+ ? process.env.STRIPE_WEBHOOK_SECRET?.trim() || undefined
212
+ : fallback.webhookSecret;
213
+ return {
214
+ ...fallback,
215
+ apiKey: apiKey || (bootstrap ? "sk_test_hszrdm_runtime_unconfigured" : ""),
216
+ webhookSecret,
217
+ capture: true,
218
+ automaticPaymentMethods: true,
219
+ };
220
+ }
169
221
  exports.default = (0, utils_1.ModuleProvider)(utils_1.Modules.PAYMENT, {
170
- services: [ResilientStripeProviderService],
222
+ services: [RuntimeResilientStripeProviderService],
171
223
  });
172
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3Jlc2lsaWVudC1zdHJpcGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBbUNBLG9FQUtDO0FBRUQsa0VBS0M7QUFFRCxzRUFVQztBQTNERCxxREFBeUY7QUFDekYsNkdBQTBGO0FBQzFGLHFFQUFnRztBQTJCaEcsU0FBUyxZQUFZLENBQUMsRUFBVztJQUMvQixJQUFJLE9BQU8sRUFBRSxLQUFLLFFBQVE7UUFBRSxPQUFPLFNBQVMsQ0FBQTtJQUM1QyxJQUFJLEVBQUUsQ0FBQyxNQUFNLElBQUksRUFBRTtRQUFFLE9BQU8sR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFBO0lBQ2hELE9BQU8sR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtBQUM1QyxDQUFDO0FBRUQsU0FBZ0IsNEJBQTRCLENBQUMsS0FBc0I7SUFDakUsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUE7SUFDM0IsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssMkJBQTJCLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyx1QkFBdUIsQ0FBQztXQUN0RixDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssa0JBQWtCLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxrQkFBa0IsQ0FBQztXQUN0RSxDQUFDLEtBQUssQ0FBQyxLQUFLLEtBQUssVUFBVSxJQUFJLEdBQUcsQ0FBQyxLQUFLLEtBQUssVUFBVSxDQUFDLENBQUE7QUFDL0QsQ0FBQztBQUVELFNBQWdCLDJCQUEyQixDQUFDLEtBQXNCO0lBQ2hFLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxHQUFH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
224
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3Jlc2lsaWVudC1zdHJpcGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBNENBLG9FQUtDO0FBRUQsa0VBS0M7QUFFRCxzRUFVQztBQXBFRCxvREFBMkI7QUFDM0IscURBQXlGO0FBQ3pGLDZHQUEwRjtBQUMxRixxRUFBZ0c7QUFtQ2hHLFNBQVMsWUFBWSxDQUFDLEVBQVc7SUFDL0IsSUFBSSxPQUFPLEVBQUUsS0FBSyxRQUFRO1FBQUUsT0FBTyxTQUFTLENBQUE7SUFDNUMsSUFBSSxFQUFFLENBQUMsTUFBTSxJQUFJLEVBQUU7UUFBRSxPQUFPLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQTtJQUNoRCxPQUFPLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7QUFDNUMsQ0FBQztBQUVELFNBQWdCLDRCQUE0QixDQUFDLEtBQXNCO0lBQ2pFLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFBO0lBQzNCLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLDJCQUEyQixJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssdUJBQXVCLENBQUM7V0FDdEYsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLGtCQUFrQixJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssa0JBQWtCLENBQUM7V0FDdEUsQ0FBQyxLQUFLLENBQUMsS0FBSyxLQUFLLFVBQVUsSUFBSSxHQUFHLENBQUMsS0FBSyxLQUFLLFVBQVUsQ0FBQyxDQUFBO0FBQy9ELENBQUM7QUFFRCxTQUFnQiwyQkFBMkIsQ0FBQyxLQUFzQjtJQUNoRSxNQUFNLEdBQUcsR0FBRyxL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
@@ -6,15 +6,25 @@ function credentials(merchant, secretKey) {
6
6
  return undefined;
7
7
  return { merchant: merchant.trim(), secretKey: secretKey.trim() };
8
8
  }
9
+ function paymentTimeoutMs(env) {
10
+ const minutes = env.SIMPLEPAY_PAYMENT_TIMEOUT_MINUTES
11
+ ? Number(env.SIMPLEPAY_PAYMENT_TIMEOUT_MINUTES)
12
+ : 30;
13
+ if (!Number.isFinite(minutes) || minutes < 1 || minutes > 24 * 60) {
14
+ throw new Error("SIMPLEPAY_PAYMENT_TIMEOUT_MINUTES must be between 1 and 1440");
15
+ }
16
+ return Math.round(minutes * 60_000);
17
+ }
9
18
  function simplePayOptionsFromEnv(env = process.env) {
10
19
  const backendUrl = (env.MEDUSA_BACKEND_URL || "http://localhost:9000").replace(/\/$/, "");
11
20
  return {
12
21
  sandbox: env.SIMPLEPAY_SANDBOX !== "false",
13
22
  timeoutMs: env.SIMPLEPAY_TIMEOUT_MS ? Number(env.SIMPLEPAY_TIMEOUT_MS) : 15_000,
23
+ paymentTimeoutMs: paymentTimeoutMs(env),
14
24
  returnBaseUrl: env.SIMPLEPAY_RETURN_BASE_URL?.trim() || `${backendUrl}/store/simplepay/back`,
15
25
  huf: credentials(env.SIMPLEPAY_HUF_MERCHANT, env.SIMPLEPAY_HUF_SECRET_KEY),
16
26
  eur: credentials(env.SIMPLEPAY_EUR_MERCHANT, env.SIMPLEPAY_EUR_SECRET_KEY),
17
27
  usd: credentials(env.SIMPLEPAY_USD_MERCHANT, env.SIMPLEPAY_USD_SECRET_KEY),
18
28
  };
19
29
  }
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3Byb3ZpZGVycy9zaW1wbGVwYXkvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBT0EsMERBVUM7QUFmRCxTQUFTLFdBQVcsQ0FBQyxRQUFpQixFQUFFLFNBQWtCO0lBQ3hELElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFO1FBQUUsT0FBTyxTQUFTLENBQUE7SUFDN0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsSUFBSSxFQUFFLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFBO0FBQ25FLENBQUM7QUFFRCxTQUFnQix1QkFBdUIsQ0FBQyxNQUF5QixPQUFPLENBQUMsR0FBRztJQUMxRSxNQUFNLFVBQVUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsSUFBSSx1QkFBdUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFDekYsT0FBTztRQUNMLE9BQU8sRUFBRSxHQUFHLENBQUMsaUJBQWlCLEtBQUssT0FBTztRQUMxQyxTQUFTLEVBQUUsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU07UUFDL0UsYUFBYSxFQUFFLEdBQUcsQ0FBQyx5QkFBeUIsRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFHLFVBQVUsdUJBQXVCO1FBQzVGLEdBQUcsRUFBRSxXQUFXLENBQUMsR0FBRyxDQUFDLHNCQUFzQixFQUFFLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQztRQUMxRSxHQUFHLEVBQUUsV0FBVyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsRUFBRSxHQUFHLENBQUMsd0JBQXdCLENBQUM7UUFDMUUsR0FBRyxFQUFFLFdBQVcsQ0FBQyxHQUFHLENBQUMsc0JBQXNCLEVBQUUsR0FBRyxDQUFDLHdCQUF3QixDQUFDO0tBQzNFLENBQUE7QUFDSCxDQUFDIn0=
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3Byb3ZpZGVycy9zaW1wbGVwYXkvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBaUJBLDBEQVdDO0FBMUJELFNBQVMsV0FBVyxDQUFDLFFBQWlCLEVBQUUsU0FBa0I7SUFDeEQsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUU7UUFBRSxPQUFPLFNBQVMsQ0FBQTtJQUM3RCxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUE7QUFDbkUsQ0FBQztBQUVELFNBQVMsZ0JBQWdCLENBQUMsR0FBc0I7SUFDOUMsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLGlDQUFpQztRQUNuRCxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxpQ0FBaUMsQ0FBQztRQUMvQyxDQUFDLENBQUMsRUFBRSxDQUFBO0lBQ04sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksT0FBTyxHQUFHLENBQUMsSUFBSSxPQUFPLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDO1FBQ2xFLE1BQU0sSUFBSSxLQUFLLENBQUMsOERBQThELENBQUMsQ0FBQTtJQUNqRixDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsQ0FBQTtBQUNyQyxDQUFDO0FBRUQsU0FBZ0IsdUJBQXVCLENBQUMsTUFBeUIsT0FBTyxDQUFDLEdBQUc7SUFDMUUsTUFBTSxVQUFVLEdBQUcsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLElBQUksdUJBQXVCLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBQ3pGLE9BQU87UUFDTCxPQUFPLEVBQUUsR0FBRyxDQUFDLGlCQUFpQixLQUFLLE9BQU87UUFDMUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNO1FBQy9FLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDLEdBQUcsQ0FBQztRQUN2QyxhQUFhLEVBQUUsR0FBRyxDQUFDLHlCQUF5QixFQUFFLElBQUksRUFBRSxJQUFJLEdBQUcsVUFBVSx1QkFBdUI7UUFDNUYsR0FBRyxFQUFFLFdBQVcsQ0FBQyxHQUFHLENBQUMsc0JBQXNCLEVBQUUsR0FBRyxDQUFDLHdCQUF3QixDQUFDO1FBQzFFLEdBQUcsRUFBRSxXQUFXLENBQUMsR0FBRyxDQUFDLHNCQUFzQixFQUFFLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQztRQUMxRSxHQUFHLEVBQUUsV0FBVyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsRUFBRSxHQUFHLENBQUMsd0JBQXdCLENBQUM7S0FDM0UsQ0FBQTtBQUNILENBQUMifQ==
@@ -1,2 +1,4 @@
1
+ import { RuntimeSimplePayProviderService } from "./runtime-service";
1
2
  declare const _default: import("@medusajs/types").ModuleProviderExports;
2
3
  export default _default;
4
+ export { RuntimeSimplePayProviderService };
@@ -1,8 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RuntimeSimplePayProviderService = void 0;
3
4
  const utils_1 = require("@medusajs/framework/utils");
4
- const durable_service_1 = require("./durable-service");
5
+ const runtime_service_1 = require("./runtime-service");
6
+ Object.defineProperty(exports, "RuntimeSimplePayProviderService", { enumerable: true, get: function () { return runtime_service_1.RuntimeSimplePayProviderService; } });
5
7
  exports.default = (0, utils_1.ModuleProvider)(utils_1.Modules.PAYMENT, {
6
- services: [durable_service_1.DurableSimplePayProviderService],
8
+ services: [runtime_service_1.RuntimeSimplePayProviderService],
7
9
  });
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3NpbXBsZXBheS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHFEQUFtRTtBQUNuRSx1REFBbUU7QUFFbkUsa0JBQWUsSUFBQSxzQkFBYyxFQUFDLGVBQU8sQ0FBQyxPQUFPLEVBQUU7SUFDN0MsUUFBUSxFQUFFLENBQUMsaURBQStCLENBQUM7Q0FDNUMsQ0FBQyxDQUFBIn0=
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3NpbXBsZXBheS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxREFBbUU7QUFDbkUsdURBQW1FO0FBTTFELGdIQU5BLGlEQUErQixPQU1BO0FBSnhDLGtCQUFlLElBQUEsc0JBQWMsRUFBQyxlQUFPLENBQUMsT0FBTyxFQUFFO0lBQzdDLFFBQVEsRUFBRSxDQUFDLGlEQUErQixDQUFDO0NBQzVDLENBQUMsQ0FBQSJ9
@@ -0,0 +1,13 @@
1
+ import { DurableSimplePayProviderService } from "./durable-service";
2
+ import type { SimplePayProviderOptions } from "./service";
3
+ /**
4
+ * Keeps the Medusa payment provider registered for the lifetime of the process,
5
+ * while resolving SimplePay credentials from the live integration runtime for
6
+ * every provider operation. This lets Admin -> Integrációk enable, rotate or
7
+ * disable SimplePay without rebuilding the Medusa module graph.
8
+ */
9
+ export declare class RuntimeSimplePayProviderService extends DurableSimplePayProviderService {
10
+ static identifier: string;
11
+ static validateOptions(_options: Record<string, unknown>): void;
12
+ constructor(cradle: Record<string, unknown>, options: SimplePayProviderOptions);
13
+ }
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RuntimeSimplePayProviderService = void 0;
4
+ const client_1 = require("./client");
5
+ const config_1 = require("./config");
6
+ const durable_service_1 = require("./durable-service");
7
+ /**
8
+ * Keeps the Medusa payment provider registered for the lifetime of the process,
9
+ * while resolving SimplePay credentials from the live integration runtime for
10
+ * every provider operation. This lets Admin -> Integrációk enable, rotate or
11
+ * disable SimplePay without rebuilding the Medusa module graph.
12
+ */
13
+ class RuntimeSimplePayProviderService extends durable_service_1.DurableSimplePayProviderService {
14
+ static validateOptions(_options) {
15
+ // Runtime settings are validated by integration-settings. The provider must
16
+ // also be allowed to boot before SimplePay is configured.
17
+ }
18
+ constructor(cradle, options) {
19
+ const bootstrapOptions = {
20
+ sandbox: true,
21
+ timeoutMs: 15_000,
22
+ paymentTimeoutMs: 30 * 60_000,
23
+ returnBaseUrl: options?.returnBaseUrl ||
24
+ `${(process.env.MEDUSA_BACKEND_URL || "http://localhost:9000").replace(/\/$/, "")}/store/simplepay/back`,
25
+ };
26
+ super(cradle, bootstrapOptions);
27
+ Object.defineProperty(this, "options", {
28
+ configurable: true,
29
+ get: () => runtimeOptions(options),
30
+ });
31
+ Object.defineProperty(this, "client", {
32
+ configurable: true,
33
+ get: () => new client_1.SimplePayClient(runtimeOptions(options)),
34
+ });
35
+ }
36
+ }
37
+ exports.RuntimeSimplePayProviderService = RuntimeSimplePayProviderService;
38
+ RuntimeSimplePayProviderService.identifier = "simplepay";
39
+ function runtimeOptions(fallback) {
40
+ if (process.env.SIMPLEPAY_ENABLED === "false") {
41
+ return (0, config_1.simplePayOptionsFromEnv)(process.env);
42
+ }
43
+ const runtime = (0, config_1.simplePayOptionsFromEnv)(process.env);
44
+ const hasRuntimeConfig = [
45
+ "SIMPLEPAY_HUF_MERCHANT",
46
+ "SIMPLEPAY_HUF_SECRET_KEY",
47
+ "SIMPLEPAY_EUR_MERCHANT",
48
+ "SIMPLEPAY_EUR_SECRET_KEY",
49
+ "SIMPLEPAY_USD_MERCHANT",
50
+ "SIMPLEPAY_USD_SECRET_KEY",
51
+ "SIMPLEPAY_RETURN_BASE_URL",
52
+ ].some((name) => Object.prototype.hasOwnProperty.call(process.env, name));
53
+ return hasRuntimeConfig ? runtime : fallback;
54
+ }
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3Byb3ZpZGVycy9zaW1wbGVwYXkvcnVudGltZS1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFDQUEwQztBQUMxQyxxQ0FBa0Q7QUFDbEQsdURBQW1FO0FBR25FOzs7OztHQUtHO0FBQ0gsTUFBYSwrQkFBZ0MsU0FBUSxpREFBK0I7SUFHbEYsTUFBTSxDQUFDLGVBQWUsQ0FBQyxRQUFpQztRQUN0RCw0RUFBNEU7UUFDNUUsMERBQTBEO0lBQzVELENBQUM7SUFFRCxZQUFZLE1BQStCLEVBQUUsT0FBaUM7UUFDNUUsTUFBTSxnQkFBZ0IsR0FBNkI7WUFDakQsT0FBTyxFQUFFLElBQUk7WUFDYixTQUFTLEVBQUUsTUFBTTtZQUNqQixnQkFBZ0IsRUFBRSxFQUFFLEdBQUcsTUFBTTtZQUM3QixhQUFhLEVBQ1gsT0FBTyxFQUFFLGFBQWE7Z0JBQ3RCLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixJQUFJLHVCQUF1QixDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsdUJBQXVCO1NBQzNHLENBQUE7UUFDRCxLQUFLLENBQUMsTUFBTSxFQUFFLGdCQUFnQixDQUFDLENBQUE7UUFFL0IsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFO1lBQ3JDLFlBQVksRUFBRSxJQUFJO1lBQ2xCLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDO1NBQ25DLENBQUMsQ0FBQTtRQUNGLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRTtZQUNwQyxZQUFZLEVBQUUsSUFBSTtZQUNsQixHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSx3QkFBZSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUN4RCxDQUFDLENBQUE7SUFDSixDQUFDOztBQTNCSCwwRUE0QkM7QUEzQlEsMENBQVUsR0FBRyxXQUFXLENBQUE7QUE2QmpDLFNBQVMsY0FBYyxDQUFDLFFBQWtDO0lBQ3hELElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsS0FBSyxPQUFPLEVBQUUsQ0FBQztRQUM5QyxPQUFPLElBQUEsZ0NBQXVCLEVBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQzdDLENBQUM7SUFFRCxNQUFNLE9BQU8sR0FBRyxJQUFBLGdDQUF1QixFQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUNwRCxNQUFNLGdCQUFnQixHQUFHO1FBQ3ZCLHdCQUF3QjtRQUN4QiwwQkFBMEI7UUFDMUIsd0JBQXdCO1FBQ3hCLDBCQUEwQjtRQUMxQix3QkFBd0I7UUFDeEIsMEJBQTBCO1FBQzFCLDJCQUEyQjtLQUM1QixDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUV6RSxPQUFPLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQTtBQUM5QyxDQUFDIn0=
@@ -3,6 +3,7 @@ import { AbstractPaymentProvider } from "@medusajs/framework/utils";
3
3
  import { type SimplePayClientOptions } from "./client";
4
4
  export type SimplePayProviderOptions = SimplePayClientOptions & {
5
5
  returnBaseUrl: string;
6
+ paymentTimeoutMs?: number;
6
7
  };
7
8
  export declare class SimplePayProviderService extends AbstractPaymentProvider<SimplePayProviderOptions> {
8
9
  static identifier: string;
@@ -10,6 +11,7 @@ export declare class SimplePayProviderService extends AbstractPaymentProvider<Si
10
11
  private readonly options;
11
12
  static validateOptions(options: Record<string, unknown>): void;
12
13
  constructor(cradle: Record<string, unknown>, options: SimplePayProviderOptions);
14
+ private paymentDeadline;
13
15
  private queryFromData;
14
16
  initiatePayment(input: InitiatePaymentInput): Promise<InitiatePaymentOutput>;
15
17
  authorizePayment(input: AuthorizePaymentInput): Promise<AuthorizePaymentOutput>;
@@ -68,6 +68,29 @@ function mergeTransaction(data, transaction) {
68
68
  resultCode: transaction.resultCode,
69
69
  };
70
70
  }
71
+ function assertTransactionMatchesSession(data, transaction) {
72
+ const mismatches = [];
73
+ if (data.orderRef && transaction.orderRef !== data.orderRef)
74
+ mismatches.push("orderRef");
75
+ if (typeof data.transactionId === "number" &&
76
+ transaction.transactionId !== data.transactionId) {
77
+ mismatches.push("transactionId");
78
+ }
79
+ const expectedCurrency = data.currency
80
+ ? normalizeCurrency(String(data.currency))
81
+ : transaction.currency;
82
+ if (transaction.currency !== expectedCurrency)
83
+ mismatches.push("currency");
84
+ if (data.total !== undefined && data.total !== null) {
85
+ const expectedTotal = (0, client_1.normalizeSimplePayAmount)(data.total, expectedCurrency);
86
+ const actualTotal = (0, client_1.normalizeSimplePayAmount)(transaction.total, transaction.currency);
87
+ if (expectedTotal !== actualTotal)
88
+ mismatches.push("total");
89
+ }
90
+ if (mismatches.length) {
91
+ throw new Error(`SimplePay query does not match payment session (${mismatches.join(", ")})`);
92
+ }
93
+ }
71
94
  class SimplePayProviderService extends utils_1.AbstractPaymentProvider {
72
95
  static validateOptions(options) {
73
96
  if (!options.returnBaseUrl)
@@ -78,12 +101,21 @@ class SimplePayProviderService extends utils_1.AbstractPaymentProvider {
78
101
  });
79
102
  if (!hasAnyAccount)
80
103
  throw new Error("At least one SimplePay merchant account is required");
104
+ if (options.paymentTimeoutMs !== undefined) {
105
+ const timeout = Number(options.paymentTimeoutMs);
106
+ if (!Number.isFinite(timeout) || timeout < 60_000 || timeout > 24 * 60 * 60 * 1000) {
107
+ throw new Error("SimplePay paymentTimeoutMs must be between 1 minute and 24 hours");
108
+ }
109
+ }
81
110
  }
82
111
  constructor(cradle, options) {
83
112
  super(cradle, options);
84
113
  this.options = options;
85
114
  this.client = new client_1.SimplePayClient(options);
86
115
  }
116
+ paymentDeadline() {
117
+ return new Date(Date.now() + (this.options.paymentTimeoutMs ?? 30 * 60_000)).toISOString();
118
+ }
87
119
  async queryFromData(data) {
88
120
  const currency = normalizeCurrency(String(data.currency ?? "HUF"));
89
121
  const response = await this.client.query({
@@ -96,6 +128,7 @@ class SimplePayProviderService extends utils_1.AbstractPaymentProvider {
96
128
  const transaction = response.transactions?.[0];
97
129
  if (!transaction)
98
130
  throw new Error("SimplePay transaction was not found");
131
+ assertTransactionMatchesSession(data, transaction);
99
132
  return transaction;
100
133
  }
101
134
  async initiatePayment(input) {
@@ -148,7 +181,7 @@ class SimplePayProviderService extends utils_1.AbstractPaymentProvider {
148
181
  total: amount,
149
182
  customerEmail: email,
150
183
  language: data.language === "EN" ? "EN" : "HU",
151
- timeout: new Date(Date.now() + 24 * 60 * 60 * 1000).toISOString(),
184
+ timeout: this.paymentDeadline(),
152
185
  url: returnUrl,
153
186
  customer: customerName,
154
187
  invoice: data.invoice,
@@ -274,7 +307,7 @@ class SimplePayProviderService extends utils_1.AbstractPaymentProvider {
274
307
  total: Number(input.amount?.toString?.() ?? input.amount),
275
308
  customerEmail: email,
276
309
  language: data.language === "EN" ? "EN" : "HU",
277
- timeout: new Date(Date.now() + 24 * 60 * 60 * 1000).toISOString(),
310
+ timeout: this.paymentDeadline(),
278
311
  url: `${this.options.returnBaseUrl.replace(/\/$/, "")}/${encodeURIComponent(cartId)}`,
279
312
  customer: typeof data.customer_name === "string" ? data.customer_name : undefined,
280
313
  invoice: data.invoice,
@@ -358,9 +391,11 @@ class SimplePayProviderService extends utils_1.AbstractPaymentProvider {
358
391
  async getWebhookActionAndData(payload) {
359
392
  const raw = Buffer.isBuffer(payload.rawData)
360
393
  ? payload.rawData.toString("utf8")
361
- : typeof payload.rawData === "string"
394
+ : typeof payload.rawData === "string" && payload.rawData.length
362
395
  ? payload.rawData
363
- : JSON.stringify(payload.data ?? {});
396
+ : null;
397
+ if (!raw)
398
+ throw new Error("SimplePay webhook raw body is required");
364
399
  const headers = payload.headers;
365
400
  const signature = headers?.signature;
366
401
  const event = this.client.verifyIpn(raw, Array.isArray(signature) ? signature[0] : signature);
@@ -419,4 +454,4 @@ class SimplePayProviderService extends utils_1.AbstractPaymentProvider {
419
454
  exports.SimplePayProviderService = SimplePayProviderService;
420
455
  SimplePayProviderService.identifier = "simplepay";
421
456
  exports.default = SimplePayProviderService;
422
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wcm92aWRlcnMvc2ltcGxlcGF5L3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBc0JBLHFEQUlrQztBQUNsQyxxQ0FNaUI7QUFDakIscUVBQWlIO0FBd0JqSCxTQUFTLGlCQUFpQixDQUFDLEtBQWE7SUFDdEMsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFBO0lBQ3BDLElBQUksUUFBUSxLQUFLLEtBQUssSUFBSSxRQUFRLEtBQUssS0FBSyxJQUFJLFFBQVEsS0FBSyxLQUFLLEVBQUUsQ0FBQztRQUNuRSxNQUFNLElBQUksS0FBSyxDQUFDLHVDQUF1QyxLQUFLLEVBQUUsQ0FBQyxDQUFBO0lBQ2pFLENBQUM7SUFDRCxPQUFPLFFBQVEsQ0FBQTtBQUNqQixDQUFDO0FBRUQsU0FBUyxhQUFhLENBQUMsTUFBa0M7SUFDdkQsUUFBUSxNQUFNLEVBQUUsQ0FBQztRQUNmLEtBQUssVUFBVTtZQUNiLE9BQU8sNEJBQW9CLENBQUMsUUFBUSxDQUFBO1FBQ3RDLEtBQUssWUFBWTtZQUNmLE9BQU8sNEJBQW9CLENBQUMsVUFBVSxDQUFBO1FBQ3hDLEtBQUssV0FBVyxDQUFDO1FBQ2pCLEtBQUssU0FBUyxDQUFDO1FBQ2YsS0FBSyxVQUFVO1lBQ2IsT0FBTyw0QkFBb0IsQ0FBQyxRQUFRLENBQUE7UUFDdEMsS0FBSyxrQkFBa0IsQ0FBQztRQUN4QixLQUFLLGVBQWUsQ0FBQztRQUNyQixLQUFLLE9BQU87WUFDVixPQUFPLDRCQUFvQixDQUFDLEtBQUssQ0FBQTtRQUNuQyxLQUFLLE1BQU0sQ0FBQztRQUNaLEtBQUssa0JBQWtCLENBQUM7UUFDeEIsS0FBSyxXQUFXLENBQUM7UUFDakIsS0FBSyxTQUFTLENBQUM7UUFDZjtZQUNFLE9BQU8sNEJBQW9CLENBQUMscUJBQXFCLENBQUE7SUFDckQsQ0FBQztBQUNILENBQUM7QUFF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
457
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wcm92aWRlcnMvc2ltcGxlcGF5L3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBc0JBLHFEQUlrQztBQUNsQyxxQ0FPaUI7QUFDakIscUVBQWlIO0FBeUJqSCxTQUFTLGlCQUFpQixDQUFDLEtBQWE7SUFDdEMsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFBO0lBQ3BDLElBQUksUUFBUSxLQUFLLEtBQUssSUFBSSxRQUFRLEtBQUssS0FBSyxJQUFJLFFBQVEsS0FBSyxLQUFLLEVBQUUsQ0FBQztRQUNuRSxNQUFNLElBQUksS0FBSyxDQUFDLHVDQUF1QyxLQUFLLEVBQUUsQ0FBQyxDQUFBO0lBQ2pFLENBQUM7SUFDRCxPQUFPLFFBQVEsQ0FBQTtBQUNqQixDQUFDO0FBRUQsU0FBUyxhQUFhLENBQUMsTUFBa0M7SUFDdkQsUUFBUSxNQUFNLEVBQUUsQ0FBQztRQUNmLEtBQUssVUFBVTtZQUNiLE9BQU8sNEJBQW9CLENBQUMsUUFBUSxDQUFBO1FBQ3RDLEtBQUssWUFBWTtZQUNmLE9BQU8sNEJBQW9CLENBQUMsVUFBVSxDQUFBO1FBQ3hDLEtBQUssV0FBVyxDQUFDO1FBQ2pCLEtBQUssU0FBUyxDQUFDO1FBQ2YsS0FBSyxVQUFVO1lBQ2IsT0FBTyw0QkFBb0IsQ0FBQyxRQUFRLENBQUE7UUFDdEMsS0FBSyxrQkFBa0IsQ0FBQztRQUN4QixLQUFLLGVBQWUsQ0FBQztRQUNyQixLQUFLLE9BQU87WUFDVixPQUFPLDRCQUFvQixDQUFDLEtBQUssQ0FBQTtRQUNuQyxLQUFLLE1BQU0sQ0FBQztRQUNaLEtBQUssa0JBQWtCLENBQUM7UUFDeEIsS0FBSyxXQUFXLENBQUM7UUFDakIsS0FBSyxTQUFTLENBQUM7UUFDZjtZQUNFLE9BQU8sNEJBQW9CLENBQUMscUJBQXFCLENBQUE7SUFDckQsQ0FBQztBQUNILENBQUM7QUFF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
@@ -0,0 +1,7 @@
1
+ import type { SubscriberArgs, SubscriberConfig } from "@medusajs/framework";
2
+ type OrderCanceledData = {
3
+ id: string;
4
+ };
5
+ export default function googleAdsOrderCanceled({ event, container, }: SubscriberArgs<OrderCanceledData>): Promise<void>;
6
+ export declare const config: SubscriberConfig;
7
+ export {};
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.config = void 0;
4
+ exports.default = googleAdsOrderCanceled;
5
+ const utils_1 = require("@medusajs/framework/utils");
6
+ const core_audit_1 = require("../modules/core-audit");
7
+ const adjustments_1 = require("../lib/modules/google-ads/adjustments");
8
+ const integration_settings_1 = require("../modules/integration-settings");
9
+ async function googleAdsOrderCanceled({ event, container, }) {
10
+ const logger = container.resolve(utils_1.ContainerRegistrationKeys.LOGGER);
11
+ try {
12
+ const store = container.resolve(integration_settings_1.INTEGRATION_SETTINGS_MODULE);
13
+ const { enabled, env } = await (0, integration_settings_1.resolvedIntegrationEnvironment)(store, "google-ads");
14
+ if (!enabled || !(0, adjustments_1.googleAdsAdjustmentsEnabled)(env))
15
+ return;
16
+ const config = (0, adjustments_1.googleAdsAdjustmentConfig)(env);
17
+ await (0, adjustments_1.uploadGoogleAdsConversionAdjustment)(config, {
18
+ orderId: event.data.id,
19
+ type: "RETRACTION",
20
+ });
21
+ await (0, core_audit_1.writeCoreAudit)(container, {
22
+ action: "google_ads.conversion_retraction",
23
+ resourceType: "order",
24
+ resourceId: event.data.id,
25
+ integration: "google-ads",
26
+ actorId: "google-ads-order-canceled",
27
+ summary: "A lemondott rendelés Google Ads purchase konverziója visszavonva.",
28
+ details: { adjustmentType: "RETRACTION" },
29
+ });
30
+ logger.info(`Google Ads conversion retracted for canceled order ${event.data.id}.`);
31
+ }
32
+ catch (error) {
33
+ const message = error instanceof Error ? error.message : String(error);
34
+ logger.error(`Google Ads order.canceled adjustment failed for ${event.data.id}: ${message}`);
35
+ await (0, core_audit_1.writeCoreAudit)(container, {
36
+ action: "google_ads.conversion_retraction",
37
+ resourceType: "order",
38
+ resourceId: event.data.id,
39
+ integration: "google-ads",
40
+ actorId: "google-ads-order-canceled",
41
+ status: "error",
42
+ summary: `A Google Ads konverzió-visszavonás nem sikerült: ${message}`,
43
+ });
44
+ }
45
+ }
46
+ exports.config = {
47
+ event: "order.canceled",
48
+ context: { subscriberId: "google-ads-order-canceled" },
49
+ };
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLWFkcy1vcmRlci1jYW5jZWxlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zdWJzY3JpYmVycy9nb29nbGUtYWRzLW9yZGVyLWNhbmNlbGVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQXFCQSx5Q0EwQ0M7QUE5REQscURBQXFFO0FBQ3JFLHNEQUFzRDtBQUN0RCx1RUFJOEM7QUFDOUMsMEVBSXdDO0FBU3pCLEtBQUssVUFBVSxzQkFBc0IsQ0FBQyxFQUNuRCxLQUFLLEVBQ0wsU0FBUyxHQUN5QjtJQUNsQyxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLE1BQU0sQ0FBc0IsQ0FBQTtJQUV2RixJQUFJLENBQUM7UUFDSCxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsT0FBTyxDQUM3QixrREFBMkIsQ0FDVyxDQUFBO1FBQ3hDLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsTUFBTSxJQUFBLHFEQUE4QixFQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsQ0FBQTtRQUNsRixJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBQSx5Q0FBMkIsRUFBQyxHQUFHLENBQUM7WUFBRSxPQUFNO1FBRXpELE1BQU0sTUFBTSxHQUFHLElBQUEsdUNBQXlCLEVBQUMsR0FBRyxDQUFDLENBQUE7UUFDN0MsTUFBTSxJQUFBLGlEQUFtQyxFQUFDLE1BQU0sRUFBRTtZQUNoRCxPQUFPLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3RCLElBQUksRUFBRSxZQUFZO1NBQ25CLENBQUMsQ0FBQTtRQUVGLE1BQU0sSUFBQSwyQkFBYyxFQUFDLFNBQVMsRUFBRTtZQUM5QixNQUFNLEVBQUUsa0NBQWtDO1lBQzFDLFlBQVksRUFBRSxPQUFPO1lBQ3JCLFVBQVUsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDekIsV0FBVyxFQUFFLFlBQVk7WUFDekIsT0FBTyxFQUFFLDJCQUEyQjtZQUNwQyxPQUFPLEVBQUUsbUVBQW1FO1lBQzVFLE9BQU8sRUFBRSxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUU7U0FDMUMsQ0FBQyxDQUFBO1FBQ0YsTUFBTSxDQUFDLElBQUksQ0FBQyxzREFBc0QsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBQ3JGLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsTUFBTSxPQUFPLEdBQUcsS0FBSyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3RFLE1BQU0sQ0FBQyxLQUFLLENBQUMsbURBQW1ELEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLE9BQU8sRUFBRSxDQUFDLENBQUE7UUFDNUYsTUFBTSxJQUFBLDJCQUFjLEVBQUMsU0FBUyxFQUFFO1lBQzlCLE1BQU0sRUFBRSxrQ0FBa0M7WUFDMUMsWUFBWSxFQUFFLE9BQU87WUFDckIsVUFBVSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN6QixXQUFXLEVBQUUsWUFBWTtZQUN6QixPQUFPLEVBQUUsMkJBQTJCO1lBQ3BDLE1BQU0sRUFBRSxPQUFPO1lBQ2YsT0FBTyxFQUFFLG9EQUFvRCxPQUFPLEVBQUU7U0FDdkUsQ0FBQyxDQUFBO0lBQ0osQ0FBQztBQUNILENBQUM7QUFFWSxRQUFBLE1BQU0sR0FBcUI7SUFDdEMsS0FBSyxFQUFFLGdCQUFnQjtJQUN2QixPQUFPLEVBQUUsRUFBRSxZQUFZLEVBQUUsMkJBQTJCLEVBQUU7Q0FDdkQsQ0FBQSJ9
@@ -0,0 +1,7 @@
1
+ import type { SubscriberArgs, SubscriberConfig } from "@medusajs/framework";
2
+ type PaymentRefundedData = {
3
+ id: string;
4
+ };
5
+ export default function googleAdsPaymentRefunded({ event, container, }: SubscriberArgs<PaymentRefundedData>): Promise<void>;
6
+ export declare const config: SubscriberConfig;
7
+ export {};