@easypayment/medusa-payment-paypal 0.7.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (268) hide show
  1. package/.medusa/server/src/admin/index.js +1267 -0
  2. package/.medusa/server/src/admin/index.mjs +1268 -0
  3. package/.medusa/server/src/api/admin/payment-collections/[id]/payment-sessions/route.d.ts +3 -0
  4. package/.medusa/server/src/api/admin/payment-collections/[id]/payment-sessions/route.d.ts.map +1 -0
  5. package/.medusa/server/src/api/admin/payment-collections/[id]/payment-sessions/route.js +18 -0
  6. package/.medusa/server/src/api/admin/payment-collections/[id]/payment-sessions/route.js.map +1 -0
  7. package/.medusa/server/src/api/admin/paypal/disconnect/route.d.ts +3 -0
  8. package/.medusa/server/src/api/admin/paypal/disconnect/route.d.ts.map +1 -0
  9. package/.medusa/server/src/api/admin/paypal/disconnect/route.js +9 -0
  10. package/.medusa/server/src/api/admin/paypal/disconnect/route.js.map +1 -0
  11. package/.medusa/server/src/api/admin/paypal/environment/route.d.ts +4 -0
  12. package/.medusa/server/src/api/admin/paypal/environment/route.d.ts.map +1 -0
  13. package/.medusa/server/src/api/admin/paypal/environment/route.js +23 -0
  14. package/.medusa/server/src/api/admin/paypal/environment/route.js.map +1 -0
  15. package/.medusa/server/src/api/admin/paypal/onboard-complete/route.d.ts +4 -0
  16. package/.medusa/server/src/api/admin/paypal/onboard-complete/route.d.ts.map +1 -0
  17. package/.medusa/server/src/api/admin/paypal/onboard-complete/route.js +31 -0
  18. package/.medusa/server/src/api/admin/paypal/onboard-complete/route.js.map +1 -0
  19. package/.medusa/server/src/api/admin/paypal/onboarding-link/route.d.ts +4 -0
  20. package/.medusa/server/src/api/admin/paypal/onboarding-link/route.d.ts.map +1 -0
  21. package/.medusa/server/src/api/admin/paypal/onboarding-link/route.js +35 -0
  22. package/.medusa/server/src/api/admin/paypal/onboarding-link/route.js.map +1 -0
  23. package/.medusa/server/src/api/admin/paypal/onboarding-status/route.d.ts +3 -0
  24. package/.medusa/server/src/api/admin/paypal/onboarding-status/route.d.ts.map +1 -0
  25. package/.medusa/server/src/api/admin/paypal/onboarding-status/route.js +19 -0
  26. package/.medusa/server/src/api/admin/paypal/onboarding-status/route.js.map +1 -0
  27. package/.medusa/server/src/api/admin/paypal/save-credentials/route.d.ts +3 -0
  28. package/.medusa/server/src/api/admin/paypal/save-credentials/route.d.ts.map +1 -0
  29. package/.medusa/server/src/api/admin/paypal/save-credentials/route.js +17 -0
  30. package/.medusa/server/src/api/admin/paypal/save-credentials/route.js.map +1 -0
  31. package/.medusa/server/src/api/admin/paypal/settings/route.d.ts +4 -0
  32. package/.medusa/server/src/api/admin/paypal/settings/route.d.ts.map +1 -0
  33. package/.medusa/server/src/api/admin/paypal/settings/route.js +14 -0
  34. package/.medusa/server/src/api/admin/paypal/settings/route.js.map +1 -0
  35. package/.medusa/server/src/api/admin/paypal/status/route.d.ts +3 -0
  36. package/.medusa/server/src/api/admin/paypal/status/route.d.ts.map +1 -0
  37. package/.medusa/server/src/api/admin/paypal/status/route.js +11 -0
  38. package/.medusa/server/src/api/admin/paypal/status/route.js.map +1 -0
  39. package/.medusa/server/src/api/middlewares.d.ts +3 -0
  40. package/.medusa/server/src/api/middlewares.d.ts.map +1 -0
  41. package/.medusa/server/src/api/middlewares.js +16 -0
  42. package/.medusa/server/src/api/middlewares.js.map +1 -0
  43. package/.medusa/server/src/api/store/payment-collections/[id]/payment-sessions/route.d.ts +3 -0
  44. package/.medusa/server/src/api/store/payment-collections/[id]/payment-sessions/route.d.ts.map +1 -0
  45. package/.medusa/server/src/api/store/payment-collections/[id]/payment-sessions/route.js +43 -0
  46. package/.medusa/server/src/api/store/payment-collections/[id]/payment-sessions/route.js.map +1 -0
  47. package/.medusa/server/src/api/store/paypal/capture-order/route.d.ts +3 -0
  48. package/.medusa/server/src/api/store/paypal/capture-order/route.d.ts.map +1 -0
  49. package/.medusa/server/src/api/store/paypal/capture-order/route.js +204 -0
  50. package/.medusa/server/src/api/store/paypal/capture-order/route.js.map +1 -0
  51. package/.medusa/server/src/api/store/paypal/config/route.d.ts +3 -0
  52. package/.medusa/server/src/api/store/paypal/config/route.d.ts.map +1 -0
  53. package/.medusa/server/src/api/store/paypal/config/route.js +77 -0
  54. package/.medusa/server/src/api/store/paypal/config/route.js.map +1 -0
  55. package/.medusa/server/src/api/store/paypal/create-order/route.d.ts +3 -0
  56. package/.medusa/server/src/api/store/paypal/create-order/route.d.ts.map +1 -0
  57. package/.medusa/server/src/api/store/paypal/create-order/route.js +361 -0
  58. package/.medusa/server/src/api/store/paypal/create-order/route.js.map +1 -0
  59. package/.medusa/server/src/api/store/paypal/settings/route.d.ts +3 -0
  60. package/.medusa/server/src/api/store/paypal/settings/route.d.ts.map +1 -0
  61. package/.medusa/server/src/api/store/paypal/settings/route.js +20 -0
  62. package/.medusa/server/src/api/store/paypal/settings/route.js.map +1 -0
  63. package/.medusa/server/src/api/store/paypal/webhook/route.d.ts +3 -0
  64. package/.medusa/server/src/api/store/paypal/webhook/route.d.ts.map +1 -0
  65. package/.medusa/server/src/api/store/paypal/webhook/route.js +250 -0
  66. package/.medusa/server/src/api/store/paypal/webhook/route.js.map +1 -0
  67. package/.medusa/server/src/api/store/paypal-complete/route.d.ts +3 -0
  68. package/.medusa/server/src/api/store/paypal-complete/route.d.ts.map +1 -0
  69. package/.medusa/server/src/api/store/paypal-complete/route.js +76 -0
  70. package/.medusa/server/src/api/store/paypal-complete/route.js.map +1 -0
  71. package/.medusa/server/src/index.d.ts +2 -0
  72. package/.medusa/server/src/index.d.ts.map +1 -0
  73. package/.medusa/server/src/index.js +9 -0
  74. package/.medusa/server/src/index.js.map +1 -0
  75. package/.medusa/server/src/jobs/paypal-webhook-retry.d.ts +7 -0
  76. package/.medusa/server/src/jobs/paypal-webhook-retry.d.ts.map +1 -0
  77. package/.medusa/server/src/jobs/paypal-webhook-retry.js +132 -0
  78. package/.medusa/server/src/jobs/paypal-webhook-retry.js.map +1 -0
  79. package/.medusa/server/src/modules/paypal/clients/paypal-seller.client.d.ts +15 -0
  80. package/.medusa/server/src/modules/paypal/clients/paypal-seller.client.d.ts.map +1 -0
  81. package/.medusa/server/src/modules/paypal/clients/paypal-seller.client.js +67 -0
  82. package/.medusa/server/src/modules/paypal/clients/paypal-seller.client.js.map +1 -0
  83. package/.medusa/server/src/modules/paypal/index.d.ts +64 -0
  84. package/.medusa/server/src/modules/paypal/index.d.ts.map +1 -0
  85. package/.medusa/server/src/modules/paypal/index.js +13 -0
  86. package/.medusa/server/src/modules/paypal/index.js.map +1 -0
  87. package/.medusa/server/src/modules/paypal/migrations/20260115120000_create_paypal_connection.d.ts +6 -0
  88. package/.medusa/server/src/modules/paypal/migrations/20260115120000_create_paypal_connection.d.ts.map +1 -0
  89. package/.medusa/server/src/modules/paypal/migrations/20260115120000_create_paypal_connection.js +36 -0
  90. package/.medusa/server/src/modules/paypal/migrations/20260115120000_create_paypal_connection.js.map +1 -0
  91. package/.medusa/server/src/modules/paypal/migrations/20260123090000_create_paypal_settings.d.ts +6 -0
  92. package/.medusa/server/src/modules/paypal/migrations/20260123090000_create_paypal_settings.d.ts.map +1 -0
  93. package/.medusa/server/src/modules/paypal/migrations/20260123090000_create_paypal_settings.js +25 -0
  94. package/.medusa/server/src/modules/paypal/migrations/20260123090000_create_paypal_settings.js.map +1 -0
  95. package/.medusa/server/src/modules/paypal/migrations/20260201090000_create_paypal_webhook_event.d.ts +6 -0
  96. package/.medusa/server/src/modules/paypal/migrations/20260201090000_create_paypal_webhook_event.d.ts.map +1 -0
  97. package/.medusa/server/src/modules/paypal/migrations/20260201090000_create_paypal_webhook_event.js +32 -0
  98. package/.medusa/server/src/modules/paypal/migrations/20260201090000_create_paypal_webhook_event.js.map +1 -0
  99. package/.medusa/server/src/modules/paypal/migrations/20260401090000_create_paypal_metric.d.ts +6 -0
  100. package/.medusa/server/src/modules/paypal/migrations/20260401090000_create_paypal_metric.d.ts.map +1 -0
  101. package/.medusa/server/src/modules/paypal/migrations/20260401090000_create_paypal_metric.js +30 -0
  102. package/.medusa/server/src/modules/paypal/migrations/20260401090000_create_paypal_metric.js.map +1 -0
  103. package/.medusa/server/src/modules/paypal/migrations/20260701090000_add_paypal_webhook_event_processing.d.ts +6 -0
  104. package/.medusa/server/src/modules/paypal/migrations/20260701090000_add_paypal_webhook_event_processing.d.ts.map +1 -0
  105. package/.medusa/server/src/modules/paypal/migrations/20260701090000_add_paypal_webhook_event_processing.js +34 -0
  106. package/.medusa/server/src/modules/paypal/migrations/20260701090000_add_paypal_webhook_event_processing.js.map +1 -0
  107. package/.medusa/server/src/modules/paypal/migrations/20261101090000_remove_paypal_reconciliation_status.d.ts +6 -0
  108. package/.medusa/server/src/modules/paypal/migrations/20261101090000_remove_paypal_reconciliation_status.d.ts.map +1 -0
  109. package/.medusa/server/src/modules/paypal/migrations/20261101090000_remove_paypal_reconciliation_status.js +28 -0
  110. package/.medusa/server/src/modules/paypal/migrations/20261101090000_remove_paypal_reconciliation_status.js.map +1 -0
  111. package/.medusa/server/src/modules/paypal/migrations/20261201090000_remove_paypal_audit_log.d.ts +6 -0
  112. package/.medusa/server/src/modules/paypal/migrations/20261201090000_remove_paypal_audit_log.d.ts.map +1 -0
  113. package/.medusa/server/src/modules/paypal/migrations/20261201090000_remove_paypal_audit_log.js +29 -0
  114. package/.medusa/server/src/modules/paypal/migrations/20261201090000_remove_paypal_audit_log.js.map +1 -0
  115. package/.medusa/server/src/modules/paypal/migrations/20270101090000_set_paypal_environment_default_live.d.ts +6 -0
  116. package/.medusa/server/src/modules/paypal/migrations/20270101090000_set_paypal_environment_default_live.d.ts.map +1 -0
  117. package/.medusa/server/src/modules/paypal/migrations/20270101090000_set_paypal_environment_default_live.js +14 -0
  118. package/.medusa/server/src/modules/paypal/migrations/20270101090000_set_paypal_environment_default_live.js.map +1 -0
  119. package/.medusa/server/src/modules/paypal/migrations/20270102090000_add_paypal_seller_email.d.ts +6 -0
  120. package/.medusa/server/src/modules/paypal/migrations/20270102090000_add_paypal_seller_email.d.ts.map +1 -0
  121. package/.medusa/server/src/modules/paypal/migrations/20270102090000_add_paypal_seller_email.js +14 -0
  122. package/.medusa/server/src/modules/paypal/migrations/20270102090000_add_paypal_seller_email.js.map +1 -0
  123. package/.medusa/server/src/modules/paypal/migrations/20270103090000_add_paypal_seller_merchant_id.d.ts +6 -0
  124. package/.medusa/server/src/modules/paypal/migrations/20270103090000_add_paypal_seller_merchant_id.d.ts.map +1 -0
  125. package/.medusa/server/src/modules/paypal/migrations/20270103090000_add_paypal_seller_merchant_id.js +14 -0
  126. package/.medusa/server/src/modules/paypal/migrations/20270103090000_add_paypal_seller_merchant_id.js.map +1 -0
  127. package/.medusa/server/src/modules/paypal/migrations/20270201000000_add_webhook_dead_letter.d.ts +6 -0
  128. package/.medusa/server/src/modules/paypal/migrations/20270201000000_add_webhook_dead_letter.d.ts.map +1 -0
  129. package/.medusa/server/src/modules/paypal/migrations/20270201000000_add_webhook_dead_letter.js +20 -0
  130. package/.medusa/server/src/modules/paypal/migrations/20270201000000_add_webhook_dead_letter.js.map +1 -0
  131. package/.medusa/server/src/modules/paypal/models/paypal_connection.d.ts +16 -0
  132. package/.medusa/server/src/modules/paypal/models/paypal_connection.d.ts.map +1 -0
  133. package/.medusa/server/src/modules/paypal/models/paypal_connection.js +19 -0
  134. package/.medusa/server/src/modules/paypal/models/paypal_connection.js.map +1 -0
  135. package/.medusa/server/src/modules/paypal/models/paypal_metric.d.ts +7 -0
  136. package/.medusa/server/src/modules/paypal/models/paypal_metric.d.ts.map +1 -0
  137. package/.medusa/server/src/modules/paypal/models/paypal_metric.js +10 -0
  138. package/.medusa/server/src/modules/paypal/models/paypal_metric.js.map +1 -0
  139. package/.medusa/server/src/modules/paypal/models/paypal_settings.d.ts +6 -0
  140. package/.medusa/server/src/modules/paypal/models/paypal_settings.d.ts.map +1 -0
  141. package/.medusa/server/src/modules/paypal/models/paypal_settings.js +9 -0
  142. package/.medusa/server/src/modules/paypal/models/paypal_settings.js.map +1 -0
  143. package/.medusa/server/src/modules/paypal/models/paypal_webhook_event.d.ts +17 -0
  144. package/.medusa/server/src/modules/paypal/models/paypal_webhook_event.d.ts.map +1 -0
  145. package/.medusa/server/src/modules/paypal/models/paypal_webhook_event.js +20 -0
  146. package/.medusa/server/src/modules/paypal/models/paypal_webhook_event.js.map +1 -0
  147. package/.medusa/server/src/modules/paypal/payment-provider/card-service.d.ts +32 -0
  148. package/.medusa/server/src/modules/paypal/payment-provider/card-service.d.ts.map +1 -0
  149. package/.medusa/server/src/modules/paypal/payment-provider/card-service.js +625 -0
  150. package/.medusa/server/src/modules/paypal/payment-provider/card-service.js.map +1 -0
  151. package/.medusa/server/src/modules/paypal/payment-provider/index.d.ts +6 -0
  152. package/.medusa/server/src/modules/paypal/payment-provider/index.d.ts.map +1 -0
  153. package/.medusa/server/src/modules/paypal/payment-provider/index.js +18 -0
  154. package/.medusa/server/src/modules/paypal/payment-provider/index.js.map +1 -0
  155. package/.medusa/server/src/modules/paypal/payment-provider/service.d.ts +39 -0
  156. package/.medusa/server/src/modules/paypal/payment-provider/service.d.ts.map +1 -0
  157. package/.medusa/server/src/modules/paypal/payment-provider/service.js +869 -0
  158. package/.medusa/server/src/modules/paypal/payment-provider/service.js.map +1 -0
  159. package/.medusa/server/src/modules/paypal/payment-provider/webhook-utils.d.ts +3 -0
  160. package/.medusa/server/src/modules/paypal/payment-provider/webhook-utils.d.ts.map +1 -0
  161. package/.medusa/server/src/modules/paypal/payment-provider/webhook-utils.js +74 -0
  162. package/.medusa/server/src/modules/paypal/payment-provider/webhook-utils.js.map +1 -0
  163. package/.medusa/server/src/modules/paypal/service.d.ts +266 -0
  164. package/.medusa/server/src/modules/paypal/service.d.ts.map +1 -0
  165. package/.medusa/server/src/modules/paypal/service.js +1149 -0
  166. package/.medusa/server/src/modules/paypal/service.js.map +1 -0
  167. package/.medusa/server/src/modules/paypal/types/config.d.ts +12 -0
  168. package/.medusa/server/src/modules/paypal/types/config.d.ts.map +1 -0
  169. package/.medusa/server/src/modules/paypal/types/config.js +24 -0
  170. package/.medusa/server/src/modules/paypal/types/config.js.map +1 -0
  171. package/.medusa/server/src/modules/paypal/utils/amounts.d.ts +3 -0
  172. package/.medusa/server/src/modules/paypal/utils/amounts.d.ts.map +1 -0
  173. package/.medusa/server/src/modules/paypal/utils/amounts.js +40 -0
  174. package/.medusa/server/src/modules/paypal/utils/amounts.js.map +1 -0
  175. package/.medusa/server/src/modules/paypal/utils/currencies.d.ts +19 -0
  176. package/.medusa/server/src/modules/paypal/utils/currencies.d.ts.map +1 -0
  177. package/.medusa/server/src/modules/paypal/utils/currencies.js +69 -0
  178. package/.medusa/server/src/modules/paypal/utils/currencies.js.map +1 -0
  179. package/.medusa/server/src/modules/paypal/utils/paypal-auth.d.ts +10 -0
  180. package/.medusa/server/src/modules/paypal/utils/paypal-auth.d.ts.map +1 -0
  181. package/.medusa/server/src/modules/paypal/utils/paypal-auth.js +30 -0
  182. package/.medusa/server/src/modules/paypal/utils/paypal-auth.js.map +1 -0
  183. package/.medusa/server/src/modules/paypal/utils/provider-ids.d.ts +5 -0
  184. package/.medusa/server/src/modules/paypal/utils/provider-ids.d.ts.map +1 -0
  185. package/.medusa/server/src/modules/paypal/utils/provider-ids.js +16 -0
  186. package/.medusa/server/src/modules/paypal/utils/provider-ids.js.map +1 -0
  187. package/.medusa/server/src/modules/paypal/webhook-processor.d.ts +29 -0
  188. package/.medusa/server/src/modules/paypal/webhook-processor.d.ts.map +1 -0
  189. package/.medusa/server/src/modules/paypal/webhook-processor.js +267 -0
  190. package/.medusa/server/src/modules/paypal/webhook-processor.js.map +1 -0
  191. package/.medusa/server/src/providers/paypal/index.d.ts +5 -0
  192. package/.medusa/server/src/providers/paypal/index.d.ts.map +1 -0
  193. package/.medusa/server/src/providers/paypal/index.js +10 -0
  194. package/.medusa/server/src/providers/paypal/index.js.map +1 -0
  195. package/.medusa/server/src/providers/paypal_card/index.d.ts +5 -0
  196. package/.medusa/server/src/providers/paypal_card/index.d.ts.map +1 -0
  197. package/.medusa/server/src/providers/paypal_card/index.js +10 -0
  198. package/.medusa/server/src/providers/paypal_card/index.js.map +1 -0
  199. package/.medusa/server/src/subscribers/paypal-order-invoice.d.ts +6 -0
  200. package/.medusa/server/src/subscribers/paypal-order-invoice.d.ts.map +1 -0
  201. package/.medusa/server/src/subscribers/paypal-order-invoice.js +124 -0
  202. package/.medusa/server/src/subscribers/paypal-order-invoice.js.map +1 -0
  203. package/LICENSE +21 -0
  204. package/README.md +172 -0
  205. package/package.json +80 -0
  206. package/src/admin/index.ts +7 -0
  207. package/src/admin/routes/settings/paypal/_components/Tabs.tsx +48 -0
  208. package/src/admin/routes/settings/paypal/_components/Toast.tsx +51 -0
  209. package/src/admin/routes/settings/paypal/additional-settings/page.tsx +199 -0
  210. package/src/admin/routes/settings/paypal/advanced-card-payments/page.tsx +183 -0
  211. package/src/admin/routes/settings/paypal/apple-pay/page.tsx +5 -0
  212. package/src/admin/routes/settings/paypal/connection/page.tsx +699 -0
  213. package/src/admin/routes/settings/paypal/google-pay/page.tsx +5 -0
  214. package/src/admin/routes/settings/paypal/page.tsx +13 -0
  215. package/src/admin/routes/settings/paypal/pay-later-messaging/page.tsx +5 -0
  216. package/src/admin/routes/settings/paypal/paypal-settings/page.tsx +351 -0
  217. package/src/api/admin/payment-collections/[id]/payment-sessions/route.ts +24 -0
  218. package/src/api/admin/paypal/disconnect/route.ts +8 -0
  219. package/src/api/admin/paypal/environment/route.ts +25 -0
  220. package/src/api/admin/paypal/onboard-complete/route.ts +34 -0
  221. package/src/api/admin/paypal/onboarding-link/route.ts +45 -0
  222. package/src/api/admin/paypal/onboarding-status/route.ts +17 -0
  223. package/src/api/admin/paypal/save-credentials/route.ts +22 -0
  224. package/src/api/admin/paypal/settings/route.ts +14 -0
  225. package/src/api/admin/paypal/status/route.ts +12 -0
  226. package/src/api/middlewares.ts +14 -0
  227. package/src/api/store/payment-collections/[id]/payment-sessions/route.ts +56 -0
  228. package/src/api/store/paypal/capture-order/route.ts +265 -0
  229. package/src/api/store/paypal/config/route.ts +100 -0
  230. package/src/api/store/paypal/create-order/route.ts +449 -0
  231. package/src/api/store/paypal/settings/route.ts +19 -0
  232. package/src/api/store/paypal/webhook/route.ts +325 -0
  233. package/src/api/store/paypal-complete/route.ts +95 -0
  234. package/src/index.ts +1 -0
  235. package/src/jobs/paypal-webhook-retry.ts +149 -0
  236. package/src/modules/paypal/clients/paypal-seller.client.ts +62 -0
  237. package/src/modules/paypal/index.ts +8 -0
  238. package/src/modules/paypal/migrations/20260115120000_create_paypal_connection.ts +33 -0
  239. package/src/modules/paypal/migrations/20260123090000_create_paypal_settings.ts +22 -0
  240. package/src/modules/paypal/migrations/20260201090000_create_paypal_webhook_event.ts +29 -0
  241. package/src/modules/paypal/migrations/20260401090000_create_paypal_metric.ts +27 -0
  242. package/src/modules/paypal/migrations/20260701090000_add_paypal_webhook_event_processing.ts +31 -0
  243. package/src/modules/paypal/migrations/20261101090000_remove_paypal_reconciliation_status.ts +25 -0
  244. package/src/modules/paypal/migrations/20261201090000_remove_paypal_audit_log.ts +26 -0
  245. package/src/modules/paypal/migrations/20270101090000_set_paypal_environment_default_live.ts +11 -0
  246. package/src/modules/paypal/migrations/20270102090000_add_paypal_seller_email.ts +11 -0
  247. package/src/modules/paypal/migrations/20270103090000_add_paypal_seller_merchant_id.ts +11 -0
  248. package/src/modules/paypal/migrations/20270201000000_add_webhook_dead_letter.ts +17 -0
  249. package/src/modules/paypal/models/paypal_connection.ts +23 -0
  250. package/src/modules/paypal/models/paypal_metric.ts +9 -0
  251. package/src/modules/paypal/models/paypal_settings.ts +8 -0
  252. package/src/modules/paypal/models/paypal_webhook_event.ts +19 -0
  253. package/src/modules/paypal/payment-provider/README.md +22 -0
  254. package/src/modules/paypal/payment-provider/card-service.ts +767 -0
  255. package/src/modules/paypal/payment-provider/index.ts +15 -0
  256. package/src/modules/paypal/payment-provider/service.ts +1039 -0
  257. package/src/modules/paypal/payment-provider/webhook-utils.ts +88 -0
  258. package/src/modules/paypal/service.ts +1416 -0
  259. package/src/modules/paypal/types/config.ts +33 -0
  260. package/src/modules/paypal/utils/amounts.ts +41 -0
  261. package/src/modules/paypal/utils/currencies.ts +84 -0
  262. package/src/modules/paypal/utils/paypal-auth.ts +31 -0
  263. package/src/modules/paypal/utils/provider-ids.ts +15 -0
  264. package/src/modules/paypal/webhook-processor.ts +363 -0
  265. package/src/providers/paypal/index.ts +8 -0
  266. package/src/providers/paypal_card/index.ts +8 -0
  267. package/src/subscribers/paypal-order-invoice.ts +171 -0
  268. package/tsconfig.json +31 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route.js","sourceRoot":"","sources":["../../../../../../../src/api/store/paypal/capture-order/route.ts"],"names":[],"mappings":"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"}
@@ -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
+ //# sourceMappingURL=route.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../../src/api/store/paypal/config/route.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAQ7E,wBAAsB,GAAG,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,cAAc,2BA2FhE"}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GET = GET;
4
+ const currencies_1 = require("../../../../modules/paypal/utils/currencies");
5
+ async function GET(req, res) {
6
+ const paypal = req.scope.resolve("paypal_onboarding");
7
+ try {
8
+ const creds = await paypal.getActiveCredentials();
9
+ const apiDetails = await paypal.getApiDetails().catch(() => null);
10
+ const client_token = await paypal.generateClientToken({ locale: "en_US" }).catch(() => "");
11
+ const cartId = req.query?.cart_id || "";
12
+ const query = req.scope.resolve("query");
13
+ let currency = (0, currencies_1.normalizeCurrencyCode)(apiDetails?.apiDetails?.currency_code || process.env.PAYPAL_CURRENCY || "EUR");
14
+ if (cartId) {
15
+ const { data: carts } = await query.graph({
16
+ entity: "cart",
17
+ fields: ["id", "currency_code", "region.currency_code"],
18
+ filters: { id: cartId },
19
+ });
20
+ const cart = carts?.[0];
21
+ if (cart) {
22
+ currency = (0, currencies_1.normalizeCurrencyCode)(cart.region?.currency_code || cart.currency_code || currency);
23
+ }
24
+ }
25
+ const compatibility = (0, currencies_1.getPayPalCurrencyCompatibility)({
26
+ currencyCode: currency,
27
+ paypalCurrencyOverride: apiDetails?.apiDetails?.currency_code || process.env.PAYPAL_CURRENCY,
28
+ });
29
+ const settings = await paypal.getSettings().catch(() => ({}));
30
+ const data = settings && typeof settings === "object" && "data" in settings
31
+ ? (settings.data || {})
32
+ : {};
33
+ const additionalSettings = data && typeof data === "object"
34
+ ? (data.additional_settings || {})
35
+ : {};
36
+ const paypalSettings = data && typeof data === "object"
37
+ ? (data.paypal_settings || {})
38
+ : {};
39
+ const paymentAction = typeof additionalSettings.paymentAction === "string"
40
+ ? additionalSettings.paymentAction
41
+ : "capture";
42
+ if (paypalSettings.enabled === false) {
43
+ return res.status(403).json({ message: "PayPal is currently disabled." });
44
+ }
45
+ const advancedCardSettings = data && typeof data === "object"
46
+ ? (data.advanced_card_payments || {})
47
+ : {};
48
+ const cardEnabled = advancedCardSettings.enabled !== false;
49
+ const cardThreeDS = typeof advancedCardSettings.threeDS === "string"
50
+ ? advancedCardSettings.threeDS
51
+ : "when_required";
52
+ return res.json({
53
+ environment: creds.environment,
54
+ client_id: creds.client_id,
55
+ currency: compatibility.currency,
56
+ currency_supported: compatibility.supported,
57
+ currency_errors: compatibility.errors,
58
+ supported_currencies: (0, currencies_1.getPayPalSupportedCurrencies)(),
59
+ client_token,
60
+ intent: paymentAction,
61
+ paypal_enabled: paypalSettings.enabled ?? true,
62
+ paypal_title: paypalSettings.title || "PayPal",
63
+ card_enabled: cardEnabled,
64
+ card_title: advancedCardSettings.title || "Credit or Debit Card",
65
+ card_three_ds: cardThreeDS,
66
+ button_color: paypalSettings.buttonColor || "gold",
67
+ button_shape: paypalSettings.buttonShape || "rect",
68
+ button_width: paypalSettings.buttonWidth || "responsive",
69
+ button_height: paypalSettings.buttonHeight ?? 45,
70
+ button_label: paypalSettings.buttonLabel || "paypal",
71
+ });
72
+ }
73
+ catch (e) {
74
+ return res.status(500).json({ message: e?.message || "Failed to load PayPal config" });
75
+ }
76
+ }
77
+ //# sourceMappingURL=route.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route.js","sourceRoot":"","sources":["../../../../../../../src/api/store/paypal/config/route.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { MedusaRequest, MedusaResponse } from "@medusajs/framework/http";
2
+ export declare function POST(req: MedusaRequest, res: MedusaResponse): Promise<MedusaResponse>;
3
+ //# sourceMappingURL=route.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../../src/api/store/paypal/create-order/route.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAwG7E,wBAAsB,IAAI,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,cAAc,2BAwVjE"}
@@ -0,0 +1,361 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.POST = POST;
4
+ const crypto_1 = require("crypto");
5
+ const amounts_1 = require("../../../../modules/paypal/utils/amounts");
6
+ const currencies_1 = require("../../../../modules/paypal/utils/currencies");
7
+ const paypal_auth_1 = require("../../../../modules/paypal/utils/paypal-auth");
8
+ const provider_ids_1 = require("../../../../modules/paypal/utils/provider-ids");
9
+ const BN_CODE = "MBJTechnolabs_SI_SPB";
10
+ function resolveIdempotencyKey(req, suffix, fallback) {
11
+ const header = req.headers["idempotency-key"] ||
12
+ req.headers["Idempotency-Key"] ||
13
+ req.headers["x-idempotency-key"] ||
14
+ req.headers["X-Idempotency-Key"];
15
+ const key = Array.isArray(header) ? header[0] : header;
16
+ if (key && String(key).trim()) {
17
+ return `${String(key).trim()}-${suffix}`;
18
+ }
19
+ return fallback || `pp-${suffix}-${(0, crypto_1.randomUUID)()}`;
20
+ }
21
+ async function attachPayPalOrderToSession(req, cartId, orderId) {
22
+ try {
23
+ const paymentCollectionService = req.scope.resolve("payment_collection");
24
+ const paymentSessionService = req.scope.resolve("payment_session");
25
+ const pc = await paymentCollectionService.retrieveByCartId(cartId).catch(() => null);
26
+ if (!pc?.id) {
27
+ return;
28
+ }
29
+ const sessions = await paymentSessionService.list({ payment_collection_id: pc.id });
30
+ const paypalSession = sessions?.find((s) => (0, provider_ids_1.isPayPalProviderId)(s.provider_id));
31
+ if (!paypalSession) {
32
+ return;
33
+ }
34
+ await paymentSessionService.update(paypalSession.id, {
35
+ amount: paypalSession.amount,
36
+ data: {
37
+ ...(paypalSession.data || {}),
38
+ paypal: {
39
+ ...((paypalSession.data || {}).paypal || {}),
40
+ order_id: orderId,
41
+ },
42
+ },
43
+ });
44
+ }
45
+ catch {
46
+ }
47
+ }
48
+ async function getExistingPayPalOrderId(req, cartId) {
49
+ try {
50
+ const paymentCollectionService = req.scope.resolve("payment_collection");
51
+ const paymentSessionService = req.scope.resolve("payment_session");
52
+ const pc = await paymentCollectionService.retrieveByCartId(cartId).catch(() => null);
53
+ if (!pc?.id) {
54
+ return null;
55
+ }
56
+ const sessions = await paymentSessionService.list({ payment_collection_id: pc.id });
57
+ const paypalSession = sessions?.find((s) => (0, provider_ids_1.isPayPalProviderId)(s.provider_id));
58
+ if (!paypalSession) {
59
+ return null;
60
+ }
61
+ const paypalData = (paypalSession.data || {}).paypal || {};
62
+ return paypalData.order_id ? String(paypalData.order_id) : null;
63
+ }
64
+ catch {
65
+ return null;
66
+ }
67
+ }
68
+ function resolveReturnUrl(req) {
69
+ const configured = process.env.STOREFRONT_URL || process.env.STORE_URL;
70
+ if (!configured) {
71
+ return undefined;
72
+ }
73
+ return `${configured.replace(/\/$/, "")}/checkout`;
74
+ }
75
+ function resolveCancelUrl(req) {
76
+ const configured = process.env.STOREFRONT_URL || process.env.STORE_URL;
77
+ if (!configured) {
78
+ return undefined;
79
+ }
80
+ return `${configured.replace(/\/$/, "")}/cart`;
81
+ }
82
+ async function POST(req, res) {
83
+ const paypal = req.scope.resolve("paypal_onboarding");
84
+ let debugId = null;
85
+ try {
86
+ const body = (req.body || {});
87
+ const cartId = body.cart_id;
88
+ const isCardPayment = !!body.is_card_payment;
89
+ if (!cartId) {
90
+ return res.status(400).json({ message: "cart_id is required" });
91
+ }
92
+ const existingOrderId = await getExistingPayPalOrderId(req, cartId);
93
+ if (existingOrderId) {
94
+ return res.json({ id: existingOrderId });
95
+ }
96
+ const query = req.scope.resolve("query");
97
+ const { data } = await query.graph({
98
+ entity: "cart",
99
+ fields: [
100
+ "id",
101
+ "total",
102
+ "subtotal",
103
+ "shipping_total",
104
+ "tax_total",
105
+ "discount_total",
106
+ "gift_card_total",
107
+ "currency_code",
108
+ "region.currency_code",
109
+ "items.title",
110
+ "items.quantity",
111
+ "items.unit_price",
112
+ "items.subtotal",
113
+ "items.tax_total",
114
+ "items.total",
115
+ ],
116
+ filters: { id: cartId },
117
+ });
118
+ const cart = data?.[0] || null;
119
+ if (!cart) {
120
+ return res.status(404).json({ message: "Cart not found" });
121
+ }
122
+ const creds = await paypal.getActiveCredentials();
123
+ const settings = await paypal
124
+ .getSettings()
125
+ .catch(() => ({}));
126
+ const settingsData = (settings.data || {});
127
+ const additionalSettings = settingsData.additional_settings || {};
128
+ const apiDetails = settingsData.api_details || {};
129
+ const advancedCardSettings = (settingsData.advanced_card_payments || {});
130
+ const threeDsRaw = typeof advancedCardSettings.threeDS === "string"
131
+ ? advancedCardSettings.threeDS
132
+ : "when_required";
133
+ const threeDsMethod = isCardPayment
134
+ ? (threeDsRaw === "always"
135
+ ? "SCA_ALWAYS"
136
+ : "SCA_WHEN_REQUIRED")
137
+ : null;
138
+ const configuredCurrency = typeof apiDetails.currency_code === "string"
139
+ ? (0, currencies_1.normalizeCurrencyCode)(apiDetails.currency_code)
140
+ : (0, currencies_1.normalizeCurrencyCode)(process.env.PAYPAL_CURRENCY || "EUR");
141
+ const currency = (0, currencies_1.normalizeCurrencyCode)(cart.region?.currency_code || cart.currency_code || configuredCurrency);
142
+ (0, currencies_1.assertPayPalCurrencySupported)({
143
+ currencyCode: currency,
144
+ paypalCurrencyOverride: configuredCurrency,
145
+ });
146
+ const exponent = (0, amounts_1.getCurrencyExponent)(currency);
147
+ const totalMajor = Number(cart.total || 0);
148
+ const value = totalMajor.toFixed(exponent);
149
+ const paymentActionRaw = typeof additionalSettings.paymentAction === "string"
150
+ ? additionalSettings.paymentAction
151
+ : "capture";
152
+ const paymentAction = paymentActionRaw === "authorize" ? "AUTHORIZE" : "CAPTURE";
153
+ const brandName = typeof additionalSettings.brandName === "string"
154
+ ? additionalSettings.brandName
155
+ : undefined;
156
+ const landingPageRaw = typeof additionalSettings.landingPage === "string"
157
+ ? additionalSettings.landingPage
158
+ : undefined;
159
+ const landingPage = landingPageRaw === "login"
160
+ ? "LOGIN"
161
+ : landingPageRaw === "billing"
162
+ ? "BILLING"
163
+ : landingPageRaw === "no_preference"
164
+ ? "NO_PREFERENCE"
165
+ : undefined;
166
+ const requireInstantPayment = typeof additionalSettings.requireInstantPayment === "boolean"
167
+ ? additionalSettings.requireInstantPayment
168
+ : undefined;
169
+ const sendItemDetails = additionalSettings.sendItemDetails !== false;
170
+ const statementName = typeof additionalSettings.creditCardStatementName === "string"
171
+ ? additionalSettings.creditCardStatementName.trim()
172
+ : "";
173
+ const invoicePrefix = typeof additionalSettings.invoicePrefix === "string"
174
+ ? additionalSettings.invoicePrefix
175
+ : "";
176
+ const cartIdSuffix = cart.id.slice(-12).toUpperCase();
177
+ const invoiceId = `${invoicePrefix}${cartIdSuffix}`.trim() || cart.id;
178
+ const returnUrl = (typeof apiDetails.storefront_url === "string" && apiDetails.storefront_url.trim()
179
+ ? `${apiDetails.storefront_url.replace(/\/$/, "")}/checkout`
180
+ : resolveReturnUrl(req));
181
+ const cancelUrl = (typeof apiDetails.storefront_url === "string" && apiDetails.storefront_url.trim()
182
+ ? `${apiDetails.storefront_url.replace(/\/$/, "")}/cart`
183
+ : resolveCancelUrl(req));
184
+ const applicationContext = {
185
+ ...(brandName ? { brand_name: brandName } : {}),
186
+ ...(landingPage ? { landing_page: landingPage } : {}),
187
+ ...(requireInstantPayment ? { payment_method_preference: "IMMEDIATE_PAYMENT_REQUIRED" } : {}),
188
+ ...(returnUrl ? { return_url: returnUrl } : {}),
189
+ ...(cancelUrl ? { cancel_url: cancelUrl } : {}),
190
+ };
191
+ const subtotalMajor = Number(cart.subtotal || 0);
192
+ const shippingMajor = Number(cart.shipping_total || 0);
193
+ const taxMajor = Number(cart.tax_total || 0);
194
+ const discountMajor = Number(cart.discount_total || 0);
195
+ const giftCardMajor = Number(cart.gift_card_total || 0);
196
+ const lineItems = Array.isArray(cart.items) ? cart.items : [];
197
+ const purchaseItemsRaw = sendItemDetails
198
+ ? lineItems
199
+ .map((item) => {
200
+ const quantity = Number(item?.quantity || 0);
201
+ const lineSubtotalMajor = Number(item?.subtotal ?? (Number(item?.unit_price || 0) * quantity));
202
+ const unitAmount = quantity > 0 ? parseFloat((lineSubtotalMajor / quantity).toFixed(exponent)) : 0;
203
+ if (!quantity || Number.isNaN(quantity) || Number.isNaN(unitAmount)) {
204
+ return null;
205
+ }
206
+ return {
207
+ quantity,
208
+ unitAmount,
209
+ paypalItem: {
210
+ name: String(item?.title || "Item").slice(0, 127),
211
+ quantity: String(Math.max(1, quantity)),
212
+ unit_amount: {
213
+ currency_code: currency,
214
+ value: unitAmount.toFixed(exponent),
215
+ },
216
+ },
217
+ };
218
+ })
219
+ .filter(Boolean)
220
+ : [];
221
+ const roundedItemSum = purchaseItemsRaw.reduce((sum, item) => sum + item.unitAmount * item.quantity, 0);
222
+ const roundedItemSumFixed = parseFloat(roundedItemSum.toFixed(exponent));
223
+ const adjustedItemTotal = roundedItemSumFixed;
224
+ const diff = parseFloat((adjustedItemTotal - roundedItemSumFixed).toFixed(exponent));
225
+ const finalPurchaseItems = purchaseItemsRaw.map((item) => item.paypalItem);
226
+ if (Math.abs(diff) > 0.000001 && sendItemDetails && finalPurchaseItems.length > 0) {
227
+ finalPurchaseItems.push({
228
+ name: "Line Item Amount Offset",
229
+ quantity: "1",
230
+ unit_amount: {
231
+ currency_code: currency,
232
+ value: diff.toFixed(exponent),
233
+ },
234
+ });
235
+ }
236
+ const breakdown = {};
237
+ if (adjustedItemTotal > 0) {
238
+ breakdown.item_total = {
239
+ currency_code: currency,
240
+ value: adjustedItemTotal.toFixed(exponent),
241
+ };
242
+ }
243
+ if (shippingMajor > 0) {
244
+ breakdown.shipping = {
245
+ currency_code: currency,
246
+ value: shippingMajor.toFixed(exponent),
247
+ };
248
+ }
249
+ if (taxMajor > 0) {
250
+ breakdown.tax_total = {
251
+ currency_code: currency,
252
+ value: taxMajor.toFixed(exponent),
253
+ };
254
+ }
255
+ const discountValue = discountMajor + giftCardMajor;
256
+ if (discountValue > 0 && finalPurchaseItems.length > 0) {
257
+ breakdown.discount = {
258
+ currency_code: currency,
259
+ value: discountValue.toFixed(exponent),
260
+ };
261
+ }
262
+ const breakdownSum = parseFloat((adjustedItemTotal + shippingMajor + taxMajor - discountValue).toFixed(exponent));
263
+ if (Math.abs(breakdownSum - totalMajor) > 0.000001) {
264
+ const gap = parseFloat((totalMajor - breakdownSum).toFixed(exponent));
265
+ if (gap > 0) {
266
+ breakdown.tax_total = {
267
+ currency_code: currency,
268
+ value: parseFloat(((Number(breakdown.tax_total?.value || 0) + gap).toFixed(exponent))).toFixed(exponent),
269
+ };
270
+ }
271
+ else {
272
+ breakdown.shipping_discount = {
273
+ currency_code: currency,
274
+ value: Math.abs(gap).toFixed(exponent),
275
+ };
276
+ }
277
+ }
278
+ const { accessToken, base } = await (0, paypal_auth_1.getPayPalAccessToken)({
279
+ environment: creds.environment,
280
+ client_id: creds.client_id,
281
+ client_secret: creds.client_secret,
282
+ });
283
+ const requestId = resolveIdempotencyKey(req, "create-order", `pp-create-${cart.id}`);
284
+ const ppResp = await fetch(`${base}/v2/checkout/orders`, {
285
+ method: "POST",
286
+ headers: {
287
+ Authorization: `Bearer ${accessToken}`,
288
+ "Content-Type": "application/json",
289
+ "PayPal-Request-Id": requestId,
290
+ "PayPal-Partner-Attribution-Id": BN_CODE,
291
+ },
292
+ body: JSON.stringify({
293
+ intent: paymentAction,
294
+ purchase_units: [
295
+ {
296
+ reference_id: "default",
297
+ invoice_id: invoiceId,
298
+ ...(statementName ? { soft_descriptor: statementName.slice(0, 22) } : {}),
299
+ amount: {
300
+ currency_code: currency,
301
+ value,
302
+ ...(Object.keys(breakdown).length > 0 ? { breakdown } : {}),
303
+ },
304
+ ...(finalPurchaseItems.length > 0 ? { items: finalPurchaseItems } : {}),
305
+ },
306
+ ],
307
+ ...(threeDsMethod
308
+ ? {
309
+ payment_source: {
310
+ card: {
311
+ attributes: {
312
+ verification: {
313
+ method: threeDsMethod,
314
+ },
315
+ },
316
+ },
317
+ },
318
+ }
319
+ : {}),
320
+ custom_id: cart.id,
321
+ ...(Object.keys(applicationContext).length > 0
322
+ ? { application_context: applicationContext }
323
+ : {}),
324
+ }),
325
+ });
326
+ const ppText = await ppResp.text();
327
+ debugId = ppResp.headers.get("paypal-debug-id");
328
+ if (!ppResp.ok) {
329
+ throw new Error(`PayPal create order error (${ppResp.status}): ${ppText}${debugId ? ` debug_id=${debugId}` : ""}`);
330
+ }
331
+ const order = JSON.parse(ppText);
332
+ await attachPayPalOrderToSession(req, cart.id, order.id);
333
+ try {
334
+ await paypal.recordMetric("create_order_success");
335
+ }
336
+ catch {
337
+ }
338
+ return res.json({ id: order.id });
339
+ }
340
+ catch (e) {
341
+ try {
342
+ const body = (req.body || {});
343
+ await paypal.recordAuditEvent("create_order_failed", {
344
+ cart_id: body.cart_id,
345
+ debug_id: debugId,
346
+ message: e?.message || String(e),
347
+ });
348
+ await paypal.recordMetric("create_order_failed");
349
+ }
350
+ catch {
351
+ }
352
+ const message = e?.message || "Failed to create PayPal order";
353
+ const status = message.includes("PayPal does not support currency")
354
+ ? 400
355
+ : message.includes("PayPal is configured for")
356
+ ? 400
357
+ : 500;
358
+ return res.status(status).json({ message });
359
+ }
360
+ }
361
+ //# sourceMappingURL=route.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route.js","sourceRoot":"","sources":["../../../../../../../src/api/store/paypal/create-order/route.ts"],"names":[],"mappings":"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"}
@@ -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
+ //# sourceMappingURL=route.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../../src/api/store/paypal/settings/route.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAG7E,wBAAsB,GAAG,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,cAAc,2BAehE"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GET = GET;
4
+ async function GET(req, res) {
5
+ const paypal = req.scope.resolve("paypal_onboarding");
6
+ try {
7
+ const settings = await paypal.getSettings();
8
+ const data = (settings?.data || {});
9
+ const additionalSettings = (data.additional_settings || {});
10
+ const advancedCard = (data.advanced_card_payments || {});
11
+ return res.json({
12
+ paymentAction: additionalSettings.paymentAction === "authorize" ? "authorize" : "capture",
13
+ advancedCardEnabled: advancedCard.enabled === true,
14
+ });
15
+ }
16
+ catch (e) {
17
+ return res.status(500).json({ message: e?.message || "Failed to load PayPal settings" });
18
+ }
19
+ }
20
+ //# sourceMappingURL=route.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route.js","sourceRoot":"","sources":["../../../../../../../src/api/store/paypal/settings/route.ts"],"names":[],"mappings":";;AAGA,kBAeC;AAfM,KAAK,UAAU,GAAG,CAAC,GAAkB,EAAE,GAAmB;IAC/D,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAsB,mBAAmB,CAAC,CAAA;IAC1E,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,WAAW,EAAE,CAAA;QAC3C,MAAM,IAAI,GAAG,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAwB,CAAA;QAC1D,MAAM,kBAAkB,GAAG,CAAC,IAAI,CAAC,mBAAmB,IAAI,EAAE,CAAwB,CAAA;QAClF,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,sBAAsB,IAAI,EAAE,CAAwB,CAAA;QAE/E,OAAO,GAAG,CAAC,IAAI,CAAC;YACd,aAAa,EAAE,kBAAkB,CAAC,aAAa,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;YACzF,mBAAmB,EAAE,YAAY,CAAC,OAAO,KAAK,IAAI;SACnD,CAAC,CAAA;IACJ,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,IAAI,gCAAgC,EAAE,CAAC,CAAA;IAC1F,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { MedusaRequest, MedusaResponse } from "@medusajs/framework/http";
2
+ export declare function POST(req: MedusaRequest, res: MedusaResponse): Promise<MedusaResponse>;
3
+ //# sourceMappingURL=route.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../../src/api/store/paypal/webhook/route.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAgL7E,wBAAsB,IAAI,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,cAAc,2BAoJjE"}