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

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,4 +1,5 @@
1
1
  import { EmailLocaleConfig, generateEmailLocaleModuleCode } from '../../src/email-locale'
2
+ import { generateSignedInDestinationCode } from '../../src/auth-return/signed-in-destination-code'
2
3
  import { WORKFLOW_UTILS_ALIAS } from '../../src/workflow-utils-alias'
3
4
 
4
5
  // A node handler evaluated on its own has no generated file around it to bind
@@ -20,10 +21,24 @@ export const loadEmailLocaleModule = (
20
21
  return moduleShim.exports
21
22
  }
22
23
 
24
+ /**
25
+ * The runtime's `signedInDestination`, over the given `localizeHref`. It reads
26
+ * `window` when called, so a test can install its browser stub afterwards.
27
+ */
28
+ const loadSignedInDestination = (localizeHref: unknown): unknown =>
29
+ // eslint-disable-next-line no-new-func
30
+ new Function('localizeHref', `${generateSignedInDestinationCode()}\nreturn signedInDestination`)(
31
+ localizeHref
32
+ )
33
+
23
34
  /** Binds the alias on the global scope; returns the function that unbinds it. */
24
35
  export const bindWorkflowUtils = (config: EmailLocaleConfig = TEST_LOCALES): (() => void) => {
25
36
  const globalRef = global as unknown as Record<string, unknown>
26
- globalRef[WORKFLOW_UTILS_ALIAS] = loadEmailLocaleModule(config)
37
+ const localeHelpers = loadEmailLocaleModule(config)
38
+ globalRef[WORKFLOW_UTILS_ALIAS] = {
39
+ ...localeHelpers,
40
+ signedInDestination: loadSignedInDestination(localeHelpers.localizeHref),
41
+ }
27
42
  return () => {
28
43
  delete globalRef[WORKFLOW_UTILS_ALIAS]
29
44
  }
@@ -0,0 +1,96 @@
1
+ export interface FetchCall {
2
+ url: string
3
+ method: string
4
+ headers: Record<string, string>
5
+ body: string
6
+ /** The body parsed as JSON, or null when it is not JSON. */
7
+ json: any
8
+ }
9
+
10
+ export interface FakeAnswer {
11
+ status?: number
12
+ body?: unknown
13
+ }
14
+
15
+ export type FetchResponder = (call: FetchCall) => FakeAnswer
16
+
17
+ /** Process-wide caches the drivers keep, cleared around every fake-fetch run. */
18
+ const DRIVER_CACHES = ['__paypalBaseUrlCache', '__coingateBaseUrlCache', '__squareBaseUrlCache']
19
+
20
+ /**
21
+ * Runs `run` with `globalThis.fetch` answered by `respond` (status 200 unless
22
+ * it says otherwise), recording every call, then restores fetch and clears the
23
+ * drivers' environment caches so no test leaks into the next.
24
+ */
25
+ export const withFetch = async <T>(
26
+ respond: FetchResponder,
27
+ run: (calls: FetchCall[]) => Promise<T>
28
+ ): Promise<T> => {
29
+ const calls: FetchCall[] = []
30
+ const scope = globalThis as Record<string, unknown>
31
+ const previous = scope.fetch
32
+ scope.fetch = async (
33
+ url: string,
34
+ init: { method?: string; headers?: Record<string, string>; body?: string } = {}
35
+ ) => {
36
+ const body = typeof init.body === 'string' ? init.body : ''
37
+ let json: any = null
38
+ try {
39
+ json = body ? JSON.parse(body) : null
40
+ } catch (_e) {
41
+ json = null
42
+ }
43
+ const call: FetchCall = {
44
+ url,
45
+ method: init.method || 'GET',
46
+ headers: init.headers || {},
47
+ body,
48
+ json,
49
+ }
50
+ calls.push(call)
51
+ const answer = respond(call)
52
+ const status = answer.status ?? 200
53
+ return {
54
+ ok: status >= 200 && status < 300,
55
+ status,
56
+ headers: new Map([['content-type', 'application/json']]),
57
+ json: async () => answer.body,
58
+ text: async () => JSON.stringify(answer.body ?? null),
59
+ }
60
+ }
61
+ try {
62
+ return await run(calls)
63
+ } finally {
64
+ scope.fetch = previous
65
+ DRIVER_CACHES.forEach((key) => {
66
+ delete scope[key]
67
+ })
68
+ }
69
+ }
70
+
71
+ /** Runs `run` with `env` set (an `undefined` value removes the variable), then restores. */
72
+ export const withEnv = async <T>(
73
+ env: Record<string, string | undefined>,
74
+ run: () => Promise<T>
75
+ ): Promise<T> => {
76
+ const saved: Record<string, string | undefined> = {}
77
+ for (const key of Object.keys(env)) {
78
+ saved[key] = process.env[key]
79
+ if (env[key] === undefined) {
80
+ delete process.env[key]
81
+ } else {
82
+ process.env[key] = env[key]
83
+ }
84
+ }
85
+ try {
86
+ return await run()
87
+ } finally {
88
+ for (const key of Object.keys(env)) {
89
+ if (saved[key] === undefined) {
90
+ delete process.env[key]
91
+ } else {
92
+ process.env[key] = saved[key]
93
+ }
94
+ }
95
+ }
96
+ }
@@ -0,0 +1,52 @@
1
+ export interface StripeCall {
2
+ method: string
3
+ params: unknown
4
+ options?: unknown
5
+ }
6
+
7
+ /** What each fake SDK method answers; a function may throw to act as a refusal. */
8
+ export type StripeScript = Record<string, (params: unknown, options?: unknown) => unknown>
9
+
10
+ /**
11
+ * A recording stand-in for the `stripe` package: every method the store's
12
+ * Stripe driver calls, each recorded as `'<resource>.<method>'` and answered
13
+ * from `script` (or with an empty object).
14
+ */
15
+ export const createFakeStripe = (
16
+ script: StripeScript = {}
17
+ ): { FakeStripe: unknown; calls: StripeCall[] } => {
18
+ const calls: StripeCall[] = []
19
+ const method = (name: string) => async (params: unknown, options?: unknown) => {
20
+ calls.push(options === undefined ? { method: name, params } : { method: name, params, options })
21
+ const answer = script[name]
22
+ return answer ? answer(params, options) : {}
23
+ }
24
+ function FakeStripe(this: Record<string, unknown>, key: string) {
25
+ this.key = key
26
+ this.checkout = {
27
+ sessions: {
28
+ create: method('checkout.sessions.create'),
29
+ retrieve: method('checkout.sessions.retrieve'),
30
+ expire: method('checkout.sessions.expire'),
31
+ list: method('checkout.sessions.list'),
32
+ },
33
+ }
34
+ this.coupons = { create: method('coupons.create') }
35
+ this.paymentIntents = { retrieve: method('paymentIntents.retrieve') }
36
+ this.invoices = { retrieve: method('invoices.retrieve') }
37
+ this.refunds = { create: method('refunds.create') }
38
+ this.subscriptions = {
39
+ retrieve: method('subscriptions.retrieve'),
40
+ cancel: method('subscriptions.cancel'),
41
+ update: method('subscriptions.update'),
42
+ }
43
+ this.billingPortal = {
44
+ sessions: { create: method('billingPortal.sessions.create') },
45
+ configurations: {
46
+ list: method('billingPortal.configurations.list'),
47
+ create: method('billingPortal.configurations.create'),
48
+ },
49
+ }
50
+ }
51
+ return { FakeStripe, calls }
52
+ }
@@ -1,4 +1,6 @@
1
1
  import { nodeRegistry } from '../../src'
2
+ import { PAYMENT_DRIVER_NODE_TYPES } from '../../src/payments/payment-drivers-scope'
3
+ import { loadPaymentDrivers, PaymentDriverRegistry } from './load-payment-drivers'
2
4
 
3
5
  // Shared loader for re-evaluating a runtime handler in the test process.
4
6
  //
@@ -78,15 +80,32 @@ const handlerSymbolFor = (nodeType: string): string => nodeType.replace(/-/g, '_
78
80
  * Throws if the type isn't registered. The returned function captures the
79
81
  * eval scope, so `__awaiter`/`__generator` references inside it resolve to
80
82
  * the helpers piped in here.
83
+ *
84
+ * A payment node reaches its provider through `__paymentDrivers`, which a
85
+ * generated route binds before its handlers: it is bound here to the store's
86
+ * emitted drivers (every provider, a missing Stripe SDK) unless a test hands
87
+ * its own registry.
81
88
  */
82
- export const loadHandler = (nodeType: string): HandlerFn => {
89
+ export const loadHandler = (
90
+ nodeType: string,
91
+ options: { paymentDrivers?: PaymentDriverRegistry; cartPricingSettings?: unknown } = {}
92
+ ): HandlerFn => {
83
93
  const generator = nodeRegistry[nodeType]
84
94
  if (!generator) {
85
95
  throw new Error(`No handler registered for node type: ${nodeType}`)
86
96
  }
87
97
  const src = generator.generateHandler()
88
98
  const symbol = handlerSymbolFor(nodeType)
99
+ const paymentDrivers =
100
+ options.paymentDrivers ||
101
+ (PAYMENT_DRIVER_NODE_TYPES.has(nodeType) ? loadPaymentDrivers() : undefined)
89
102
  // eslint-disable-next-line @typescript-eslint/no-implied-eval
90
- const factory = new Function(`${TS_EMIT_HELPERS}\n${src}\nreturn ${symbol};`)
91
- return factory() as HandlerFn
103
+ // `__cartPricingSettings` stands in for the route preamble's require of
104
+ // `utils/ecommerce/cart-pricing-settings` (cart-pricing-preamble.ts).
105
+ const factory = new Function(
106
+ '__paymentDrivers',
107
+ '__cartPricingSettings',
108
+ `${TS_EMIT_HELPERS}\n${src}\nreturn ${symbol};`
109
+ )
110
+ return factory(paymentDrivers, options.cartPricingSettings) as HandlerFn
92
111
  }
@@ -0,0 +1,75 @@
1
+ /* tslint:disable:function-constructor */
2
+ import type { UIDLInvoiceSettings } from '@teleporthq/teleport-types'
3
+ import { generateInvoiceAssemblyCode } from '../../src/invoice/invoice-assembly-code'
4
+
5
+ /**
6
+ * Evaluates EMITTED CommonJS source (a generated route or util) as a real
7
+ * module, resolving its `require` calls through `requireFn`.
8
+ */
9
+ export function evaluateEmittedModule<T>(code: string, requireFn: NodeRequire): T {
10
+ const factory = new Function(
11
+ 'require',
12
+ 'module',
13
+ 'exports',
14
+ `${code}; return module.exports;`
15
+ ) as (req: NodeRequire, mod: { exports: unknown }, exp: unknown) => T
16
+ const moduleObject = { exports: {} as unknown }
17
+ return factory(requireFn, moduleObject, moduleObject.exports)
18
+ }
19
+
20
+ export interface InvoiceRouteStubs {
21
+ /** Stands in for `utils/invoices/data-access.js`. */
22
+ dataAccess: unknown
23
+ /** Stands in for `utils/invoices/pdf-generator.js`. */
24
+ pdfGenerator: unknown
25
+ /** Any other module id the code under test requires, e.g. `next-auth/jwt`. */
26
+ modules?: Record<string, unknown>
27
+ }
28
+
29
+ /**
30
+ * The `require` an emitted invoice route sees: the two stubs, the REAL emitted
31
+ * `utils/invoices/invoice-assembly.js` built from `settings` (wired to the same
32
+ * stubs), a no-op `pg`, and Node's own resolution for everything else.
33
+ */
34
+ export function createInvoiceRouteRequire(
35
+ settings: UIDLInvoiceSettings,
36
+ stubs: InvoiceRouteStubs
37
+ ): NodeRequire {
38
+ let assembly: unknown = null
39
+ const requireFn = ((id: string) => {
40
+ if (id.indexOf('data-access') !== -1) {
41
+ return stubs.dataAccess
42
+ }
43
+ if (id.indexOf('pdf-generator') !== -1) {
44
+ return stubs.pdfGenerator
45
+ }
46
+ if (id.indexOf('invoice-assembly') !== -1) {
47
+ if (!assembly) {
48
+ assembly = evaluateEmittedModule(generateInvoiceAssemblyCode(settings), requireFn)
49
+ }
50
+ return assembly
51
+ }
52
+ if (stubs.modules && id in stubs.modules) {
53
+ return stubs.modules[id]
54
+ }
55
+ if (id === 'pg') {
56
+ return { Client: class {} }
57
+ }
58
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
59
+ return require(id)
60
+ }) as unknown as NodeRequire
61
+ return requireFn
62
+ }
63
+
64
+ /**
65
+ * The app secret the invoice routes' own server callers present (the invoice
66
+ * node and the payment webhooks send it as `x-internal-data-secret`). Tests
67
+ * that play such a caller set it as NEXTAUTH_SECRET and send it.
68
+ */
69
+ export const INVOICE_TEST_APP_SECRET = 'invoice-test-app-secret'
70
+
71
+ /** Headers of a request from this deployment's own server code. */
72
+ export const serverCallHeaders = (): Record<string, string> => ({
73
+ host: 'localhost:3000',
74
+ 'x-internal-data-secret': INVOICE_TEST_APP_SECRET,
75
+ })
@@ -0,0 +1,69 @@
1
+ import { evaluateEmittedModule } from './load-invoice-route'
2
+ import { generatePaymentCoreCode } from '../../src/payments/payment-core-code'
3
+ import { generatePaymentRegistryCode } from '../../src/payments/payment-registry-code'
4
+ import { PAYMENT_DRIVER_CODE } from '../../src/payments/payment-driver-code-map'
5
+ import { PAYMENT_DRIVER_IDS, PaymentDriverId } from '../../src/payments/payment-drivers-scope'
6
+
7
+ export interface PaymentDriverRegistry {
8
+ ids: string[]
9
+ core: any
10
+ get(providerId: string): any
11
+ }
12
+
13
+ export interface LoadPaymentDriversOptions {
14
+ /** The providers the store carries; every driver by default. */
15
+ ids?: PaymentDriverId[]
16
+ /**
17
+ * What the Stripe driver's `require('stripe')` returns — a fake SDK
18
+ * constructor. Absent, a fake a test put on
19
+ * `globalThis.__non_webpack_require__` answers (resolved at call time, so a
20
+ * test can install it after loading), else the require throws exactly as it
21
+ * would in a store whose `stripe` package is missing.
22
+ */
23
+ stripe?: unknown
24
+ }
25
+
26
+ /**
27
+ * The store's `utils/payments` registry, evaluated from the EMITTED module
28
+ * sources exactly as a generated route requires it.
29
+ */
30
+ export const loadPaymentDrivers = (
31
+ options: LoadPaymentDriversOptions = {}
32
+ ): PaymentDriverRegistry => {
33
+ const ids = options.ids || [...PAYMENT_DRIVER_IDS]
34
+ const driverRequire = ((id: string) => {
35
+ if (id === 'stripe') {
36
+ if (options.stripe) {
37
+ return options.stripe
38
+ }
39
+ const injected = (globalThis as { __non_webpack_require__?: (name: string) => unknown })
40
+ .__non_webpack_require__
41
+ if (typeof injected === 'function') {
42
+ return injected('stripe')
43
+ }
44
+ throw new Error("Cannot find module 'stripe'")
45
+ }
46
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
47
+ return require(id)
48
+ }) as unknown as NodeRequire
49
+ const core = evaluateEmittedModule(generatePaymentCoreCode(), driverRequire)
50
+ const drivers: Record<string, unknown> = {}
51
+ for (const id of ids) {
52
+ drivers[id] = evaluateEmittedModule(PAYMENT_DRIVER_CODE[id](), driverRequire)
53
+ }
54
+ const registryRequire = ((id: string) => {
55
+ if (id === './core') {
56
+ return core
57
+ }
58
+ const driver = /^\.\/drivers\/([a-z]+)$/.exec(id)
59
+ if (driver) {
60
+ return drivers[driver[1]]
61
+ }
62
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
63
+ return require(id)
64
+ }) as unknown as NodeRequire
65
+ return evaluateEmittedModule<PaymentDriverRegistry>(
66
+ generatePaymentRegistryCode(ids),
67
+ registryRequire
68
+ )
69
+ }
@@ -0,0 +1,33 @@
1
+ import * as crypto from 'crypto'
2
+ import { generateSharedRuntimeUtilsCode } from '../../src/executor-generator'
3
+ import { generateServerRuntimeCode } from '../../src/server-runtime-code'
4
+
5
+ /**
6
+ * The generated `utils/workflows/server-runtime.js` exactly as a route loads
7
+ * it: the shared runtime utilities plus the server-only signed hand-off,
8
+ * internal-call token and trusted base URL.
9
+ */
10
+ export function loadServerRuntime(): Record<string, any> {
11
+ const shared: { exports: Record<string, unknown> } = { exports: {} }
12
+ // eslint-disable-next-line @typescript-eslint/no-implied-eval
13
+ new Function('module', 'exports', generateSharedRuntimeUtilsCode())(shared, shared.exports)
14
+ const server: { exports: Record<string, any> } = { exports: {} }
15
+ const requireFn = (id: string): unknown => {
16
+ if (id === 'crypto') {
17
+ return crypto
18
+ }
19
+ if (id === './runtime-utils') {
20
+ return shared.exports
21
+ }
22
+ throw new Error(`Unexpected require in server runtime: ${id}`)
23
+ }
24
+ // eslint-disable-next-line @typescript-eslint/no-implied-eval
25
+ new Function('module', 'exports', 'require', 'process', 'Buffer', generateServerRuntimeCode())(
26
+ server,
27
+ server.exports,
28
+ requireFn,
29
+ process,
30
+ Buffer
31
+ )
32
+ return server.exports
33
+ }
@@ -1,5 +1,5 @@
1
1
  import { UIDLAuthentication } from '@teleporthq/teleport-types'
2
- import { generateMiddlewareFile } from '../../src/auth-generator'
2
+ import { generateMiddlewareFile, MiddlewareOptions } from '../../src/auth-generator'
3
3
 
4
4
  /**
5
5
  * Loads the middleware `generateMiddlewareFile` emits and runs it against a
@@ -25,6 +25,20 @@ export interface MiddlewareSessionUser {
25
25
  role?: string
26
26
  }
27
27
 
28
+ /**
29
+ * What the stubbed `/api/auth/subscriber-access` answers: a body, a non-2xx
30
+ * status, or a thrown network error. Omitted, the route answers "not entitled".
31
+ */
32
+ export type SubscriberAccessStub =
33
+ | { entitled: boolean; redirectTo?: string }
34
+ | { status: number }
35
+ | { throws: true }
36
+
37
+ export interface MiddlewareFetchCall {
38
+ url: string
39
+ cookie: string
40
+ }
41
+
28
42
  export interface MiddlewareRequestOptions {
29
43
  /** Session user the stubbed `/api/auth/session` returns; omit for a guest. */
30
44
  sessionUser?: MiddlewareSessionUser | null
@@ -36,6 +50,10 @@ export interface MiddlewareRequestOptions {
36
50
  */
37
51
  locale?: string
38
52
  defaultLocale?: string
53
+ /** The subscriber-access route's answer for this request. */
54
+ subscriberAccess?: SubscriberAccessStub
55
+ /** Receives every `fetch` the middleware makes, in order. */
56
+ fetchCalls?: MiddlewareFetchCall[]
39
57
  }
40
58
 
41
59
  interface RawMiddlewareResult {
@@ -65,7 +83,15 @@ const stripModuleSyntax = (code: string): string =>
65
83
  */
66
84
  export const extractProtectedRoutes = (
67
85
  code: string
68
- ): Record<string, { requiresAuth: boolean; allowedRoles: string[] }> => {
86
+ ): Record<
87
+ string,
88
+ {
89
+ requiresAuth: boolean
90
+ allowedRoles: string[]
91
+ requiresSubscription?: boolean
92
+ subscriptionProductIds?: string[]
93
+ }
94
+ > => {
69
95
  // Non-greedy up to the first `};`. `JSON.stringify(…, null, 2)` never emits
70
96
  // that sequence inside the object, so the first hit is the real terminator —
71
97
  // and the empty-map case (`= {};`) is covered by the same pattern.
@@ -97,12 +123,15 @@ const NEXT_RESPONSE_STUB = {
97
123
  * Compiles the middleware once for an auth config. Reuse the returned function
98
124
  * across requests in a test to avoid re-generating the file per assertion.
99
125
  */
100
- export const compileGeneratedMiddleware = (auth: UIDLAuthentication) => {
126
+ export const compileGeneratedMiddleware = (
127
+ auth: UIDLAuthentication,
128
+ middlewareOptions: MiddlewareOptions = {}
129
+ ) => {
101
130
  const factory = new Function(
102
131
  'NextResponse',
103
132
  'getToken',
104
133
  'fetch',
105
- `${stripModuleSyntax(generateMiddlewareFile(auth))}; return middleware;`
134
+ `${stripModuleSyntax(generateMiddlewareFile(auth, middlewareOptions))}; return middleware;`
106
135
  ) as unknown as MiddlewareFactory
107
136
 
108
137
  return async (
@@ -112,11 +141,23 @@ export const compileGeneratedMiddleware = (auth: UIDLAuthentication) => {
112
141
  const origin = options.origin || 'https://shop.test'
113
142
  const sessionUser = options.sessionUser ?? null
114
143
  const cookieHeader = sessionUser ? 'next-auth.session-token=stub' : ''
115
-
116
- const fetchImpl = async () => ({
117
- ok: true,
118
- json: async () => ({ user: sessionUser }),
119
- })
144
+ const subscriberAccess: SubscriberAccessStub = options.subscriberAccess ?? { entitled: false }
145
+
146
+ const fetchImpl = async (url: string, init?: { headers?: { cookie?: string } }) => {
147
+ if (options.fetchCalls) {
148
+ options.fetchCalls.push({ url: String(url), cookie: init?.headers?.cookie ?? '' })
149
+ }
150
+ if (String(url).indexOf('/api/auth/subscriber-access') === -1) {
151
+ return { ok: true, json: async () => ({ user: sessionUser }) }
152
+ }
153
+ if ('throws' in subscriberAccess) {
154
+ throw new Error('network down')
155
+ }
156
+ if ('status' in subscriberAccess) {
157
+ return { ok: false, status: subscriberAccess.status, json: async () => ({}) }
158
+ }
159
+ return { ok: true, json: async () => subscriberAccess }
160
+ }
120
161
 
121
162
  const getTokenStub = async (): Promise<null> => null
122
163
  const middleware = factory(NEXT_RESPONSE_STUB, getTokenStub, fetchImpl)
@@ -0,0 +1,39 @@
1
+ import { UIDLStateDefinition } from '@teleporthq/teleport-types'
2
+ import { findFormStateKeyForHydration } from '../src/admin-form-hydration'
3
+
4
+ const objectState = (defaultValue: Record<string, unknown>): UIDLStateDefinition => ({
5
+ type: 'object',
6
+ defaultValue,
7
+ })
8
+
9
+ describe('findFormStateKeyForHydration', () => {
10
+ it('copies the loaded row into the selected-item form, whatever order the states arrive in', () => {
11
+ // The editor stores a page's states by id, so the product update page's
12
+ // options editor states can come before its form.
13
+ const states: Record<string, UIDLStateDefinition> = {
14
+ productsUpdateOptionsPriceBy: objectState({ mode: 'fixed', open: 'false' }),
15
+ productsUpdateOptionsMeta: objectState({ isEmpty: 'false' }),
16
+ productsSelectedItemData: objectState({ name: '', price: '' }),
17
+ productsSelectedItemId: { type: 'string', defaultValue: '' },
18
+ productsUpdateOptionsEdit: objectState({ label: '' }),
19
+ }
20
+ expect(findFormStateKeyForHydration(states)).toBe('productsSelectedItemData')
21
+ })
22
+
23
+ it('keeps the only object state of a page without a selected-item form', () => {
24
+ const states: Record<string, UIDLStateDefinition> = {
25
+ isOpen: { type: 'boolean', defaultValue: false },
26
+ initialAccountFormData: objectState({ first_name: '' }),
27
+ }
28
+ expect(findFormStateKeyForHydration(states)).toBe('initialAccountFormData')
29
+ })
30
+
31
+ it('never picks an empty object, an array or a missing state', () => {
32
+ expect(
33
+ findFormStateKeyForHydration({
34
+ rows: { type: 'array', defaultValue: [] },
35
+ emptyObject: objectState({}),
36
+ })
37
+ ).toBeUndefined()
38
+ })
39
+ })
@@ -53,3 +53,61 @@ describe('__normalizeAdminFormRow', () => {
53
53
  })
54
54
  })
55
55
  })
56
+
57
+ describe('__normalizeAdminFormRow — a product loaded as stored', () => {
58
+ const PRODUCT_DEFAULTS = {
59
+ name: '',
60
+ gallery_images: '',
61
+ is_digital: false,
62
+ is_gift_card: false,
63
+ discounts: '',
64
+ }
65
+
66
+ it('shows a JSON gallery one URL per line, and keeps anything else as typed', () => {
67
+ const row = { gallery_images: '["https://a.io/1.png","https://a.io/2.png"]' }
68
+ expect(helpers.normalizeRow(row, PRODUCT_DEFAULTS).gallery_images).toBe(
69
+ 'https://a.io/1.png\nhttps://a.io/2.png'
70
+ )
71
+ expect(
72
+ helpers.normalizeRow({ gallery_images: 'https://a.io/1.png' }, PRODUCT_DEFAULTS)
73
+ .gallery_images
74
+ ).toBe('https://a.io/1.png')
75
+ expect(
76
+ helpers.normalizeRow({ gallery_images: '[not json' }, PRODUCT_DEFAULTS).gallery_images
77
+ ).toBe('[not json')
78
+ })
79
+
80
+ it('reads a flag that arrives as text as the boolean it is — "false" is not a ticked box', () => {
81
+ const fromView = helpers.normalizeRow(
82
+ { isDigital: 'true', isGiftCard: 'false' },
83
+ PRODUCT_DEFAULTS
84
+ )
85
+ expect(fromView.is_digital).toBe(true)
86
+ expect(fromView.is_gift_card).toBe(false)
87
+ const fromPostgres = helpers.normalizeRow(
88
+ { is_digital: 't', is_gift_card: 'f' },
89
+ PRODUCT_DEFAULTS
90
+ )
91
+ expect(fromPostgres).toMatchObject({ is_digital: true, is_gift_card: false })
92
+ const stored = helpers.normalizeRow({ is_digital: true, is_gift_card: false }, PRODUCT_DEFAULTS)
93
+ expect(stored).toMatchObject({ is_digital: true, is_gift_card: false })
94
+ })
95
+
96
+ it('keeps the stored discounts, and a text field that merely says "true"', () => {
97
+ const discounts = '[{"id":"d1","type":"fixed","value":10}]'
98
+ const out = helpers.normalizeRow({ discounts, name: 'true' }, PRODUCT_DEFAULTS)
99
+ expect(out.discounts).toBe(discounts)
100
+ expect(out.name).toBe('true')
101
+ })
102
+ })
103
+
104
+ describe('__normalizeTagsForFormInput', () => {
105
+ it('shows the editor’s JSON list, a Postgres array and an array alike, and keeps plain text', () => {
106
+ expect(helpers.normalizeTags('["light","desk"]')).toBe('light, desk')
107
+ expect(helpers.normalizeTags('{"light","desk"}')).toBe('light, desk')
108
+ expect(helpers.normalizeTags(['light', 'desk'])).toBe('light, desk')
109
+ expect(helpers.normalizeTags('light, desk')).toBe('light, desk')
110
+ expect(helpers.normalizeTags('[not json]')).toBe('[not json]')
111
+ expect(helpers.normalizeTags(null)).toBe('')
112
+ })
113
+ })
@@ -13,7 +13,11 @@ import { generateSharedRuntimeUtilsCode } from '../src/executor-generator'
13
13
  interface MockState {
14
14
  aiResponses: string[]
15
15
  aiCalls: Array<{ systemMessage: string; userMessage: string; jsonMode: boolean }>
16
- fetchCalls: Array<{ url: string; body: { query: string; params: unknown[] } }>
16
+ fetchCalls: Array<{
17
+ url: string
18
+ body: { query: string; params: unknown[] }
19
+ headers: Record<string, string>
20
+ }>
17
21
  fetchResponse: { ok: boolean; json: unknown }
18
22
  }
19
23
 
@@ -27,8 +31,11 @@ function loadHandler(state: MockState) {
27
31
  };
28
32
  `
29
33
  const source = aiSelectDatabaseData.generateServerHandler!()
30
- const fetchMock = async (url: string, init: { body: string }) => {
31
- state.fetchCalls.push({ url, body: JSON.parse(init.body) })
34
+ const fetchMock = async (
35
+ url: string,
36
+ init: { body: string; headers: Record<string, string> }
37
+ ) => {
38
+ state.fetchCalls.push({ url, body: JSON.parse(init.body), headers: init.headers })
32
39
  return {
33
40
  ok: state.fetchResponse.ok,
34
41
  json: async () => state.fetchResponse.json,
@@ -92,6 +99,10 @@ describe('happy path', () => {
92
99
  expect(state.aiCalls[0].systemMessage).toContain('TABLE "teleport_products"')
93
100
  expect(state.fetchCalls).toHaveLength(1)
94
101
  expect(state.fetchCalls[0].url).toBe('/api/data/ds1/raw-query')
102
+ // A server-side call, marked as SQL it did not write: the data route lets
103
+ // it run raw SQL but keeps it off the money tables and the users' roles.
104
+ expect(state.fetchCalls[0].headers['x-tq-restricted-sql']).toBe('1')
105
+ expect(state.fetchCalls[0].headers).toHaveProperty('x-internal-data-secret')
95
106
  // The executed SQL carries the enforced LIMIT
96
107
  expect(state.fetchCalls[0].body.query).toBe('SELECT "id" FROM "teleport_products" LIMIT 100')
97
108
  })
@@ -0,0 +1,33 @@
1
+ import { getAPIRouteFileName } from '../src/api-route-generator'
2
+
3
+ /**
4
+ * A workflow's server segments each get their own API route file, and the
5
+ * client's URL map is built from the same names. Capping the segment id at
6
+ * eight characters spelled `server-10`, `server-11` and `server-12` as
7
+ * `server-1`: the tenth segment's file overwrote the first, and the client
8
+ * sent the first call of the workflow to whatever the last segment held. On
9
+ * the checkout that was the payment charge, reached before the cart was
10
+ * validated or the order written.
11
+ */
12
+ describe('getAPIRouteFileName', () => {
13
+ it('gives every server segment its own file, past the ninth', () => {
14
+ const names = Array.from({ length: 14 }, (_, index) =>
15
+ getAPIRouteFileName(
16
+ '19df4d9e-6409-40a4-bbb9-3645b2afcf3b',
17
+ `server-${index + 1}`,
18
+ 'Place Order 2'
19
+ )
20
+ )
21
+ expect(new Set(names).size).toBe(names.length)
22
+ expect(names[0]).toBe('place-order-2-19df4d9e-seg-server-1')
23
+ expect(names[9]).toBe('place-order-2-19df4d9e-seg-server-10')
24
+ expect(names[11]).toBe('place-order-2-19df4d9e-seg-server-12')
25
+ })
26
+
27
+ it('keeps the workflow-id suffix that tells two same-named workflows apart', () => {
28
+ const a = getAPIRouteFileName('aaaaaaaa-1111', 'server-1', 'Place Order')
29
+ const b = getAPIRouteFileName('bbbbbbbb-2222', 'server-1', 'Place Order')
30
+ expect(a).not.toBe(b)
31
+ expect(a).toBe('place-order-aaaaaaaa-seg-server-1')
32
+ })
33
+ })