@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,280 +1,12 @@
1
- /**
2
- * Resolving the NextAuth session token in a generated route, WITHOUT asking
3
- * `process.env.NEXTAUTH_URL` what the session cookie is called.
4
- *
5
- * ## ⛔ THE REPORTED DEFECT
6
- *
7
- * A published project showed "Failed to load dashboard data. Please refresh."
8
- * on the home page, "Failed to load meeting data." on the list page and "could
9
- * not fetch the templates" on a third — for a user who was signed in, on a page
10
- * whose own `/api/auth/session` returned that user. The failing call was the
11
- * page-load workflow's server segment, answering **401 `Unauthenticated`** from
12
- * `guardWorkflowRequest`. Reloading sometimes fixed it; fanning 50 concurrent
13
- * requests at the same route returned **33 × 401 and 17 × 200**, while 40
14
- * concurrent `/api/auth/session` calls resolved the user 40/40.
15
- *
16
- * ## The mechanism
17
- *
18
- * next-auth v4's `getToken()` derives the cookie it reads from an env var:
19
- *
20
- * ```js
21
- * secureCookie = process.env.NEXTAUTH_URL?.startsWith('https://') ?? !!process.env.VERCEL,
22
- * cookieName = secureCookie ? '__Secure-next-auth.session-token' : 'next-auth.session-token',
23
- * ```
24
- *
25
- * A generated project ships `NEXTAUTH_URL=http://localhost:3000` — the build
26
- * cannot know the domain it will be published to, so `pages/api/auth/[...nextauth].js`
27
- * repairs `process.env.NEXTAUTH_URL` **from the incoming request** instead. That
28
- * repair is process-local: it fixes the value for whichever serverless instance
29
- * happened to serve an auth request, and for no other. Every other instance
30
- * still holds `http://localhost:3000`, so `startsWith('https://')` is `false`
31
- * (NOT `undefined` — the `??` fallback to `!!process.env.VERCEL` never runs),
32
- * `getToken` looks for `next-auth.session-token`, the browser is holding
33
- * `__Secure-next-auth.session-token`, nothing is found, and a signed-in user is
34
- * reported as anonymous.
35
- *
36
- * Hence the coin-flip: it depends on whether the instance that served your
37
- * request had previously served an auth request. Nothing about the session, the
38
- * secret or the cookie is wrong.
39
- *
40
- * The same defect is why the generated middleware carries a `hasSessionCookie`
41
- * fallback and a round trip to `/api/auth/session`, attributed there to an
42
- * "Edge runtime quirk" — the Edge process holds that same localhost value.
43
- *
44
- * ## The rule
45
- *
46
- * ⭐ **A request must be authenticated from the REQUEST, never from an ambient
47
- * env var that describes the deployment.** So this resolver reads which session
48
- * cookie the caller actually sent, and tells `getToken` exactly that — falling
49
- * back to the request's own protocol when the cookie header is unavailable.
50
- *
51
- * Emitted as plain ES5 text and inlined into each generated route: a route that
52
- * carries its own copy cannot be broken by a missing sibling module or an
53
- * untraced dependency, and every call site gets the identical implementation
54
- * from this one definition.
55
- */
56
-
57
- /** The `__tq`-prefixed globals the emitted snippet declares. */
58
- export const SESSION_TOKEN_RESOLVER_FN = '__tqResolveSessionToken'
59
-
60
- /**
61
- * Session-cookie names next-auth/Auth.js writes, with the `secureCookie` flag
62
- * that produces each. Order within a protocol is irrelevant — only ONE of these
63
- * is ever present — but the https/http split decides which pair is tried first.
64
- *
65
- * `__Host-` is deliberately absent: next-auth uses it only for the CSRF and
66
- * callback cookies, never for the session token.
67
- */
68
- const KNOWN_SESSION_COOKIES: ReadonlyArray<{ name: string; secure: boolean }> = [
69
- { name: '__Secure-next-auth.session-token', secure: true },
70
- { name: 'next-auth.session-token', secure: false },
71
- { name: '__Secure-authjs.session-token', secure: true },
72
- { name: 'authjs.session-token', secure: false },
73
- ]
74
-
75
- /**
76
- * ES5 source for the shared session-token resolver, safe to inline into any
77
- * generated CommonJS route or ESM middleware.
78
- *
79
- * Declares:
80
- * - `__tqCookieNamesPresent(req)` — the set of cookie names on the request,
81
- * parsed properly (a substring test would see `next-auth.session-token`
82
- * inside `__Secure-next-auth.session-token` and pick the wrong one).
83
- * - `__tqRequestIsSecure(req)` — https as the REQUEST reports it.
84
- * - `__tqSessionTokenCandidates(req)` — `{cookieName, secureCookie}` pairs to try.
85
- * - `__tqResolveSessionToken(getToken, req, secret)` — the token, or null.
86
- *
87
- * `getToken` is passed IN rather than required here, so the same body serves a
88
- * CommonJS route (lazy `require('next-auth/jwt')`) and the Edge middleware
89
- * (static `import`). Pure, total, never throws, no env reads.
90
- */
91
- export const generateSessionTokenResolverCode = (): string => {
92
- return `// GENERATED — see generateSessionTokenResolverCode in
93
- // @teleporthq/teleport-plugin-next-workflows/src/session-cookie-resolver.ts.
94
- //
95
- // next-auth's getToken() picks the session cookie name from
96
- // process.env.NEXTAUTH_URL, which a generated project ships as a localhost
97
- // default — so on a published https domain it looks for the non-secure cookie
98
- // and reports a signed-in user as anonymous. These helpers read the cookie the
99
- // request actually carries and tell getToken exactly which one it is.
100
- var __TQ_SESSION_COOKIES = ${JSON.stringify(KNOWN_SESSION_COOKIES.map((c) => [c.name, c.secure]))};
101
-
102
- // Every cookie NAME on the request. Parsed on the "; " separator rather than
103
- // matched as a substring: "next-auth.session-token" occurs inside
104
- // "__Secure-next-auth.session-token", so a substring test reports the plain
105
- // cookie as present whenever the secure one is, and getToken then decodes the
106
- // wrong (missing) cookie.
107
- function __tqCookieNamesPresent(req) {
108
- var present = {};
109
- var raw = '';
110
- try {
111
- var headers = req && req.headers;
112
- if (headers && typeof headers.get === 'function') {
113
- // Edge / fetch Headers.
114
- raw = headers.get('cookie') || '';
115
- } else if (headers) {
116
- var value = headers.cookie || headers.Cookie;
117
- raw = Array.isArray(value) ? value.join('; ') : value || '';
118
- }
119
- } catch (e) {
120
- raw = '';
121
- }
122
- var parts = String(raw).split(';');
123
- for (var i = 0; i < parts.length; i++) {
124
- var eq = parts[i].indexOf('=');
125
- if (eq > 0) {
126
- present[parts[i].slice(0, eq).trim()] = true;
127
- }
128
- }
129
- // Second source: the runtime's own parsed cookies. A Next.js API route hands
130
- // over a plain object; the Edge RequestCookies exposes getAll().
131
- try {
132
- var cookies = req && req.cookies;
133
- if (cookies && typeof cookies.getAll === 'function') {
134
- var all = cookies.getAll() || [];
135
- for (var a = 0; a < all.length; a++) {
136
- if (all[a] && all[a].name) {
137
- present[all[a].name] = true;
138
- }
139
- }
140
- } else if (cookies && typeof cookies === 'object') {
141
- for (var key in cookies) {
142
- if (Object.prototype.hasOwnProperty.call(cookies, key)) {
143
- present[key] = true;
144
- }
145
- }
146
- }
147
- } catch (e) {
148
- /* the header pass above is enough */
149
- }
150
- return present;
151
- }
152
-
153
- // Is this request https? Read from the proxy header the platform sets, then the
154
- // socket, then the URL — never from an env var describing the deployment.
155
- function __tqRequestIsSecure(req) {
156
- try {
157
- var headers = (req && req.headers) || {};
158
- var proto =
159
- typeof headers.get === 'function'
160
- ? headers.get('x-forwarded-proto')
161
- : headers['x-forwarded-proto'];
162
- if (Array.isArray(proto)) {
163
- proto = proto[0];
164
- }
165
- if (typeof proto === 'string' && proto) {
166
- // A chain of proxies appends: "https,http" — the client-facing hop is first.
167
- return proto.split(',')[0].trim().toLowerCase() === 'https';
168
- }
169
- if (req && req.nextUrl && req.nextUrl.protocol === 'https:') {
170
- return true;
171
- }
172
- if (req && req.socket && req.socket.encrypted) {
173
- return true;
174
- }
175
- if (req && req.connection && req.connection.encrypted) {
176
- return true;
177
- }
178
- if (typeof (req && req.url) === 'string' && req.url.indexOf('https://') === 0) {
179
- return true;
180
- }
181
- } catch (e) {
182
- /* fall through to false */
183
- }
184
- return false;
185
- }
186
-
187
- // The { cookieName, secureCookie } pairs worth trying, most likely first.
188
- // Normally exactly one cookie is present and this returns a single entry; the
189
- // list only grows when a site has been reached over both http and https.
190
- function __tqSessionTokenCandidates(req) {
191
- var present = __tqCookieNamesPresent(req);
192
- var secure = __tqRequestIsSecure(req);
193
- var candidates = [];
194
- for (var i = 0; i < __TQ_SESSION_COOKIES.length; i++) {
195
- var name = __TQ_SESSION_COOKIES[i][0];
196
- var isSecureName = __TQ_SESSION_COOKIES[i][1];
197
- if (present[name] || present[name + '.0']) {
198
- candidates.push({ cookieName: name, secureCookie: isSecureName });
199
- }
200
- }
201
- candidates.sort(function (a, b) {
202
- if (a.secureCookie === b.secureCookie) {
203
- return 0;
204
- }
205
- return a.secureCookie === secure ? -1 : 1;
206
- });
207
- if (candidates.length === 0) {
208
- // No cookie we recognise. The project may configure a custom cookie name in
209
- // authOptions, so hand getToken the request's own protocol and let it apply
210
- // its defaults — same behaviour as before this resolver existed, minus the
211
- // localhost env var.
212
- candidates.push({ secureCookie: secure });
213
- }
214
- return candidates;
215
- }
216
-
217
- // The decoded session token, or null. Tries each candidate cookie in turn so a
218
- // project that renamed its cookie, or one reached over both protocols, still
219
- // resolves. Never throws.
220
- function ${SESSION_TOKEN_RESOLVER_FN}(getToken, req, secret) {
221
- if (!secret || typeof getToken !== 'function') {
222
- return Promise.resolve(null);
223
- }
224
- var candidates = __tqSessionTokenCandidates(req);
225
- var attempt = function (index) {
226
- if (index >= candidates.length) {
227
- return Promise.resolve(null);
228
- }
229
- var candidate = candidates[index];
230
- var params = { req: req, secret: secret, secureCookie: candidate.secureCookie };
231
- if (candidate.cookieName) {
232
- params.cookieName = candidate.cookieName;
233
- }
234
- return Promise.resolve()
235
- .then(function () {
236
- return getToken(params);
237
- })
238
- .catch(function () {
239
- return null;
240
- })
241
- .then(function (token) {
242
- return token || attempt(index + 1);
243
- });
244
- };
245
- return attempt(0);
246
- }
247
- `
248
- }
1
+ import { SessionCookieResolver } from '@teleporthq/teleport-shared'
249
2
 
250
3
  /**
251
- * The resolver plus a lazy `require('next-auth/jwt')`, for a CommonJS route.
252
- *
253
- * The require is lazy and guarded because a project generated WITHOUT
254
- * authentication does not ship `next-auth`; such a project also has no session
255
- * to read, so resolving to `null` there is the correct answer rather than a
256
- * module-load crash.
4
+ * The session-cookie resolver lives in teleport-shared so the per-table data
5
+ * routes (teleport-plugin-next-data-source) decode a session exactly the way
6
+ * the workflow routes do. This module keeps the plugin's public export path.
257
7
  */
258
- export const generateCommonJsSessionTokenResolverCode = (): string => {
259
- return `${generateSessionTokenResolverCode()}
260
- // Lazy + guarded: a project generated without authentication has no next-auth
261
- // installed, and no session to read either — null is the right answer there.
262
- function __tqGetTokenFn() {
263
- try {
264
- var jwt = require('next-auth/jwt');
265
- return jwt && typeof jwt.getToken === 'function' ? jwt.getToken : null;
266
- } catch (e) {
267
- return null;
268
- }
269
- }
270
-
271
- // The session token for this request, or null. Reads NEXTAUTH_SECRET itself.
272
- function __tqSessionToken(req) {
273
- var secret = process.env.NEXTAUTH_SECRET;
274
- if (!secret) {
275
- return Promise.resolve(null);
276
- }
277
- return ${SESSION_TOKEN_RESOLVER_FN}(__tqGetTokenFn(), req, secret);
278
- }
279
- `
280
- }
8
+ export const SESSION_TOKEN_RESOLVER_FN = SessionCookieResolver.SESSION_TOKEN_RESOLVER_FN
9
+ export const generateSessionTokenResolverCode =
10
+ SessionCookieResolver.generateSessionTokenResolverCode
11
+ export const generateCommonJsSessionTokenResolverCode =
12
+ SessionCookieResolver.generateCommonJsSessionTokenResolverCode
@@ -0,0 +1,351 @@
1
+ /**
2
+ * Subscriber-only pages: the entitlement check a generated store runs for a
3
+ * page whose protection carries `requiresSubscription`.
4
+ *
5
+ * Two files, emitted together whenever at least one page is subscriber-only:
6
+ *
7
+ * - `utils/auth/subscriber-access.js` — the ONE parameterised query that
8
+ * decides entitlement (`SUBSCRIPTION_ENTITLEMENT_SQL` from teleport-shared,
9
+ * statuses baked from `SUBSCRIPTION_ENTITLED_STATUSES`) plus the lookup of
10
+ * the storefront page of the first product a page names. Shared by the
11
+ * route below and by the workflow-route guard (`workflow-auth.js`), so the
12
+ * middleware and a page's workflow routes can never disagree.
13
+ * - `pages/api/auth/subscriber-access.js` — what the Edge middleware asks
14
+ * (it has no database): `GET ?products=<comma ids>` with the visitor's
15
+ * cookie forwarded → 401 without a session, else
16
+ * `{ entitled: boolean, redirectTo?: string }`, never cached.
17
+ *
18
+ * The middleware itself lives in `auth-generator.ts` (`generateMiddlewareFile`).
19
+ */
20
+ import { ProjectUIDL, UIDLAuthentication } from '@teleporthq/teleport-types'
21
+ import { SubscriptionAccess } from '@teleporthq/teleport-shared'
22
+ import { generatePgClientCode } from './pg-client-code'
23
+ import { generateCommonJsSessionTokenResolverCode } from './session-cookie-resolver'
24
+
25
+ const PRODUCTS_TABLE = 'teleport_products'
26
+ const MAX_PRODUCT_IDS = 50
27
+ const IDENTIFIER_RE = /^[A-Za-z_][A-Za-z0-9_]*$/
28
+
29
+ /** Where the storefront serves a single product from, read off the UIDL's route table. */
30
+ export interface ProductDetailsRoute {
31
+ // `/products` for a page emitted at `/products/[slug]`; `/` when the details
32
+ // page sits at the root.
33
+ staticBase: string
34
+ // The product column the dynamic segment carries (`slug`, `id`).
35
+ differentiatorColumn: string
36
+ }
37
+
38
+ export const hasSubscriberOnlyPages = (auth: UIDLAuthentication | undefined): boolean => {
39
+ if (!auth || !auth.pageProtection) {
40
+ return false
41
+ }
42
+ return Object.values(auth.pageProtection).some(
43
+ (protection) => !!protection && protection.requiresSubscription === true
44
+ )
45
+ }
46
+
47
+ const routeValuesOf = (uidl: ProjectUIDL | undefined): any[] => {
48
+ const values = (uidl as any)?.root?.stateDefinitions?.route?.values
49
+ return Array.isArray(values) ? values : []
50
+ }
51
+
52
+ /** The feature identifier every storefront product page exposes its product under. */
53
+ const STOREFRONT_PRODUCT_FEATURE = 'ecommerceProduct'
54
+
55
+ const toProductRoute = (route: unknown, attribute: unknown): ProductDetailsRoute | null => {
56
+ const staticBase = typeof route === 'string' && route.startsWith('/') ? route : ''
57
+ const column = typeof attribute === 'string' ? attribute : ''
58
+ return staticBase && IDENTIFIER_RE.test(column)
59
+ ? { staticBase, differentiatorColumn: column }
60
+ : null
61
+ }
62
+
63
+ /**
64
+ * The STANDARD product-details page. When the store has custom product pages
65
+ * the UIDL names it (`ecommerceSettings.productPages.standard`). Otherwise it is
66
+ * the route value whose `detailsPageInfo` reads the products table — a
67
+ * storefront product page first, since the write-a-review page reads that table
68
+ * too. Its `navLink` is `<base>/[<column>]`; the base is what the list page
69
+ * shares with it by platform convention.
70
+ */
71
+ export const resolveProductDetailsRoute = (
72
+ uidl: ProjectUIDL | undefined
73
+ ): ProductDetailsRoute | null => {
74
+ const standard = uidl?.ecommerceSettings?.productPages?.standard
75
+ if (standard) {
76
+ const route = toProductRoute(standard.route, standard.attribute)
77
+ if (route) {
78
+ return route
79
+ }
80
+ }
81
+ const candidates: Array<{ route: ProductDetailsRoute; storefront: boolean }> = []
82
+ for (const routeValue of routeValuesOf(uidl)) {
83
+ const pageOptions = routeValue?.pageOptions
84
+ const info = pageOptions?.detailsPageInfo
85
+ if (!info || String(info.tableName || '').toLowerCase() !== PRODUCTS_TABLE) {
86
+ continue
87
+ }
88
+ const navLink = String(pageOptions.navLink || '')
89
+ const column = String(info.differentiatorColumn || pageOptions.dynamicRouteAttribute || '')
90
+ const route = toProductRoute(navLink.replace(/\/\[[^\]]*\]$/, '') || '/', column)
91
+ if (navLink.startsWith('/') && route) {
92
+ candidates.push({ route, storefront: info.featureIdentifier === STOREFRONT_PRODUCT_FEATURE })
93
+ }
94
+ }
95
+ const chosen = candidates.find((candidate) => candidate.storefront) || candidates[0]
96
+ return chosen ? chosen.route : null
97
+ }
98
+
99
+ /**
100
+ * Every custom product page by key (`ecommerceSettings.productPages.pages`),
101
+ * so a product that opens on one is sent there. Empty on a store without
102
+ * custom product pages.
103
+ */
104
+ export const resolveCustomProductPageRoutes = (
105
+ uidl: ProjectUIDL | undefined
106
+ ): Record<string, ProductDetailsRoute> => {
107
+ const pages = uidl?.ecommerceSettings?.productPages?.pages || {}
108
+ const routes: Record<string, ProductDetailsRoute> = {}
109
+ for (const key of Object.keys(pages)) {
110
+ const route = toProductRoute(pages[key]?.route, pages[key]?.attribute)
111
+ if (route) {
112
+ routes[key] = route
113
+ }
114
+ }
115
+ return routes
116
+ }
117
+
118
+ /**
119
+ * Where the middleware sends a visitor who lacks the subscription when the
120
+ * route could name no product page: the products listing when the store has
121
+ * one (a page served at the details page's static base), else the home page.
122
+ */
123
+ export const resolveSubscriptionFallbackRoute = (uidl: ProjectUIDL | undefined): string => {
124
+ const details = resolveProductDetailsRoute(uidl)
125
+ if (!details || details.staticBase === '/') {
126
+ return '/'
127
+ }
128
+ const hasListing = routeValuesOf(uidl).some(
129
+ (routeValue) => String(routeValue?.pageOptions?.navLink || '') === details.staticBase
130
+ )
131
+ return hasListing ? details.staticBase : '/'
132
+ }
133
+
134
+ // The storefront page of the FIRST product a page names, on the standard page.
135
+ const STANDARD_PAGE_REDIRECT = `async function resolveProductRedirect(productIds) {
136
+ var ids = normalizeProductIds(productIds);
137
+ if (!PRODUCT_DETAILS || ids.length === 0) {
138
+ return null;
139
+ }
140
+ try {
141
+ return await withClient(async function (client) {
142
+ var result = await client.query(
143
+ 'SELECT "' + PRODUCT_DETAILS.differentiatorColumn + '" AS value FROM ' + PRODUCTS_TABLE + ' WHERE id::text = $1 LIMIT 1',
144
+ [ids[0]]
145
+ );
146
+ var value = result && result.rows && result.rows[0] ? result.rows[0].value : null;
147
+ if (value == null || String(value) === '') {
148
+ return null;
149
+ }
150
+ var base = PRODUCT_DETAILS.staticBase === '/' ? '' : PRODUCT_DETAILS.staticBase;
151
+ return base + '/' + encodeURIComponent(String(value));
152
+ });
153
+ } catch (e) {
154
+ return null;
155
+ }
156
+ }`
157
+
158
+ // The same, on a store with custom product pages: the product's own page — the
159
+ // custom one its product_page names while that page exists, else the standard
160
+ // one. The row is read whole (to_jsonb) so a store whose table lacks one of the
161
+ // columns still answers.
162
+ const PRODUCT_PAGE_AWARE_REDIRECT = `async function resolveProductRedirect(productIds) {
163
+ var ids = normalizeProductIds(productIds);
164
+ if (!PRODUCT_DETAILS || ids.length === 0) {
165
+ return null;
166
+ }
167
+ try {
168
+ return await withClient(async function (client) {
169
+ var result = await client.query(
170
+ 'SELECT to_jsonb(p) AS row FROM ' + PRODUCTS_TABLE + ' p WHERE p.id::text = $1 LIMIT 1',
171
+ [ids[0]]
172
+ );
173
+ var row = result && result.rows && result.rows[0] ? result.rows[0].row : null;
174
+ if (!row) {
175
+ return null;
176
+ }
177
+ var key = typeof row.product_page === 'string' ? row.product_page.trim() : '';
178
+ var page =
179
+ key !== '' && Object.prototype.hasOwnProperty.call(PRODUCT_PAGES, key)
180
+ ? PRODUCT_PAGES[key]
181
+ : PRODUCT_DETAILS;
182
+ var value = row[page.differentiatorColumn];
183
+ if (value == null || String(value) === '') {
184
+ return null;
185
+ }
186
+ var base = page.staticBase === '/' ? '' : page.staticBase;
187
+ return base + '/' + encodeURIComponent(String(value));
188
+ });
189
+ } catch (e) {
190
+ return null;
191
+ }
192
+ }`
193
+
194
+ export interface SubscriberAccessHelperOptions {
195
+ productDetails: ProductDetailsRoute | null
196
+ /** Custom product pages by key (`resolveCustomProductPageRoutes`); absent or empty = none. */
197
+ productPages?: Record<string, ProductDetailsRoute>
198
+ }
199
+
200
+ /**
201
+ * `utils/auth/subscriber-access.js` (CommonJS). Exports:
202
+ * - `normalizeProductIds(value)` — trimmed, de-duplicated ids from an array
203
+ * or a comma-separated string, capped.
204
+ * - `isSubscriberEntitled(userId, productIds)` — the entitlement query; an
205
+ * empty list means any product. Throws on a database failure so a caller
206
+ * can fail closed on its own terms.
207
+ * - `resolveProductRedirect(productIds)` — the storefront page of the FIRST
208
+ * product, or null (no product page, unknown product, database failure).
209
+ */
210
+ export const generateSubscriberAccessHelperModule = (
211
+ options: SubscriberAccessHelperOptions
212
+ ): string => {
213
+ const details =
214
+ options.productDetails && IDENTIFIER_RE.test(options.productDetails.differentiatorColumn)
215
+ ? options.productDetails
216
+ : null
217
+ const productPages = options.productPages || {}
218
+ const hasProductPages = !!details && Object.keys(productPages).length > 0
219
+
220
+ return `'use strict';
221
+
222
+ // GENERATED — see generateSubscriberAccessHelperModule in
223
+ // @teleporthq/teleport-plugin-next-workflows/src/subscriber-access-route-generator.ts.
224
+ //
225
+ // Whether a signed-in visitor holds an entitled subscription: the one query the
226
+ // subscriber-access route (for the middleware) and the workflow-route guard
227
+ // share, so a page and its workflows can never disagree about who may read.
228
+ ${generatePgClientCode()}
229
+
230
+ var SUBSCRIPTION_ENTITLED_STATUSES = ${JSON.stringify(
231
+ SubscriptionAccess.SUBSCRIPTION_ENTITLED_STATUSES
232
+ )};
233
+ var ENTITLEMENT_SQL = ${JSON.stringify(SubscriptionAccess.SUBSCRIPTION_ENTITLEMENT_SQL)};
234
+ var MAX_PRODUCT_IDS = ${MAX_PRODUCT_IDS};
235
+ // The product-details page, when the store has one: its static base and the
236
+ // product column its dynamic segment carries.
237
+ var PRODUCT_DETAILS = ${JSON.stringify(details)};
238
+ var PRODUCTS_TABLE = ${JSON.stringify(PRODUCTS_TABLE)};${
239
+ hasProductPages
240
+ ? `
241
+ // The custom product pages by key: a product whose product_page names one
242
+ // opens there instead of on the standard product page.
243
+ var PRODUCT_PAGES = ${JSON.stringify(productPages)};`
244
+ : ''
245
+ }
246
+
247
+ function normalizeProductIds(value) {
248
+ var raw = Array.isArray(value) ? value : typeof value === 'string' ? value.split(',') : [];
249
+ var ids = [];
250
+ for (var i = 0; i < raw.length && ids.length < MAX_PRODUCT_IDS; i++) {
251
+ var id = String(raw[i] == null ? '' : raw[i]).trim();
252
+ if (id && ids.indexOf(id) === -1) {
253
+ ids.push(id);
254
+ }
255
+ }
256
+ return ids;
257
+ }
258
+
259
+ async function withClient(run) {
260
+ var client = getClient();
261
+ try {
262
+ await client.connect();
263
+ return await run(client);
264
+ } finally {
265
+ try { await client.end(); } catch (e) {}
266
+ }
267
+ }
268
+
269
+ // true when the user holds a subscription in an entitled status to one of the
270
+ // products — to any product when the list is empty.
271
+ async function isSubscriberEntitled(userId, productIds) {
272
+ var id = String(userId == null ? '' : userId).trim();
273
+ if (!id) {
274
+ return false;
275
+ }
276
+ var ids = normalizeProductIds(productIds);
277
+ return withClient(async function (client) {
278
+ var result = await client.query(ENTITLEMENT_SQL, [id, SUBSCRIPTION_ENTITLED_STATUSES, ids]);
279
+ return !!(result && result.rows && result.rows.length > 0);
280
+ });
281
+ }
282
+
283
+ // The storefront page of the first product a page names, or null.
284
+ ${hasProductPages ? PRODUCT_PAGE_AWARE_REDIRECT : STANDARD_PAGE_REDIRECT}
285
+
286
+ module.exports = {
287
+ SUBSCRIPTION_ENTITLED_STATUSES: SUBSCRIPTION_ENTITLED_STATUSES,
288
+ normalizeProductIds: normalizeProductIds,
289
+ isSubscriberEntitled: isSubscriberEntitled,
290
+ resolveProductRedirect: resolveProductRedirect,
291
+ };
292
+ `
293
+ }
294
+
295
+ /**
296
+ * `pages/api/auth/subscriber-access.js`: GET only, the session read from the
297
+ * forwarded cookie exactly as the workflow routes read it, then the shared
298
+ * helper. A failed query answers 500 — the middleware treats anything but an
299
+ * `entitled: true` body as "not entitled", so the page fails closed.
300
+ */
301
+ export const generateSubscriberAccessRoute = (): string => {
302
+ return `'use strict';
303
+
304
+ // GENERATED — see generateSubscriberAccessRoute in
305
+ // @teleporthq/teleport-plugin-next-workflows/src/subscriber-access-route-generator.ts.
306
+ //
307
+ // Asked by the middleware for a subscriber-only page: does the visitor behind
308
+ // this cookie hold an entitled subscription to one of ?products (any, when
309
+ // none are named)? Never cached — a subscription can end between two requests.
310
+ ${generateCommonJsSessionTokenResolverCode()}
311
+ var __subscriberAccess = require('../../../utils/auth/subscriber-access');
312
+
313
+ module.exports = async function handler(req, res) {
314
+ res.setHeader('Cache-Control', 'no-store');
315
+ if (req.method !== 'GET') {
316
+ res.setHeader('Allow', 'GET');
317
+ return res.status(405).json({ error: 'Method not allowed' });
318
+ }
319
+
320
+ var token = null;
321
+ try {
322
+ token = await __tqSessionToken(req);
323
+ } catch (e) {
324
+ token = null;
325
+ }
326
+ var userId = token && (token.id != null ? token.id : token.sub);
327
+ if (userId == null || String(userId) === '') {
328
+ return res.status(401).json({ error: 'Unauthenticated' });
329
+ }
330
+
331
+ var productIds = __subscriberAccess.normalizeProductIds(req.query && req.query.products);
332
+ var entitled = false;
333
+ try {
334
+ entitled = await __subscriberAccess.isSubscriberEntitled(String(userId), productIds);
335
+ } catch (e) {
336
+ console.error('[subscriber-access] entitlement check failed:', e && e.message ? e.message : e);
337
+ return res.status(500).json({ error: 'Subscription check failed' });
338
+ }
339
+ if (entitled) {
340
+ return res.status(200).json({ entitled: true });
341
+ }
342
+
343
+ var body = { entitled: false };
344
+ var redirectTo = await __subscriberAccess.resolveProductRedirect(productIds);
345
+ if (redirectTo) {
346
+ body.redirectTo = redirectTo;
347
+ }
348
+ return res.status(200).json(body);
349
+ };
350
+ `
351
+ }
package/src/types.ts CHANGED
@@ -8,6 +8,12 @@ export interface WorkflowSegment {
8
8
  nodeIds: string[]
9
9
  nodes: UIDLWorkflowNode[]
10
10
  edges: UIDLWorkflowEdge[]
11
+ /**
12
+ * The nodes a branch decided outside this segment can start at: those with a
13
+ * predecessor outside it, or with none. Only there may a client's skip mark
14
+ * take effect (see `claimSegmentContext` in the runtime).
15
+ */
16
+ entryNodeIds?: string[]
11
17
  }
12
18
 
13
19
  export interface SecretEntry {