@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
@@ -2,50 +2,44 @@ import { handlerToString } from '../types';
2
2
  // Contract for the `amount` config field:
3
3
  // A floating-point number in the MAJOR currency unit (e.g. 99.99 USD,
4
4
  // 9999 JPY). Individual line items use the same `unitAmount` semantics.
5
- // Both Stripe and PayPal handlers convert to the correct provider-specific
6
- // representation internally — callers must NOT pre-convert to minor units.
7
- // Resolves a secret / provider credential from `process.env` with a fallback
8
- // chain. Some deploys populate the canonical names (`STRIPE_SECRET_KEY`,
9
- // `PAYPAL_CLIENT_ID`, …) while others keep the value behind a
10
- // `CONFIGURATION_*` prefix (sometimes numbered: `CONFIGURATION_PAYPAL_CLIENT_ID2`).
11
- // Iterate the list in order, returning the first non-empty match. If no
12
- // primary or numbered fallback is filled, scan every `process.env` key
13
- // beginning with the prefix so new variants don't require a code change.
14
- function resolveProviderSecret(candidates, prefixScan) {
15
- // Access `process` via `globalThis` rather than as a bare identifier. When
16
- // the GUI generates this project it bundles the code generators through
17
- // webpack, and `fn.toString()` captures whatever webpack rewrote a bare
18
- // `process` into (e.g. `payment_charge_user_process`, which is undefined on
19
- // the Vercel Node runtime). `globalThis.process` is a member access webpack
20
- // leaves untouched, so the serialized handler stays valid on the server.
21
- const env = globalThis.process.env;
22
- for (const key of candidates) {
23
- const value = env[key];
24
- if (value && String(value).length > 0) {
25
- return String(value);
26
- }
27
- }
28
- if (prefixScan) {
29
- const envKeys = Object.keys(env);
30
- for (const key of envKeys) {
31
- if (key.indexOf(prefixScan) === 0) {
32
- const value = env[key];
33
- if (value && String(value).length > 0) {
34
- return String(value);
35
- }
36
- }
37
- }
38
- }
39
- return '';
40
- }
41
- // Stripe and PayPal both reject relative paths for success_url / cancel_url
42
- // with a terse "Not a valid URL" error. The workflow-level
43
- // `Build Payment Redirect URLs And Metadata` script emits root-relative paths
44
- // (e.g. `/order-details/ORD-42`) because at build time it has no way to know
45
- // the live host. Absolutize them here using the request's base URL, which
46
- // the api-route generator already stores on `context.__baseUrl`
47
- // ("http://localhost:3001", "https://example.com", …). Leave fully-qualified
48
- // URLs untouched so callers can override with an external URL when needed.
5
+ // Each provider's driver converts to its own representation — callers must
6
+ // NOT pre-convert to minor units.
7
+ //
8
+ // The provider work itself lives in the store's payment drivers
9
+ // (`utils/payments/drivers/<id>.js`, see `src/payments`), reached through the
10
+ // `__paymentDrivers` binding every route running this node declares. The
11
+ // handler owns what every provider shares: the redirect URLs, the metadata,
12
+ // the answer shape and the refusal of a provider the store has no driver for.
13
+ // An order may already have a checkout open with the provider (the buyer
14
+ // left it, then came back through "Continue payment"). With
15
+ // \`previousAttempt\` — the reference the store recorded for that checkout —
16
+ // the node asks the provider about it before opening another: one the buyer
17
+ // can still pay is reopened instead (\`attemptOutcome: 'reused'\`), one already
18
+ // paid or being paid opens nothing (\`'in-progress'\`, and the buyer is sent
19
+ // to where a finished payment lands), and only one that can take no more
20
+ // money gives way to a new checkout (\`'created'\`). Two open checkouts are
21
+ // how one order gets paid twice.
22
+ //
23
+ // An order that recorded no checkout names itself instead (\`lookupOrderId\`,
24
+ // \`lookupPlacedAt\`): the provider is searched for the pages its placing
25
+ // opened, and they are closed before another opens (see
26
+ // \`core.closeOrderCheckouts\`). One the provider cannot close is reopened and
27
+ // answered as \`'adopted'\`, to be recorded like a new one.
28
+ //
29
+ // \`deferRedirect\` answers with the page instead of sending the buyer there,
30
+ // so the steps after this node can record the checkout first; a navigation
31
+ // step then opens \`redirectUrl\`.
32
+ //
33
+ // \`reportRefusal\` answers a provider that refused to open the checkout as
34
+ // the node's result (\`refused: 'true'\`, the provider's own words in
35
+ // \`refusal\`) instead of ending the run with a 400, so the steps after it can
36
+ // give back what the order held and tell the buyer why. Every answer then
37
+ // names the provider and says whether it refused.
38
+ // Stripe, PayPal and every other provider reject relative paths for the
39
+ // return URLs. The place-order script emits root-relative paths (e.g.
40
+ // `/order-details/ORD-42`) because at build time it cannot know the live host,
41
+ // so they are absolutized against the request's base URL
42
+ // (`context.__baseUrl`). Fully-qualified URLs pass through untouched.
49
43
  function toAbsoluteUrl(url, baseUrl) {
50
44
  if (!url) {
51
45
  return url;
@@ -60,372 +54,245 @@ function toAbsoluteUrl(url, baseUrl) {
60
54
  const base = String(baseUrl).replace(/\/+$/, '');
61
55
  return str.startsWith('/') ? base + str : base + '/' + str;
62
56
  }
57
+ // The provider sends the buyer to these pages after paying, so they must stay
58
+ // on this store: a URL on another origin (or one that does not parse) becomes
59
+ // the store's home page. Without a base URL nothing can be compared, and the
60
+ // URL is left as it is.
61
+ function toStoreUrl(url, baseUrl) {
62
+ if (!url || !baseUrl) {
63
+ return url;
64
+ }
65
+ try {
66
+ const origin = new URL(baseUrl).origin;
67
+ return new URL(url, origin + '/').origin === origin ? url : origin + '/';
68
+ }
69
+ catch (_e) {
70
+ return String(baseUrl).replace(/\/+$/, '') + '/';
71
+ }
72
+ }
63
73
  async function payment_charge_user(config, _context) {
64
- const providerType = config.providerType || config.provider || config.providerId || 'stripe';
65
- const amount = config.amount;
74
+ // A workflow that names no provider has always meant Stripe.
75
+ const providerType = String(config.providerType || config.provider || config.providerId || 'stripe')
76
+ .trim()
77
+ .toLowerCase();
66
78
  const currency = config.currency || 'usd';
79
+ // 'payment' (the default) opens a one-time checkout; 'subscription' opens
80
+ // the provider's recurring checkout for ONE plan — `amount` is then what
81
+ // every cycle bills, `recurringInterval` / `recurringIntervalCount` the
82
+ // cycle, `trialDays` the free days before the first charge, and `planId`
83
+ // the plan `payment-ensure-subscription-plan` returned.
84
+ const mode = String(config.mode || 'payment').toLowerCase() === 'subscription' ? 'subscription' : 'payment';
67
85
  const baseUrl = String((_context && _context.__baseUrl) || '');
68
86
  // The buyer comes back from the provider's hosted page to the language they
69
87
  // checked out in: a site-relative return path gets the run's locale prefix
70
88
  // (the segment route reads it off the client context) before it is
71
- // absolutized; an external override passes through untouched.
89
+ // absolutized. A page on another site is never a return page (see
90
+ // `toStoreUrl`).
72
91
  const runLocale = _context && _context.__locale;
73
- const successUrl = toAbsoluteUrl(__workflowUtils.localizeHref(config.successUrl || '', runLocale), baseUrl);
74
- const cancelUrl = toAbsoluteUrl(__workflowUtils.localizeHref(config.cancelUrl || '', runLocale), baseUrl);
75
- const description = config.description || 'Payment';
76
- const lineItems = config.lineItems;
77
- let parsedMetadata;
92
+ const successUrl = toStoreUrl(toAbsoluteUrl(__workflowUtils.localizeHref(config.successUrl || '', runLocale), baseUrl), baseUrl);
93
+ const cancelUrl = toStoreUrl(toAbsoluteUrl(__workflowUtils.localizeHref(config.cancelUrl || '', runLocale), baseUrl), baseUrl);
94
+ let metadata;
78
95
  if (config.metadata) {
79
96
  try {
80
- parsedMetadata =
81
- typeof config.metadata === 'string' ? JSON.parse(config.metadata) : config.metadata;
97
+ metadata = typeof config.metadata === 'string' ? JSON.parse(config.metadata) : config.metadata;
82
98
  }
83
99
  catch (_e) {
84
- parsedMetadata = undefined;
100
+ metadata = undefined;
85
101
  }
86
102
  }
103
+ const driver = typeof __paymentDrivers !== 'undefined' && __paymentDrivers
104
+ ? __paymentDrivers.get(providerType)
105
+ : null;
106
+ const previousAttempt = String(config.previousAttempt || '').trim();
107
+ const lookupOrderId = String(config.lookupOrderId || '').trim();
108
+ const deferRedirect = config.deferRedirect === true || config.deferRedirect === 'true';
109
+ const reportRefusal = config.reportRefusal === true || config.reportRefusal === 'true';
110
+ let attemptOutcome = 'created';
111
+ let adoptedAttempt = '';
87
112
  let result;
88
- if (providerType === 'paypal') {
89
- result = await chargeWithPaypal(config, currency, amount, successUrl, cancelUrl, description, parsedMetadata);
90
- }
91
- else {
92
- // Everything that isn't PayPal charges through Stripe. Apple Pay / Google
93
- // Pay are surfaced automatically by Stripe's hosted checkout (Dynamic
94
- // Payment Methods) — they aren't separate providers here.
95
- result = await chargeWithStripe(config, currency, amount, successUrl, cancelUrl, description, lineItems, parsedMetadata);
96
- }
97
- // Provider-side errors (bad keys, invalid request, wrong currency, etc.)
98
- // are user-actionable configuration problems, not 500s. Surfacing them as
99
- // 400 with the provider's own message (`invalid_client`, etc.) lets the
100
- // checkout page render an actionable toast instead of a generic
101
- // "Workflow segment error" 500. The segment runtime forwards
102
- // `__earlyResponse.status` / `body` straight to the HTTP response.
103
- if (result && typeof result.error === 'string' && result.error) {
104
- return {
105
- __earlyResponse: {
106
- status: 400,
107
- headers: { 'Content-Type': 'application/json' },
108
- body: { success: false, error: result.error, provider: providerType },
109
- },
110
- };
111
- }
112
- return result;
113
- }
114
- // Converts a major-unit amount (e.g. 99.99 USD) into Stripe's expected
115
- // smallest-unit integer. Zero-decimal currencies pass through rounded;
116
- // three-decimal currencies multiply by 1000; everything else multiplies by
117
- // 100. Always returns a safe non-negative integer.
118
- //
119
- // The currency lists are declared LOCAL to this function rather than as
120
- // shared top-level consts. `generateHandler()` below assembles the final
121
- // handler by calling `.toString()` on several functions independently and
122
- // concatenating the source; a top-level const is fine in an unminified
123
- // build, but when this package itself is bundled + minified by a consumer
124
- // (e.g. teleport-gui's browser packer, built with webpack/Terser), the
125
- // minifier is free to rename the top-level const's declaration — nothing
126
- // in the bundle calls it by name, only this runtime `.toString()` read
127
- // does, which is invisible to the minifier. `toStripeMinorUnits.toString()`
128
- // would then embed a reference to a name (e.g. a mangled `Oo`) that is
129
- // never declared anywhere in the generated workflow segment file, throwing
130
- // "<mangled name> is not defined" the first time a Stripe charge runs.
131
- // Declaring the lists inside the function keeps the declaration and every
132
- // reference to it in the SAME `.toString()` snapshot, so a consistent
133
- // rename by the minifier can never separate them. See `resolveProviderSecret`
134
- // above for the same class of bug with the `process` global.
135
- function toStripeMinorUnits(major, currency) {
136
- const zeroDecimalCurrencies = [
137
- 'BIF',
138
- 'CLP',
139
- 'DJF',
140
- 'GNF',
141
- 'JPY',
142
- 'KMF',
143
- 'KRW',
144
- 'MGA',
145
- 'PYG',
146
- 'RWF',
147
- 'UGX',
148
- 'VND',
149
- 'VUV',
150
- 'XAF',
151
- 'XOF',
152
- 'XPF',
153
- ];
154
- // Currencies where the smallest unit is 1/1000 of the major unit. Stripe
155
- // expects amounts in the smallest unit (e.g. 1.500 JOD -> 1500).
156
- const threeDecimalCurrencies = ['BHD', 'IQD', 'JOD', 'KWD', 'LYD', 'OMR', 'TND'];
157
- const amt = Number(major);
158
- if (!isFinite(amt) || amt <= 0) {
159
- return 0;
160
- }
161
- const upper = String(currency || '').toUpperCase();
162
- if (zeroDecimalCurrencies.indexOf(upper) >= 0) {
163
- return Math.round(amt);
164
- }
165
- if (threeDecimalCurrencies.indexOf(upper) >= 0) {
166
- return Math.round(amt * 1000);
167
- }
168
- return Math.round(amt * 100);
169
- }
170
- async function chargeWithStripe(_config, currency, amount, successUrl, cancelUrl, description, lineItems, metadata) {
171
- const secretKey = resolveProviderSecret(['STRIPE_SECRET_KEY', 'CONFIGURATION_STRIPE_SECRET_KEY', 'STRIPE_TEST_KEY'], 'CONFIGURATION_STRIPE_SECRET_KEY');
172
- if (!secretKey) {
173
- return { checkoutUrl: '', sessionId: '', error: 'STRIPE_SECRET_KEY is not configured' };
174
- }
175
- try {
176
- // Use webpack's `__non_webpack_require__` when present (the GUI bundles this
177
- // handler through webpack, which rewrites a bare `require` into the
178
- // browser-only `__webpack_require__`). Falls back to the real `require` in
179
- // the plain tsc/dist build. See webpack-runtime-globals.d.ts.
180
- const nodeRequire = typeof __non_webpack_require__ !== 'undefined' ? __non_webpack_require__ : require;
181
- const Stripe = nodeRequire('stripe');
182
- const stripe = new Stripe(secretKey);
183
- // `payment_method_types` is intentionally omitted so Stripe uses Dynamic
184
- // Payment Methods — the checkout surfaces every method the merchant enabled
185
- // in their Stripe Dashboard (card, Apple Pay, Google Pay, Link, …) based on
186
- // the shopper's device/eligibility. Pinning `['card']` would suppress that.
187
- // (Stripe Checkout Sessions don't accept `automatic_payment_methods`; the
188
- // documented way to opt into Dynamic Payment Methods is to omit the list.)
189
- const sessionParams = {
190
- mode: 'payment',
191
- success_url: successUrl || undefined,
192
- cancel_url: cancelUrl || undefined,
193
- };
194
- if (lineItems && Array.isArray(lineItems) && lineItems.length > 0) {
195
- sessionParams.line_items = lineItems.map(function (item) {
196
- return {
197
- price_data: {
198
- currency,
199
- product_data: { name: item.name || 'Item' },
200
- unit_amount: toStripeMinorUnits(item.unitAmount, currency),
201
- },
202
- quantity: Number(item.quantity) || 1,
203
- };
113
+ if (driver &&
114
+ !previousAttempt &&
115
+ lookupOrderId &&
116
+ __paymentDrivers.core &&
117
+ typeof __paymentDrivers.core.closeOrderCheckouts === 'function') {
118
+ // An order that recorded no checkout (placed before the store recorded
119
+ // them, or one whose record failed): the pages the provider finds for it
120
+ // are closed first. One that took the money, or is taking it, opens
121
+ // nothing; one the provider cannot close is reopened and recorded
122
+ // ('adopted'); one that cannot even be found (PayPal is not searchable)
123
+ // is waited out.
124
+ let earlier;
125
+ try {
126
+ earlier = await __paymentDrivers.core.closeOrderCheckouts(driver, {
127
+ orderId: lookupOrderId,
128
+ placedAt: String(config.lookupPlacedAt || '').trim(),
204
129
  });
205
130
  }
206
- else {
207
- sessionParams.line_items = [
208
- {
209
- price_data: {
210
- currency,
211
- product_data: { name: description },
212
- unit_amount: toStripeMinorUnits(amount, currency),
213
- },
214
- quantity: 1,
215
- },
216
- ];
131
+ catch (err) {
132
+ earlier = { outcome: '', error: err.message };
217
133
  }
218
- if (metadata) {
219
- sessionParams.metadata = metadata;
134
+ const found = String((earlier && earlier.outcome) || '');
135
+ if (!found) {
136
+ result = {
137
+ checkoutUrl: '',
138
+ sessionId: '',
139
+ error: String((earlier && earlier.error) || 'The earlier payment could not be checked.'),
140
+ };
141
+ }
142
+ else if (found === 'paid' || found === 'confirming') {
143
+ attemptOutcome = 'in-progress';
144
+ result = { checkoutUrl: '', sessionId: '' };
145
+ }
146
+ else if (found === 'open' && earlier.checkoutUrl && earlier.reference) {
147
+ attemptOutcome = 'adopted';
148
+ adoptedAttempt = String(earlier.reference);
149
+ result = { checkoutUrl: String(earlier.checkoutUrl), sessionId: adoptedAttempt };
150
+ }
151
+ else if (found === 'open') {
152
+ const until = new Date(String(earlier.openUntil || ''));
153
+ result = {
154
+ checkoutUrl: '',
155
+ sessionId: '',
156
+ error: 'The payment page this order opened earlier may still take a payment' +
157
+ (isFinite(until.getTime())
158
+ ? ' until ' + until.toISOString().slice(0, 16).replace('T', ' ') + ' UTC'
159
+ : '') +
160
+ '. Finish paying there, or try again after that.',
161
+ };
220
162
  }
221
- const session = await stripe.checkout.sessions.create(sessionParams);
222
- // __redirectUrl signals the client-side workflow runtime to
223
- // navigate the browser to Stripe's hosted checkout page.
224
- // Without it, payment-charge-user returns __terminal but the
225
- // user is left stuck on the originating page (e.g. /checkout)
226
- // with the loading button never resetting — Stripe's
227
- // payment.created webhook never fires because the buyer never
228
- // sees the payment form. See runtime.js for the redirect step.
229
- const checkoutUrl = session.url || '';
230
- return {
231
- checkoutUrl,
232
- sessionId: session.id || '',
233
- __terminal: true,
234
- __redirectUrl: checkoutUrl,
235
- };
236
- }
237
- catch (err) {
238
- return { checkoutUrl: '', sessionId: '', error: err.message };
239
163
  }
240
- }
241
- // Authenticates with PayPal and discovers which environment (sandbox/live)
242
- // the credentials belong to in the same call. Both PayPal environments issue
243
- // client IDs starting with `A...` so the prefix tells us nothing — but the
244
- // OAuth token endpoint replies with `invalid_client` when the keys belong to
245
- // the other environment, which we use as a precise signal to fail over.
246
- //
247
- // The detected base URL is cached at module scope (`__paypalBaseUrlCache`)
248
- // so the next charge in the same server instance skips the failover round
249
- // trip. Cache is invalidated automatically if a cached URL ever returns
250
- // `invalid_client` — covers credential rotation between envs.
251
- async function paypalAuthenticate(clientId, clientSecret) {
252
- const SANDBOX = 'https://api-m.sandbox.paypal.com';
253
- const LIVE = 'https://api-m.paypal.com';
254
- const basicAuth = 'Basic ' + globalThis.Buffer.from(clientId + ':' + clientSecret).toString('base64');
255
- async function tryAuth(baseUrl) {
164
+ if (driver && previousAttempt && typeof driver.inspectCheckout === 'function') {
165
+ let earlier;
256
166
  try {
257
- const res = await fetch(baseUrl + '/v1/oauth2/token', {
258
- method: 'POST',
259
- headers: { Authorization: basicAuth, 'Content-Type': 'application/x-www-form-urlencoded' },
260
- body: 'grant_type=client_credentials',
261
- });
262
- const data = await res.json();
263
- if (data && data.access_token) {
264
- return { accessToken: data.access_token };
265
- }
266
- // PayPal's documented error code for "credentials don't match this env".
267
- const isInvalidClient = data && data.error === 'invalid_client';
268
- return {
269
- invalidClient: isInvalidClient,
270
- errorMessage: (data && (data.error_description || data.error)) || 'HTTP ' + res.status,
271
- };
167
+ earlier = await driver.inspectCheckout({ reference: previousAttempt });
272
168
  }
273
- catch (e) {
274
- return { errorMessage: 'network error: ' + e.message };
169
+ catch (err) {
170
+ earlier = { error: err.message };
275
171
  }
276
- }
277
- // Cache hit — try it first. If credentials rotated to the other env the
278
- // cached URL replies invalid_client and we re-detect.
279
- const cached = globalThis.__paypalBaseUrlCache;
280
- if (cached === SANDBOX || cached === LIVE) {
281
- const r = await tryAuth(cached);
282
- if (r.accessToken) {
283
- return { baseUrl: cached, accessToken: r.accessToken };
172
+ const state = String((earlier && earlier.state) || '');
173
+ if (earlier && typeof earlier.error === 'string' && earlier.error) {
174
+ // Opening another checkout while the provider cannot say what became of
175
+ // this one could take the money twice: the buyer tries again instead.
176
+ result = { checkoutUrl: '', sessionId: '', error: earlier.error };
284
177
  }
285
- if (!r.invalidClient) {
286
- return { error: 'PayPal authentication failed: ' + r.errorMessage };
287
- // invalid_client on cached env → bust cache, fall through to detection.
178
+ else if (state === 'open' && earlier.checkoutUrl) {
179
+ attemptOutcome = 'reused';
180
+ result = { checkoutUrl: String(earlier.checkoutUrl), sessionId: previousAttempt };
181
+ }
182
+ else if (state === 'paid' || state === 'confirming') {
183
+ attemptOutcome = 'in-progress';
184
+ result = { checkoutUrl: '', sessionId: previousAttempt };
288
185
  }
289
- ;
290
- globalThis.__paypalBaseUrlCache = undefined;
291
- }
292
- // Detection: sandbox first (safer default — most dev setups). On
293
- // invalid_client try live. Anything else (network/server error) is real
294
- // and worth surfacing immediately so it doesn't get masked by a successful
295
- // live call against keys that belong to a different sandbox account.
296
- const sandboxResult = await tryAuth(SANDBOX);
297
- if (sandboxResult.accessToken) {
298
- ;
299
- globalThis.__paypalBaseUrlCache = SANDBOX;
300
- return { baseUrl: SANDBOX, accessToken: sandboxResult.accessToken };
301
- }
302
- if (!sandboxResult.invalidClient) {
303
- return { error: 'PayPal authentication failed: ' + sandboxResult.errorMessage };
304
- }
305
- const liveResult = await tryAuth(LIVE);
306
- if (liveResult.accessToken) {
307
- ;
308
- globalThis.__paypalBaseUrlCache = LIVE;
309
- return { baseUrl: LIVE, accessToken: liveResult.accessToken };
310
- }
311
- // Both environments rejected the credentials.
312
- return {
313
- error: 'PayPal authentication failed: credentials are not valid for either sandbox or live (' +
314
- (liveResult.errorMessage || 'invalid_client') +
315
- '). Verify CONFIGURATION_PAYPAL_CLIENT_ID and CONFIGURATION_PAYPAL_CLIENT_SECRET in .env match a single PayPal app.',
316
- };
317
- }
318
- async function chargeWithPaypal(_config, currency, amount, successUrl, cancelUrl, description, metadata) {
319
- const clientId = resolveProviderSecret(['PAYPAL_CLIENT_ID', 'CONFIGURATION_PAYPAL_CLIENT_ID'], 'CONFIGURATION_PAYPAL_CLIENT_ID');
320
- const clientSecret = resolveProviderSecret(['PAYPAL_CLIENT_SECRET', 'CONFIGURATION_PAYPAL_CLIENT_SECRET'], 'CONFIGURATION_PAYPAL_CLIENT_SECRET');
321
- if (!clientId || !clientSecret) {
322
- return { checkoutUrl: '', sessionId: '', error: 'PayPal credentials are not configured' };
323
186
  }
324
- // Common .env mistake: copy-pasted CLIENT_ID into both fields. Catch it
325
- // before round-tripping to PayPal so the user sees an actionable message
326
- // instead of a generic "Failed to authenticate" 401.
327
- if (clientId === clientSecret) {
328
- return {
187
+ if (!result && !driver) {
188
+ // A provider the store carries no driver for: refusing is the only honest
189
+ // answer — charging through another provider would take the money with
190
+ // keys the merchant never meant for this checkout.
191
+ result = {
329
192
  checkoutUrl: '',
330
193
  sessionId: '',
331
- error: 'PayPal credentials are misconfigured: CLIENT_ID and CLIENT_SECRET are identical. Update CONFIGURATION_PAYPAL_CLIENT_SECRET in .env.',
194
+ error: 'Payment provider "' + providerType + '" is not supported by this store.',
332
195
  };
333
196
  }
334
- try {
335
- const auth = await paypalAuthenticate(clientId, clientSecret);
336
- if ('error' in auth) {
337
- return { checkoutUrl: '', sessionId: '', error: auth.error };
338
- }
339
- const { baseUrl, accessToken } = auth;
340
- // PayPal expects amounts in the MAJOR currency unit as a string:
341
- // - Non-zero-decimal currencies: two decimals ("99.99")
342
- // - Zero-decimal currencies (HUF/JPY/TWD): whole-number string ("9999")
343
- // The `amount` input is already in major units per the handler contract.
344
- const PAYPAL_ZERO_DECIMAL = ['HUF', 'JPY', 'TWD'];
345
- function fmtPaypalMajor(majorAmount, cur) {
346
- const amt = Number(majorAmount);
347
- const safe = isFinite(amt) && amt > 0 ? amt : 0;
348
- if (PAYPAL_ZERO_DECIMAL.indexOf(String(cur || '').toUpperCase()) >= 0) {
349
- return String(Math.round(safe));
350
- }
351
- return safe.toFixed(2);
352
- }
353
- const orderPayload = {
354
- intent: 'CAPTURE',
355
- purchase_units: [
356
- {
357
- amount: {
358
- currency_code: currency.toUpperCase(),
359
- value: fmtPaypalMajor(Number(amount), currency),
360
- },
361
- description: description || undefined,
362
- },
363
- ],
364
- application_context: {
365
- return_url: successUrl || undefined,
366
- cancel_url: cancelUrl || undefined,
367
- },
197
+ else if (!result) {
198
+ const input = {
199
+ amount: config.amount,
200
+ currency,
201
+ description: config.description || 'Payment',
202
+ lineItems: config.lineItems,
203
+ successUrl,
204
+ cancelUrl,
205
+ metadata,
206
+ customerEmail: config.customerEmail,
207
+ baseUrl,
208
+ recurringInterval: config.recurringInterval,
209
+ recurringIntervalCount: config.recurringIntervalCount,
210
+ trialDays: config.trialDays,
211
+ amountDue: config.amountDue,
212
+ planId: config.planId,
213
+ previousAttempt,
368
214
  };
369
- if (metadata) {
370
- orderPayload.purchase_units[0].custom_id = JSON.stringify(metadata);
215
+ try {
216
+ result =
217
+ mode === 'subscription'
218
+ ? await driver.createSubscriptionCheckout(input)
219
+ : await driver.createCheckout(input);
371
220
  }
372
- const orderResponse = await fetch(baseUrl + '/v2/checkout/orders', {
373
- method: 'POST',
374
- headers: {
375
- Authorization: 'Bearer ' + accessToken,
376
- 'Content-Type': 'application/json',
377
- },
378
- body: JSON.stringify(orderPayload),
379
- });
380
- const orderData = await orderResponse.json();
381
- if (!orderResponse.ok) {
221
+ catch (err) {
222
+ result = { checkoutUrl: '', sessionId: '', error: err.message };
223
+ }
224
+ }
225
+ // Provider-side errors (bad keys, invalid request, wrong currency, etc.)
226
+ // are user-actionable configuration problems, not 500s. Surfacing them as
227
+ // 400 with the provider's own message lets the checkout page render an
228
+ // actionable toast instead of a generic "Workflow segment error" 500. The
229
+ // segment runtime forwards `__earlyResponse.status` / `body` straight to the
230
+ // HTTP response.
231
+ if (result && typeof result.error === 'string' && result.error) {
232
+ if (reportRefusal) {
233
+ // Never under \`error\`: the runtime ends a run on a node that answers one.
382
234
  return {
235
+ refused: 'true',
236
+ refusal: result.error,
237
+ provider: providerType,
383
238
  checkoutUrl: '',
384
239
  sessionId: '',
385
- error: orderData.message ||
386
- (orderData.details && orderData.details[0] && orderData.details[0].description) ||
387
- 'Order creation failed',
240
+ attemptRef: '',
241
+ attemptOutcome: '',
242
+ redirectUrl: '',
388
243
  };
389
244
  }
390
- const approveLink = orderData.links &&
391
- orderData.links.find(function (l) {
392
- return l.rel === 'approve';
393
- });
394
- const approveUrl = approveLink ? approveLink.href : '';
395
245
  return {
396
- checkoutUrl: approveUrl,
397
- sessionId: orderData.id || '',
398
- __terminal: true,
399
- // Mirror the Stripe path — the client runtime needs the
400
- // approval URL to send the buyer to PayPal's hosted page.
401
- __redirectUrl: approveUrl,
246
+ __earlyResponse: {
247
+ status: 400,
248
+ headers: { 'Content-Type': 'application/json' },
249
+ body: { success: false, error: result.error, provider: providerType },
250
+ },
402
251
  };
403
252
  }
404
- catch (err) {
405
- return { checkoutUrl: '', sessionId: '', error: err.message };
253
+ const checkoutUrl = String((result && result.checkoutUrl) || '');
254
+ const sessionId = String((result && result.sessionId) || '');
255
+ const answer = {
256
+ checkoutUrl,
257
+ sessionId,
258
+ // What the store records for this checkout: the provider's reference, or
259
+ // more where a driver needs it to reopen the page (Square: order and link).
260
+ attemptRef: attemptOutcome === 'created'
261
+ ? String((result && result.attemptRef) || sessionId)
262
+ : adoptedAttempt || previousAttempt,
263
+ attemptOutcome,
264
+ redirectUrl: attemptOutcome === 'in-progress' ? successUrl : checkoutUrl,
265
+ };
266
+ if (reportRefusal) {
267
+ answer.refused = 'false';
268
+ answer.refusal = '';
269
+ answer.provider = providerType;
270
+ }
271
+ if (mode === 'subscription') {
272
+ // Known at once for a provider that creates the subscription before the
273
+ // buyer approves it (PayPal, Razorpay); '' where the webhook reports it.
274
+ answer.providerSubscriptionId = String((result && result.providerSubscriptionId) || '');
275
+ }
276
+ if (deferRedirect) {
277
+ return answer;
406
278
  }
279
+ // __redirectUrl signals the client-side workflow runtime to navigate the
280
+ // browser to the provider's hosted page; without it the buyer is left on the
281
+ // checkout page with the button spinning (see runtime.js).
282
+ answer.__terminal = true;
283
+ answer.__redirectUrl = answer.redirectUrl;
284
+ return answer;
407
285
  }
408
286
  export const paymentChargeUser = {
409
287
  nodeType: 'payment-charge-user',
410
288
  executionEnv: 'server',
411
289
  isTerminal: true,
412
- dependencies: {
413
- stripe: '^14.0.0',
414
- },
415
290
  generateHandler() {
416
291
  return (handlerToString(payment_charge_user) +
417
- '\n' +
418
- resolveProviderSecret.toString() +
419
292
  '\n' +
420
293
  toAbsoluteUrl.toString() +
421
294
  '\n' +
422
- toStripeMinorUnits.toString() +
423
- '\n' +
424
- chargeWithStripe.toString() +
425
- '\n' +
426
- paypalAuthenticate.toString() +
427
- '\n' +
428
- chargeWithPaypal.toString());
295
+ toStoreUrl.toString());
429
296
  },
430
297
  };
431
298
  //# sourceMappingURL=payment-charge-user.js.map