@teleporthq/teleport-plugin-next-workflows 0.43.67 → 0.43.69

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 (787) hide show
  1. package/__tests__/_helpers/bind-workflow-utils.ts +16 -1
  2. package/__tests__/_helpers/fake-fetch.ts +96 -0
  3. package/__tests__/_helpers/fake-stripe.ts +52 -0
  4. package/__tests__/_helpers/load-handler.ts +22 -3
  5. package/__tests__/_helpers/load-invoice-route.ts +75 -0
  6. package/__tests__/_helpers/load-payment-drivers.ts +69 -0
  7. package/__tests__/_helpers/load-server-runtime.ts +33 -0
  8. package/__tests__/_helpers/run-generated-middleware.ts +50 -9
  9. package/__tests__/admin-form-hydration-target.test.ts +39 -0
  10. package/__tests__/admin-form-row-hydration.test.ts +58 -0
  11. package/__tests__/ai-select-database-data-handler.test.ts +14 -3
  12. package/__tests__/api-route-file-name-segments.test.ts +33 -0
  13. package/__tests__/app-secret-env.test.ts +55 -0
  14. package/__tests__/auth-env-secret-preservation.test.ts +22 -3
  15. package/__tests__/auth-nextauth-url.test.ts +134 -50
  16. package/__tests__/cart-add-item-kinds.test.ts +259 -0
  17. package/__tests__/cart-add-item-line-fields.test.ts +328 -0
  18. package/__tests__/cart-availability-add-to-cart.test.ts +108 -0
  19. package/__tests__/cart-get-total-discounts.test.ts +499 -0
  20. package/__tests__/cart-get-total-product-options.test.ts +195 -0
  21. package/__tests__/cart-get-total-subscriptions.test.ts +221 -0
  22. package/__tests__/cart-price-order.test.ts +283 -0
  23. package/__tests__/cart-update-item-quantity-recurring.test.ts +75 -0
  24. package/__tests__/client-loop-current-item.test.ts +164 -0
  25. package/__tests__/cron-route-loop-custom-node.test.ts +123 -0
  26. package/__tests__/cron-route-loop-templateparams.test.ts +7 -0
  27. package/__tests__/cron-route-verification.test.ts +252 -0
  28. package/__tests__/custom-js-runtime-base-url.test.ts +64 -0
  29. package/__tests__/custom-nodes-admin-module.test.ts +310 -0
  30. package/__tests__/data-api-browser-reads.test.ts +341 -0
  31. package/__tests__/data-api-low-stock-autofire.test.ts +67 -17
  32. package/__tests__/data-api-optional-feature-columns.test.ts +240 -0
  33. package/__tests__/data-api-protected-tables.test.ts +948 -0
  34. package/__tests__/data-node-not-awaited.test.ts +7 -3
  35. package/__tests__/data-write-missing-filter.test.ts +119 -0
  36. package/__tests__/ecommerce-rewriter-product-options.test.ts +143 -0
  37. package/__tests__/email-locale-senders.test.ts +1 -1
  38. package/__tests__/file-storage-upload-picked-files.test.ts +20 -0
  39. package/__tests__/input-debounce-per-field.test.ts +141 -0
  40. package/__tests__/internal-request-headers.test.ts +7 -3
  41. package/__tests__/invoice-data-access-replace.test.ts +340 -0
  42. package/__tests__/invoice-delivery-fee.test.ts +3 -2
  43. package/__tests__/invoice-generate-hydration.test.ts +20 -12
  44. package/__tests__/invoice-order-items-settle.test.ts +51 -46
  45. package/__tests__/invoice-product-options.test.ts +177 -0
  46. package/__tests__/invoice-regenerate-route.test.ts +488 -0
  47. package/__tests__/invoice-regional-tax.test.ts +3 -2
  48. package/__tests__/invoice-reservation.test.ts +195 -0
  49. package/__tests__/invoice-route-access.test.ts +275 -0
  50. package/__tests__/invoice-self-call-origin.test.ts +117 -0
  51. package/__tests__/invoice-tender.test.ts +550 -0
  52. package/__tests__/legacy-webhook-self-calls.test.ts +187 -0
  53. package/__tests__/locale-aware-redirects.test.ts +55 -26
  54. package/__tests__/loop-collection-unwrap.test.ts +6 -1
  55. package/__tests__/middleware-subscriber-access.test.ts +269 -0
  56. package/__tests__/payment-charge-user-earlier-attempt.test.ts +267 -0
  57. package/__tests__/payment-charge-user-handler-serialization.test.ts +47 -82
  58. package/__tests__/payment-charge-user-line-descriptions.test.ts +124 -0
  59. package/__tests__/payment-charge-user-report-refusal.test.ts +105 -0
  60. package/__tests__/payment-close-checkout-node.test.ts +127 -0
  61. package/__tests__/payment-driver-close-checkout.test.ts +1163 -0
  62. package/__tests__/payment-driver-coingate.test.ts +470 -0
  63. package/__tests__/payment-driver-inspect-checkout.test.ts +648 -0
  64. package/__tests__/payment-driver-mollie.test.ts +864 -0
  65. package/__tests__/payment-driver-paddle.test.ts +870 -0
  66. package/__tests__/payment-driver-paypal-capture.test.ts +158 -0
  67. package/__tests__/payment-driver-paypal-webhook.test.ts +367 -0
  68. package/__tests__/payment-driver-razorpay.test.ts +895 -0
  69. package/__tests__/payment-driver-square.test.ts +977 -0
  70. package/__tests__/payment-driver-stripe.test.ts +267 -0
  71. package/__tests__/payment-drivers-module.test.ts +429 -0
  72. package/__tests__/payment-legacy-webhook-routes.test.ts +588 -0
  73. package/__tests__/payment-redirect-and-order-notification.test.ts +98 -39
  74. package/__tests__/payment-refund.test.ts +523 -22
  75. package/__tests__/payment-subscription-nodes.test.ts +1360 -0
  76. package/__tests__/payment-webhook-route.test.ts +523 -0
  77. package/__tests__/paypal-webhook-signature-verification.test.ts +205 -0
  78. package/__tests__/prune-context-oversized-leaf.test.ts +1 -0
  79. package/__tests__/prune-context-state-keys.test.ts +89 -0
  80. package/__tests__/push-node-handlers.test.ts +291 -0
  81. package/__tests__/route-changed-trigger.test.ts +40 -0
  82. package/__tests__/runtime-storage-upload-access.test.ts +255 -0
  83. package/__tests__/security-runtime-shadow.test.ts +103 -1
  84. package/__tests__/segment-reply-changed-keys.test.ts +146 -0
  85. package/__tests__/segment-state-keys-emission.test.ts +185 -0
  86. package/__tests__/segment-state-needs.test.ts +102 -0
  87. package/__tests__/server-segment-context-integrity.test.ts +210 -0
  88. package/__tests__/server-step-signing.test.ts +371 -0
  89. package/__tests__/session-cookie-resolver.test.ts +59 -0
  90. package/__tests__/stock-decrement-audit.test.ts +17 -0
  91. package/__tests__/subscriber-access-route.test.ts +406 -0
  92. package/__tests__/webhook-delivery-lease.test.ts +316 -0
  93. package/__tests__/workflow-auth-guard.test.ts +253 -2
  94. package/dist/cjs/admin-form-hydration.d.ts +10 -0
  95. package/dist/cjs/admin-form-hydration.d.ts.map +1 -0
  96. package/dist/cjs/admin-form-hydration.js +25 -0
  97. package/dist/cjs/admin-form-hydration.js.map +1 -0
  98. package/dist/cjs/api-route-generator.d.ts +19 -3
  99. package/dist/cjs/api-route-generator.d.ts.map +1 -1
  100. package/dist/cjs/api-route-generator.js +190 -70
  101. package/dist/cjs/api-route-generator.js.map +1 -1
  102. package/dist/cjs/auth-generator.d.ts +4 -1
  103. package/dist/cjs/auth-generator.d.ts.map +1 -1
  104. package/dist/cjs/auth-generator.js +241 -62
  105. package/dist/cjs/auth-generator.js.map +1 -1
  106. package/dist/cjs/auth-return/signed-in-destination-code.d.ts +17 -0
  107. package/dist/cjs/auth-return/signed-in-destination-code.d.ts.map +1 -0
  108. package/dist/cjs/auth-return/signed-in-destination-code.js +37 -0
  109. package/dist/cjs/auth-return/signed-in-destination-code.js.map +1 -0
  110. package/dist/cjs/cart-pricing-preamble.d.ts +12 -0
  111. package/dist/cjs/cart-pricing-preamble.d.ts.map +1 -0
  112. package/dist/cjs/cart-pricing-preamble.js +23 -0
  113. package/dist/cjs/cart-pricing-preamble.js.map +1 -0
  114. package/dist/cjs/cron-request-verification.d.ts +24 -0
  115. package/dist/cjs/cron-request-verification.d.ts.map +1 -0
  116. package/dist/cjs/cron-request-verification.js +84 -0
  117. package/dist/cjs/cron-request-verification.js.map +1 -0
  118. package/dist/cjs/custom-node-modules.d.ts +30 -0
  119. package/dist/cjs/custom-node-modules.d.ts.map +1 -0
  120. package/dist/cjs/custom-node-modules.js +90 -0
  121. package/dist/cjs/custom-node-modules.js.map +1 -0
  122. package/dist/cjs/data-api-route-generator.d.ts +27 -0
  123. package/dist/cjs/data-api-route-generator.d.ts.map +1 -1
  124. package/dist/cjs/data-api-route-generator.js +366 -29
  125. package/dist/cjs/data-api-route-generator.js.map +1 -1
  126. package/dist/cjs/ecommerce/cart-availability.d.ts.map +1 -1
  127. package/dist/cjs/ecommerce/cart-availability.js +22 -13
  128. package/dist/cjs/ecommerce/cart-availability.js.map +1 -1
  129. package/dist/cjs/ecommerce/stock-decrement.d.ts +2 -1
  130. package/dist/cjs/ecommerce/stock-decrement.d.ts.map +1 -1
  131. package/dist/cjs/ecommerce/stock-decrement.js +6 -0
  132. package/dist/cjs/ecommerce/stock-decrement.js.map +1 -1
  133. package/dist/cjs/executor-generator.d.ts +0 -1
  134. package/dist/cjs/executor-generator.d.ts.map +1 -1
  135. package/dist/cjs/executor-generator.js +213 -20
  136. package/dist/cjs/executor-generator.js.map +1 -1
  137. package/dist/cjs/index.d.ts +12 -4
  138. package/dist/cjs/index.d.ts.map +1 -1
  139. package/dist/cjs/index.js +25 -2
  140. package/dist/cjs/index.js.map +1 -1
  141. package/dist/cjs/invoice/api-routes-code.d.ts +26 -0
  142. package/dist/cjs/invoice/api-routes-code.d.ts.map +1 -1
  143. package/dist/cjs/invoice/api-routes-code.js +423 -391
  144. package/dist/cjs/invoice/api-routes-code.js.map +1 -1
  145. package/dist/cjs/invoice/data-access-code.d.ts.map +1 -1
  146. package/dist/cjs/invoice/data-access-code.js +420 -107
  147. package/dist/cjs/invoice/data-access-code.js.map +1 -1
  148. package/dist/cjs/invoice/index.d.ts.map +1 -1
  149. package/dist/cjs/invoice/index.js +24 -0
  150. package/dist/cjs/invoice/index.js.map +1 -1
  151. package/dist/cjs/invoice/invoice-assembly-code.d.ts +12 -0
  152. package/dist/cjs/invoice/invoice-assembly-code.d.ts.map +1 -0
  153. package/dist/cjs/invoice/invoice-assembly-code.js +517 -0
  154. package/dist/cjs/invoice/invoice-assembly-code.js.map +1 -0
  155. package/dist/cjs/invoice/invoice-html-code.d.ts.map +1 -1
  156. package/dist/cjs/invoice/invoice-html-code.js +111 -9
  157. package/dist/cjs/invoice/invoice-html-code.js.map +1 -1
  158. package/dist/cjs/invoice/pdf-service-client-code.d.ts.map +1 -1
  159. package/dist/cjs/invoice/pdf-service-client-code.js +3 -4
  160. package/dist/cjs/invoice/pdf-service-client-code.js.map +1 -1
  161. package/dist/cjs/nodes/account/account-login.d.ts.map +1 -1
  162. package/dist/cjs/nodes/account/account-login.js +4 -3
  163. package/dist/cjs/nodes/account/account-login.js.map +1 -1
  164. package/dist/cjs/nodes/account/account-signup.d.ts.map +1 -1
  165. package/dist/cjs/nodes/account/account-signup.js +7 -4
  166. package/dist/cjs/nodes/account/account-signup.js.map +1 -1
  167. package/dist/cjs/nodes/ai/ai-select-database-data.d.ts.map +1 -1
  168. package/dist/cjs/nodes/ai/ai-select-database-data.js +6 -1
  169. package/dist/cjs/nodes/ai/ai-select-database-data.js.map +1 -1
  170. package/dist/cjs/nodes/browser/browser-get-push-subscription.d.ts +9 -0
  171. package/dist/cjs/nodes/browser/browser-get-push-subscription.d.ts.map +1 -0
  172. package/dist/cjs/nodes/browser/browser-get-push-subscription.js +25 -0
  173. package/dist/cjs/nodes/browser/browser-get-push-subscription.js.map +1 -0
  174. package/dist/cjs/nodes/browser/browser-show-notification.d.ts +10 -0
  175. package/dist/cjs/nodes/browser/browser-show-notification.d.ts.map +1 -1
  176. package/dist/cjs/nodes/browser/browser-show-notification.js +65 -40
  177. package/dist/cjs/nodes/browser/browser-show-notification.js.map +1 -1
  178. package/dist/cjs/nodes/browser/browser-subscribe-to-push.d.ts +11 -0
  179. package/dist/cjs/nodes/browser/browser-subscribe-to-push.d.ts.map +1 -1
  180. package/dist/cjs/nodes/browser/browser-subscribe-to-push.js +21 -31
  181. package/dist/cjs/nodes/browser/browser-subscribe-to-push.js.map +1 -1
  182. package/dist/cjs/nodes/browser/browser-unsubscribe-from-push.d.ts +8 -0
  183. package/dist/cjs/nodes/browser/browser-unsubscribe-from-push.d.ts.map +1 -0
  184. package/dist/cjs/nodes/browser/browser-unsubscribe-from-push.js +24 -0
  185. package/dist/cjs/nodes/browser/browser-unsubscribe-from-push.js.map +1 -0
  186. package/dist/cjs/nodes/browser/push-api-access.d.ts +12 -0
  187. package/dist/cjs/nodes/browser/push-api-access.d.ts.map +1 -0
  188. package/dist/cjs/nodes/browser/push-api-access.js +19 -0
  189. package/dist/cjs/nodes/browser/push-api-access.js.map +1 -0
  190. package/dist/cjs/nodes/cart/cart-add-item.d.ts.map +1 -1
  191. package/dist/cjs/nodes/cart/cart-add-item.js +174 -10
  192. package/dist/cjs/nodes/cart/cart-add-item.js.map +1 -1
  193. package/dist/cjs/nodes/cart/cart-clear.d.ts.map +1 -1
  194. package/dist/cjs/nodes/cart/cart-clear.js +11 -0
  195. package/dist/cjs/nodes/cart/cart-clear.js.map +1 -1
  196. package/dist/cjs/nodes/cart/cart-get-total.d.ts.map +1 -1
  197. package/dist/cjs/nodes/cart/cart-get-total.js +260 -3
  198. package/dist/cjs/nodes/cart/cart-get-total.js.map +1 -1
  199. package/dist/cjs/nodes/cart/cart-price-order.d.ts +3 -0
  200. package/dist/cjs/nodes/cart/cart-price-order.d.ts.map +1 -0
  201. package/dist/cjs/nodes/cart/cart-price-order.js +281 -0
  202. package/dist/cjs/nodes/cart/cart-price-order.js.map +1 -0
  203. package/dist/cjs/nodes/cart/cart-update-item-quantity.d.ts.map +1 -1
  204. package/dist/cjs/nodes/cart/cart-update-item-quantity.js +7 -0
  205. package/dist/cjs/nodes/cart/cart-update-item-quantity.js.map +1 -1
  206. package/dist/cjs/nodes/data/data-count.d.ts.map +1 -1
  207. package/dist/cjs/nodes/data/data-count.js +6 -1
  208. package/dist/cjs/nodes/data/data-count.js.map +1 -1
  209. package/dist/cjs/nodes/data/data-create-item.d.ts.map +1 -1
  210. package/dist/cjs/nodes/data/data-create-item.js +11 -1
  211. package/dist/cjs/nodes/data/data-create-item.js.map +1 -1
  212. package/dist/cjs/nodes/data/data-delete-item.d.ts.map +1 -1
  213. package/dist/cjs/nodes/data/data-delete-item.js +29 -0
  214. package/dist/cjs/nodes/data/data-delete-item.js.map +1 -1
  215. package/dist/cjs/nodes/data/data-raw-query.d.ts.map +1 -1
  216. package/dist/cjs/nodes/data/data-raw-query.js +6 -1
  217. package/dist/cjs/nodes/data/data-raw-query.js.map +1 -1
  218. package/dist/cjs/nodes/data/data-select.d.ts.map +1 -1
  219. package/dist/cjs/nodes/data/data-select.js +6 -1
  220. package/dist/cjs/nodes/data/data-select.js.map +1 -1
  221. package/dist/cjs/nodes/data/data-update-item.d.ts.map +1 -1
  222. package/dist/cjs/nodes/data/data-update-item.js +29 -0
  223. package/dist/cjs/nodes/data/data-update-item.js.map +1 -1
  224. package/dist/cjs/nodes/ecommerce/ecommerce-generate-invoice.d.ts.map +1 -1
  225. package/dist/cjs/nodes/ecommerce/ecommerce-generate-invoice.js +7 -1
  226. package/dist/cjs/nodes/ecommerce/ecommerce-generate-invoice.js.map +1 -1
  227. package/dist/cjs/nodes/file-storage/file-storage-upload.d.ts.map +1 -1
  228. package/dist/cjs/nodes/file-storage/file-storage-upload.js +7 -0
  229. package/dist/cjs/nodes/file-storage/file-storage-upload.js.map +1 -1
  230. package/dist/cjs/nodes/general/general-custom-js.d.ts.map +1 -1
  231. package/dist/cjs/nodes/general/general-custom-js.js +21 -5
  232. package/dist/cjs/nodes/general/general-custom-js.js.map +1 -1
  233. package/dist/cjs/nodes/index.d.ts.map +1 -1
  234. package/dist/cjs/nodes/index.js +9 -4
  235. package/dist/cjs/nodes/index.js.map +1 -1
  236. package/dist/cjs/nodes/payment/payment-billing-portal.d.ts +3 -0
  237. package/dist/cjs/nodes/payment/payment-billing-portal.d.ts.map +1 -0
  238. package/dist/cjs/nodes/payment/payment-billing-portal.js +52 -0
  239. package/dist/cjs/nodes/payment/payment-billing-portal.js.map +1 -0
  240. package/dist/cjs/nodes/payment/payment-charge-user.d.ts.map +1 -1
  241. package/dist/cjs/nodes/payment/payment-charge-user.js +227 -360
  242. package/dist/cjs/nodes/payment/payment-charge-user.js.map +1 -1
  243. package/dist/cjs/nodes/payment/payment-close-checkout.d.ts +3 -0
  244. package/dist/cjs/nodes/payment/payment-close-checkout.d.ts.map +1 -0
  245. package/dist/cjs/nodes/payment/payment-close-checkout.js +141 -0
  246. package/dist/cjs/nodes/payment/payment-close-checkout.js.map +1 -0
  247. package/dist/cjs/nodes/payment/payment-ensure-subscription-plan.d.ts +3 -0
  248. package/dist/cjs/nodes/payment/payment-ensure-subscription-plan.d.ts.map +1 -0
  249. package/dist/cjs/nodes/payment/payment-ensure-subscription-plan.js +67 -0
  250. package/dist/cjs/nodes/payment/payment-ensure-subscription-plan.js.map +1 -0
  251. package/dist/cjs/nodes/payment/payment-manage-subscription.d.ts +3 -0
  252. package/dist/cjs/nodes/payment/payment-manage-subscription.d.ts.map +1 -0
  253. package/dist/cjs/nodes/payment/payment-manage-subscription.js +89 -0
  254. package/dist/cjs/nodes/payment/payment-manage-subscription.js.map +1 -0
  255. package/dist/cjs/nodes/payment/payment-refund.d.ts.map +1 -1
  256. package/dist/cjs/nodes/payment/payment-refund.js +50 -404
  257. package/dist/cjs/nodes/payment/payment-refund.js.map +1 -1
  258. package/dist/cjs/nodes/push/push-send-notification.d.ts +14 -0
  259. package/dist/cjs/nodes/push/push-send-notification.d.ts.map +1 -0
  260. package/dist/cjs/nodes/push/push-send-notification.js +83 -0
  261. package/dist/cjs/nodes/push/push-send-notification.js.map +1 -0
  262. package/dist/cjs/payments/drivers/coingate-driver-code.d.ts +16 -0
  263. package/dist/cjs/payments/drivers/coingate-driver-code.d.ts.map +1 -0
  264. package/dist/cjs/payments/drivers/coingate-driver-code.js +471 -0
  265. package/dist/cjs/payments/drivers/coingate-driver-code.js.map +1 -0
  266. package/dist/cjs/payments/drivers/mollie-driver-code.d.ts +16 -0
  267. package/dist/cjs/payments/drivers/mollie-driver-code.d.ts.map +1 -0
  268. package/dist/cjs/payments/drivers/mollie-driver-code.js +623 -0
  269. package/dist/cjs/payments/drivers/mollie-driver-code.js.map +1 -0
  270. package/dist/cjs/payments/drivers/paddle-driver-code.d.ts +12 -0
  271. package/dist/cjs/payments/drivers/paddle-driver-code.d.ts.map +1 -0
  272. package/dist/cjs/payments/drivers/paddle-driver-code.js +683 -0
  273. package/dist/cjs/payments/drivers/paddle-driver-code.js.map +1 -0
  274. package/dist/cjs/payments/drivers/paypal-driver-code.d.ts +12 -0
  275. package/dist/cjs/payments/drivers/paypal-driver-code.d.ts.map +1 -0
  276. package/dist/cjs/payments/drivers/paypal-driver-code.js +1261 -0
  277. package/dist/cjs/payments/drivers/paypal-driver-code.js.map +1 -0
  278. package/dist/cjs/payments/drivers/razorpay-driver-code.d.ts +12 -0
  279. package/dist/cjs/payments/drivers/razorpay-driver-code.d.ts.map +1 -0
  280. package/dist/cjs/payments/drivers/razorpay-driver-code.js +732 -0
  281. package/dist/cjs/payments/drivers/razorpay-driver-code.js.map +1 -0
  282. package/dist/cjs/payments/drivers/square-driver-code.d.ts +14 -0
  283. package/dist/cjs/payments/drivers/square-driver-code.d.ts.map +1 -0
  284. package/dist/cjs/payments/drivers/square-driver-code.js +931 -0
  285. package/dist/cjs/payments/drivers/square-driver-code.js.map +1 -0
  286. package/dist/cjs/payments/drivers/stripe-driver-code.d.ts +12 -0
  287. package/dist/cjs/payments/drivers/stripe-driver-code.d.ts.map +1 -0
  288. package/dist/cjs/payments/drivers/stripe-driver-code.js +778 -0
  289. package/dist/cjs/payments/drivers/stripe-driver-code.js.map +1 -0
  290. package/dist/cjs/payments/index.d.ts +66 -0
  291. package/dist/cjs/payments/index.d.ts.map +1 -0
  292. package/dist/cjs/payments/index.js +175 -0
  293. package/dist/cjs/payments/index.js.map +1 -0
  294. package/dist/cjs/payments/payment-core-code.d.ts +19 -0
  295. package/dist/cjs/payments/payment-core-code.d.ts.map +1 -0
  296. package/dist/cjs/payments/payment-core-code.js +422 -0
  297. package/dist/cjs/payments/payment-core-code.js.map +1 -0
  298. package/dist/cjs/payments/payment-driver-code-map.d.ts +4 -0
  299. package/dist/cjs/payments/payment-driver-code-map.d.ts.map +1 -0
  300. package/dist/cjs/payments/payment-driver-code-map.js +21 -0
  301. package/dist/cjs/payments/payment-driver-code-map.js.map +1 -0
  302. package/dist/cjs/payments/payment-drivers-scope.d.ts +35 -0
  303. package/dist/cjs/payments/payment-drivers-scope.d.ts.map +1 -0
  304. package/dist/cjs/payments/payment-drivers-scope.js +56 -0
  305. package/dist/cjs/payments/payment-drivers-scope.js.map +1 -0
  306. package/dist/cjs/payments/payment-registry-code.d.ts +8 -0
  307. package/dist/cjs/payments/payment-registry-code.d.ts.map +1 -0
  308. package/dist/cjs/payments/payment-registry-code.js +41 -0
  309. package/dist/cjs/payments/payment-registry-code.js.map +1 -0
  310. package/dist/cjs/pg-client-code.d.ts +10 -0
  311. package/dist/cjs/pg-client-code.d.ts.map +1 -1
  312. package/dist/cjs/pg-client-code.js +27 -1
  313. package/dist/cjs/pg-client-code.js.map +1 -1
  314. package/dist/cjs/runtime-storage-generator.d.ts +28 -0
  315. package/dist/cjs/runtime-storage-generator.d.ts.map +1 -1
  316. package/dist/cjs/runtime-storage-generator.js +240 -5
  317. package/dist/cjs/runtime-storage-generator.js.map +1 -1
  318. package/dist/cjs/secret-collector.d.ts.map +1 -1
  319. package/dist/cjs/secret-collector.js +8 -3
  320. package/dist/cjs/secret-collector.js.map +1 -1
  321. package/dist/cjs/security-scanner.d.ts +10 -1
  322. package/dist/cjs/security-scanner.d.ts.map +1 -1
  323. package/dist/cjs/security-scanner.js +19 -1
  324. package/dist/cjs/security-scanner.js.map +1 -1
  325. package/dist/cjs/segment-context-needs.d.ts +38 -0
  326. package/dist/cjs/segment-context-needs.d.ts.map +1 -0
  327. package/dist/cjs/segment-context-needs.js +129 -0
  328. package/dist/cjs/segment-context-needs.js.map +1 -0
  329. package/dist/cjs/segment-splitter.d.ts.map +1 -1
  330. package/dist/cjs/segment-splitter.js +6 -1
  331. package/dist/cjs/segment-splitter.js.map +1 -1
  332. package/dist/cjs/segment-trust.d.ts +50 -0
  333. package/dist/cjs/segment-trust.d.ts.map +1 -0
  334. package/dist/cjs/segment-trust.js +115 -0
  335. package/dist/cjs/segment-trust.js.map +1 -0
  336. package/dist/cjs/sent-email-log/sent-email-log-code.d.ts +19 -0
  337. package/dist/cjs/sent-email-log/sent-email-log-code.d.ts.map +1 -1
  338. package/dist/cjs/sent-email-log/sent-email-log-code.js +1 -24
  339. package/dist/cjs/sent-email-log/sent-email-log-code.js.map +1 -1
  340. package/dist/cjs/server-runtime-code.d.ts +34 -0
  341. package/dist/cjs/server-runtime-code.d.ts.map +1 -0
  342. package/dist/cjs/server-runtime-code.js +303 -0
  343. package/dist/cjs/server-runtime-code.js.map +1 -0
  344. package/dist/cjs/session-cookie-resolver.d.ts +3 -78
  345. package/dist/cjs/session-cookie-resolver.d.ts.map +1 -1
  346. package/dist/cjs/session-cookie-resolver.js +7 -276
  347. package/dist/cjs/session-cookie-resolver.js.map +1 -1
  348. package/dist/cjs/subscriber-access-route-generator.d.ts +71 -0
  349. package/dist/cjs/subscriber-access-route-generator.d.ts.map +1 -0
  350. package/dist/cjs/subscriber-access-route-generator.js +301 -0
  351. package/dist/cjs/subscriber-access-route-generator.js.map +1 -0
  352. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  353. package/dist/cjs/types.d.ts +6 -0
  354. package/dist/cjs/types.d.ts.map +1 -1
  355. package/dist/cjs/webhook-delivery-lease/index.d.ts +8 -0
  356. package/dist/cjs/webhook-delivery-lease/index.d.ts.map +1 -0
  357. package/dist/cjs/webhook-delivery-lease/index.js +41 -0
  358. package/dist/cjs/webhook-delivery-lease/index.js.map +1 -0
  359. package/dist/cjs/webhook-delivery-lease/webhook-delivery-lease-code.d.ts +26 -0
  360. package/dist/cjs/webhook-delivery-lease/webhook-delivery-lease-code.d.ts.map +1 -0
  361. package/dist/cjs/webhook-delivery-lease/webhook-delivery-lease-code.js +151 -0
  362. package/dist/cjs/webhook-delivery-lease/webhook-delivery-lease-code.js.map +1 -0
  363. package/dist/cjs/webhook-delivery-lease/webhook-delivery-lease-scope.d.ts +16 -0
  364. package/dist/cjs/webhook-delivery-lease/webhook-delivery-lease-scope.d.ts.map +1 -0
  365. package/dist/cjs/webhook-delivery-lease/webhook-delivery-lease-scope.js +19 -0
  366. package/dist/cjs/webhook-delivery-lease/webhook-delivery-lease-scope.js.map +1 -0
  367. package/dist/cjs/webhook-generator.d.ts +1 -1
  368. package/dist/cjs/webhook-generator.d.ts.map +1 -1
  369. package/dist/cjs/webhook-generator.js +342 -254
  370. package/dist/cjs/webhook-generator.js.map +1 -1
  371. package/dist/cjs/webhook-signature-verification.d.ts +17 -1
  372. package/dist/cjs/webhook-signature-verification.d.ts.map +1 -1
  373. package/dist/cjs/webhook-signature-verification.js +182 -27
  374. package/dist/cjs/webhook-signature-verification.js.map +1 -1
  375. package/dist/cjs/workflow-auth-generator.d.ts +9 -6
  376. package/dist/cjs/workflow-auth-generator.d.ts.map +1 -1
  377. package/dist/cjs/workflow-auth-generator.js +133 -29
  378. package/dist/cjs/workflow-auth-generator.js.map +1 -1
  379. package/dist/cjs/workflow-component-plugin.d.ts.map +1 -1
  380. package/dist/cjs/workflow-component-plugin.js +65 -28
  381. package/dist/cjs/workflow-component-plugin.js.map +1 -1
  382. package/dist/cjs/workflow-project-plugin.d.ts +13 -0
  383. package/dist/cjs/workflow-project-plugin.d.ts.map +1 -1
  384. package/dist/cjs/workflow-project-plugin.js +215 -65
  385. package/dist/cjs/workflow-project-plugin.js.map +1 -1
  386. package/dist/esm/admin-form-hydration.d.ts +10 -0
  387. package/dist/esm/admin-form-hydration.d.ts.map +1 -0
  388. package/dist/esm/admin-form-hydration.js +21 -0
  389. package/dist/esm/admin-form-hydration.js.map +1 -0
  390. package/dist/esm/api-route-generator.d.ts +19 -3
  391. package/dist/esm/api-route-generator.d.ts.map +1 -1
  392. package/dist/esm/api-route-generator.js +189 -70
  393. package/dist/esm/api-route-generator.js.map +1 -1
  394. package/dist/esm/auth-generator.d.ts +4 -1
  395. package/dist/esm/auth-generator.d.ts.map +1 -1
  396. package/dist/esm/auth-generator.js +241 -62
  397. package/dist/esm/auth-generator.js.map +1 -1
  398. package/dist/esm/auth-return/signed-in-destination-code.d.ts +17 -0
  399. package/dist/esm/auth-return/signed-in-destination-code.d.ts.map +1 -0
  400. package/dist/esm/auth-return/signed-in-destination-code.js +33 -0
  401. package/dist/esm/auth-return/signed-in-destination-code.js.map +1 -0
  402. package/dist/esm/cart-pricing-preamble.d.ts +12 -0
  403. package/dist/esm/cart-pricing-preamble.d.ts.map +1 -0
  404. package/dist/esm/cart-pricing-preamble.js +19 -0
  405. package/dist/esm/cart-pricing-preamble.js.map +1 -0
  406. package/dist/esm/cron-request-verification.d.ts +24 -0
  407. package/dist/esm/cron-request-verification.d.ts.map +1 -0
  408. package/dist/esm/cron-request-verification.js +80 -0
  409. package/dist/esm/cron-request-verification.js.map +1 -0
  410. package/dist/esm/custom-node-modules.d.ts +30 -0
  411. package/dist/esm/custom-node-modules.d.ts.map +1 -0
  412. package/dist/esm/custom-node-modules.js +84 -0
  413. package/dist/esm/custom-node-modules.js.map +1 -0
  414. package/dist/esm/data-api-route-generator.d.ts +27 -0
  415. package/dist/esm/data-api-route-generator.d.ts.map +1 -1
  416. package/dist/esm/data-api-route-generator.js +365 -28
  417. package/dist/esm/data-api-route-generator.js.map +1 -1
  418. package/dist/esm/ecommerce/cart-availability.d.ts.map +1 -1
  419. package/dist/esm/ecommerce/cart-availability.js +22 -13
  420. package/dist/esm/ecommerce/cart-availability.js.map +1 -1
  421. package/dist/esm/ecommerce/stock-decrement.d.ts +2 -1
  422. package/dist/esm/ecommerce/stock-decrement.d.ts.map +1 -1
  423. package/dist/esm/ecommerce/stock-decrement.js +6 -0
  424. package/dist/esm/ecommerce/stock-decrement.js.map +1 -1
  425. package/dist/esm/executor-generator.d.ts +0 -1
  426. package/dist/esm/executor-generator.d.ts.map +1 -1
  427. package/dist/esm/executor-generator.js +212 -18
  428. package/dist/esm/executor-generator.js.map +1 -1
  429. package/dist/esm/index.d.ts +12 -4
  430. package/dist/esm/index.d.ts.map +1 -1
  431. package/dist/esm/index.js +10 -4
  432. package/dist/esm/index.js.map +1 -1
  433. package/dist/esm/invoice/api-routes-code.d.ts +26 -0
  434. package/dist/esm/invoice/api-routes-code.d.ts.map +1 -1
  435. package/dist/esm/invoice/api-routes-code.js +421 -390
  436. package/dist/esm/invoice/api-routes-code.js.map +1 -1
  437. package/dist/esm/invoice/data-access-code.d.ts.map +1 -1
  438. package/dist/esm/invoice/data-access-code.js +420 -107
  439. package/dist/esm/invoice/data-access-code.js.map +1 -1
  440. package/dist/esm/invoice/index.d.ts.map +1 -1
  441. package/dist/esm/invoice/index.js +25 -1
  442. package/dist/esm/invoice/index.js.map +1 -1
  443. package/dist/esm/invoice/invoice-assembly-code.d.ts +12 -0
  444. package/dist/esm/invoice/invoice-assembly-code.d.ts.map +1 -0
  445. package/dist/esm/invoice/invoice-assembly-code.js +513 -0
  446. package/dist/esm/invoice/invoice-assembly-code.js.map +1 -0
  447. package/dist/esm/invoice/invoice-html-code.d.ts.map +1 -1
  448. package/dist/esm/invoice/invoice-html-code.js +111 -9
  449. package/dist/esm/invoice/invoice-html-code.js.map +1 -1
  450. package/dist/esm/invoice/pdf-service-client-code.d.ts.map +1 -1
  451. package/dist/esm/invoice/pdf-service-client-code.js +3 -4
  452. package/dist/esm/invoice/pdf-service-client-code.js.map +1 -1
  453. package/dist/esm/nodes/account/account-login.d.ts.map +1 -1
  454. package/dist/esm/nodes/account/account-login.js +4 -3
  455. package/dist/esm/nodes/account/account-login.js.map +1 -1
  456. package/dist/esm/nodes/account/account-signup.d.ts.map +1 -1
  457. package/dist/esm/nodes/account/account-signup.js +7 -4
  458. package/dist/esm/nodes/account/account-signup.js.map +1 -1
  459. package/dist/esm/nodes/ai/ai-select-database-data.d.ts.map +1 -1
  460. package/dist/esm/nodes/ai/ai-select-database-data.js +6 -1
  461. package/dist/esm/nodes/ai/ai-select-database-data.js.map +1 -1
  462. package/dist/esm/nodes/browser/browser-get-push-subscription.d.ts +9 -0
  463. package/dist/esm/nodes/browser/browser-get-push-subscription.d.ts.map +1 -0
  464. package/dist/esm/nodes/browser/browser-get-push-subscription.js +22 -0
  465. package/dist/esm/nodes/browser/browser-get-push-subscription.js.map +1 -0
  466. package/dist/esm/nodes/browser/browser-show-notification.d.ts +10 -0
  467. package/dist/esm/nodes/browser/browser-show-notification.d.ts.map +1 -1
  468. package/dist/esm/nodes/browser/browser-show-notification.js +65 -40
  469. package/dist/esm/nodes/browser/browser-show-notification.js.map +1 -1
  470. package/dist/esm/nodes/browser/browser-subscribe-to-push.d.ts +11 -0
  471. package/dist/esm/nodes/browser/browser-subscribe-to-push.d.ts.map +1 -1
  472. package/dist/esm/nodes/browser/browser-subscribe-to-push.js +21 -31
  473. package/dist/esm/nodes/browser/browser-subscribe-to-push.js.map +1 -1
  474. package/dist/esm/nodes/browser/browser-unsubscribe-from-push.d.ts +8 -0
  475. package/dist/esm/nodes/browser/browser-unsubscribe-from-push.d.ts.map +1 -0
  476. package/dist/esm/nodes/browser/browser-unsubscribe-from-push.js +21 -0
  477. package/dist/esm/nodes/browser/browser-unsubscribe-from-push.js.map +1 -0
  478. package/dist/esm/nodes/browser/push-api-access.d.ts +12 -0
  479. package/dist/esm/nodes/browser/push-api-access.d.ts.map +1 -0
  480. package/dist/esm/nodes/browser/push-api-access.js +13 -0
  481. package/dist/esm/nodes/browser/push-api-access.js.map +1 -0
  482. package/dist/esm/nodes/cart/cart-add-item.d.ts.map +1 -1
  483. package/dist/esm/nodes/cart/cart-add-item.js +174 -10
  484. package/dist/esm/nodes/cart/cart-add-item.js.map +1 -1
  485. package/dist/esm/nodes/cart/cart-clear.d.ts.map +1 -1
  486. package/dist/esm/nodes/cart/cart-clear.js +11 -0
  487. package/dist/esm/nodes/cart/cart-clear.js.map +1 -1
  488. package/dist/esm/nodes/cart/cart-get-total.d.ts.map +1 -1
  489. package/dist/esm/nodes/cart/cart-get-total.js +261 -4
  490. package/dist/esm/nodes/cart/cart-get-total.js.map +1 -1
  491. package/dist/esm/nodes/cart/cart-price-order.d.ts +3 -0
  492. package/dist/esm/nodes/cart/cart-price-order.d.ts.map +1 -0
  493. package/dist/esm/nodes/cart/cart-price-order.js +278 -0
  494. package/dist/esm/nodes/cart/cart-price-order.js.map +1 -0
  495. package/dist/esm/nodes/cart/cart-update-item-quantity.d.ts.map +1 -1
  496. package/dist/esm/nodes/cart/cart-update-item-quantity.js +7 -0
  497. package/dist/esm/nodes/cart/cart-update-item-quantity.js.map +1 -1
  498. package/dist/esm/nodes/data/data-count.d.ts.map +1 -1
  499. package/dist/esm/nodes/data/data-count.js +6 -1
  500. package/dist/esm/nodes/data/data-count.js.map +1 -1
  501. package/dist/esm/nodes/data/data-create-item.d.ts.map +1 -1
  502. package/dist/esm/nodes/data/data-create-item.js +11 -1
  503. package/dist/esm/nodes/data/data-create-item.js.map +1 -1
  504. package/dist/esm/nodes/data/data-delete-item.d.ts.map +1 -1
  505. package/dist/esm/nodes/data/data-delete-item.js +29 -0
  506. package/dist/esm/nodes/data/data-delete-item.js.map +1 -1
  507. package/dist/esm/nodes/data/data-raw-query.d.ts.map +1 -1
  508. package/dist/esm/nodes/data/data-raw-query.js +6 -1
  509. package/dist/esm/nodes/data/data-raw-query.js.map +1 -1
  510. package/dist/esm/nodes/data/data-select.d.ts.map +1 -1
  511. package/dist/esm/nodes/data/data-select.js +6 -1
  512. package/dist/esm/nodes/data/data-select.js.map +1 -1
  513. package/dist/esm/nodes/data/data-update-item.d.ts.map +1 -1
  514. package/dist/esm/nodes/data/data-update-item.js +29 -0
  515. package/dist/esm/nodes/data/data-update-item.js.map +1 -1
  516. package/dist/esm/nodes/ecommerce/ecommerce-generate-invoice.d.ts.map +1 -1
  517. package/dist/esm/nodes/ecommerce/ecommerce-generate-invoice.js +7 -1
  518. package/dist/esm/nodes/ecommerce/ecommerce-generate-invoice.js.map +1 -1
  519. package/dist/esm/nodes/file-storage/file-storage-upload.d.ts.map +1 -1
  520. package/dist/esm/nodes/file-storage/file-storage-upload.js +7 -0
  521. package/dist/esm/nodes/file-storage/file-storage-upload.js.map +1 -1
  522. package/dist/esm/nodes/general/general-custom-js.d.ts.map +1 -1
  523. package/dist/esm/nodes/general/general-custom-js.js +21 -5
  524. package/dist/esm/nodes/general/general-custom-js.js.map +1 -1
  525. package/dist/esm/nodes/index.d.ts.map +1 -1
  526. package/dist/esm/nodes/index.js +9 -4
  527. package/dist/esm/nodes/index.js.map +1 -1
  528. package/dist/esm/nodes/payment/payment-billing-portal.d.ts +3 -0
  529. package/dist/esm/nodes/payment/payment-billing-portal.d.ts.map +1 -0
  530. package/dist/esm/nodes/payment/payment-billing-portal.js +49 -0
  531. package/dist/esm/nodes/payment/payment-billing-portal.js.map +1 -0
  532. package/dist/esm/nodes/payment/payment-charge-user.d.ts.map +1 -1
  533. package/dist/esm/nodes/payment/payment-charge-user.js +227 -360
  534. package/dist/esm/nodes/payment/payment-charge-user.js.map +1 -1
  535. package/dist/esm/nodes/payment/payment-close-checkout.d.ts +3 -0
  536. package/dist/esm/nodes/payment/payment-close-checkout.d.ts.map +1 -0
  537. package/dist/esm/nodes/payment/payment-close-checkout.js +138 -0
  538. package/dist/esm/nodes/payment/payment-close-checkout.js.map +1 -0
  539. package/dist/esm/nodes/payment/payment-ensure-subscription-plan.d.ts +3 -0
  540. package/dist/esm/nodes/payment/payment-ensure-subscription-plan.d.ts.map +1 -0
  541. package/dist/esm/nodes/payment/payment-ensure-subscription-plan.js +64 -0
  542. package/dist/esm/nodes/payment/payment-ensure-subscription-plan.js.map +1 -0
  543. package/dist/esm/nodes/payment/payment-manage-subscription.d.ts +3 -0
  544. package/dist/esm/nodes/payment/payment-manage-subscription.d.ts.map +1 -0
  545. package/dist/esm/nodes/payment/payment-manage-subscription.js +86 -0
  546. package/dist/esm/nodes/payment/payment-manage-subscription.js.map +1 -0
  547. package/dist/esm/nodes/payment/payment-refund.d.ts.map +1 -1
  548. package/dist/esm/nodes/payment/payment-refund.js +50 -404
  549. package/dist/esm/nodes/payment/payment-refund.js.map +1 -1
  550. package/dist/esm/nodes/push/push-send-notification.d.ts +14 -0
  551. package/dist/esm/nodes/push/push-send-notification.d.ts.map +1 -0
  552. package/dist/esm/nodes/push/push-send-notification.js +80 -0
  553. package/dist/esm/nodes/push/push-send-notification.js.map +1 -0
  554. package/dist/esm/payments/drivers/coingate-driver-code.d.ts +16 -0
  555. package/dist/esm/payments/drivers/coingate-driver-code.d.ts.map +1 -0
  556. package/dist/esm/payments/drivers/coingate-driver-code.js +467 -0
  557. package/dist/esm/payments/drivers/coingate-driver-code.js.map +1 -0
  558. package/dist/esm/payments/drivers/mollie-driver-code.d.ts +16 -0
  559. package/dist/esm/payments/drivers/mollie-driver-code.d.ts.map +1 -0
  560. package/dist/esm/payments/drivers/mollie-driver-code.js +619 -0
  561. package/dist/esm/payments/drivers/mollie-driver-code.js.map +1 -0
  562. package/dist/esm/payments/drivers/paddle-driver-code.d.ts +12 -0
  563. package/dist/esm/payments/drivers/paddle-driver-code.d.ts.map +1 -0
  564. package/dist/esm/payments/drivers/paddle-driver-code.js +679 -0
  565. package/dist/esm/payments/drivers/paddle-driver-code.js.map +1 -0
  566. package/dist/esm/payments/drivers/paypal-driver-code.d.ts +12 -0
  567. package/dist/esm/payments/drivers/paypal-driver-code.d.ts.map +1 -0
  568. package/dist/esm/payments/drivers/paypal-driver-code.js +1257 -0
  569. package/dist/esm/payments/drivers/paypal-driver-code.js.map +1 -0
  570. package/dist/esm/payments/drivers/razorpay-driver-code.d.ts +12 -0
  571. package/dist/esm/payments/drivers/razorpay-driver-code.d.ts.map +1 -0
  572. package/dist/esm/payments/drivers/razorpay-driver-code.js +728 -0
  573. package/dist/esm/payments/drivers/razorpay-driver-code.js.map +1 -0
  574. package/dist/esm/payments/drivers/square-driver-code.d.ts +14 -0
  575. package/dist/esm/payments/drivers/square-driver-code.d.ts.map +1 -0
  576. package/dist/esm/payments/drivers/square-driver-code.js +927 -0
  577. package/dist/esm/payments/drivers/square-driver-code.js.map +1 -0
  578. package/dist/esm/payments/drivers/stripe-driver-code.d.ts +12 -0
  579. package/dist/esm/payments/drivers/stripe-driver-code.d.ts.map +1 -0
  580. package/dist/esm/payments/drivers/stripe-driver-code.js +774 -0
  581. package/dist/esm/payments/drivers/stripe-driver-code.js.map +1 -0
  582. package/dist/esm/payments/index.d.ts +66 -0
  583. package/dist/esm/payments/index.d.ts.map +1 -0
  584. package/dist/esm/payments/index.js +164 -0
  585. package/dist/esm/payments/index.js.map +1 -0
  586. package/dist/esm/payments/payment-core-code.d.ts +19 -0
  587. package/dist/esm/payments/payment-core-code.d.ts.map +1 -0
  588. package/dist/esm/payments/payment-core-code.js +418 -0
  589. package/dist/esm/payments/payment-core-code.js.map +1 -0
  590. package/dist/esm/payments/payment-driver-code-map.d.ts +4 -0
  591. package/dist/esm/payments/payment-driver-code-map.d.ts.map +1 -0
  592. package/dist/esm/payments/payment-driver-code-map.js +18 -0
  593. package/dist/esm/payments/payment-driver-code-map.js.map +1 -0
  594. package/dist/esm/payments/payment-drivers-scope.d.ts +35 -0
  595. package/dist/esm/payments/payment-drivers-scope.d.ts.map +1 -0
  596. package/dist/esm/payments/payment-drivers-scope.js +51 -0
  597. package/dist/esm/payments/payment-drivers-scope.js.map +1 -0
  598. package/dist/esm/payments/payment-registry-code.d.ts +8 -0
  599. package/dist/esm/payments/payment-registry-code.d.ts.map +1 -0
  600. package/dist/esm/payments/payment-registry-code.js +37 -0
  601. package/dist/esm/payments/payment-registry-code.js.map +1 -0
  602. package/dist/esm/pg-client-code.d.ts +10 -0
  603. package/dist/esm/pg-client-code.d.ts.map +1 -1
  604. package/dist/esm/pg-client-code.js +25 -0
  605. package/dist/esm/pg-client-code.js.map +1 -1
  606. package/dist/esm/runtime-storage-generator.d.ts +28 -0
  607. package/dist/esm/runtime-storage-generator.d.ts.map +1 -1
  608. package/dist/esm/runtime-storage-generator.js +239 -4
  609. package/dist/esm/runtime-storage-generator.js.map +1 -1
  610. package/dist/esm/secret-collector.d.ts.map +1 -1
  611. package/dist/esm/secret-collector.js +8 -3
  612. package/dist/esm/secret-collector.js.map +1 -1
  613. package/dist/esm/security-scanner.d.ts +10 -1
  614. package/dist/esm/security-scanner.d.ts.map +1 -1
  615. package/dist/esm/security-scanner.js +18 -0
  616. package/dist/esm/security-scanner.js.map +1 -1
  617. package/dist/esm/segment-context-needs.d.ts +38 -0
  618. package/dist/esm/segment-context-needs.d.ts.map +1 -0
  619. package/dist/esm/segment-context-needs.js +125 -0
  620. package/dist/esm/segment-context-needs.js.map +1 -0
  621. package/dist/esm/segment-splitter.d.ts.map +1 -1
  622. package/dist/esm/segment-splitter.js +6 -1
  623. package/dist/esm/segment-splitter.js.map +1 -1
  624. package/dist/esm/segment-trust.d.ts +50 -0
  625. package/dist/esm/segment-trust.d.ts.map +1 -0
  626. package/dist/esm/segment-trust.js +111 -0
  627. package/dist/esm/segment-trust.js.map +1 -0
  628. package/dist/esm/sent-email-log/sent-email-log-code.d.ts +19 -0
  629. package/dist/esm/sent-email-log/sent-email-log-code.d.ts.map +1 -1
  630. package/dist/esm/sent-email-log/sent-email-log-code.js +2 -25
  631. package/dist/esm/sent-email-log/sent-email-log-code.js.map +1 -1
  632. package/dist/esm/server-runtime-code.d.ts +34 -0
  633. package/dist/esm/server-runtime-code.d.ts.map +1 -0
  634. package/dist/esm/server-runtime-code.js +299 -0
  635. package/dist/esm/server-runtime-code.js.map +1 -0
  636. package/dist/esm/session-cookie-resolver.d.ts +3 -78
  637. package/dist/esm/session-cookie-resolver.d.ts.map +1 -1
  638. package/dist/esm/session-cookie-resolver.js +7 -274
  639. package/dist/esm/session-cookie-resolver.js.map +1 -1
  640. package/dist/esm/subscriber-access-route-generator.d.ts +71 -0
  641. package/dist/esm/subscriber-access-route-generator.d.ts.map +1 -0
  642. package/dist/esm/subscriber-access-route-generator.js +292 -0
  643. package/dist/esm/subscriber-access-route-generator.js.map +1 -0
  644. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  645. package/dist/esm/types.d.ts +6 -0
  646. package/dist/esm/types.d.ts.map +1 -1
  647. package/dist/esm/webhook-delivery-lease/index.d.ts +8 -0
  648. package/dist/esm/webhook-delivery-lease/index.d.ts.map +1 -0
  649. package/dist/esm/webhook-delivery-lease/index.js +37 -0
  650. package/dist/esm/webhook-delivery-lease/index.js.map +1 -0
  651. package/dist/esm/webhook-delivery-lease/webhook-delivery-lease-code.d.ts +26 -0
  652. package/dist/esm/webhook-delivery-lease/webhook-delivery-lease-code.d.ts.map +1 -0
  653. package/dist/esm/webhook-delivery-lease/webhook-delivery-lease-code.js +147 -0
  654. package/dist/esm/webhook-delivery-lease/webhook-delivery-lease-code.js.map +1 -0
  655. package/dist/esm/webhook-delivery-lease/webhook-delivery-lease-scope.d.ts +16 -0
  656. package/dist/esm/webhook-delivery-lease/webhook-delivery-lease-scope.d.ts.map +1 -0
  657. package/dist/esm/webhook-delivery-lease/webhook-delivery-lease-scope.js +16 -0
  658. package/dist/esm/webhook-delivery-lease/webhook-delivery-lease-scope.js.map +1 -0
  659. package/dist/esm/webhook-generator.d.ts +1 -1
  660. package/dist/esm/webhook-generator.d.ts.map +1 -1
  661. package/dist/esm/webhook-generator.js +342 -254
  662. package/dist/esm/webhook-generator.js.map +1 -1
  663. package/dist/esm/webhook-signature-verification.d.ts +17 -1
  664. package/dist/esm/webhook-signature-verification.d.ts.map +1 -1
  665. package/dist/esm/webhook-signature-verification.js +179 -25
  666. package/dist/esm/webhook-signature-verification.js.map +1 -1
  667. package/dist/esm/workflow-auth-generator.d.ts +9 -6
  668. package/dist/esm/workflow-auth-generator.d.ts.map +1 -1
  669. package/dist/esm/workflow-auth-generator.js +132 -28
  670. package/dist/esm/workflow-auth-generator.js.map +1 -1
  671. package/dist/esm/workflow-component-plugin.d.ts.map +1 -1
  672. package/dist/esm/workflow-component-plugin.js +65 -28
  673. package/dist/esm/workflow-component-plugin.js.map +1 -1
  674. package/dist/esm/workflow-project-plugin.d.ts +13 -0
  675. package/dist/esm/workflow-project-plugin.d.ts.map +1 -1
  676. package/dist/esm/workflow-project-plugin.js +212 -63
  677. package/dist/esm/workflow-project-plugin.js.map +1 -1
  678. package/package.json +4 -4
  679. package/src/admin-form-hydration.ts +28 -0
  680. package/src/api-route-generator.ts +251 -64
  681. package/src/auth-generator.ts +273 -53
  682. package/src/auth-return/signed-in-destination-code.ts +32 -0
  683. package/src/cart-pricing-preamble.ts +22 -0
  684. package/src/cron-request-verification.ts +79 -0
  685. package/src/custom-node-modules.ts +102 -0
  686. package/src/data-api-route-generator.ts +370 -28
  687. package/src/ecommerce/cart-availability.ts +22 -13
  688. package/src/ecommerce/stock-decrement.ts +13 -1
  689. package/src/executor-generator.ts +212 -19
  690. package/src/index.ts +28 -7
  691. package/src/invoice/api-routes-code.ts +424 -391
  692. package/src/invoice/data-access-code.ts +431 -110
  693. package/src/invoice/index.ts +31 -1
  694. package/src/invoice/invoice-assembly-code.ts +514 -0
  695. package/src/invoice/invoice-html-code.ts +111 -9
  696. package/src/invoice/pdf-service-client-code.ts +3 -4
  697. package/src/nodes/account/account-login.ts +4 -3
  698. package/src/nodes/account/account-signup.ts +7 -4
  699. package/src/nodes/ai/ai-select-database-data.ts +10 -1
  700. package/src/nodes/browser/browser-get-push-subscription.ts +23 -0
  701. package/src/nodes/browser/browser-show-notification.ts +61 -38
  702. package/src/nodes/browser/browser-subscribe-to-push.ts +26 -36
  703. package/src/nodes/browser/browser-unsubscribe-from-push.ts +22 -0
  704. package/src/nodes/browser/push-api-access.ts +20 -0
  705. package/src/nodes/cart/cart-add-item.ts +200 -9
  706. package/src/nodes/cart/cart-clear.ts +11 -0
  707. package/src/nodes/cart/cart-get-total.ts +279 -7
  708. package/src/nodes/cart/cart-price-order.ts +351 -0
  709. package/src/nodes/cart/cart-update-item-quantity.ts +7 -0
  710. package/src/nodes/data/data-count.ts +9 -1
  711. package/src/nodes/data/data-create-item.ts +15 -1
  712. package/src/nodes/data/data-delete-item.ts +32 -0
  713. package/src/nodes/data/data-raw-query.ts +9 -1
  714. package/src/nodes/data/data-select.ts +9 -1
  715. package/src/nodes/data/data-update-item.ts +32 -0
  716. package/src/nodes/ecommerce/ecommerce-generate-invoice.ts +11 -1
  717. package/src/nodes/file-storage/file-storage-upload.ts +8 -0
  718. package/src/nodes/general/general-custom-js.ts +21 -5
  719. package/src/nodes/index.ts +16 -6
  720. package/src/nodes/payment/payment-billing-portal.ts +51 -0
  721. package/src/nodes/payment/payment-charge-user.ts +236 -442
  722. package/src/nodes/payment/payment-close-checkout.ts +137 -0
  723. package/src/nodes/payment/payment-ensure-subscription-plan.ts +66 -0
  724. package/src/nodes/payment/payment-manage-subscription.ts +89 -0
  725. package/src/nodes/payment/payment-refund.ts +52 -467
  726. package/src/nodes/payment-drivers-global.d.ts +13 -0
  727. package/src/nodes/push/push-send-notification.ts +83 -0
  728. package/src/nodes/workflow-utils-global.d.ts +5 -0
  729. package/src/payments/drivers/coingate-driver-code.ts +466 -0
  730. package/src/payments/drivers/mollie-driver-code.ts +618 -0
  731. package/src/payments/drivers/paddle-driver-code.ts +678 -0
  732. package/src/payments/drivers/paypal-driver-code.ts +1256 -0
  733. package/src/payments/drivers/razorpay-driver-code.ts +727 -0
  734. package/src/payments/drivers/square-driver-code.ts +926 -0
  735. package/src/payments/drivers/stripe-driver-code.ts +773 -0
  736. package/src/payments/index.ts +204 -0
  737. package/src/payments/payment-core-code.ts +421 -0
  738. package/src/payments/payment-driver-code-map.ts +19 -0
  739. package/src/payments/payment-drivers-scope.ts +66 -0
  740. package/src/payments/payment-registry-code.ts +38 -0
  741. package/src/pg-client-code.ts +30 -0
  742. package/src/runtime-storage-generator.ts +241 -4
  743. package/src/secret-collector.ts +8 -3
  744. package/src/security-scanner.ts +22 -0
  745. package/src/segment-context-needs.ts +148 -0
  746. package/src/segment-splitter.ts +6 -1
  747. package/src/segment-trust.ts +170 -0
  748. package/src/sent-email-log/sent-email-log-code.ts +2 -32
  749. package/src/server-runtime-code.ts +298 -0
  750. package/src/session-cookie-resolver.ts +9 -277
  751. package/src/subscriber-access-route-generator.ts +351 -0
  752. package/src/types.ts +6 -0
  753. package/src/webhook-delivery-lease/index.ts +44 -0
  754. package/src/webhook-delivery-lease/webhook-delivery-lease-code.ts +151 -0
  755. package/src/webhook-delivery-lease/webhook-delivery-lease-scope.ts +18 -0
  756. package/src/webhook-generator.ts +359 -260
  757. package/src/webhook-signature-verification.ts +180 -25
  758. package/src/workflow-auth-generator.ts +137 -28
  759. package/src/workflow-component-plugin.ts +77 -20
  760. package/src/workflow-project-plugin.ts +247 -44
  761. package/dist/cjs/nodes/payment/payment-cancel-plan.d.ts +0 -3
  762. package/dist/cjs/nodes/payment/payment-cancel-plan.d.ts.map +0 -1
  763. package/dist/cjs/nodes/payment/payment-cancel-plan.js +0 -33
  764. package/dist/cjs/nodes/payment/payment-cancel-plan.js.map +0 -1
  765. package/dist/cjs/nodes/payment/payment-create-subscription.d.ts +0 -3
  766. package/dist/cjs/nodes/payment/payment-create-subscription.d.ts.map +0 -1
  767. package/dist/cjs/nodes/payment/payment-create-subscription.js +0 -41
  768. package/dist/cjs/nodes/payment/payment-create-subscription.js.map +0 -1
  769. package/dist/cjs/nodes/payment/payment-subscribe-to-plan.d.ts +0 -3
  770. package/dist/cjs/nodes/payment/payment-subscribe-to-plan.d.ts.map +0 -1
  771. package/dist/cjs/nodes/payment/payment-subscribe-to-plan.js +0 -45
  772. package/dist/cjs/nodes/payment/payment-subscribe-to-plan.js.map +0 -1
  773. package/dist/esm/nodes/payment/payment-cancel-plan.d.ts +0 -3
  774. package/dist/esm/nodes/payment/payment-cancel-plan.d.ts.map +0 -1
  775. package/dist/esm/nodes/payment/payment-cancel-plan.js +0 -30
  776. package/dist/esm/nodes/payment/payment-cancel-plan.js.map +0 -1
  777. package/dist/esm/nodes/payment/payment-create-subscription.d.ts +0 -3
  778. package/dist/esm/nodes/payment/payment-create-subscription.d.ts.map +0 -1
  779. package/dist/esm/nodes/payment/payment-create-subscription.js +0 -38
  780. package/dist/esm/nodes/payment/payment-create-subscription.js.map +0 -1
  781. package/dist/esm/nodes/payment/payment-subscribe-to-plan.d.ts +0 -3
  782. package/dist/esm/nodes/payment/payment-subscribe-to-plan.d.ts.map +0 -1
  783. package/dist/esm/nodes/payment/payment-subscribe-to-plan.js +0 -42
  784. package/dist/esm/nodes/payment/payment-subscribe-to-plan.js.map +0 -1
  785. package/src/nodes/payment/payment-cancel-plan.ts +0 -33
  786. package/src/nodes/payment/payment-create-subscription.ts +0 -42
  787. package/src/nodes/payment/payment-subscribe-to-plan.ts +0 -46
@@ -5,50 +5,44 @@ const types_1 = require("../types");
5
5
  // Contract for the `amount` config field:
6
6
  // A floating-point number in the MAJOR currency unit (e.g. 99.99 USD,
7
7
  // 9999 JPY). Individual line items use the same `unitAmount` semantics.
8
- // Both Stripe and PayPal handlers convert to the correct provider-specific
9
- // representation internally — callers must NOT pre-convert to minor units.
10
- // Resolves a secret / provider credential from `process.env` with a fallback
11
- // chain. Some deploys populate the canonical names (`STRIPE_SECRET_KEY`,
12
- // `PAYPAL_CLIENT_ID`, …) while others keep the value behind a
13
- // `CONFIGURATION_*` prefix (sometimes numbered: `CONFIGURATION_PAYPAL_CLIENT_ID2`).
14
- // Iterate the list in order, returning the first non-empty match. If no
15
- // primary or numbered fallback is filled, scan every `process.env` key
16
- // beginning with the prefix so new variants don't require a code change.
17
- function resolveProviderSecret(candidates, prefixScan) {
18
- // Access `process` via `globalThis` rather than as a bare identifier. When
19
- // the GUI generates this project it bundles the code generators through
20
- // webpack, and `fn.toString()` captures whatever webpack rewrote a bare
21
- // `process` into (e.g. `payment_charge_user_process`, which is undefined on
22
- // the Vercel Node runtime). `globalThis.process` is a member access webpack
23
- // leaves untouched, so the serialized handler stays valid on the server.
24
- const env = globalThis.process.env;
25
- for (const key of candidates) {
26
- const value = env[key];
27
- if (value && String(value).length > 0) {
28
- return String(value);
29
- }
30
- }
31
- if (prefixScan) {
32
- const envKeys = Object.keys(env);
33
- for (const key of envKeys) {
34
- if (key.indexOf(prefixScan) === 0) {
35
- const value = env[key];
36
- if (value && String(value).length > 0) {
37
- return String(value);
38
- }
39
- }
40
- }
41
- }
42
- return '';
43
- }
44
- // Stripe and PayPal both reject relative paths for success_url / cancel_url
45
- // with a terse "Not a valid URL" error. The workflow-level
46
- // `Build Payment Redirect URLs And Metadata` script emits root-relative paths
47
- // (e.g. `/order-details/ORD-42`) because at build time it has no way to know
48
- // the live host. Absolutize them here using the request's base URL, which
49
- // the api-route generator already stores on `context.__baseUrl`
50
- // ("http://localhost:3001", "https://example.com", …). Leave fully-qualified
51
- // URLs untouched so callers can override with an external URL when needed.
8
+ // Each provider's driver converts to its own representation — callers must
9
+ // NOT pre-convert to minor units.
10
+ //
11
+ // The provider work itself lives in the store's payment drivers
12
+ // (`utils/payments/drivers/<id>.js`, see `src/payments`), reached through the
13
+ // `__paymentDrivers` binding every route running this node declares. The
14
+ // handler owns what every provider shares: the redirect URLs, the metadata,
15
+ // the answer shape and the refusal of a provider the store has no driver for.
16
+ // An order may already have a checkout open with the provider (the buyer
17
+ // left it, then came back through "Continue payment"). With
18
+ // \`previousAttempt\` — the reference the store recorded for that checkout —
19
+ // the node asks the provider about it before opening another: one the buyer
20
+ // can still pay is reopened instead (\`attemptOutcome: 'reused'\`), one already
21
+ // paid or being paid opens nothing (\`'in-progress'\`, and the buyer is sent
22
+ // to where a finished payment lands), and only one that can take no more
23
+ // money gives way to a new checkout (\`'created'\`). Two open checkouts are
24
+ // how one order gets paid twice.
25
+ //
26
+ // An order that recorded no checkout names itself instead (\`lookupOrderId\`,
27
+ // \`lookupPlacedAt\`): the provider is searched for the pages its placing
28
+ // opened, and they are closed before another opens (see
29
+ // \`core.closeOrderCheckouts\`). One the provider cannot close is reopened and
30
+ // answered as \`'adopted'\`, to be recorded like a new one.
31
+ //
32
+ // \`deferRedirect\` answers with the page instead of sending the buyer there,
33
+ // so the steps after this node can record the checkout first; a navigation
34
+ // step then opens \`redirectUrl\`.
35
+ //
36
+ // \`reportRefusal\` answers a provider that refused to open the checkout as
37
+ // the node's result (\`refused: 'true'\`, the provider's own words in
38
+ // \`refusal\`) instead of ending the run with a 400, so the steps after it can
39
+ // give back what the order held and tell the buyer why. Every answer then
40
+ // names the provider and says whether it refused.
41
+ // Stripe, PayPal and every other provider reject relative paths for the
42
+ // return URLs. The place-order script emits root-relative paths (e.g.
43
+ // `/order-details/ORD-42`) because at build time it cannot know the live host,
44
+ // so they are absolutized against the request's base URL
45
+ // (`context.__baseUrl`). Fully-qualified URLs pass through untouched.
52
46
  function toAbsoluteUrl(url, baseUrl) {
53
47
  if (!url) {
54
48
  return url;
@@ -63,372 +57,245 @@ function toAbsoluteUrl(url, baseUrl) {
63
57
  const base = String(baseUrl).replace(/\/+$/, '');
64
58
  return str.startsWith('/') ? base + str : base + '/' + str;
65
59
  }
60
+ // The provider sends the buyer to these pages after paying, so they must stay
61
+ // on this store: a URL on another origin (or one that does not parse) becomes
62
+ // the store's home page. Without a base URL nothing can be compared, and the
63
+ // URL is left as it is.
64
+ function toStoreUrl(url, baseUrl) {
65
+ if (!url || !baseUrl) {
66
+ return url;
67
+ }
68
+ try {
69
+ const origin = new URL(baseUrl).origin;
70
+ return new URL(url, origin + '/').origin === origin ? url : origin + '/';
71
+ }
72
+ catch (_e) {
73
+ return String(baseUrl).replace(/\/+$/, '') + '/';
74
+ }
75
+ }
66
76
  async function payment_charge_user(config, _context) {
67
- const providerType = config.providerType || config.provider || config.providerId || 'stripe';
68
- const amount = config.amount;
77
+ // A workflow that names no provider has always meant Stripe.
78
+ const providerType = String(config.providerType || config.provider || config.providerId || 'stripe')
79
+ .trim()
80
+ .toLowerCase();
69
81
  const currency = config.currency || 'usd';
82
+ // 'payment' (the default) opens a one-time checkout; 'subscription' opens
83
+ // the provider's recurring checkout for ONE plan — `amount` is then what
84
+ // every cycle bills, `recurringInterval` / `recurringIntervalCount` the
85
+ // cycle, `trialDays` the free days before the first charge, and `planId`
86
+ // the plan `payment-ensure-subscription-plan` returned.
87
+ const mode = String(config.mode || 'payment').toLowerCase() === 'subscription' ? 'subscription' : 'payment';
70
88
  const baseUrl = String((_context && _context.__baseUrl) || '');
71
89
  // The buyer comes back from the provider's hosted page to the language they
72
90
  // checked out in: a site-relative return path gets the run's locale prefix
73
91
  // (the segment route reads it off the client context) before it is
74
- // absolutized; an external override passes through untouched.
92
+ // absolutized. A page on another site is never a return page (see
93
+ // `toStoreUrl`).
75
94
  const runLocale = _context && _context.__locale;
76
- const successUrl = toAbsoluteUrl(__workflowUtils.localizeHref(config.successUrl || '', runLocale), baseUrl);
77
- const cancelUrl = toAbsoluteUrl(__workflowUtils.localizeHref(config.cancelUrl || '', runLocale), baseUrl);
78
- const description = config.description || 'Payment';
79
- const lineItems = config.lineItems;
80
- let parsedMetadata;
95
+ const successUrl = toStoreUrl(toAbsoluteUrl(__workflowUtils.localizeHref(config.successUrl || '', runLocale), baseUrl), baseUrl);
96
+ const cancelUrl = toStoreUrl(toAbsoluteUrl(__workflowUtils.localizeHref(config.cancelUrl || '', runLocale), baseUrl), baseUrl);
97
+ let metadata;
81
98
  if (config.metadata) {
82
99
  try {
83
- parsedMetadata =
84
- typeof config.metadata === 'string' ? JSON.parse(config.metadata) : config.metadata;
100
+ metadata = typeof config.metadata === 'string' ? JSON.parse(config.metadata) : config.metadata;
85
101
  }
86
102
  catch (_e) {
87
- parsedMetadata = undefined;
103
+ metadata = undefined;
88
104
  }
89
105
  }
106
+ const driver = typeof __paymentDrivers !== 'undefined' && __paymentDrivers
107
+ ? __paymentDrivers.get(providerType)
108
+ : null;
109
+ const previousAttempt = String(config.previousAttempt || '').trim();
110
+ const lookupOrderId = String(config.lookupOrderId || '').trim();
111
+ const deferRedirect = config.deferRedirect === true || config.deferRedirect === 'true';
112
+ const reportRefusal = config.reportRefusal === true || config.reportRefusal === 'true';
113
+ let attemptOutcome = 'created';
114
+ let adoptedAttempt = '';
90
115
  let result;
91
- if (providerType === 'paypal') {
92
- result = await chargeWithPaypal(config, currency, amount, successUrl, cancelUrl, description, parsedMetadata);
93
- }
94
- else {
95
- // Everything that isn't PayPal charges through Stripe. Apple Pay / Google
96
- // Pay are surfaced automatically by Stripe's hosted checkout (Dynamic
97
- // Payment Methods) — they aren't separate providers here.
98
- result = await chargeWithStripe(config, currency, amount, successUrl, cancelUrl, description, lineItems, parsedMetadata);
99
- }
100
- // Provider-side errors (bad keys, invalid request, wrong currency, etc.)
101
- // are user-actionable configuration problems, not 500s. Surfacing them as
102
- // 400 with the provider's own message (`invalid_client`, etc.) lets the
103
- // checkout page render an actionable toast instead of a generic
104
- // "Workflow segment error" 500. The segment runtime forwards
105
- // `__earlyResponse.status` / `body` straight to the HTTP response.
106
- if (result && typeof result.error === 'string' && result.error) {
107
- return {
108
- __earlyResponse: {
109
- status: 400,
110
- headers: { 'Content-Type': 'application/json' },
111
- body: { success: false, error: result.error, provider: providerType },
112
- },
113
- };
114
- }
115
- return result;
116
- }
117
- // Converts a major-unit amount (e.g. 99.99 USD) into Stripe's expected
118
- // smallest-unit integer. Zero-decimal currencies pass through rounded;
119
- // three-decimal currencies multiply by 1000; everything else multiplies by
120
- // 100. Always returns a safe non-negative integer.
121
- //
122
- // The currency lists are declared LOCAL to this function rather than as
123
- // shared top-level consts. `generateHandler()` below assembles the final
124
- // handler by calling `.toString()` on several functions independently and
125
- // concatenating the source; a top-level const is fine in an unminified
126
- // build, but when this package itself is bundled + minified by a consumer
127
- // (e.g. teleport-gui's browser packer, built with webpack/Terser), the
128
- // minifier is free to rename the top-level const's declaration — nothing
129
- // in the bundle calls it by name, only this runtime `.toString()` read
130
- // does, which is invisible to the minifier. `toStripeMinorUnits.toString()`
131
- // would then embed a reference to a name (e.g. a mangled `Oo`) that is
132
- // never declared anywhere in the generated workflow segment file, throwing
133
- // "<mangled name> is not defined" the first time a Stripe charge runs.
134
- // Declaring the lists inside the function keeps the declaration and every
135
- // reference to it in the SAME `.toString()` snapshot, so a consistent
136
- // rename by the minifier can never separate them. See `resolveProviderSecret`
137
- // above for the same class of bug with the `process` global.
138
- function toStripeMinorUnits(major, currency) {
139
- const zeroDecimalCurrencies = [
140
- 'BIF',
141
- 'CLP',
142
- 'DJF',
143
- 'GNF',
144
- 'JPY',
145
- 'KMF',
146
- 'KRW',
147
- 'MGA',
148
- 'PYG',
149
- 'RWF',
150
- 'UGX',
151
- 'VND',
152
- 'VUV',
153
- 'XAF',
154
- 'XOF',
155
- 'XPF',
156
- ];
157
- // Currencies where the smallest unit is 1/1000 of the major unit. Stripe
158
- // expects amounts in the smallest unit (e.g. 1.500 JOD -> 1500).
159
- const threeDecimalCurrencies = ['BHD', 'IQD', 'JOD', 'KWD', 'LYD', 'OMR', 'TND'];
160
- const amt = Number(major);
161
- if (!isFinite(amt) || amt <= 0) {
162
- return 0;
163
- }
164
- const upper = String(currency || '').toUpperCase();
165
- if (zeroDecimalCurrencies.indexOf(upper) >= 0) {
166
- return Math.round(amt);
167
- }
168
- if (threeDecimalCurrencies.indexOf(upper) >= 0) {
169
- return Math.round(amt * 1000);
170
- }
171
- return Math.round(amt * 100);
172
- }
173
- async function chargeWithStripe(_config, currency, amount, successUrl, cancelUrl, description, lineItems, metadata) {
174
- const secretKey = resolveProviderSecret(['STRIPE_SECRET_KEY', 'CONFIGURATION_STRIPE_SECRET_KEY', 'STRIPE_TEST_KEY'], 'CONFIGURATION_STRIPE_SECRET_KEY');
175
- if (!secretKey) {
176
- return { checkoutUrl: '', sessionId: '', error: 'STRIPE_SECRET_KEY is not configured' };
177
- }
178
- try {
179
- // Use webpack's `__non_webpack_require__` when present (the GUI bundles this
180
- // handler through webpack, which rewrites a bare `require` into the
181
- // browser-only `__webpack_require__`). Falls back to the real `require` in
182
- // the plain tsc/dist build. See webpack-runtime-globals.d.ts.
183
- const nodeRequire = typeof __non_webpack_require__ !== 'undefined' ? __non_webpack_require__ : require;
184
- const Stripe = nodeRequire('stripe');
185
- const stripe = new Stripe(secretKey);
186
- // `payment_method_types` is intentionally omitted so Stripe uses Dynamic
187
- // Payment Methods — the checkout surfaces every method the merchant enabled
188
- // in their Stripe Dashboard (card, Apple Pay, Google Pay, Link, …) based on
189
- // the shopper's device/eligibility. Pinning `['card']` would suppress that.
190
- // (Stripe Checkout Sessions don't accept `automatic_payment_methods`; the
191
- // documented way to opt into Dynamic Payment Methods is to omit the list.)
192
- const sessionParams = {
193
- mode: 'payment',
194
- success_url: successUrl || undefined,
195
- cancel_url: cancelUrl || undefined,
196
- };
197
- if (lineItems && Array.isArray(lineItems) && lineItems.length > 0) {
198
- sessionParams.line_items = lineItems.map(function (item) {
199
- return {
200
- price_data: {
201
- currency,
202
- product_data: { name: item.name || 'Item' },
203
- unit_amount: toStripeMinorUnits(item.unitAmount, currency),
204
- },
205
- quantity: Number(item.quantity) || 1,
206
- };
116
+ if (driver &&
117
+ !previousAttempt &&
118
+ lookupOrderId &&
119
+ __paymentDrivers.core &&
120
+ typeof __paymentDrivers.core.closeOrderCheckouts === 'function') {
121
+ // An order that recorded no checkout (placed before the store recorded
122
+ // them, or one whose record failed): the pages the provider finds for it
123
+ // are closed first. One that took the money, or is taking it, opens
124
+ // nothing; one the provider cannot close is reopened and recorded
125
+ // ('adopted'); one that cannot even be found (PayPal is not searchable)
126
+ // is waited out.
127
+ let earlier;
128
+ try {
129
+ earlier = await __paymentDrivers.core.closeOrderCheckouts(driver, {
130
+ orderId: lookupOrderId,
131
+ placedAt: String(config.lookupPlacedAt || '').trim(),
207
132
  });
208
133
  }
209
- else {
210
- sessionParams.line_items = [
211
- {
212
- price_data: {
213
- currency,
214
- product_data: { name: description },
215
- unit_amount: toStripeMinorUnits(amount, currency),
216
- },
217
- quantity: 1,
218
- },
219
- ];
134
+ catch (err) {
135
+ earlier = { outcome: '', error: err.message };
220
136
  }
221
- if (metadata) {
222
- sessionParams.metadata = metadata;
137
+ const found = String((earlier && earlier.outcome) || '');
138
+ if (!found) {
139
+ result = {
140
+ checkoutUrl: '',
141
+ sessionId: '',
142
+ error: String((earlier && earlier.error) || 'The earlier payment could not be checked.'),
143
+ };
144
+ }
145
+ else if (found === 'paid' || found === 'confirming') {
146
+ attemptOutcome = 'in-progress';
147
+ result = { checkoutUrl: '', sessionId: '' };
148
+ }
149
+ else if (found === 'open' && earlier.checkoutUrl && earlier.reference) {
150
+ attemptOutcome = 'adopted';
151
+ adoptedAttempt = String(earlier.reference);
152
+ result = { checkoutUrl: String(earlier.checkoutUrl), sessionId: adoptedAttempt };
153
+ }
154
+ else if (found === 'open') {
155
+ const until = new Date(String(earlier.openUntil || ''));
156
+ result = {
157
+ checkoutUrl: '',
158
+ sessionId: '',
159
+ error: 'The payment page this order opened earlier may still take a payment' +
160
+ (isFinite(until.getTime())
161
+ ? ' until ' + until.toISOString().slice(0, 16).replace('T', ' ') + ' UTC'
162
+ : '') +
163
+ '. Finish paying there, or try again after that.',
164
+ };
223
165
  }
224
- const session = await stripe.checkout.sessions.create(sessionParams);
225
- // __redirectUrl signals the client-side workflow runtime to
226
- // navigate the browser to Stripe's hosted checkout page.
227
- // Without it, payment-charge-user returns __terminal but the
228
- // user is left stuck on the originating page (e.g. /checkout)
229
- // with the loading button never resetting — Stripe's
230
- // payment.created webhook never fires because the buyer never
231
- // sees the payment form. See runtime.js for the redirect step.
232
- const checkoutUrl = session.url || '';
233
- return {
234
- checkoutUrl,
235
- sessionId: session.id || '',
236
- __terminal: true,
237
- __redirectUrl: checkoutUrl,
238
- };
239
- }
240
- catch (err) {
241
- return { checkoutUrl: '', sessionId: '', error: err.message };
242
166
  }
243
- }
244
- // Authenticates with PayPal and discovers which environment (sandbox/live)
245
- // the credentials belong to in the same call. Both PayPal environments issue
246
- // client IDs starting with `A...` so the prefix tells us nothing — but the
247
- // OAuth token endpoint replies with `invalid_client` when the keys belong to
248
- // the other environment, which we use as a precise signal to fail over.
249
- //
250
- // The detected base URL is cached at module scope (`__paypalBaseUrlCache`)
251
- // so the next charge in the same server instance skips the failover round
252
- // trip. Cache is invalidated automatically if a cached URL ever returns
253
- // `invalid_client` — covers credential rotation between envs.
254
- async function paypalAuthenticate(clientId, clientSecret) {
255
- const SANDBOX = 'https://api-m.sandbox.paypal.com';
256
- const LIVE = 'https://api-m.paypal.com';
257
- const basicAuth = 'Basic ' + globalThis.Buffer.from(clientId + ':' + clientSecret).toString('base64');
258
- async function tryAuth(baseUrl) {
167
+ if (driver && previousAttempt && typeof driver.inspectCheckout === 'function') {
168
+ let earlier;
259
169
  try {
260
- const res = await fetch(baseUrl + '/v1/oauth2/token', {
261
- method: 'POST',
262
- headers: { Authorization: basicAuth, 'Content-Type': 'application/x-www-form-urlencoded' },
263
- body: 'grant_type=client_credentials',
264
- });
265
- const data = await res.json();
266
- if (data && data.access_token) {
267
- return { accessToken: data.access_token };
268
- }
269
- // PayPal's documented error code for "credentials don't match this env".
270
- const isInvalidClient = data && data.error === 'invalid_client';
271
- return {
272
- invalidClient: isInvalidClient,
273
- errorMessage: (data && (data.error_description || data.error)) || 'HTTP ' + res.status,
274
- };
170
+ earlier = await driver.inspectCheckout({ reference: previousAttempt });
275
171
  }
276
- catch (e) {
277
- return { errorMessage: 'network error: ' + e.message };
172
+ catch (err) {
173
+ earlier = { error: err.message };
278
174
  }
279
- }
280
- // Cache hit — try it first. If credentials rotated to the other env the
281
- // cached URL replies invalid_client and we re-detect.
282
- const cached = globalThis.__paypalBaseUrlCache;
283
- if (cached === SANDBOX || cached === LIVE) {
284
- const r = await tryAuth(cached);
285
- if (r.accessToken) {
286
- return { baseUrl: cached, accessToken: r.accessToken };
175
+ const state = String((earlier && earlier.state) || '');
176
+ if (earlier && typeof earlier.error === 'string' && earlier.error) {
177
+ // Opening another checkout while the provider cannot say what became of
178
+ // this one could take the money twice: the buyer tries again instead.
179
+ result = { checkoutUrl: '', sessionId: '', error: earlier.error };
287
180
  }
288
- if (!r.invalidClient) {
289
- return { error: 'PayPal authentication failed: ' + r.errorMessage };
290
- // invalid_client on cached env → bust cache, fall through to detection.
181
+ else if (state === 'open' && earlier.checkoutUrl) {
182
+ attemptOutcome = 'reused';
183
+ result = { checkoutUrl: String(earlier.checkoutUrl), sessionId: previousAttempt };
184
+ }
185
+ else if (state === 'paid' || state === 'confirming') {
186
+ attemptOutcome = 'in-progress';
187
+ result = { checkoutUrl: '', sessionId: previousAttempt };
291
188
  }
292
- ;
293
- globalThis.__paypalBaseUrlCache = undefined;
294
- }
295
- // Detection: sandbox first (safer default — most dev setups). On
296
- // invalid_client try live. Anything else (network/server error) is real
297
- // and worth surfacing immediately so it doesn't get masked by a successful
298
- // live call against keys that belong to a different sandbox account.
299
- const sandboxResult = await tryAuth(SANDBOX);
300
- if (sandboxResult.accessToken) {
301
- ;
302
- globalThis.__paypalBaseUrlCache = SANDBOX;
303
- return { baseUrl: SANDBOX, accessToken: sandboxResult.accessToken };
304
- }
305
- if (!sandboxResult.invalidClient) {
306
- return { error: 'PayPal authentication failed: ' + sandboxResult.errorMessage };
307
- }
308
- const liveResult = await tryAuth(LIVE);
309
- if (liveResult.accessToken) {
310
- ;
311
- globalThis.__paypalBaseUrlCache = LIVE;
312
- return { baseUrl: LIVE, accessToken: liveResult.accessToken };
313
- }
314
- // Both environments rejected the credentials.
315
- return {
316
- error: 'PayPal authentication failed: credentials are not valid for either sandbox or live (' +
317
- (liveResult.errorMessage || 'invalid_client') +
318
- '). Verify CONFIGURATION_PAYPAL_CLIENT_ID and CONFIGURATION_PAYPAL_CLIENT_SECRET in .env match a single PayPal app.',
319
- };
320
- }
321
- async function chargeWithPaypal(_config, currency, amount, successUrl, cancelUrl, description, metadata) {
322
- const clientId = resolveProviderSecret(['PAYPAL_CLIENT_ID', 'CONFIGURATION_PAYPAL_CLIENT_ID'], 'CONFIGURATION_PAYPAL_CLIENT_ID');
323
- const clientSecret = resolveProviderSecret(['PAYPAL_CLIENT_SECRET', 'CONFIGURATION_PAYPAL_CLIENT_SECRET'], 'CONFIGURATION_PAYPAL_CLIENT_SECRET');
324
- if (!clientId || !clientSecret) {
325
- return { checkoutUrl: '', sessionId: '', error: 'PayPal credentials are not configured' };
326
189
  }
327
- // Common .env mistake: copy-pasted CLIENT_ID into both fields. Catch it
328
- // before round-tripping to PayPal so the user sees an actionable message
329
- // instead of a generic "Failed to authenticate" 401.
330
- if (clientId === clientSecret) {
331
- return {
190
+ if (!result && !driver) {
191
+ // A provider the store carries no driver for: refusing is the only honest
192
+ // answer — charging through another provider would take the money with
193
+ // keys the merchant never meant for this checkout.
194
+ result = {
332
195
  checkoutUrl: '',
333
196
  sessionId: '',
334
- error: 'PayPal credentials are misconfigured: CLIENT_ID and CLIENT_SECRET are identical. Update CONFIGURATION_PAYPAL_CLIENT_SECRET in .env.',
197
+ error: 'Payment provider "' + providerType + '" is not supported by this store.',
335
198
  };
336
199
  }
337
- try {
338
- const auth = await paypalAuthenticate(clientId, clientSecret);
339
- if ('error' in auth) {
340
- return { checkoutUrl: '', sessionId: '', error: auth.error };
341
- }
342
- const { baseUrl, accessToken } = auth;
343
- // PayPal expects amounts in the MAJOR currency unit as a string:
344
- // - Non-zero-decimal currencies: two decimals ("99.99")
345
- // - Zero-decimal currencies (HUF/JPY/TWD): whole-number string ("9999")
346
- // The `amount` input is already in major units per the handler contract.
347
- const PAYPAL_ZERO_DECIMAL = ['HUF', 'JPY', 'TWD'];
348
- function fmtPaypalMajor(majorAmount, cur) {
349
- const amt = Number(majorAmount);
350
- const safe = isFinite(amt) && amt > 0 ? amt : 0;
351
- if (PAYPAL_ZERO_DECIMAL.indexOf(String(cur || '').toUpperCase()) >= 0) {
352
- return String(Math.round(safe));
353
- }
354
- return safe.toFixed(2);
355
- }
356
- const orderPayload = {
357
- intent: 'CAPTURE',
358
- purchase_units: [
359
- {
360
- amount: {
361
- currency_code: currency.toUpperCase(),
362
- value: fmtPaypalMajor(Number(amount), currency),
363
- },
364
- description: description || undefined,
365
- },
366
- ],
367
- application_context: {
368
- return_url: successUrl || undefined,
369
- cancel_url: cancelUrl || undefined,
370
- },
200
+ else if (!result) {
201
+ const input = {
202
+ amount: config.amount,
203
+ currency,
204
+ description: config.description || 'Payment',
205
+ lineItems: config.lineItems,
206
+ successUrl,
207
+ cancelUrl,
208
+ metadata,
209
+ customerEmail: config.customerEmail,
210
+ baseUrl,
211
+ recurringInterval: config.recurringInterval,
212
+ recurringIntervalCount: config.recurringIntervalCount,
213
+ trialDays: config.trialDays,
214
+ amountDue: config.amountDue,
215
+ planId: config.planId,
216
+ previousAttempt,
371
217
  };
372
- if (metadata) {
373
- orderPayload.purchase_units[0].custom_id = JSON.stringify(metadata);
218
+ try {
219
+ result =
220
+ mode === 'subscription'
221
+ ? await driver.createSubscriptionCheckout(input)
222
+ : await driver.createCheckout(input);
374
223
  }
375
- const orderResponse = await fetch(baseUrl + '/v2/checkout/orders', {
376
- method: 'POST',
377
- headers: {
378
- Authorization: 'Bearer ' + accessToken,
379
- 'Content-Type': 'application/json',
380
- },
381
- body: JSON.stringify(orderPayload),
382
- });
383
- const orderData = await orderResponse.json();
384
- if (!orderResponse.ok) {
224
+ catch (err) {
225
+ result = { checkoutUrl: '', sessionId: '', error: err.message };
226
+ }
227
+ }
228
+ // Provider-side errors (bad keys, invalid request, wrong currency, etc.)
229
+ // are user-actionable configuration problems, not 500s. Surfacing them as
230
+ // 400 with the provider's own message lets the checkout page render an
231
+ // actionable toast instead of a generic "Workflow segment error" 500. The
232
+ // segment runtime forwards `__earlyResponse.status` / `body` straight to the
233
+ // HTTP response.
234
+ if (result && typeof result.error === 'string' && result.error) {
235
+ if (reportRefusal) {
236
+ // Never under \`error\`: the runtime ends a run on a node that answers one.
385
237
  return {
238
+ refused: 'true',
239
+ refusal: result.error,
240
+ provider: providerType,
386
241
  checkoutUrl: '',
387
242
  sessionId: '',
388
- error: orderData.message ||
389
- (orderData.details && orderData.details[0] && orderData.details[0].description) ||
390
- 'Order creation failed',
243
+ attemptRef: '',
244
+ attemptOutcome: '',
245
+ redirectUrl: '',
391
246
  };
392
247
  }
393
- const approveLink = orderData.links &&
394
- orderData.links.find(function (l) {
395
- return l.rel === 'approve';
396
- });
397
- const approveUrl = approveLink ? approveLink.href : '';
398
248
  return {
399
- checkoutUrl: approveUrl,
400
- sessionId: orderData.id || '',
401
- __terminal: true,
402
- // Mirror the Stripe path — the client runtime needs the
403
- // approval URL to send the buyer to PayPal's hosted page.
404
- __redirectUrl: approveUrl,
249
+ __earlyResponse: {
250
+ status: 400,
251
+ headers: { 'Content-Type': 'application/json' },
252
+ body: { success: false, error: result.error, provider: providerType },
253
+ },
405
254
  };
406
255
  }
407
- catch (err) {
408
- return { checkoutUrl: '', sessionId: '', error: err.message };
256
+ const checkoutUrl = String((result && result.checkoutUrl) || '');
257
+ const sessionId = String((result && result.sessionId) || '');
258
+ const answer = {
259
+ checkoutUrl,
260
+ sessionId,
261
+ // What the store records for this checkout: the provider's reference, or
262
+ // more where a driver needs it to reopen the page (Square: order and link).
263
+ attemptRef: attemptOutcome === 'created'
264
+ ? String((result && result.attemptRef) || sessionId)
265
+ : adoptedAttempt || previousAttempt,
266
+ attemptOutcome,
267
+ redirectUrl: attemptOutcome === 'in-progress' ? successUrl : checkoutUrl,
268
+ };
269
+ if (reportRefusal) {
270
+ answer.refused = 'false';
271
+ answer.refusal = '';
272
+ answer.provider = providerType;
273
+ }
274
+ if (mode === 'subscription') {
275
+ // Known at once for a provider that creates the subscription before the
276
+ // buyer approves it (PayPal, Razorpay); '' where the webhook reports it.
277
+ answer.providerSubscriptionId = String((result && result.providerSubscriptionId) || '');
278
+ }
279
+ if (deferRedirect) {
280
+ return answer;
409
281
  }
282
+ // __redirectUrl signals the client-side workflow runtime to navigate the
283
+ // browser to the provider's hosted page; without it the buyer is left on the
284
+ // checkout page with the button spinning (see runtime.js).
285
+ answer.__terminal = true;
286
+ answer.__redirectUrl = answer.redirectUrl;
287
+ return answer;
410
288
  }
411
289
  exports.paymentChargeUser = {
412
290
  nodeType: 'payment-charge-user',
413
291
  executionEnv: 'server',
414
292
  isTerminal: true,
415
- dependencies: {
416
- stripe: '^14.0.0',
417
- },
418
293
  generateHandler() {
419
294
  return ((0, types_1.handlerToString)(payment_charge_user) +
420
- '\n' +
421
- resolveProviderSecret.toString() +
422
295
  '\n' +
423
296
  toAbsoluteUrl.toString() +
424
297
  '\n' +
425
- toStripeMinorUnits.toString() +
426
- '\n' +
427
- chargeWithStripe.toString() +
428
- '\n' +
429
- paypalAuthenticate.toString() +
430
- '\n' +
431
- chargeWithPaypal.toString());
298
+ toStoreUrl.toString());
432
299
  },
433
300
  };
434
301
  //# sourceMappingURL=payment-charge-user.js.map