@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
@@ -1,5 +1,6 @@
1
1
  import {
2
2
  UIDLWorkflow,
3
+ UIDLWorkflows,
3
4
  UIDLWorkflowNode,
4
5
  UIDLWorkflowEdge,
5
6
  UIDLWebhookConfig,
@@ -7,12 +8,14 @@ import {
7
8
  UIDLWorkflowProtection,
8
9
  } from '@teleporthq/teleport-types'
9
10
  import { WorkflowSegment } from './types'
11
+ import { SegmentTrust } from './segment-trust'
10
12
  import { nodeRegistry } from './nodes'
11
13
  import { resolveHandlerEntryName } from './nodes/types'
12
14
  import { AI_NODE_TYPES } from './graph-utils'
13
15
  import {
14
- generateGetRawBodyCode,
16
+ generateWebhookBodyCode,
15
17
  generateAllSignatureVerificationCode,
18
+ generatePaymentWebhookVerificationCode,
16
19
  } from './webhook-signature-verification'
17
20
  import { buildWorkflowAuthInjection } from './workflow-auth-generator'
18
21
  import {
@@ -20,6 +23,20 @@ import {
20
23
  isEmailSendingNodeType,
21
24
  } from './sent-email-log/sent-email-log-scope'
22
25
  import { workflowUtilsAliasLine } from './workflow-utils-alias'
26
+ import { adminCustomNodesRequireLine } from './custom-node-modules'
27
+ import {
28
+ generatePaymentDriversPreamble,
29
+ isPaymentWebhookConfig,
30
+ readWebhookPaymentProvider,
31
+ } from './payments'
32
+ import { usesPaymentDriverNode } from './payments/payment-drivers-scope'
33
+ import { generateCartPricingPreamble } from './cart-pricing-preamble'
34
+ import {
35
+ WEBHOOK_DELIVERY_LEASE_FILE_NAME,
36
+ WEBHOOK_DELIVERY_LEASE_PATH,
37
+ WEBHOOK_DELIVERY_RETRY_AFTER_SECONDS,
38
+ } from './webhook-delivery-lease/webhook-delivery-lease-scope'
39
+ import { generateCronRequestVerificationCode } from './cron-request-verification'
23
40
 
24
41
  // Workflow/segment names, cron schedules, and webhook paths are free-form
25
42
  // UIDL data — never guaranteed not to contain `*/`. Every generated route
@@ -32,18 +49,35 @@ import { workflowUtilsAliasLine } from './workflow-utils-alias'
32
49
  // intact; this is purely cosmetic (header text only, never evaluated).
33
50
  const sanitizeForBlockComment = (value: string): string => value.replace(/\*\//g, '* /')
34
51
 
35
- export const generateServerSegmentAPIRoute = (
36
- segment: WorkflowSegment,
37
- workflowName?: string,
38
- protection?: UIDLWorkflowProtection
39
- ): string => {
40
- const usedNodeTypes = new Set(segment.nodes.map((n) => n.type))
41
- const nodeHandlersEntries = generateNodeHandlersForSegment(usedNodeTypes, true)
42
- const hasRateLimiter = usedNodeTypes.has('general-rate-limiter')
43
- const auth = buildWorkflowAuthInjection(protection)
52
+ /**
53
+ * Where a server segment's branches can begin: a node with a predecessor
54
+ * outside the segment, or with none at all. The splitter computes it over the
55
+ * whole workflow; a segment built without it falls back to the nodes nothing
56
+ * inside the segment leads to.
57
+ */
58
+ const resolveSegmentEntryNodeIds = (segment: WorkflowSegment): string[] => {
59
+ if (segment.entryNodeIds) {
60
+ return segment.entryNodeIds
61
+ }
62
+ const targets = new Set(segment.edges.map((e) => e.target))
63
+ return segment.nodes.filter((n) => !targets.has(n.id)).map((n) => n.id)
64
+ }
65
+
66
+ export interface ServerSegmentRouteOptions {
67
+ /** A custom node's inner node ids, in the order its runner lists them. */
68
+ customNodeIds?: string[]
69
+ /**
70
+ * What the route may believe about results earlier segments of the same
71
+ * graph hand it (see segment-trust.ts). Every route the project plugin
72
+ * emits carries it.
73
+ */
74
+ trust?: SegmentTrust
75
+ }
44
76
 
45
- const segmentConfig = JSON.stringify(
77
+ const buildSegmentConfig = (segment: WorkflowSegment, options: ServerSegmentRouteOptions): string =>
78
+ JSON.stringify(
46
79
  {
80
+ ...(options.trust || {}),
47
81
  nodes: segment.nodes.map((n) => ({
48
82
  id: n.id,
49
83
  type: n.type,
@@ -59,11 +93,26 @@ export const generateServerSegmentAPIRoute = (
59
93
  targetHandle: e.targetHandle,
60
94
  data: e.data,
61
95
  })),
96
+ entryNodeIds: resolveSegmentEntryNodeIds(segment),
97
+ ...(options.customNodeIds ? { customNodeIds: options.customNodeIds } : {}),
62
98
  },
63
99
  null,
64
100
  2
65
101
  )
66
102
 
103
+ export const generateServerSegmentAPIRoute = (
104
+ segment: WorkflowSegment,
105
+ workflowName?: string,
106
+ protection?: UIDLWorkflowProtection,
107
+ options: ServerSegmentRouteOptions = {}
108
+ ): string => {
109
+ const usedNodeTypes = new Set(segment.nodes.map((n) => n.type))
110
+ const nodeHandlersEntries = generateNodeHandlersForSegment(usedNodeTypes, true)
111
+ const hasRateLimiter = usedNodeTypes.has('general-rate-limiter')
112
+ const auth = buildWorkflowAuthInjection(protection)
113
+
114
+ const segmentConfig = buildSegmentConfig(segment, options)
115
+
67
116
  const header = workflowName
68
117
  ? `/**
69
118
  * Workflow Server Segment API Route
@@ -85,7 +134,10 @@ export const generateServerSegmentAPIRoute = (
85
134
  const utils = require('../../../utils/workflows/server-runtime');
86
135
  ${auth.requireLine}const resolveConfig = utils.resolveConfig;
87
136
  ${workflowUtilsAliasLine('utils')}
88
- ${generateSentEmailLogPreamble(usedNodeTypes, '../../..')}
137
+ ${generateCartPricingPreamble(usedNodeTypes, '../../..')}${generateSentEmailLogPreamble(
138
+ usedNodeTypes,
139
+ '../../..'
140
+ )}${generatePaymentDriversPreamble(usesPaymentDriverNode(usedNodeTypes), '../../..')}
89
141
  const SEGMENT_CONFIG = ${segmentConfig};
90
142
  ${auth.policyConst}
91
143
  const nodeHandlers = {
@@ -103,15 +155,20 @@ module.exports = async function handler(req, res) {
103
155
  try {
104
156
  const body = typeof req.body === 'string' ? JSON.parse(req.body) : req.body;
105
157
  const incomingContext = body.context || {};
158
+ // What the caller already holds, so the reply below carries only what this
159
+ // run produced or changed (see segmentReply in runtime-utils).
160
+ const __incomingSnapshot = utils.snapshotIncomingContext(incomingContext);
106
161
 
107
162
  const context = Object.assign({}, incomingContext);
163
+ utils.claimSegmentContext(SEGMENT_CONFIG, context);
108
164
  __wfContext = context;
109
165
  // Created eagerly so a custom node invoked from here shares the SAME
110
166
  // fire-and-forget queue (it shallow-copies this context) and its queries
111
167
  // are drained by the settle below rather than being lost when we reply.
112
168
  context.__pendingNodePromises = [];${requestInjection}
113
- var __proto = req.headers['x-forwarded-proto'] || (req.headers.host && (req.headers.host.startsWith('localhost') || req.headers.host.startsWith('127.0.0.1')) ? 'http' : 'https');
114
- context.__baseUrl = __proto + '://' + req.headers.host;
169
+ // Where this deployment calls its own routes — never a host the request
170
+ // named (see trustedBaseUrl in the server runtime).
171
+ context.__baseUrl = utils.trustedBaseUrl(req);
115
172
  // Credentials for this deployment's calls to its own /api/data routes —
116
173
  // without them a protected deployment 401s itself and every data node
117
174
  // returns no rows. See internalRequestHeaders in runtime-utils.
@@ -216,7 +273,7 @@ module.exports = async function handler(req, res) {
216
273
  context.__loopNodeIds[node.id] = true;
217
274
 
218
275
  for (var li = 0; li < collection.length; li++) {
219
- context[node.id] = { currentItem: collection[li], currentIndex: li, iterations: li + 1 };
276
+ context[node.id] = utils.loopIterationContext(collection, li);
220
277
  for (var bi = 0; bi < bodyNodes.length; bi++) {
221
278
  var bNode = bodyNodes[bi];
222
279
  var bResolved = resolveConfig(bNode.config, context);
@@ -407,7 +464,7 @@ module.exports = async function handler(req, res) {
407
464
  // response body would hand the session token to any script on the page,
408
465
  // undoing the httpOnly flag it was set with.
409
466
  delete context.__internalHeaders;
410
- res.status(200).json({ success: true, results: context });
467
+ res.status(200).json({ success: true, results: utils.segmentReply(SEGMENT_CONFIG, context, __incomingSnapshot) });
411
468
  } catch (error) {
412
469
  console.error('Workflow segment error:', error);
413
470
  if (__wfContext) { await utils.settlePendingNodePromises(__wfContext); }
@@ -424,34 +481,15 @@ export const hasStreamingAINode = (segment: WorkflowSegment): boolean => {
424
481
  export const generateStreamingServerSegmentAPIRoute = (
425
482
  segment: WorkflowSegment,
426
483
  workflowName?: string,
427
- protection?: UIDLWorkflowProtection
484
+ protection?: UIDLWorkflowProtection,
485
+ options: ServerSegmentRouteOptions = {}
428
486
  ): string => {
429
487
  const usedNodeTypes = new Set(segment.nodes.map((n) => n.type))
430
488
  const nodeHandlersEntries = generateNodeHandlersForSegment(usedNodeTypes, true)
431
489
  const hasRateLimiter = usedNodeTypes.has('general-rate-limiter')
432
490
  const auth = buildWorkflowAuthInjection(protection)
433
491
 
434
- const segmentConfig = JSON.stringify(
435
- {
436
- nodes: segment.nodes.map((n) => ({
437
- id: n.id,
438
- type: n.type,
439
- config: n.config,
440
- stepNumber: n.stepNumber,
441
- label: n.label,
442
- })),
443
- edges: segment.edges.map((e) => ({
444
- id: e.id,
445
- source: e.source,
446
- target: e.target,
447
- sourceHandle: e.sourceHandle,
448
- targetHandle: e.targetHandle,
449
- data: e.data,
450
- })),
451
- },
452
- null,
453
- 2
454
- )
492
+ const segmentConfig = buildSegmentConfig(segment, options)
455
493
 
456
494
  const aiNodeTypes = JSON.stringify(Array.from(AI_NODE_TYPES))
457
495
 
@@ -471,7 +509,10 @@ export const generateStreamingServerSegmentAPIRoute = (
471
509
  const utils = require('../../../utils/workflows/server-runtime');
472
510
  ${auth.requireLine}const resolveConfig = utils.resolveConfig;
473
511
  ${workflowUtilsAliasLine('utils')}
474
- ${generateSentEmailLogPreamble(usedNodeTypes, '../../..')}
512
+ ${generateCartPricingPreamble(usedNodeTypes, '../../..')}${generateSentEmailLogPreamble(
513
+ usedNodeTypes,
514
+ '../../..'
515
+ )}${generatePaymentDriversPreamble(usesPaymentDriverNode(usedNodeTypes), '../../..')}
475
516
  const SEGMENT_CONFIG = ${segmentConfig};
476
517
  ${auth.policyConst}
477
518
  const nodeHandlers = {
@@ -525,11 +566,15 @@ module.exports = async function handler(req, res) {
525
566
  try {
526
567
  const body = typeof req.body === 'string' ? JSON.parse(req.body) : req.body;
527
568
  const context = Object.assign({}, body.context || {});
569
+ // See the non-streaming segment route: the reply carries only what changed.
570
+ const __incomingSnapshot = utils.snapshotIncomingContext(body.context || {});
571
+ utils.claimSegmentContext(SEGMENT_CONFIG, context);
528
572
  __wfContext = context;
529
573
  // See the non-streaming segment route — shared queue for nested custom nodes.
530
574
  context.__pendingNodePromises = [];${requestInjection}
531
- var __proto = req.headers['x-forwarded-proto'] || (req.headers.host && (req.headers.host.startsWith('localhost') || req.headers.host.startsWith('127.0.0.1')) ? 'http' : 'https');
532
- context.__baseUrl = __proto + '://' + req.headers.host;
575
+ // Where this deployment calls its own routes — never a host the request
576
+ // named (see trustedBaseUrl in the server runtime).
577
+ context.__baseUrl = utils.trustedBaseUrl(req);
533
578
  // Credentials for this deployment's calls to its own /api/data routes —
534
579
  // without them a protected deployment 401s itself and every data node
535
580
  // returns no rows. See internalRequestHeaders in runtime-utils.
@@ -594,7 +639,7 @@ module.exports = async function handler(req, res) {
594
639
  if (!context.__loopNodeIds) context.__loopNodeIds = {};
595
640
  context.__loopNodeIds[node.id] = true;
596
641
  for (var ssli = 0; ssli < ssLoopCollection.length; ssli++) {
597
- context[node.id] = { currentItem: ssLoopCollection[ssli], currentIndex: ssli, iterations: ssli + 1 };
642
+ context[node.id] = utils.loopIterationContext(ssLoopCollection, ssli);
598
643
  for (var ssbi = 0; ssbi < ssBodyNodes.length; ssbi++) {
599
644
  var ssbNode = ssBodyNodes[ssbi];
600
645
  var ssbRes = resolveConfig(ssbNode.config, context);
@@ -855,11 +900,12 @@ module.exports = async function handler(req, res) {
855
900
  // response body would hand the session token to any script on the page,
856
901
  // undoing the httpOnly flag it was set with.
857
902
  delete context.__internalHeaders;
903
+ const __reply = utils.segmentReply(SEGMENT_CONFIG, context, __incomingSnapshot);
858
904
  if (streamStarted) {
859
- res.write('data: ' + JSON.stringify({ type: 'done', success: true, results: context }) + '\\n\\n');
905
+ res.write('data: ' + JSON.stringify({ type: 'done', success: true, results: __reply }) + '\\n\\n');
860
906
  res.end();
861
907
  } else {
862
- res.status(200).json({ success: true, results: context });
908
+ res.status(200).json({ success: true, results: __reply });
863
909
  }
864
910
  } catch (error) {
865
911
  console.error('Streaming workflow segment error:', error);
@@ -905,7 +951,7 @@ const generateClientOnlyServerStub = (nodeType: string): string => {
905
951
  // ACTUALLY declares instead.
906
952
  // 2. Two DIFFERENT node types are minified independently (each in its own
907
953
  // source file), so their real declared names can coincidentally
908
- // collide — e.g. state-update-local-state and payment-cancel-plan can
954
+ // collide — e.g. state-update-local-state and payment-refund can
909
955
  // both legitimately mangle down to the same short name. Declared as
910
956
  // bare siblings in one shared scope, the second declaration would
911
957
  // silently shadow the first, so BOTH map entries end up pointing at the
@@ -1010,6 +1056,8 @@ const CLIENT_ONLY_NODES = new Set([
1010
1056
  'browser-write-clipboard',
1011
1057
  'browser-show-notification',
1012
1058
  'browser-subscribe-to-push',
1059
+ 'browser-unsubscribe-from-push',
1060
+ 'browser-get-push-subscription',
1013
1061
  'browser-share',
1014
1062
  'browser-get-device-info',
1015
1063
  'browser-get-network-status',
@@ -1068,7 +1116,11 @@ export const generateCronAPIRoute = (
1068
1116
 
1069
1117
  // Cron routes live at pages/api/workflows/<file>.js → three levels up to root.
1070
1118
  const customNodesImport = useCustomNodes
1071
- ? `var __customNodes;\ntry { __customNodes = require('../../../utils/workflows/custom-nodes'); } catch (_e) { __customNodes = {}; }\n`
1119
+ ? `var __customNodes;\ntry { __customNodes = require('../../../utils/workflows/custom-nodes'); } catch (_e) { __customNodes = {}; }\n${adminCustomNodesRequireLine(
1120
+ serverNodes,
1121
+ customNodes,
1122
+ '../../..'
1123
+ )}`
1072
1124
  : ''
1073
1125
 
1074
1126
  // Reuse the shared execution loop (the same one webhook routes use) so cron
@@ -1088,7 +1140,15 @@ export const generateCronAPIRoute = (
1088
1140
  const utils = require('../../../utils/workflows/server-runtime');
1089
1141
  const resolveConfig = utils.resolveConfig;
1090
1142
  ${workflowUtilsAliasLine('utils')}
1091
- ${customNodesImport}${generateSentEmailLogPreamble(allNodeTypes, '../../..')}
1143
+ ${customNodesImport}${generateCartPricingPreamble(
1144
+ allNodeTypes,
1145
+ '../../..'
1146
+ )}${generateSentEmailLogPreamble(allNodeTypes, '../../..')}${generatePaymentDriversPreamble(
1147
+ usesPaymentDriverNode(allNodeTypes),
1148
+ '../../..'
1149
+ )}
1150
+ ${generateCronRequestVerificationCode()}
1151
+
1092
1152
  const WORKFLOW_CONFIG = ${workflowConfig};
1093
1153
 
1094
1154
  const nodeHandlers = {
@@ -1100,6 +1160,10 @@ module.exports = async function handler(req, res) {
1100
1160
  res.status(405).json({ error: 'Method not allowed' });
1101
1161
  return;
1102
1162
  }
1163
+ if (!verifyCronRequest(req)) {
1164
+ res.status(401).json({ error: 'Unauthorized' });
1165
+ return;
1166
+ }
1103
1167
  // Kept outside the try so the catch below can still drain any fire-and-forget
1104
1168
  // work this run started before it failed.
1105
1169
  var __wfContext = null;
@@ -1112,6 +1176,15 @@ module.exports = async function handler(req, res) {
1112
1176
  // Shared fire-and-forget queue (see the segment routes) — drained by the
1113
1177
  // execution loop before this route responds.
1114
1178
  context.__pendingNodePromises = [];
1179
+ // The store's origin, as crons-worker requested it — custom scripts read
1180
+ // it as \`runtime.baseUrl\` instead of touching the environment themselves.
1181
+ // Where this deployment calls its own routes — never a host the request
1182
+ // named (see trustedBaseUrl in the server runtime).
1183
+ context.__baseUrl = utils.trustedBaseUrl(req);
1184
+ // Credentials for this deployment's calls to its own /api/data routes —
1185
+ // without them a protected deployment 401s itself and every data node
1186
+ // returns no rows. See internalRequestHeaders in runtime-utils.
1187
+ context.__internalHeaders = utils.internalRequestHeaders(req);
1115
1188
  context[WORKFLOW_CONFIG.triggerNodeId] = triggerContext;${requestInjection}
1116
1189
 
1117
1190
  ${executionLoop}
@@ -1150,7 +1223,12 @@ export const getAPIRouteFileName = (
1150
1223
  // producing an empty detail panel because the merged context never
1151
1224
  // contains the expected node id.
1152
1225
  const idSuffix = sanitizeFileName(workflowId).toLowerCase().slice(0, 8)
1153
- return `${safeName}-${idSuffix}-seg-${sanitizeFileName(segmentId).slice(0, 8)}`
1226
+ // The segment id is short (`server-N`) and must stay whole: an 8-char cap
1227
+ // spelled `server-10`, `server-11` and `server-12` as `server-1`, so a
1228
+ // workflow with ten or more server segments wrote its last segment over
1229
+ // its first and the client's URL map sent the first call to the wrong
1230
+ // route — a checkout that charged the buyer before validating the cart.
1231
+ return `${safeName}-${idSuffix}-seg-${sanitizeFileName(segmentId)}`
1154
1232
  }
1155
1233
  return `wf-${sanitizeFileName(workflowId)}-${sanitizeFileName(segmentId)}`
1156
1234
  }
@@ -1189,6 +1267,16 @@ const generateNodeExecutionLoop = (
1189
1267
  continue;
1190
1268
  }`
1191
1269
  : ''
1270
+ // A custom node inside a loop body runs once per item, exactly as a
1271
+ // top-level one does: its handler only hands back the marker.
1272
+ const loopBodyCustomNodeBlock = options?.hasCustomNodes
1273
+ ? `
1274
+ if (bResult && bResult.__customNode) {
1275
+ var bcnFn = typeof __customNodes !== 'undefined' ? __customNodes[bResult.customNodeId] : null;
1276
+ context[bNode.id] = bcnFn ? await bcnFn(context, bResult.parameters, nodeHandlers) : null;
1277
+ continue;
1278
+ }`
1279
+ : ''
1192
1280
 
1193
1281
  return ` var sortedNodes = ${configVar}.nodes.slice().sort(function(a, b) { return a.stepNumber - b.stepNumber; });
1194
1282
 
@@ -1265,7 +1353,7 @@ const generateNodeExecutionLoop = (
1265
1353
  context.__loopNodeIds[node.id] = true;
1266
1354
 
1267
1355
  for (var li = 0; li < collection.length; li++) {
1268
- context[node.id] = { currentItem: collection[li], currentIndex: li, iterations: li + 1 };
1356
+ context[node.id] = utils.loopIterationContext(collection, li);
1269
1357
  for (var bi = 0; bi < bodyNodes.length; bi++) {
1270
1358
  var bNode = bodyNodes[bi];
1271
1359
  var bResolved = resolveConfig(bNode.config, context);
@@ -1281,7 +1369,7 @@ const generateNodeExecutionLoop = (
1281
1369
  context[bNode.id] = null;
1282
1370
  continue;
1283
1371
  }
1284
- var bResult = await bHandler(bResolved, context);
1372
+ var bResult = await bHandler(bResolved, context);${loopBodyCustomNodeBlock}
1285
1373
  if (bResult && (bResult.success === false || (typeof bResult.error === 'string' && bResult.error))) {
1286
1374
  throw new Error(bResult.error || 'Loop body node execution failed');
1287
1375
  }
@@ -1517,12 +1605,27 @@ export const generateWebhookWorkflowAPIRoute = (
1517
1605
  ),
1518
1606
  }
1519
1607
 
1608
+ // A payment webhook ALWAYS verifies, through the store's driver for its
1609
+ // provider, whatever an older stored trigger said (see
1610
+ // readWebhookPaymentProvider): unverified, it would mark orders paid on
1611
+ // any request.
1612
+ // A trigger set to verify through a payment driver is a payment webhook
1613
+ // even when no known provider can be read from it: it still verifies, and
1614
+ // with no driver to verify through it refuses every request.
1615
+ const paymentProvider = readWebhookPaymentProvider(webhookConfig)
1616
+ const isPaymentWebhook = isPaymentWebhookConfig(webhookConfig)
1617
+ if (isPaymentWebhook) {
1618
+ normalisedWebhookConfig.verifySignature = true
1619
+ normalisedWebhookConfig.signatureAlgorithm = 'payment-driver'
1620
+ normalisedWebhookConfig.paymentProvider = paymentProvider || ''
1621
+ }
1520
1622
  const webhookConfigJson = JSON.stringify(normalisedWebhookConfig, null, 2)
1521
- const needsSignatureVerification = webhookConfig.verifySignature
1522
- const signatureVerificationCode = needsSignatureVerification
1623
+ const signatureVerificationCode = isPaymentWebhook
1624
+ ? generatePaymentWebhookVerificationCode()
1625
+ : normalisedWebhookConfig.verifySignature
1523
1626
  ? generateAllSignatureVerificationCode()
1524
1627
  : ''
1525
- const getRawBodyCode = generateGetRawBodyCode()
1628
+ const webhookBodyCode = generateWebhookBodyCode()
1526
1629
 
1527
1630
  const errorHandlerNodes = workflow.errorHandler ? getErrorHandlerNodes(workflow) : null
1528
1631
  const errorHandlerNodesJson = errorHandlerNodes
@@ -1531,10 +1634,15 @@ export const generateWebhookWorkflowAPIRoute = (
1531
1634
 
1532
1635
  const routePath = getWebhookRoutePath(workflow)
1533
1636
  const relativePrefix = routePath.map(() => '..').join('/')
1637
+ const deliveryLease = generateWebhookDeliveryLeaseBlocks(isPaymentWebhook, relativePrefix)
1534
1638
 
1535
1639
  const customNodesImport =
1536
1640
  hasCustomNodeUsage && hasCustomNodeDefs
1537
- ? `var __customNodes;\ntry { __customNodes = require('${relativePrefix}/utils/workflows/custom-nodes'); } catch (_e) { __customNodes = {}; }\n`
1641
+ ? `var __customNodes;\ntry { __customNodes = require('${relativePrefix}/utils/workflows/custom-nodes'); } catch (_e) { __customNodes = {}; }\n${adminCustomNodesRequireLine(
1642
+ serverNodes,
1643
+ customNodes,
1644
+ relativePrefix
1645
+ )}`
1538
1646
  : ''
1539
1647
 
1540
1648
  const requestInjection = hasRateLimiter
@@ -1558,8 +1666,14 @@ if (typeof globalThis.fetch === 'undefined') {
1558
1666
  const utils = require('${relativePrefix}/utils/workflows/server-runtime');
1559
1667
  const resolveConfig = utils.resolveConfig;
1560
1668
  ${workflowUtilsAliasLine('utils')}
1561
- ${customNodesImport}${generateSentEmailLogPreamble(allNodeTypes, relativePrefix)}
1562
- ${getRawBodyCode}
1669
+ ${customNodesImport}${generateCartPricingPreamble(
1670
+ allNodeTypes,
1671
+ relativePrefix
1672
+ )}${generateSentEmailLogPreamble(allNodeTypes, relativePrefix)}${generatePaymentDriversPreamble(
1673
+ usesPaymentDriverNode(allNodeTypes) || isPaymentWebhook,
1674
+ relativePrefix
1675
+ )}${deliveryLease.preamble}
1676
+ ${webhookBodyCode}
1563
1677
 
1564
1678
  ${signatureVerificationCode}
1565
1679
 
@@ -1580,14 +1694,13 @@ module.exports = async function handler(req, res) {
1580
1694
  }
1581
1695
 
1582
1696
  ${generateExpectedHeadersCheck(webhookConfig)}
1583
-
1697
+ ${deliveryLease.declare}
1584
1698
  try {
1585
1699
  var rawBody = await getRawBody(req);
1586
- var body;
1587
- try { body = JSON.parse(rawBody.toString('utf-8')); } catch (_e) { body = {}; }
1700
+ var body = parseWebhookBody(req, rawBody);
1588
1701
 
1589
1702
  var isSignatureValid = true;
1590
- ${generateSignatureVerificationBlock(webhookConfig)}
1703
+ ${generateSignatureVerificationBlock(normalisedWebhookConfig)}${deliveryLease.claim}
1591
1704
 
1592
1705
  var triggerContext = {
1593
1706
  headers: req.headers,
@@ -1603,15 +1716,16 @@ ${generateSignatureVerificationBlock(webhookConfig)}
1603
1716
  // execution loop before this route responds.
1604
1717
  context.__pendingNodePromises = [];
1605
1718
  context[WORKFLOW_CONFIG.triggerNodeId] = triggerContext;
1606
- var __proto = req.headers['x-forwarded-proto'] || (req.headers.host && (req.headers.host.startsWith('localhost') || req.headers.host.startsWith('127.0.0.1')) ? 'http' : 'https');
1607
- context.__baseUrl = __proto + '://' + req.headers.host;
1719
+ // Where this deployment calls its own routes — never a host the request
1720
+ // named (see trustedBaseUrl in the server runtime).
1721
+ context.__baseUrl = utils.trustedBaseUrl(req);
1608
1722
  // Credentials for this deployment's calls to its own /api/data routes —
1609
1723
  // without them a protected deployment 401s itself and every data node
1610
1724
  // returns no rows. See internalRequestHeaders in runtime-utils.
1611
1725
  context.__internalHeaders = utils.internalRequestHeaders(req);${requestInjection}
1612
1726
 
1613
1727
  ${executionLoop}
1614
-
1728
+ ${deliveryLease.release}
1615
1729
  res.status(200).json({ received: true });
1616
1730
  } catch (error) {
1617
1731
  console.error('Webhook workflow error:', error);
@@ -1646,7 +1760,9 @@ ${executionLoop}
1646
1760
  }
1647
1761
  // Land whatever the main run started (an email's ledger row, a
1648
1762
  // fire-and-forget write) before replying — see the segment routes.
1649
- if (typeof context !== 'undefined' && context) { await utils.settlePendingNodePromises(context); }
1763
+ if (typeof context !== 'undefined' && context) { await utils.settlePendingNodePromises(context); }${
1764
+ deliveryLease.release
1765
+ }
1650
1766
  res.status(500).json({ error: 'Webhook processing failed' });
1651
1767
  }
1652
1768
  };
@@ -1674,6 +1790,27 @@ export const getWebhookRouteFileName = (workflow: UIDLWorkflow): string => {
1674
1790
  return `webhook-${sanitizeFileName(workflow.id)}`
1675
1791
  }
1676
1792
 
1793
+ /**
1794
+ * The address the store serves a provider's payment webhook at
1795
+ * (`/api/webhooks/paypal-payment`), or null when no workflow receives it.
1796
+ */
1797
+ export const findPaymentWebhookRouteUrl = (
1798
+ workflows: UIDLWorkflows | undefined,
1799
+ providerId: string
1800
+ ): string | null => {
1801
+ for (const workflow of Object.values(workflows?.workflows || {})) {
1802
+ if (
1803
+ workflow?.trigger?.type === 'event-webhook-received' &&
1804
+ workflow.webhookConfig &&
1805
+ readWebhookPaymentProvider(workflow.webhookConfig) === providerId
1806
+ ) {
1807
+ const directory = getWebhookRoutePath(workflow).slice(1)
1808
+ return `/${[...directory, getWebhookRouteFileName(workflow)].join('/')}`
1809
+ }
1810
+ }
1811
+ return null
1812
+ }
1813
+
1677
1814
  export const getWebhookRoutePath = (workflow: UIDLWorkflow): string[] => {
1678
1815
  const DEFAULT_PATH = ['pages', 'api', 'webhooks']
1679
1816
  const webhookConfig = workflow.webhookConfig
@@ -1757,10 +1894,60 @@ function generateExpectedHeadersCheck(webhookConfig: UIDLWebhookConfig): string
1757
1894
  return checks.join('\n')
1758
1895
  }
1759
1896
 
1897
+ /**
1898
+ * The payment webhook route's delivery lease (see webhook-delivery-lease):
1899
+ * the verified delivery claims its body, a twin that arrives while it runs is
1900
+ * told to come back (503 + Retry-After), and the claim is released before the
1901
+ * route replies. Every block is empty on any other webhook, which keeps those
1902
+ * routes byte-identical.
1903
+ */
1904
+ function generateWebhookDeliveryLeaseBlocks(
1905
+ isPaymentWebhook: boolean,
1906
+ relativePrefix: string
1907
+ ): { preamble: string; declare: string; claim: string; release: string } {
1908
+ if (!isPaymentWebhook) {
1909
+ return { preamble: '', declare: '', claim: '', release: '' }
1910
+ }
1911
+ return {
1912
+ preamble: `
1913
+ var __webhookDeliveryLease = null;
1914
+ try { __webhookDeliveryLease = require('${relativePrefix}/${WEBHOOK_DELIVERY_LEASE_PATH.join(
1915
+ '/'
1916
+ )}/${WEBHOOK_DELIVERY_LEASE_FILE_NAME}'); } catch (_e) { __webhookDeliveryLease = null; }`,
1917
+ declare: ` // Released before every reply below, so a twin delivery is never turned away for long.
1918
+ var __delivery = null;
1919
+ `,
1920
+ claim: `
1921
+ // One run per delivery at a time: a provider re-delivers what it did not
1922
+ // see answered in time, and two runs side by side can both pass a check.
1923
+ __delivery = __webhookDeliveryLease
1924
+ ? await __webhookDeliveryLease.claimWebhookDelivery(WEBHOOK_CONFIG.urlPath, rawBody, body)
1925
+ : null;
1926
+ if (__delivery && !__delivery.claimed) {
1927
+ __delivery = null;
1928
+ res.setHeader('Retry-After', '${WEBHOOK_DELIVERY_RETRY_AFTER_SECONDS}');
1929
+ res.status(503).json({ error: 'This delivery is already being processed' });
1930
+ return;
1931
+ }`,
1932
+ release: `
1933
+ if (__delivery) { await __delivery.release(); __delivery = null; }`,
1934
+ }
1935
+ }
1936
+
1760
1937
  function generateSignatureVerificationBlock(webhookConfig: UIDLWebhookConfig): string {
1761
1938
  if (!webhookConfig.verifySignature) {
1762
1939
  return ''
1763
1940
  }
1941
+ if (webhookConfig.signatureAlgorithm === 'payment-driver') {
1942
+ // A provider outage asks the provider to deliver again (503); anything
1943
+ // else is a refusal it should not retry.
1944
+ return ` var paymentVerification = await verifyPaymentWebhook(req, rawBody, body, WEBHOOK_CONFIG);
1945
+ if (!paymentVerification.ok) {
1946
+ res.status(paymentVerification.retry ? 503 : 401).json({ error: paymentVerification.retry ? 'The payment could not be verified yet' : 'Invalid signature' });
1947
+ return;
1948
+ }
1949
+ body = paymentVerification.body;`
1950
+ }
1764
1951
  return ` isSignatureValid = await verifyWebhookSignature(req, rawBody, WEBHOOK_CONFIG);
1765
1952
  if (!isSignatureValid) {
1766
1953
  res.status(401).json({ error: 'Invalid signature' });