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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (787) hide show
  1. package/__tests__/_helpers/bind-workflow-utils.ts +16 -1
  2. package/__tests__/_helpers/fake-fetch.ts +96 -0
  3. package/__tests__/_helpers/fake-stripe.ts +52 -0
  4. package/__tests__/_helpers/load-handler.ts +22 -3
  5. package/__tests__/_helpers/load-invoice-route.ts +75 -0
  6. package/__tests__/_helpers/load-payment-drivers.ts +69 -0
  7. package/__tests__/_helpers/load-server-runtime.ts +33 -0
  8. package/__tests__/_helpers/run-generated-middleware.ts +50 -9
  9. package/__tests__/admin-form-hydration-target.test.ts +39 -0
  10. package/__tests__/admin-form-row-hydration.test.ts +58 -0
  11. package/__tests__/ai-select-database-data-handler.test.ts +14 -3
  12. package/__tests__/api-route-file-name-segments.test.ts +33 -0
  13. package/__tests__/app-secret-env.test.ts +55 -0
  14. package/__tests__/auth-env-secret-preservation.test.ts +22 -3
  15. package/__tests__/auth-nextauth-url.test.ts +134 -50
  16. package/__tests__/cart-add-item-kinds.test.ts +259 -0
  17. package/__tests__/cart-add-item-line-fields.test.ts +328 -0
  18. package/__tests__/cart-availability-add-to-cart.test.ts +108 -0
  19. package/__tests__/cart-get-total-discounts.test.ts +499 -0
  20. package/__tests__/cart-get-total-product-options.test.ts +195 -0
  21. package/__tests__/cart-get-total-subscriptions.test.ts +221 -0
  22. package/__tests__/cart-price-order.test.ts +283 -0
  23. package/__tests__/cart-update-item-quantity-recurring.test.ts +75 -0
  24. package/__tests__/client-loop-current-item.test.ts +164 -0
  25. package/__tests__/cron-route-loop-custom-node.test.ts +123 -0
  26. package/__tests__/cron-route-loop-templateparams.test.ts +7 -0
  27. package/__tests__/cron-route-verification.test.ts +252 -0
  28. package/__tests__/custom-js-runtime-base-url.test.ts +64 -0
  29. package/__tests__/custom-nodes-admin-module.test.ts +310 -0
  30. package/__tests__/data-api-browser-reads.test.ts +341 -0
  31. package/__tests__/data-api-low-stock-autofire.test.ts +67 -17
  32. package/__tests__/data-api-optional-feature-columns.test.ts +240 -0
  33. package/__tests__/data-api-protected-tables.test.ts +948 -0
  34. package/__tests__/data-node-not-awaited.test.ts +7 -3
  35. package/__tests__/data-write-missing-filter.test.ts +119 -0
  36. package/__tests__/ecommerce-rewriter-product-options.test.ts +143 -0
  37. package/__tests__/email-locale-senders.test.ts +1 -1
  38. package/__tests__/file-storage-upload-picked-files.test.ts +20 -0
  39. package/__tests__/input-debounce-per-field.test.ts +141 -0
  40. package/__tests__/internal-request-headers.test.ts +7 -3
  41. package/__tests__/invoice-data-access-replace.test.ts +340 -0
  42. package/__tests__/invoice-delivery-fee.test.ts +3 -2
  43. package/__tests__/invoice-generate-hydration.test.ts +20 -12
  44. package/__tests__/invoice-order-items-settle.test.ts +51 -46
  45. package/__tests__/invoice-product-options.test.ts +177 -0
  46. package/__tests__/invoice-regenerate-route.test.ts +488 -0
  47. package/__tests__/invoice-regional-tax.test.ts +3 -2
  48. package/__tests__/invoice-reservation.test.ts +195 -0
  49. package/__tests__/invoice-route-access.test.ts +275 -0
  50. package/__tests__/invoice-self-call-origin.test.ts +117 -0
  51. package/__tests__/invoice-tender.test.ts +550 -0
  52. package/__tests__/legacy-webhook-self-calls.test.ts +187 -0
  53. package/__tests__/locale-aware-redirects.test.ts +55 -26
  54. package/__tests__/loop-collection-unwrap.test.ts +6 -1
  55. package/__tests__/middleware-subscriber-access.test.ts +269 -0
  56. package/__tests__/payment-charge-user-earlier-attempt.test.ts +267 -0
  57. package/__tests__/payment-charge-user-handler-serialization.test.ts +47 -82
  58. package/__tests__/payment-charge-user-line-descriptions.test.ts +124 -0
  59. package/__tests__/payment-charge-user-report-refusal.test.ts +105 -0
  60. package/__tests__/payment-close-checkout-node.test.ts +127 -0
  61. package/__tests__/payment-driver-close-checkout.test.ts +1163 -0
  62. package/__tests__/payment-driver-coingate.test.ts +470 -0
  63. package/__tests__/payment-driver-inspect-checkout.test.ts +648 -0
  64. package/__tests__/payment-driver-mollie.test.ts +864 -0
  65. package/__tests__/payment-driver-paddle.test.ts +870 -0
  66. package/__tests__/payment-driver-paypal-capture.test.ts +158 -0
  67. package/__tests__/payment-driver-paypal-webhook.test.ts +367 -0
  68. package/__tests__/payment-driver-razorpay.test.ts +895 -0
  69. package/__tests__/payment-driver-square.test.ts +977 -0
  70. package/__tests__/payment-driver-stripe.test.ts +267 -0
  71. package/__tests__/payment-drivers-module.test.ts +429 -0
  72. package/__tests__/payment-legacy-webhook-routes.test.ts +588 -0
  73. package/__tests__/payment-redirect-and-order-notification.test.ts +98 -39
  74. package/__tests__/payment-refund.test.ts +523 -22
  75. package/__tests__/payment-subscription-nodes.test.ts +1360 -0
  76. package/__tests__/payment-webhook-route.test.ts +523 -0
  77. package/__tests__/paypal-webhook-signature-verification.test.ts +205 -0
  78. package/__tests__/prune-context-oversized-leaf.test.ts +1 -0
  79. package/__tests__/prune-context-state-keys.test.ts +89 -0
  80. package/__tests__/push-node-handlers.test.ts +291 -0
  81. package/__tests__/route-changed-trigger.test.ts +40 -0
  82. package/__tests__/runtime-storage-upload-access.test.ts +255 -0
  83. package/__tests__/security-runtime-shadow.test.ts +103 -1
  84. package/__tests__/segment-reply-changed-keys.test.ts +146 -0
  85. package/__tests__/segment-state-keys-emission.test.ts +185 -0
  86. package/__tests__/segment-state-needs.test.ts +102 -0
  87. package/__tests__/server-segment-context-integrity.test.ts +210 -0
  88. package/__tests__/server-step-signing.test.ts +371 -0
  89. package/__tests__/session-cookie-resolver.test.ts +59 -0
  90. package/__tests__/stock-decrement-audit.test.ts +17 -0
  91. package/__tests__/subscriber-access-route.test.ts +406 -0
  92. package/__tests__/webhook-delivery-lease.test.ts +316 -0
  93. package/__tests__/workflow-auth-guard.test.ts +253 -2
  94. package/dist/cjs/admin-form-hydration.d.ts +10 -0
  95. package/dist/cjs/admin-form-hydration.d.ts.map +1 -0
  96. package/dist/cjs/admin-form-hydration.js +25 -0
  97. package/dist/cjs/admin-form-hydration.js.map +1 -0
  98. package/dist/cjs/api-route-generator.d.ts +19 -3
  99. package/dist/cjs/api-route-generator.d.ts.map +1 -1
  100. package/dist/cjs/api-route-generator.js +190 -70
  101. package/dist/cjs/api-route-generator.js.map +1 -1
  102. package/dist/cjs/auth-generator.d.ts +4 -1
  103. package/dist/cjs/auth-generator.d.ts.map +1 -1
  104. package/dist/cjs/auth-generator.js +241 -62
  105. package/dist/cjs/auth-generator.js.map +1 -1
  106. package/dist/cjs/auth-return/signed-in-destination-code.d.ts +17 -0
  107. package/dist/cjs/auth-return/signed-in-destination-code.d.ts.map +1 -0
  108. package/dist/cjs/auth-return/signed-in-destination-code.js +37 -0
  109. package/dist/cjs/auth-return/signed-in-destination-code.js.map +1 -0
  110. package/dist/cjs/cart-pricing-preamble.d.ts +12 -0
  111. package/dist/cjs/cart-pricing-preamble.d.ts.map +1 -0
  112. package/dist/cjs/cart-pricing-preamble.js +23 -0
  113. package/dist/cjs/cart-pricing-preamble.js.map +1 -0
  114. package/dist/cjs/cron-request-verification.d.ts +24 -0
  115. package/dist/cjs/cron-request-verification.d.ts.map +1 -0
  116. package/dist/cjs/cron-request-verification.js +84 -0
  117. package/dist/cjs/cron-request-verification.js.map +1 -0
  118. package/dist/cjs/custom-node-modules.d.ts +30 -0
  119. package/dist/cjs/custom-node-modules.d.ts.map +1 -0
  120. package/dist/cjs/custom-node-modules.js +90 -0
  121. package/dist/cjs/custom-node-modules.js.map +1 -0
  122. package/dist/cjs/data-api-route-generator.d.ts +27 -0
  123. package/dist/cjs/data-api-route-generator.d.ts.map +1 -1
  124. package/dist/cjs/data-api-route-generator.js +366 -29
  125. package/dist/cjs/data-api-route-generator.js.map +1 -1
  126. package/dist/cjs/ecommerce/cart-availability.d.ts.map +1 -1
  127. package/dist/cjs/ecommerce/cart-availability.js +22 -13
  128. package/dist/cjs/ecommerce/cart-availability.js.map +1 -1
  129. package/dist/cjs/ecommerce/stock-decrement.d.ts +2 -1
  130. package/dist/cjs/ecommerce/stock-decrement.d.ts.map +1 -1
  131. package/dist/cjs/ecommerce/stock-decrement.js +6 -0
  132. package/dist/cjs/ecommerce/stock-decrement.js.map +1 -1
  133. package/dist/cjs/executor-generator.d.ts +0 -1
  134. package/dist/cjs/executor-generator.d.ts.map +1 -1
  135. package/dist/cjs/executor-generator.js +213 -20
  136. package/dist/cjs/executor-generator.js.map +1 -1
  137. package/dist/cjs/index.d.ts +12 -4
  138. package/dist/cjs/index.d.ts.map +1 -1
  139. package/dist/cjs/index.js +25 -2
  140. package/dist/cjs/index.js.map +1 -1
  141. package/dist/cjs/invoice/api-routes-code.d.ts +26 -0
  142. package/dist/cjs/invoice/api-routes-code.d.ts.map +1 -1
  143. package/dist/cjs/invoice/api-routes-code.js +423 -391
  144. package/dist/cjs/invoice/api-routes-code.js.map +1 -1
  145. package/dist/cjs/invoice/data-access-code.d.ts.map +1 -1
  146. package/dist/cjs/invoice/data-access-code.js +420 -107
  147. package/dist/cjs/invoice/data-access-code.js.map +1 -1
  148. package/dist/cjs/invoice/index.d.ts.map +1 -1
  149. package/dist/cjs/invoice/index.js +24 -0
  150. package/dist/cjs/invoice/index.js.map +1 -1
  151. package/dist/cjs/invoice/invoice-assembly-code.d.ts +12 -0
  152. package/dist/cjs/invoice/invoice-assembly-code.d.ts.map +1 -0
  153. package/dist/cjs/invoice/invoice-assembly-code.js +517 -0
  154. package/dist/cjs/invoice/invoice-assembly-code.js.map +1 -0
  155. package/dist/cjs/invoice/invoice-html-code.d.ts.map +1 -1
  156. package/dist/cjs/invoice/invoice-html-code.js +111 -9
  157. package/dist/cjs/invoice/invoice-html-code.js.map +1 -1
  158. package/dist/cjs/invoice/pdf-service-client-code.d.ts.map +1 -1
  159. package/dist/cjs/invoice/pdf-service-client-code.js +3 -4
  160. package/dist/cjs/invoice/pdf-service-client-code.js.map +1 -1
  161. package/dist/cjs/nodes/account/account-login.d.ts.map +1 -1
  162. package/dist/cjs/nodes/account/account-login.js +4 -3
  163. package/dist/cjs/nodes/account/account-login.js.map +1 -1
  164. package/dist/cjs/nodes/account/account-signup.d.ts.map +1 -1
  165. package/dist/cjs/nodes/account/account-signup.js +7 -4
  166. package/dist/cjs/nodes/account/account-signup.js.map +1 -1
  167. package/dist/cjs/nodes/ai/ai-select-database-data.d.ts.map +1 -1
  168. package/dist/cjs/nodes/ai/ai-select-database-data.js +6 -1
  169. package/dist/cjs/nodes/ai/ai-select-database-data.js.map +1 -1
  170. package/dist/cjs/nodes/browser/browser-get-push-subscription.d.ts +9 -0
  171. package/dist/cjs/nodes/browser/browser-get-push-subscription.d.ts.map +1 -0
  172. package/dist/cjs/nodes/browser/browser-get-push-subscription.js +25 -0
  173. package/dist/cjs/nodes/browser/browser-get-push-subscription.js.map +1 -0
  174. package/dist/cjs/nodes/browser/browser-show-notification.d.ts +10 -0
  175. package/dist/cjs/nodes/browser/browser-show-notification.d.ts.map +1 -1
  176. package/dist/cjs/nodes/browser/browser-show-notification.js +65 -40
  177. package/dist/cjs/nodes/browser/browser-show-notification.js.map +1 -1
  178. package/dist/cjs/nodes/browser/browser-subscribe-to-push.d.ts +11 -0
  179. package/dist/cjs/nodes/browser/browser-subscribe-to-push.d.ts.map +1 -1
  180. package/dist/cjs/nodes/browser/browser-subscribe-to-push.js +21 -31
  181. package/dist/cjs/nodes/browser/browser-subscribe-to-push.js.map +1 -1
  182. package/dist/cjs/nodes/browser/browser-unsubscribe-from-push.d.ts +8 -0
  183. package/dist/cjs/nodes/browser/browser-unsubscribe-from-push.d.ts.map +1 -0
  184. package/dist/cjs/nodes/browser/browser-unsubscribe-from-push.js +24 -0
  185. package/dist/cjs/nodes/browser/browser-unsubscribe-from-push.js.map +1 -0
  186. package/dist/cjs/nodes/browser/push-api-access.d.ts +12 -0
  187. package/dist/cjs/nodes/browser/push-api-access.d.ts.map +1 -0
  188. package/dist/cjs/nodes/browser/push-api-access.js +19 -0
  189. package/dist/cjs/nodes/browser/push-api-access.js.map +1 -0
  190. package/dist/cjs/nodes/cart/cart-add-item.d.ts.map +1 -1
  191. package/dist/cjs/nodes/cart/cart-add-item.js +174 -10
  192. package/dist/cjs/nodes/cart/cart-add-item.js.map +1 -1
  193. package/dist/cjs/nodes/cart/cart-clear.d.ts.map +1 -1
  194. package/dist/cjs/nodes/cart/cart-clear.js +11 -0
  195. package/dist/cjs/nodes/cart/cart-clear.js.map +1 -1
  196. package/dist/cjs/nodes/cart/cart-get-total.d.ts.map +1 -1
  197. package/dist/cjs/nodes/cart/cart-get-total.js +260 -3
  198. package/dist/cjs/nodes/cart/cart-get-total.js.map +1 -1
  199. package/dist/cjs/nodes/cart/cart-price-order.d.ts +3 -0
  200. package/dist/cjs/nodes/cart/cart-price-order.d.ts.map +1 -0
  201. package/dist/cjs/nodes/cart/cart-price-order.js +281 -0
  202. package/dist/cjs/nodes/cart/cart-price-order.js.map +1 -0
  203. package/dist/cjs/nodes/cart/cart-update-item-quantity.d.ts.map +1 -1
  204. package/dist/cjs/nodes/cart/cart-update-item-quantity.js +7 -0
  205. package/dist/cjs/nodes/cart/cart-update-item-quantity.js.map +1 -1
  206. package/dist/cjs/nodes/data/data-count.d.ts.map +1 -1
  207. package/dist/cjs/nodes/data/data-count.js +6 -1
  208. package/dist/cjs/nodes/data/data-count.js.map +1 -1
  209. package/dist/cjs/nodes/data/data-create-item.d.ts.map +1 -1
  210. package/dist/cjs/nodes/data/data-create-item.js +11 -1
  211. package/dist/cjs/nodes/data/data-create-item.js.map +1 -1
  212. package/dist/cjs/nodes/data/data-delete-item.d.ts.map +1 -1
  213. package/dist/cjs/nodes/data/data-delete-item.js +29 -0
  214. package/dist/cjs/nodes/data/data-delete-item.js.map +1 -1
  215. package/dist/cjs/nodes/data/data-raw-query.d.ts.map +1 -1
  216. package/dist/cjs/nodes/data/data-raw-query.js +6 -1
  217. package/dist/cjs/nodes/data/data-raw-query.js.map +1 -1
  218. package/dist/cjs/nodes/data/data-select.d.ts.map +1 -1
  219. package/dist/cjs/nodes/data/data-select.js +6 -1
  220. package/dist/cjs/nodes/data/data-select.js.map +1 -1
  221. package/dist/cjs/nodes/data/data-update-item.d.ts.map +1 -1
  222. package/dist/cjs/nodes/data/data-update-item.js +29 -0
  223. package/dist/cjs/nodes/data/data-update-item.js.map +1 -1
  224. package/dist/cjs/nodes/ecommerce/ecommerce-generate-invoice.d.ts.map +1 -1
  225. package/dist/cjs/nodes/ecommerce/ecommerce-generate-invoice.js +7 -1
  226. package/dist/cjs/nodes/ecommerce/ecommerce-generate-invoice.js.map +1 -1
  227. package/dist/cjs/nodes/file-storage/file-storage-upload.d.ts.map +1 -1
  228. package/dist/cjs/nodes/file-storage/file-storage-upload.js +7 -0
  229. package/dist/cjs/nodes/file-storage/file-storage-upload.js.map +1 -1
  230. package/dist/cjs/nodes/general/general-custom-js.d.ts.map +1 -1
  231. package/dist/cjs/nodes/general/general-custom-js.js +21 -5
  232. package/dist/cjs/nodes/general/general-custom-js.js.map +1 -1
  233. package/dist/cjs/nodes/index.d.ts.map +1 -1
  234. package/dist/cjs/nodes/index.js +9 -4
  235. package/dist/cjs/nodes/index.js.map +1 -1
  236. package/dist/cjs/nodes/payment/payment-billing-portal.d.ts +3 -0
  237. package/dist/cjs/nodes/payment/payment-billing-portal.d.ts.map +1 -0
  238. package/dist/cjs/nodes/payment/payment-billing-portal.js +52 -0
  239. package/dist/cjs/nodes/payment/payment-billing-portal.js.map +1 -0
  240. package/dist/cjs/nodes/payment/payment-charge-user.d.ts.map +1 -1
  241. package/dist/cjs/nodes/payment/payment-charge-user.js +227 -360
  242. package/dist/cjs/nodes/payment/payment-charge-user.js.map +1 -1
  243. package/dist/cjs/nodes/payment/payment-close-checkout.d.ts +3 -0
  244. package/dist/cjs/nodes/payment/payment-close-checkout.d.ts.map +1 -0
  245. package/dist/cjs/nodes/payment/payment-close-checkout.js +141 -0
  246. package/dist/cjs/nodes/payment/payment-close-checkout.js.map +1 -0
  247. package/dist/cjs/nodes/payment/payment-ensure-subscription-plan.d.ts +3 -0
  248. package/dist/cjs/nodes/payment/payment-ensure-subscription-plan.d.ts.map +1 -0
  249. package/dist/cjs/nodes/payment/payment-ensure-subscription-plan.js +67 -0
  250. package/dist/cjs/nodes/payment/payment-ensure-subscription-plan.js.map +1 -0
  251. package/dist/cjs/nodes/payment/payment-manage-subscription.d.ts +3 -0
  252. package/dist/cjs/nodes/payment/payment-manage-subscription.d.ts.map +1 -0
  253. package/dist/cjs/nodes/payment/payment-manage-subscription.js +89 -0
  254. package/dist/cjs/nodes/payment/payment-manage-subscription.js.map +1 -0
  255. package/dist/cjs/nodes/payment/payment-refund.d.ts.map +1 -1
  256. package/dist/cjs/nodes/payment/payment-refund.js +50 -404
  257. package/dist/cjs/nodes/payment/payment-refund.js.map +1 -1
  258. package/dist/cjs/nodes/push/push-send-notification.d.ts +14 -0
  259. package/dist/cjs/nodes/push/push-send-notification.d.ts.map +1 -0
  260. package/dist/cjs/nodes/push/push-send-notification.js +83 -0
  261. package/dist/cjs/nodes/push/push-send-notification.js.map +1 -0
  262. package/dist/cjs/payments/drivers/coingate-driver-code.d.ts +16 -0
  263. package/dist/cjs/payments/drivers/coingate-driver-code.d.ts.map +1 -0
  264. package/dist/cjs/payments/drivers/coingate-driver-code.js +471 -0
  265. package/dist/cjs/payments/drivers/coingate-driver-code.js.map +1 -0
  266. package/dist/cjs/payments/drivers/mollie-driver-code.d.ts +16 -0
  267. package/dist/cjs/payments/drivers/mollie-driver-code.d.ts.map +1 -0
  268. package/dist/cjs/payments/drivers/mollie-driver-code.js +623 -0
  269. package/dist/cjs/payments/drivers/mollie-driver-code.js.map +1 -0
  270. package/dist/cjs/payments/drivers/paddle-driver-code.d.ts +12 -0
  271. package/dist/cjs/payments/drivers/paddle-driver-code.d.ts.map +1 -0
  272. package/dist/cjs/payments/drivers/paddle-driver-code.js +683 -0
  273. package/dist/cjs/payments/drivers/paddle-driver-code.js.map +1 -0
  274. package/dist/cjs/payments/drivers/paypal-driver-code.d.ts +12 -0
  275. package/dist/cjs/payments/drivers/paypal-driver-code.d.ts.map +1 -0
  276. package/dist/cjs/payments/drivers/paypal-driver-code.js +1261 -0
  277. package/dist/cjs/payments/drivers/paypal-driver-code.js.map +1 -0
  278. package/dist/cjs/payments/drivers/razorpay-driver-code.d.ts +12 -0
  279. package/dist/cjs/payments/drivers/razorpay-driver-code.d.ts.map +1 -0
  280. package/dist/cjs/payments/drivers/razorpay-driver-code.js +732 -0
  281. package/dist/cjs/payments/drivers/razorpay-driver-code.js.map +1 -0
  282. package/dist/cjs/payments/drivers/square-driver-code.d.ts +14 -0
  283. package/dist/cjs/payments/drivers/square-driver-code.d.ts.map +1 -0
  284. package/dist/cjs/payments/drivers/square-driver-code.js +931 -0
  285. package/dist/cjs/payments/drivers/square-driver-code.js.map +1 -0
  286. package/dist/cjs/payments/drivers/stripe-driver-code.d.ts +12 -0
  287. package/dist/cjs/payments/drivers/stripe-driver-code.d.ts.map +1 -0
  288. package/dist/cjs/payments/drivers/stripe-driver-code.js +778 -0
  289. package/dist/cjs/payments/drivers/stripe-driver-code.js.map +1 -0
  290. package/dist/cjs/payments/index.d.ts +66 -0
  291. package/dist/cjs/payments/index.d.ts.map +1 -0
  292. package/dist/cjs/payments/index.js +175 -0
  293. package/dist/cjs/payments/index.js.map +1 -0
  294. package/dist/cjs/payments/payment-core-code.d.ts +19 -0
  295. package/dist/cjs/payments/payment-core-code.d.ts.map +1 -0
  296. package/dist/cjs/payments/payment-core-code.js +422 -0
  297. package/dist/cjs/payments/payment-core-code.js.map +1 -0
  298. package/dist/cjs/payments/payment-driver-code-map.d.ts +4 -0
  299. package/dist/cjs/payments/payment-driver-code-map.d.ts.map +1 -0
  300. package/dist/cjs/payments/payment-driver-code-map.js +21 -0
  301. package/dist/cjs/payments/payment-driver-code-map.js.map +1 -0
  302. package/dist/cjs/payments/payment-drivers-scope.d.ts +35 -0
  303. package/dist/cjs/payments/payment-drivers-scope.d.ts.map +1 -0
  304. package/dist/cjs/payments/payment-drivers-scope.js +56 -0
  305. package/dist/cjs/payments/payment-drivers-scope.js.map +1 -0
  306. package/dist/cjs/payments/payment-registry-code.d.ts +8 -0
  307. package/dist/cjs/payments/payment-registry-code.d.ts.map +1 -0
  308. package/dist/cjs/payments/payment-registry-code.js +41 -0
  309. package/dist/cjs/payments/payment-registry-code.js.map +1 -0
  310. package/dist/cjs/pg-client-code.d.ts +10 -0
  311. package/dist/cjs/pg-client-code.d.ts.map +1 -1
  312. package/dist/cjs/pg-client-code.js +27 -1
  313. package/dist/cjs/pg-client-code.js.map +1 -1
  314. package/dist/cjs/runtime-storage-generator.d.ts +28 -0
  315. package/dist/cjs/runtime-storage-generator.d.ts.map +1 -1
  316. package/dist/cjs/runtime-storage-generator.js +240 -5
  317. package/dist/cjs/runtime-storage-generator.js.map +1 -1
  318. package/dist/cjs/secret-collector.d.ts.map +1 -1
  319. package/dist/cjs/secret-collector.js +8 -3
  320. package/dist/cjs/secret-collector.js.map +1 -1
  321. package/dist/cjs/security-scanner.d.ts +10 -1
  322. package/dist/cjs/security-scanner.d.ts.map +1 -1
  323. package/dist/cjs/security-scanner.js +19 -1
  324. package/dist/cjs/security-scanner.js.map +1 -1
  325. package/dist/cjs/segment-context-needs.d.ts +38 -0
  326. package/dist/cjs/segment-context-needs.d.ts.map +1 -0
  327. package/dist/cjs/segment-context-needs.js +129 -0
  328. package/dist/cjs/segment-context-needs.js.map +1 -0
  329. package/dist/cjs/segment-splitter.d.ts.map +1 -1
  330. package/dist/cjs/segment-splitter.js +6 -1
  331. package/dist/cjs/segment-splitter.js.map +1 -1
  332. package/dist/cjs/segment-trust.d.ts +50 -0
  333. package/dist/cjs/segment-trust.d.ts.map +1 -0
  334. package/dist/cjs/segment-trust.js +115 -0
  335. package/dist/cjs/segment-trust.js.map +1 -0
  336. package/dist/cjs/sent-email-log/sent-email-log-code.d.ts +19 -0
  337. package/dist/cjs/sent-email-log/sent-email-log-code.d.ts.map +1 -1
  338. package/dist/cjs/sent-email-log/sent-email-log-code.js +1 -24
  339. package/dist/cjs/sent-email-log/sent-email-log-code.js.map +1 -1
  340. package/dist/cjs/server-runtime-code.d.ts +34 -0
  341. package/dist/cjs/server-runtime-code.d.ts.map +1 -0
  342. package/dist/cjs/server-runtime-code.js +303 -0
  343. package/dist/cjs/server-runtime-code.js.map +1 -0
  344. package/dist/cjs/session-cookie-resolver.d.ts +3 -78
  345. package/dist/cjs/session-cookie-resolver.d.ts.map +1 -1
  346. package/dist/cjs/session-cookie-resolver.js +7 -276
  347. package/dist/cjs/session-cookie-resolver.js.map +1 -1
  348. package/dist/cjs/subscriber-access-route-generator.d.ts +71 -0
  349. package/dist/cjs/subscriber-access-route-generator.d.ts.map +1 -0
  350. package/dist/cjs/subscriber-access-route-generator.js +301 -0
  351. package/dist/cjs/subscriber-access-route-generator.js.map +1 -0
  352. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  353. package/dist/cjs/types.d.ts +6 -0
  354. package/dist/cjs/types.d.ts.map +1 -1
  355. package/dist/cjs/webhook-delivery-lease/index.d.ts +8 -0
  356. package/dist/cjs/webhook-delivery-lease/index.d.ts.map +1 -0
  357. package/dist/cjs/webhook-delivery-lease/index.js +41 -0
  358. package/dist/cjs/webhook-delivery-lease/index.js.map +1 -0
  359. package/dist/cjs/webhook-delivery-lease/webhook-delivery-lease-code.d.ts +26 -0
  360. package/dist/cjs/webhook-delivery-lease/webhook-delivery-lease-code.d.ts.map +1 -0
  361. package/dist/cjs/webhook-delivery-lease/webhook-delivery-lease-code.js +151 -0
  362. package/dist/cjs/webhook-delivery-lease/webhook-delivery-lease-code.js.map +1 -0
  363. package/dist/cjs/webhook-delivery-lease/webhook-delivery-lease-scope.d.ts +16 -0
  364. package/dist/cjs/webhook-delivery-lease/webhook-delivery-lease-scope.d.ts.map +1 -0
  365. package/dist/cjs/webhook-delivery-lease/webhook-delivery-lease-scope.js +19 -0
  366. package/dist/cjs/webhook-delivery-lease/webhook-delivery-lease-scope.js.map +1 -0
  367. package/dist/cjs/webhook-generator.d.ts +1 -1
  368. package/dist/cjs/webhook-generator.d.ts.map +1 -1
  369. package/dist/cjs/webhook-generator.js +342 -254
  370. package/dist/cjs/webhook-generator.js.map +1 -1
  371. package/dist/cjs/webhook-signature-verification.d.ts +17 -1
  372. package/dist/cjs/webhook-signature-verification.d.ts.map +1 -1
  373. package/dist/cjs/webhook-signature-verification.js +182 -27
  374. package/dist/cjs/webhook-signature-verification.js.map +1 -1
  375. package/dist/cjs/workflow-auth-generator.d.ts +9 -6
  376. package/dist/cjs/workflow-auth-generator.d.ts.map +1 -1
  377. package/dist/cjs/workflow-auth-generator.js +133 -29
  378. package/dist/cjs/workflow-auth-generator.js.map +1 -1
  379. package/dist/cjs/workflow-component-plugin.d.ts.map +1 -1
  380. package/dist/cjs/workflow-component-plugin.js +65 -28
  381. package/dist/cjs/workflow-component-plugin.js.map +1 -1
  382. package/dist/cjs/workflow-project-plugin.d.ts +13 -0
  383. package/dist/cjs/workflow-project-plugin.d.ts.map +1 -1
  384. package/dist/cjs/workflow-project-plugin.js +215 -65
  385. package/dist/cjs/workflow-project-plugin.js.map +1 -1
  386. package/dist/esm/admin-form-hydration.d.ts +10 -0
  387. package/dist/esm/admin-form-hydration.d.ts.map +1 -0
  388. package/dist/esm/admin-form-hydration.js +21 -0
  389. package/dist/esm/admin-form-hydration.js.map +1 -0
  390. package/dist/esm/api-route-generator.d.ts +19 -3
  391. package/dist/esm/api-route-generator.d.ts.map +1 -1
  392. package/dist/esm/api-route-generator.js +189 -70
  393. package/dist/esm/api-route-generator.js.map +1 -1
  394. package/dist/esm/auth-generator.d.ts +4 -1
  395. package/dist/esm/auth-generator.d.ts.map +1 -1
  396. package/dist/esm/auth-generator.js +241 -62
  397. package/dist/esm/auth-generator.js.map +1 -1
  398. package/dist/esm/auth-return/signed-in-destination-code.d.ts +17 -0
  399. package/dist/esm/auth-return/signed-in-destination-code.d.ts.map +1 -0
  400. package/dist/esm/auth-return/signed-in-destination-code.js +33 -0
  401. package/dist/esm/auth-return/signed-in-destination-code.js.map +1 -0
  402. package/dist/esm/cart-pricing-preamble.d.ts +12 -0
  403. package/dist/esm/cart-pricing-preamble.d.ts.map +1 -0
  404. package/dist/esm/cart-pricing-preamble.js +19 -0
  405. package/dist/esm/cart-pricing-preamble.js.map +1 -0
  406. package/dist/esm/cron-request-verification.d.ts +24 -0
  407. package/dist/esm/cron-request-verification.d.ts.map +1 -0
  408. package/dist/esm/cron-request-verification.js +80 -0
  409. package/dist/esm/cron-request-verification.js.map +1 -0
  410. package/dist/esm/custom-node-modules.d.ts +30 -0
  411. package/dist/esm/custom-node-modules.d.ts.map +1 -0
  412. package/dist/esm/custom-node-modules.js +84 -0
  413. package/dist/esm/custom-node-modules.js.map +1 -0
  414. package/dist/esm/data-api-route-generator.d.ts +27 -0
  415. package/dist/esm/data-api-route-generator.d.ts.map +1 -1
  416. package/dist/esm/data-api-route-generator.js +365 -28
  417. package/dist/esm/data-api-route-generator.js.map +1 -1
  418. package/dist/esm/ecommerce/cart-availability.d.ts.map +1 -1
  419. package/dist/esm/ecommerce/cart-availability.js +22 -13
  420. package/dist/esm/ecommerce/cart-availability.js.map +1 -1
  421. package/dist/esm/ecommerce/stock-decrement.d.ts +2 -1
  422. package/dist/esm/ecommerce/stock-decrement.d.ts.map +1 -1
  423. package/dist/esm/ecommerce/stock-decrement.js +6 -0
  424. package/dist/esm/ecommerce/stock-decrement.js.map +1 -1
  425. package/dist/esm/executor-generator.d.ts +0 -1
  426. package/dist/esm/executor-generator.d.ts.map +1 -1
  427. package/dist/esm/executor-generator.js +212 -18
  428. package/dist/esm/executor-generator.js.map +1 -1
  429. package/dist/esm/index.d.ts +12 -4
  430. package/dist/esm/index.d.ts.map +1 -1
  431. package/dist/esm/index.js +10 -4
  432. package/dist/esm/index.js.map +1 -1
  433. package/dist/esm/invoice/api-routes-code.d.ts +26 -0
  434. package/dist/esm/invoice/api-routes-code.d.ts.map +1 -1
  435. package/dist/esm/invoice/api-routes-code.js +421 -390
  436. package/dist/esm/invoice/api-routes-code.js.map +1 -1
  437. package/dist/esm/invoice/data-access-code.d.ts.map +1 -1
  438. package/dist/esm/invoice/data-access-code.js +420 -107
  439. package/dist/esm/invoice/data-access-code.js.map +1 -1
  440. package/dist/esm/invoice/index.d.ts.map +1 -1
  441. package/dist/esm/invoice/index.js +25 -1
  442. package/dist/esm/invoice/index.js.map +1 -1
  443. package/dist/esm/invoice/invoice-assembly-code.d.ts +12 -0
  444. package/dist/esm/invoice/invoice-assembly-code.d.ts.map +1 -0
  445. package/dist/esm/invoice/invoice-assembly-code.js +513 -0
  446. package/dist/esm/invoice/invoice-assembly-code.js.map +1 -0
  447. package/dist/esm/invoice/invoice-html-code.d.ts.map +1 -1
  448. package/dist/esm/invoice/invoice-html-code.js +111 -9
  449. package/dist/esm/invoice/invoice-html-code.js.map +1 -1
  450. package/dist/esm/invoice/pdf-service-client-code.d.ts.map +1 -1
  451. package/dist/esm/invoice/pdf-service-client-code.js +3 -4
  452. package/dist/esm/invoice/pdf-service-client-code.js.map +1 -1
  453. package/dist/esm/nodes/account/account-login.d.ts.map +1 -1
  454. package/dist/esm/nodes/account/account-login.js +4 -3
  455. package/dist/esm/nodes/account/account-login.js.map +1 -1
  456. package/dist/esm/nodes/account/account-signup.d.ts.map +1 -1
  457. package/dist/esm/nodes/account/account-signup.js +7 -4
  458. package/dist/esm/nodes/account/account-signup.js.map +1 -1
  459. package/dist/esm/nodes/ai/ai-select-database-data.d.ts.map +1 -1
  460. package/dist/esm/nodes/ai/ai-select-database-data.js +6 -1
  461. package/dist/esm/nodes/ai/ai-select-database-data.js.map +1 -1
  462. package/dist/esm/nodes/browser/browser-get-push-subscription.d.ts +9 -0
  463. package/dist/esm/nodes/browser/browser-get-push-subscription.d.ts.map +1 -0
  464. package/dist/esm/nodes/browser/browser-get-push-subscription.js +22 -0
  465. package/dist/esm/nodes/browser/browser-get-push-subscription.js.map +1 -0
  466. package/dist/esm/nodes/browser/browser-show-notification.d.ts +10 -0
  467. package/dist/esm/nodes/browser/browser-show-notification.d.ts.map +1 -1
  468. package/dist/esm/nodes/browser/browser-show-notification.js +65 -40
  469. package/dist/esm/nodes/browser/browser-show-notification.js.map +1 -1
  470. package/dist/esm/nodes/browser/browser-subscribe-to-push.d.ts +11 -0
  471. package/dist/esm/nodes/browser/browser-subscribe-to-push.d.ts.map +1 -1
  472. package/dist/esm/nodes/browser/browser-subscribe-to-push.js +21 -31
  473. package/dist/esm/nodes/browser/browser-subscribe-to-push.js.map +1 -1
  474. package/dist/esm/nodes/browser/browser-unsubscribe-from-push.d.ts +8 -0
  475. package/dist/esm/nodes/browser/browser-unsubscribe-from-push.d.ts.map +1 -0
  476. package/dist/esm/nodes/browser/browser-unsubscribe-from-push.js +21 -0
  477. package/dist/esm/nodes/browser/browser-unsubscribe-from-push.js.map +1 -0
  478. package/dist/esm/nodes/browser/push-api-access.d.ts +12 -0
  479. package/dist/esm/nodes/browser/push-api-access.d.ts.map +1 -0
  480. package/dist/esm/nodes/browser/push-api-access.js +13 -0
  481. package/dist/esm/nodes/browser/push-api-access.js.map +1 -0
  482. package/dist/esm/nodes/cart/cart-add-item.d.ts.map +1 -1
  483. package/dist/esm/nodes/cart/cart-add-item.js +174 -10
  484. package/dist/esm/nodes/cart/cart-add-item.js.map +1 -1
  485. package/dist/esm/nodes/cart/cart-clear.d.ts.map +1 -1
  486. package/dist/esm/nodes/cart/cart-clear.js +11 -0
  487. package/dist/esm/nodes/cart/cart-clear.js.map +1 -1
  488. package/dist/esm/nodes/cart/cart-get-total.d.ts.map +1 -1
  489. package/dist/esm/nodes/cart/cart-get-total.js +261 -4
  490. package/dist/esm/nodes/cart/cart-get-total.js.map +1 -1
  491. package/dist/esm/nodes/cart/cart-price-order.d.ts +3 -0
  492. package/dist/esm/nodes/cart/cart-price-order.d.ts.map +1 -0
  493. package/dist/esm/nodes/cart/cart-price-order.js +278 -0
  494. package/dist/esm/nodes/cart/cart-price-order.js.map +1 -0
  495. package/dist/esm/nodes/cart/cart-update-item-quantity.d.ts.map +1 -1
  496. package/dist/esm/nodes/cart/cart-update-item-quantity.js +7 -0
  497. package/dist/esm/nodes/cart/cart-update-item-quantity.js.map +1 -1
  498. package/dist/esm/nodes/data/data-count.d.ts.map +1 -1
  499. package/dist/esm/nodes/data/data-count.js +6 -1
  500. package/dist/esm/nodes/data/data-count.js.map +1 -1
  501. package/dist/esm/nodes/data/data-create-item.d.ts.map +1 -1
  502. package/dist/esm/nodes/data/data-create-item.js +11 -1
  503. package/dist/esm/nodes/data/data-create-item.js.map +1 -1
  504. package/dist/esm/nodes/data/data-delete-item.d.ts.map +1 -1
  505. package/dist/esm/nodes/data/data-delete-item.js +29 -0
  506. package/dist/esm/nodes/data/data-delete-item.js.map +1 -1
  507. package/dist/esm/nodes/data/data-raw-query.d.ts.map +1 -1
  508. package/dist/esm/nodes/data/data-raw-query.js +6 -1
  509. package/dist/esm/nodes/data/data-raw-query.js.map +1 -1
  510. package/dist/esm/nodes/data/data-select.d.ts.map +1 -1
  511. package/dist/esm/nodes/data/data-select.js +6 -1
  512. package/dist/esm/nodes/data/data-select.js.map +1 -1
  513. package/dist/esm/nodes/data/data-update-item.d.ts.map +1 -1
  514. package/dist/esm/nodes/data/data-update-item.js +29 -0
  515. package/dist/esm/nodes/data/data-update-item.js.map +1 -1
  516. package/dist/esm/nodes/ecommerce/ecommerce-generate-invoice.d.ts.map +1 -1
  517. package/dist/esm/nodes/ecommerce/ecommerce-generate-invoice.js +7 -1
  518. package/dist/esm/nodes/ecommerce/ecommerce-generate-invoice.js.map +1 -1
  519. package/dist/esm/nodes/file-storage/file-storage-upload.d.ts.map +1 -1
  520. package/dist/esm/nodes/file-storage/file-storage-upload.js +7 -0
  521. package/dist/esm/nodes/file-storage/file-storage-upload.js.map +1 -1
  522. package/dist/esm/nodes/general/general-custom-js.d.ts.map +1 -1
  523. package/dist/esm/nodes/general/general-custom-js.js +21 -5
  524. package/dist/esm/nodes/general/general-custom-js.js.map +1 -1
  525. package/dist/esm/nodes/index.d.ts.map +1 -1
  526. package/dist/esm/nodes/index.js +9 -4
  527. package/dist/esm/nodes/index.js.map +1 -1
  528. package/dist/esm/nodes/payment/payment-billing-portal.d.ts +3 -0
  529. package/dist/esm/nodes/payment/payment-billing-portal.d.ts.map +1 -0
  530. package/dist/esm/nodes/payment/payment-billing-portal.js +49 -0
  531. package/dist/esm/nodes/payment/payment-billing-portal.js.map +1 -0
  532. package/dist/esm/nodes/payment/payment-charge-user.d.ts.map +1 -1
  533. package/dist/esm/nodes/payment/payment-charge-user.js +227 -360
  534. package/dist/esm/nodes/payment/payment-charge-user.js.map +1 -1
  535. package/dist/esm/nodes/payment/payment-close-checkout.d.ts +3 -0
  536. package/dist/esm/nodes/payment/payment-close-checkout.d.ts.map +1 -0
  537. package/dist/esm/nodes/payment/payment-close-checkout.js +138 -0
  538. package/dist/esm/nodes/payment/payment-close-checkout.js.map +1 -0
  539. package/dist/esm/nodes/payment/payment-ensure-subscription-plan.d.ts +3 -0
  540. package/dist/esm/nodes/payment/payment-ensure-subscription-plan.d.ts.map +1 -0
  541. package/dist/esm/nodes/payment/payment-ensure-subscription-plan.js +64 -0
  542. package/dist/esm/nodes/payment/payment-ensure-subscription-plan.js.map +1 -0
  543. package/dist/esm/nodes/payment/payment-manage-subscription.d.ts +3 -0
  544. package/dist/esm/nodes/payment/payment-manage-subscription.d.ts.map +1 -0
  545. package/dist/esm/nodes/payment/payment-manage-subscription.js +86 -0
  546. package/dist/esm/nodes/payment/payment-manage-subscription.js.map +1 -0
  547. package/dist/esm/nodes/payment/payment-refund.d.ts.map +1 -1
  548. package/dist/esm/nodes/payment/payment-refund.js +50 -404
  549. package/dist/esm/nodes/payment/payment-refund.js.map +1 -1
  550. package/dist/esm/nodes/push/push-send-notification.d.ts +14 -0
  551. package/dist/esm/nodes/push/push-send-notification.d.ts.map +1 -0
  552. package/dist/esm/nodes/push/push-send-notification.js +80 -0
  553. package/dist/esm/nodes/push/push-send-notification.js.map +1 -0
  554. package/dist/esm/payments/drivers/coingate-driver-code.d.ts +16 -0
  555. package/dist/esm/payments/drivers/coingate-driver-code.d.ts.map +1 -0
  556. package/dist/esm/payments/drivers/coingate-driver-code.js +467 -0
  557. package/dist/esm/payments/drivers/coingate-driver-code.js.map +1 -0
  558. package/dist/esm/payments/drivers/mollie-driver-code.d.ts +16 -0
  559. package/dist/esm/payments/drivers/mollie-driver-code.d.ts.map +1 -0
  560. package/dist/esm/payments/drivers/mollie-driver-code.js +619 -0
  561. package/dist/esm/payments/drivers/mollie-driver-code.js.map +1 -0
  562. package/dist/esm/payments/drivers/paddle-driver-code.d.ts +12 -0
  563. package/dist/esm/payments/drivers/paddle-driver-code.d.ts.map +1 -0
  564. package/dist/esm/payments/drivers/paddle-driver-code.js +679 -0
  565. package/dist/esm/payments/drivers/paddle-driver-code.js.map +1 -0
  566. package/dist/esm/payments/drivers/paypal-driver-code.d.ts +12 -0
  567. package/dist/esm/payments/drivers/paypal-driver-code.d.ts.map +1 -0
  568. package/dist/esm/payments/drivers/paypal-driver-code.js +1257 -0
  569. package/dist/esm/payments/drivers/paypal-driver-code.js.map +1 -0
  570. package/dist/esm/payments/drivers/razorpay-driver-code.d.ts +12 -0
  571. package/dist/esm/payments/drivers/razorpay-driver-code.d.ts.map +1 -0
  572. package/dist/esm/payments/drivers/razorpay-driver-code.js +728 -0
  573. package/dist/esm/payments/drivers/razorpay-driver-code.js.map +1 -0
  574. package/dist/esm/payments/drivers/square-driver-code.d.ts +14 -0
  575. package/dist/esm/payments/drivers/square-driver-code.d.ts.map +1 -0
  576. package/dist/esm/payments/drivers/square-driver-code.js +927 -0
  577. package/dist/esm/payments/drivers/square-driver-code.js.map +1 -0
  578. package/dist/esm/payments/drivers/stripe-driver-code.d.ts +12 -0
  579. package/dist/esm/payments/drivers/stripe-driver-code.d.ts.map +1 -0
  580. package/dist/esm/payments/drivers/stripe-driver-code.js +774 -0
  581. package/dist/esm/payments/drivers/stripe-driver-code.js.map +1 -0
  582. package/dist/esm/payments/index.d.ts +66 -0
  583. package/dist/esm/payments/index.d.ts.map +1 -0
  584. package/dist/esm/payments/index.js +164 -0
  585. package/dist/esm/payments/index.js.map +1 -0
  586. package/dist/esm/payments/payment-core-code.d.ts +19 -0
  587. package/dist/esm/payments/payment-core-code.d.ts.map +1 -0
  588. package/dist/esm/payments/payment-core-code.js +418 -0
  589. package/dist/esm/payments/payment-core-code.js.map +1 -0
  590. package/dist/esm/payments/payment-driver-code-map.d.ts +4 -0
  591. package/dist/esm/payments/payment-driver-code-map.d.ts.map +1 -0
  592. package/dist/esm/payments/payment-driver-code-map.js +18 -0
  593. package/dist/esm/payments/payment-driver-code-map.js.map +1 -0
  594. package/dist/esm/payments/payment-drivers-scope.d.ts +35 -0
  595. package/dist/esm/payments/payment-drivers-scope.d.ts.map +1 -0
  596. package/dist/esm/payments/payment-drivers-scope.js +51 -0
  597. package/dist/esm/payments/payment-drivers-scope.js.map +1 -0
  598. package/dist/esm/payments/payment-registry-code.d.ts +8 -0
  599. package/dist/esm/payments/payment-registry-code.d.ts.map +1 -0
  600. package/dist/esm/payments/payment-registry-code.js +37 -0
  601. package/dist/esm/payments/payment-registry-code.js.map +1 -0
  602. package/dist/esm/pg-client-code.d.ts +10 -0
  603. package/dist/esm/pg-client-code.d.ts.map +1 -1
  604. package/dist/esm/pg-client-code.js +25 -0
  605. package/dist/esm/pg-client-code.js.map +1 -1
  606. package/dist/esm/runtime-storage-generator.d.ts +28 -0
  607. package/dist/esm/runtime-storage-generator.d.ts.map +1 -1
  608. package/dist/esm/runtime-storage-generator.js +239 -4
  609. package/dist/esm/runtime-storage-generator.js.map +1 -1
  610. package/dist/esm/secret-collector.d.ts.map +1 -1
  611. package/dist/esm/secret-collector.js +8 -3
  612. package/dist/esm/secret-collector.js.map +1 -1
  613. package/dist/esm/security-scanner.d.ts +10 -1
  614. package/dist/esm/security-scanner.d.ts.map +1 -1
  615. package/dist/esm/security-scanner.js +18 -0
  616. package/dist/esm/security-scanner.js.map +1 -1
  617. package/dist/esm/segment-context-needs.d.ts +38 -0
  618. package/dist/esm/segment-context-needs.d.ts.map +1 -0
  619. package/dist/esm/segment-context-needs.js +125 -0
  620. package/dist/esm/segment-context-needs.js.map +1 -0
  621. package/dist/esm/segment-splitter.d.ts.map +1 -1
  622. package/dist/esm/segment-splitter.js +6 -1
  623. package/dist/esm/segment-splitter.js.map +1 -1
  624. package/dist/esm/segment-trust.d.ts +50 -0
  625. package/dist/esm/segment-trust.d.ts.map +1 -0
  626. package/dist/esm/segment-trust.js +111 -0
  627. package/dist/esm/segment-trust.js.map +1 -0
  628. package/dist/esm/sent-email-log/sent-email-log-code.d.ts +19 -0
  629. package/dist/esm/sent-email-log/sent-email-log-code.d.ts.map +1 -1
  630. package/dist/esm/sent-email-log/sent-email-log-code.js +2 -25
  631. package/dist/esm/sent-email-log/sent-email-log-code.js.map +1 -1
  632. package/dist/esm/server-runtime-code.d.ts +34 -0
  633. package/dist/esm/server-runtime-code.d.ts.map +1 -0
  634. package/dist/esm/server-runtime-code.js +299 -0
  635. package/dist/esm/server-runtime-code.js.map +1 -0
  636. package/dist/esm/session-cookie-resolver.d.ts +3 -78
  637. package/dist/esm/session-cookie-resolver.d.ts.map +1 -1
  638. package/dist/esm/session-cookie-resolver.js +7 -274
  639. package/dist/esm/session-cookie-resolver.js.map +1 -1
  640. package/dist/esm/subscriber-access-route-generator.d.ts +71 -0
  641. package/dist/esm/subscriber-access-route-generator.d.ts.map +1 -0
  642. package/dist/esm/subscriber-access-route-generator.js +292 -0
  643. package/dist/esm/subscriber-access-route-generator.js.map +1 -0
  644. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  645. package/dist/esm/types.d.ts +6 -0
  646. package/dist/esm/types.d.ts.map +1 -1
  647. package/dist/esm/webhook-delivery-lease/index.d.ts +8 -0
  648. package/dist/esm/webhook-delivery-lease/index.d.ts.map +1 -0
  649. package/dist/esm/webhook-delivery-lease/index.js +37 -0
  650. package/dist/esm/webhook-delivery-lease/index.js.map +1 -0
  651. package/dist/esm/webhook-delivery-lease/webhook-delivery-lease-code.d.ts +26 -0
  652. package/dist/esm/webhook-delivery-lease/webhook-delivery-lease-code.d.ts.map +1 -0
  653. package/dist/esm/webhook-delivery-lease/webhook-delivery-lease-code.js +147 -0
  654. package/dist/esm/webhook-delivery-lease/webhook-delivery-lease-code.js.map +1 -0
  655. package/dist/esm/webhook-delivery-lease/webhook-delivery-lease-scope.d.ts +16 -0
  656. package/dist/esm/webhook-delivery-lease/webhook-delivery-lease-scope.d.ts.map +1 -0
  657. package/dist/esm/webhook-delivery-lease/webhook-delivery-lease-scope.js +16 -0
  658. package/dist/esm/webhook-delivery-lease/webhook-delivery-lease-scope.js.map +1 -0
  659. package/dist/esm/webhook-generator.d.ts +1 -1
  660. package/dist/esm/webhook-generator.d.ts.map +1 -1
  661. package/dist/esm/webhook-generator.js +342 -254
  662. package/dist/esm/webhook-generator.js.map +1 -1
  663. package/dist/esm/webhook-signature-verification.d.ts +17 -1
  664. package/dist/esm/webhook-signature-verification.d.ts.map +1 -1
  665. package/dist/esm/webhook-signature-verification.js +179 -25
  666. package/dist/esm/webhook-signature-verification.js.map +1 -1
  667. package/dist/esm/workflow-auth-generator.d.ts +9 -6
  668. package/dist/esm/workflow-auth-generator.d.ts.map +1 -1
  669. package/dist/esm/workflow-auth-generator.js +132 -28
  670. package/dist/esm/workflow-auth-generator.js.map +1 -1
  671. package/dist/esm/workflow-component-plugin.d.ts.map +1 -1
  672. package/dist/esm/workflow-component-plugin.js +65 -28
  673. package/dist/esm/workflow-component-plugin.js.map +1 -1
  674. package/dist/esm/workflow-project-plugin.d.ts +13 -0
  675. package/dist/esm/workflow-project-plugin.d.ts.map +1 -1
  676. package/dist/esm/workflow-project-plugin.js +212 -63
  677. package/dist/esm/workflow-project-plugin.js.map +1 -1
  678. package/package.json +4 -4
  679. package/src/admin-form-hydration.ts +28 -0
  680. package/src/api-route-generator.ts +251 -64
  681. package/src/auth-generator.ts +273 -53
  682. package/src/auth-return/signed-in-destination-code.ts +32 -0
  683. package/src/cart-pricing-preamble.ts +22 -0
  684. package/src/cron-request-verification.ts +79 -0
  685. package/src/custom-node-modules.ts +102 -0
  686. package/src/data-api-route-generator.ts +370 -28
  687. package/src/ecommerce/cart-availability.ts +22 -13
  688. package/src/ecommerce/stock-decrement.ts +13 -1
  689. package/src/executor-generator.ts +212 -19
  690. package/src/index.ts +28 -7
  691. package/src/invoice/api-routes-code.ts +424 -391
  692. package/src/invoice/data-access-code.ts +431 -110
  693. package/src/invoice/index.ts +31 -1
  694. package/src/invoice/invoice-assembly-code.ts +514 -0
  695. package/src/invoice/invoice-html-code.ts +111 -9
  696. package/src/invoice/pdf-service-client-code.ts +3 -4
  697. package/src/nodes/account/account-login.ts +4 -3
  698. package/src/nodes/account/account-signup.ts +7 -4
  699. package/src/nodes/ai/ai-select-database-data.ts +10 -1
  700. package/src/nodes/browser/browser-get-push-subscription.ts +23 -0
  701. package/src/nodes/browser/browser-show-notification.ts +61 -38
  702. package/src/nodes/browser/browser-subscribe-to-push.ts +26 -36
  703. package/src/nodes/browser/browser-unsubscribe-from-push.ts +22 -0
  704. package/src/nodes/browser/push-api-access.ts +20 -0
  705. package/src/nodes/cart/cart-add-item.ts +200 -9
  706. package/src/nodes/cart/cart-clear.ts +11 -0
  707. package/src/nodes/cart/cart-get-total.ts +279 -7
  708. package/src/nodes/cart/cart-price-order.ts +351 -0
  709. package/src/nodes/cart/cart-update-item-quantity.ts +7 -0
  710. package/src/nodes/data/data-count.ts +9 -1
  711. package/src/nodes/data/data-create-item.ts +15 -1
  712. package/src/nodes/data/data-delete-item.ts +32 -0
  713. package/src/nodes/data/data-raw-query.ts +9 -1
  714. package/src/nodes/data/data-select.ts +9 -1
  715. package/src/nodes/data/data-update-item.ts +32 -0
  716. package/src/nodes/ecommerce/ecommerce-generate-invoice.ts +11 -1
  717. package/src/nodes/file-storage/file-storage-upload.ts +8 -0
  718. package/src/nodes/general/general-custom-js.ts +21 -5
  719. package/src/nodes/index.ts +16 -6
  720. package/src/nodes/payment/payment-billing-portal.ts +51 -0
  721. package/src/nodes/payment/payment-charge-user.ts +236 -442
  722. package/src/nodes/payment/payment-close-checkout.ts +137 -0
  723. package/src/nodes/payment/payment-ensure-subscription-plan.ts +66 -0
  724. package/src/nodes/payment/payment-manage-subscription.ts +89 -0
  725. package/src/nodes/payment/payment-refund.ts +52 -467
  726. package/src/nodes/payment-drivers-global.d.ts +13 -0
  727. package/src/nodes/push/push-send-notification.ts +83 -0
  728. package/src/nodes/workflow-utils-global.d.ts +5 -0
  729. package/src/payments/drivers/coingate-driver-code.ts +466 -0
  730. package/src/payments/drivers/mollie-driver-code.ts +618 -0
  731. package/src/payments/drivers/paddle-driver-code.ts +678 -0
  732. package/src/payments/drivers/paypal-driver-code.ts +1256 -0
  733. package/src/payments/drivers/razorpay-driver-code.ts +727 -0
  734. package/src/payments/drivers/square-driver-code.ts +926 -0
  735. package/src/payments/drivers/stripe-driver-code.ts +773 -0
  736. package/src/payments/index.ts +204 -0
  737. package/src/payments/payment-core-code.ts +421 -0
  738. package/src/payments/payment-driver-code-map.ts +19 -0
  739. package/src/payments/payment-drivers-scope.ts +66 -0
  740. package/src/payments/payment-registry-code.ts +38 -0
  741. package/src/pg-client-code.ts +30 -0
  742. package/src/runtime-storage-generator.ts +241 -4
  743. package/src/secret-collector.ts +8 -3
  744. package/src/security-scanner.ts +22 -0
  745. package/src/segment-context-needs.ts +148 -0
  746. package/src/segment-splitter.ts +6 -1
  747. package/src/segment-trust.ts +170 -0
  748. package/src/sent-email-log/sent-email-log-code.ts +2 -32
  749. package/src/server-runtime-code.ts +298 -0
  750. package/src/session-cookie-resolver.ts +9 -277
  751. package/src/subscriber-access-route-generator.ts +351 -0
  752. package/src/types.ts +6 -0
  753. package/src/webhook-delivery-lease/index.ts +44 -0
  754. package/src/webhook-delivery-lease/webhook-delivery-lease-code.ts +151 -0
  755. package/src/webhook-delivery-lease/webhook-delivery-lease-scope.ts +18 -0
  756. package/src/webhook-generator.ts +359 -260
  757. package/src/webhook-signature-verification.ts +180 -25
  758. package/src/workflow-auth-generator.ts +137 -28
  759. package/src/workflow-component-plugin.ts +77 -20
  760. package/src/workflow-project-plugin.ts +247 -44
  761. package/dist/cjs/nodes/payment/payment-cancel-plan.d.ts +0 -3
  762. package/dist/cjs/nodes/payment/payment-cancel-plan.d.ts.map +0 -1
  763. package/dist/cjs/nodes/payment/payment-cancel-plan.js +0 -33
  764. package/dist/cjs/nodes/payment/payment-cancel-plan.js.map +0 -1
  765. package/dist/cjs/nodes/payment/payment-create-subscription.d.ts +0 -3
  766. package/dist/cjs/nodes/payment/payment-create-subscription.d.ts.map +0 -1
  767. package/dist/cjs/nodes/payment/payment-create-subscription.js +0 -41
  768. package/dist/cjs/nodes/payment/payment-create-subscription.js.map +0 -1
  769. package/dist/cjs/nodes/payment/payment-subscribe-to-plan.d.ts +0 -3
  770. package/dist/cjs/nodes/payment/payment-subscribe-to-plan.d.ts.map +0 -1
  771. package/dist/cjs/nodes/payment/payment-subscribe-to-plan.js +0 -45
  772. package/dist/cjs/nodes/payment/payment-subscribe-to-plan.js.map +0 -1
  773. package/dist/esm/nodes/payment/payment-cancel-plan.d.ts +0 -3
  774. package/dist/esm/nodes/payment/payment-cancel-plan.d.ts.map +0 -1
  775. package/dist/esm/nodes/payment/payment-cancel-plan.js +0 -30
  776. package/dist/esm/nodes/payment/payment-cancel-plan.js.map +0 -1
  777. package/dist/esm/nodes/payment/payment-create-subscription.d.ts +0 -3
  778. package/dist/esm/nodes/payment/payment-create-subscription.d.ts.map +0 -1
  779. package/dist/esm/nodes/payment/payment-create-subscription.js +0 -38
  780. package/dist/esm/nodes/payment/payment-create-subscription.js.map +0 -1
  781. package/dist/esm/nodes/payment/payment-subscribe-to-plan.d.ts +0 -3
  782. package/dist/esm/nodes/payment/payment-subscribe-to-plan.d.ts.map +0 -1
  783. package/dist/esm/nodes/payment/payment-subscribe-to-plan.js +0 -42
  784. package/dist/esm/nodes/payment/payment-subscribe-to-plan.js.map +0 -1
  785. package/src/nodes/payment/payment-cancel-plan.ts +0 -33
  786. package/src/nodes/payment/payment-create-subscription.ts +0 -42
  787. package/src/nodes/payment/payment-subscribe-to-plan.ts +0 -46
@@ -17,5 +17,33 @@ export declare const needsRuntimeStorageRoute: (usedNodeTypes: Set<string>) => b
17
17
  * Changing one without the other breaks that ordering — a test pins it.
18
18
  */
19
19
  export declare const UPLOAD_PROXY_TIMEOUT_MS = 120000;
20
+ /**
21
+ * Who may upload what through `/api/runtime-storage/upload`.
22
+ *
23
+ * The route stores files in the merchant's runtime storage, on the merchant's
24
+ * quota, at a public URL. It used to forward whatever arrived — any type, any
25
+ * size, any `private` flag — and the storage worker checked the file against
26
+ * `allowedMimeTypes` / `maxFileSize` fields the same request supplied, so the
27
+ * caller set its own limits.
28
+ *
29
+ * - The store's own server code (the invoice PDF upload presents the app
30
+ * secret) and a signed-in admin (the admin panel's image, asset and
31
+ * digital-product uploaders) upload as before: any type, private included.
32
+ * - Everyone else — a shopper's review photos, profile photo, a product
33
+ * option's print file, the upload widget on a public page — gets the limits
34
+ * of THIS route: the image and PDF types those uploaders accept, each file
35
+ * proven by its first bytes (never SVG: it runs script where it is served),
36
+ * at most VISITOR_MAX_FILE_BYTES per file and VISITOR_MAX_FILES per request,
37
+ * and never a private file. The fields the request sends can only narrow that.
38
+ *
39
+ * A signed-out visitor is NOT refused: a product option's file is chosen before
40
+ * the shopper decides whether to sign in (its custom node is declared
41
+ * guest-scoped), and the upload widget may sit on a public page. Refusing
42
+ * guests here would break both; the per-file proof and caps are what bound them.
43
+ */
44
+ export declare const TRUSTED_UPLOAD_ROLES: ReadonlyArray<string>;
45
+ export declare const VISITOR_UPLOAD_MIME_TYPES: ReadonlyArray<string>;
46
+ export declare const VISITOR_MAX_FILE_BYTES: number;
47
+ export declare const VISITOR_MAX_FILES = 10;
20
48
  export declare const generateRuntimeStorageUploadRoute: () => string;
21
49
  //# sourceMappingURL=runtime-storage-generator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-storage-generator.d.ts","sourceRoot":"","sources":["../../src/runtime-storage-generator.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,wBAAwB,kBAAmB,IAAI,MAAM,CAAC,KAAG,OAOrE,CAAA;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,uBAAuB,SAAS,CAAA;AAE7C,eAAO,MAAM,iCAAiC,QAAO,MAyFpD,CAAA"}
1
+ {"version":3,"file":"runtime-storage-generator.d.ts","sourceRoot":"","sources":["../../src/runtime-storage-generator.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,wBAAwB,kBAAmB,IAAI,MAAM,CAAC,KAAG,OAOrE,CAAA;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,uBAAuB,SAAS,CAAA;AAE7C;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,oBAAoB,EAAE,aAAa,CAAC,MAAM,CAAa,CAAA;AACpE,eAAO,MAAM,yBAAyB,EAAE,aAAa,CAAC,MAAM,CAM3D,CAAA;AACD,eAAO,MAAM,sBAAsB,QAAkB,CAAA;AACrD,eAAO,MAAM,iBAAiB,KAAK,CAAA;AAEnC,eAAO,MAAM,iCAAiC,QAAO,MAgSpD,CAAA"}
@@ -1,3 +1,5 @@
1
+ import { generateCommonJsSessionTokenResolverCode } from './session-cookie-resolver';
2
+ import { ROLE_OF_TOKEN_CODE } from './workflow-auth-generator';
1
3
  const FILE_STORAGE_NODE_TYPES = new Set([
2
4
  'file-storage-upload',
3
5
  'file-storage-list',
@@ -30,6 +32,40 @@ export const needsRuntimeStorageRoute = (usedNodeTypes) => {
30
32
  * Changing one without the other breaks that ordering — a test pins it.
31
33
  */
32
34
  export const UPLOAD_PROXY_TIMEOUT_MS = 120000;
35
+ /**
36
+ * Who may upload what through `/api/runtime-storage/upload`.
37
+ *
38
+ * The route stores files in the merchant's runtime storage, on the merchant's
39
+ * quota, at a public URL. It used to forward whatever arrived — any type, any
40
+ * size, any `private` flag — and the storage worker checked the file against
41
+ * `allowedMimeTypes` / `maxFileSize` fields the same request supplied, so the
42
+ * caller set its own limits.
43
+ *
44
+ * - The store's own server code (the invoice PDF upload presents the app
45
+ * secret) and a signed-in admin (the admin panel's image, asset and
46
+ * digital-product uploaders) upload as before: any type, private included.
47
+ * - Everyone else — a shopper's review photos, profile photo, a product
48
+ * option's print file, the upload widget on a public page — gets the limits
49
+ * of THIS route: the image and PDF types those uploaders accept, each file
50
+ * proven by its first bytes (never SVG: it runs script where it is served),
51
+ * at most VISITOR_MAX_FILE_BYTES per file and VISITOR_MAX_FILES per request,
52
+ * and never a private file. The fields the request sends can only narrow that.
53
+ *
54
+ * A signed-out visitor is NOT refused: a product option's file is chosen before
55
+ * the shopper decides whether to sign in (its custom node is declared
56
+ * guest-scoped), and the upload widget may sit on a public page. Refusing
57
+ * guests here would break both; the per-file proof and caps are what bound them.
58
+ */
59
+ export const TRUSTED_UPLOAD_ROLES = ['admin'];
60
+ export const VISITOR_UPLOAD_MIME_TYPES = [
61
+ 'image/jpeg',
62
+ 'image/png',
63
+ 'image/webp',
64
+ 'image/gif',
65
+ 'application/pdf',
66
+ ];
67
+ export const VISITOR_MAX_FILE_BYTES = 5 * 1024 * 1024;
68
+ export const VISITOR_MAX_FILES = 10;
33
69
  export const generateRuntimeStorageUploadRoute = () => {
34
70
  return `var RUNTIME_STORAGE_URL = process.env.RUNTIME_STORAGE_URL;
35
71
  var RUNTIME_STORAGE_API_KEY = process.env.RUNTIME_STORAGE_API_KEY;
@@ -39,6 +75,165 @@ var RUNTIME_STORAGE_PROJECT_ID = process.env.RUNTIME_STORAGE_PROJECT_ID;
39
75
  // must become a 504, never a request the browser waits on forever.
40
76
  var UPLOAD_TIMEOUT_MS = ${UPLOAD_PROXY_TIMEOUT_MS};
41
77
 
78
+ ${generateCommonJsSessionTokenResolverCode()}
79
+ ${ROLE_OF_TOKEN_CODE}
80
+
81
+ // What a visitor may upload — see TRUSTED_UPLOAD_ROLES in the generator.
82
+ var TRUSTED_UPLOAD_ROLES = ${JSON.stringify(TRUSTED_UPLOAD_ROLES)};
83
+ var VISITOR_UPLOAD_MIME_TYPES = ${JSON.stringify(VISITOR_UPLOAD_MIME_TYPES)};
84
+ var VISITOR_MAX_FILE_BYTES = ${VISITOR_MAX_FILE_BYTES};
85
+ var VISITOR_MAX_FILES = ${VISITOR_MAX_FILES};
86
+ // The files plus room for the form's own fields and part headers.
87
+ var VISITOR_MAX_REQUEST_BYTES = VISITOR_MAX_FILES * VISITOR_MAX_FILE_BYTES + 256 * 1024;
88
+
89
+ var CRLF = Buffer.from([13, 10]);
90
+ var BLANK_LINE = Buffer.from([13, 10, 13, 10]);
91
+
92
+ // Only server code can read NEXTAUTH_SECRET, so a browser cannot present it.
93
+ function presentsAppSecret(req) {
94
+ var given = req && req.headers ? req.headers['x-internal-data-secret'] : '';
95
+ var expected = process.env.NEXTAUTH_SECRET;
96
+ if (typeof given !== 'string' || !given || !expected) return false;
97
+ var a = Buffer.from(given);
98
+ var b = Buffer.from(String(expected));
99
+ return a.length === b.length && require('crypto').timingSafeEqual(a, b);
100
+ }
101
+
102
+ async function isTrustedUploader(req) {
103
+ if (presentsAppSecret(req)) return true;
104
+ var token = null;
105
+ try {
106
+ token = await __tqSessionToken(req);
107
+ } catch (e) {
108
+ token = null;
109
+ }
110
+ var role = roleOf(token);
111
+ return !!role && TRUSTED_UPLOAD_ROLES.indexOf(role) !== -1;
112
+ }
113
+
114
+ function refuse(res, status, code, message) {
115
+ res.status(status).json({ error: code, message: message });
116
+ }
117
+
118
+ // The whole request body, or an error with code UPLOAD_TOO_LARGE past limit.
119
+ function readBody(req, limit) {
120
+ return new Promise(function (resolve, reject) {
121
+ var chunks = [];
122
+ var size = 0;
123
+ var settled = false;
124
+ req.on('data', function (chunk) {
125
+ if (settled) return;
126
+ size += chunk.length;
127
+ if (size > limit) {
128
+ settled = true;
129
+ var err = new Error('Upload too large');
130
+ err.code = 'UPLOAD_TOO_LARGE';
131
+ reject(err);
132
+ return;
133
+ }
134
+ chunks.push(chunk);
135
+ });
136
+ req.on('end', function () {
137
+ if (settled) return;
138
+ settled = true;
139
+ resolve(Buffer.concat(chunks));
140
+ });
141
+ req.on('error', function (err) {
142
+ if (settled) return;
143
+ settled = true;
144
+ reject(err);
145
+ });
146
+ });
147
+ }
148
+
149
+ function multipartBoundary(contentType) {
150
+ var match = /boundary=(?:"([^"]+)"|([^;]+))/i.exec(String(contentType || ''));
151
+ return match ? (match[1] || match[2] || '').trim() : '';
152
+ }
153
+
154
+ function readPart(headerText, data) {
155
+ var part = { name: '', filename: null, type: '', data: data };
156
+ var lines = headerText.split(String.fromCharCode(13, 10));
157
+ for (var i = 0; i < lines.length; i++) {
158
+ var colon = lines[i].indexOf(':');
159
+ if (colon <= 0) continue;
160
+ var key = lines[i].slice(0, colon).trim().toLowerCase();
161
+ var value = lines[i].slice(colon + 1).trim();
162
+ if (key === 'content-disposition') {
163
+ var name = /[; ]name="([^"]*)"/i.exec(value);
164
+ var filename = /filename="([^"]*)"/i.exec(value);
165
+ part.name = name ? name[1] : '';
166
+ part.filename = filename ? filename[1] : null;
167
+ } else if (key === 'content-type') {
168
+ part.type = value.split(';')[0].trim().toLowerCase();
169
+ }
170
+ }
171
+ return part;
172
+ }
173
+
174
+ // The form's parts, or null when the body is not well-formed multipart.
175
+ function parseMultipart(body, boundary) {
176
+ var delimiter = Buffer.from('--' + boundary);
177
+ var separator = Buffer.concat([CRLF, delimiter]);
178
+ var start = body.indexOf(delimiter);
179
+ if (start === -1) return null;
180
+ var parts = [];
181
+ var cursor = start + delimiter.length;
182
+ while (cursor + 1 < body.length) {
183
+ // '--' closes the form; CRLF opens the next part.
184
+ if (body[cursor] === 45 && body[cursor + 1] === 45) return parts;
185
+ if (body[cursor] !== 13 || body[cursor + 1] !== 10) return null;
186
+ var headerEnd = body.indexOf(BLANK_LINE, cursor + 2);
187
+ if (headerEnd === -1) return null;
188
+ var next = body.indexOf(separator, headerEnd + 4);
189
+ if (next === -1) return null;
190
+ parts.push(readPart(body.slice(cursor + 2, headerEnd).toString('utf8'), body.slice(headerEnd + 4, next)));
191
+ cursor = next + separator.length;
192
+ }
193
+ return null;
194
+ }
195
+
196
+ // What a file IS, by its first bytes — never what the request says it is.
197
+ function sniffMimeType(data) {
198
+ var head = data.slice(0, 12).toString('latin1');
199
+ if (data.length >= 3 && data[0] === 255 && data[1] === 216 && data[2] === 255) return 'image/jpeg';
200
+ if (head.slice(0, 8) === String.fromCharCode(137, 80, 78, 71, 13, 10, 26, 10)) return 'image/png';
201
+ if (head.slice(0, 6) === 'GIF87a' || head.slice(0, 6) === 'GIF89a') return 'image/gif';
202
+ if (head.slice(0, 4) === 'RIFF' && head.slice(8, 12) === 'WEBP') return 'image/webp';
203
+ if (head.slice(0, 5) === '%PDF-') return 'application/pdf';
204
+ return '';
205
+ }
206
+
207
+ var DECLARED_TYPE_ALIASES = { 'image/jpg': 'image/jpeg', 'image/pjpeg': 'image/jpeg' };
208
+
209
+ // null when a visitor may upload this form, else the refusal.
210
+ function visitorUploadRefusal(parts) {
211
+ var files = 0;
212
+ for (var i = 0; i < parts.length; i++) {
213
+ var part = parts[i];
214
+ if (part.filename === null) {
215
+ if (part.name === 'private' && String(part.data.toString('utf8')).trim() === 'true') {
216
+ return { status: 403, code: 'UPLOAD_PRIVATE_FORBIDDEN', message: 'Only the store can upload private files.' };
217
+ }
218
+ continue;
219
+ }
220
+ files += 1;
221
+ if (files > VISITOR_MAX_FILES) {
222
+ return { status: 413, code: 'TOO_MANY_FILES', message: 'At most ' + VISITOR_MAX_FILES + ' files can be uploaded at once.' };
223
+ }
224
+ if (part.data.length > VISITOR_MAX_FILE_BYTES) {
225
+ return { status: 413, code: 'FILE_TOO_LARGE', message: 'Each file can be at most ' + Math.floor(VISITOR_MAX_FILE_BYTES / 1048576) + ' MB.' };
226
+ }
227
+ var actual = sniffMimeType(part.data);
228
+ var declared = DECLARED_TYPE_ALIASES[part.type] || part.type;
229
+ var declaredMatches = !declared || declared === 'application/octet-stream' || declared === actual;
230
+ if (!actual || VISITOR_UPLOAD_MIME_TYPES.indexOf(actual) === -1 || !declaredMatches) {
231
+ return { status: 415, code: 'FILE_TYPE_NOT_ALLOWED', message: 'Only JPG, PNG, WEBP, GIF and PDF files can be uploaded.' };
232
+ }
233
+ }
234
+ return null;
235
+ }
236
+
42
237
  module.exports = async function handler(req, res) {
43
238
  if (req.method !== 'POST') {
44
239
  res.status(405).json({ error: 'Method not allowed' });
@@ -50,6 +245,44 @@ module.exports = async function handler(req, res) {
50
245
  return;
51
246
  }
52
247
 
248
+ var trusted = await isTrustedUploader(req);
249
+ var body = req;
250
+ var contentLength = req.headers['content-length'];
251
+
252
+ if (!trusted) {
253
+ var declaredLength = parseInt(contentLength, 10);
254
+ if (!isNaN(declaredLength) && declaredLength > VISITOR_MAX_REQUEST_BYTES) {
255
+ refuse(res, 413, 'UPLOAD_TOO_LARGE', 'The upload is too large.');
256
+ return;
257
+ }
258
+ var boundary = multipartBoundary(req.headers['content-type']);
259
+ if (!boundary) {
260
+ refuse(res, 400, 'UPLOAD_INVALID', 'The upload is not a file form.');
261
+ return;
262
+ }
263
+ try {
264
+ body = await readBody(req, VISITOR_MAX_REQUEST_BYTES);
265
+ } catch (readErr) {
266
+ if (readErr && readErr.code === 'UPLOAD_TOO_LARGE') {
267
+ refuse(res, 413, 'UPLOAD_TOO_LARGE', 'The upload is too large.');
268
+ } else {
269
+ refuse(res, 400, 'UPLOAD_INVALID', 'The upload could not be read.');
270
+ }
271
+ return;
272
+ }
273
+ var parts = parseMultipart(body, boundary);
274
+ if (!parts) {
275
+ refuse(res, 400, 'UPLOAD_INVALID', 'The upload is not a file form.');
276
+ return;
277
+ }
278
+ var refusal = visitorUploadRefusal(parts);
279
+ if (refusal) {
280
+ refuse(res, refusal.status, refusal.code, refusal.message);
281
+ return;
282
+ }
283
+ contentLength = String(body.length);
284
+ }
285
+
53
286
  var controller = new AbortController();
54
287
  var timedOut = false;
55
288
  var timer = setTimeout(function () {
@@ -67,14 +300,16 @@ module.exports = async function handler(req, res) {
67
300
  if (req.headers['content-type']) {
68
301
  headers['content-type'] = req.headers['content-type'];
69
302
  }
70
- if (req.headers['content-length']) {
71
- headers['content-length'] = req.headers['content-length'];
303
+ if (contentLength) {
304
+ headers['content-length'] = contentLength;
72
305
  }
73
306
 
74
307
  var storageRes = await fetch(targetUrl, {
75
308
  method: 'POST',
76
309
  headers: headers,
77
- body: req,
310
+ // A trusted caller's form is streamed through untouched; a visitor's was
311
+ // read in full to be checked, and is forwarded byte for byte.
312
+ body: body,
78
313
  duplex: 'half',
79
314
  signal: controller.signal,
80
315
  });
@@ -110,7 +345,7 @@ module.exports = async function handler(req, res) {
110
345
  console.error('Runtime storage upload proxy error:', err);
111
346
  res.status(502).json({
112
347
  error: 'UPLOAD_PROXY_FAILED',
113
- message: (err && err.message) || 'Upload proxy failed',
348
+ message: 'The upload could not be completed. Please try again.',
114
349
  });
115
350
  } finally {
116
351
  clearTimeout(timer);
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-storage-generator.js","sourceRoot":"","sources":["../../src/runtime-storage-generator.ts"],"names":[],"mappings":"AAAA,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC;IACtC,qBAAqB;IACrB,mBAAmB;IACnB,0BAA0B;IAC1B,qBAAqB;CACtB,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,aAA0B,EAAW,EAAE;IAC9E,KAAK,MAAM,EAAE,IAAI,aAAa,EAAE;QAC9B,IAAI,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YACnC,OAAO,IAAI,CAAA;SACZ;KACF;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAA;AAE7C,MAAM,CAAC,MAAM,iCAAiC,GAAG,GAAW,EAAE;IAC5D,OAAO;;;;;;0BAMiB,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiFhD,CAAA;AACD,CAAC,CAAA"}
1
+ {"version":3,"file":"runtime-storage-generator.js","sourceRoot":"","sources":["../../src/runtime-storage-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wCAAwC,EAAE,MAAM,2BAA2B,CAAA;AACpF,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAE9D,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC;IACtC,qBAAqB;IACrB,mBAAmB;IACnB,0BAA0B;IAC1B,qBAAqB;CACtB,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,aAA0B,EAAW,EAAE;IAC9E,KAAK,MAAM,EAAE,IAAI,aAAa,EAAE;QAC9B,IAAI,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YACnC,OAAO,IAAI,CAAA;SACZ;KACF;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAA;AAE7C;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAA0B,CAAC,OAAO,CAAC,CAAA;AACpE,MAAM,CAAC,MAAM,yBAAyB,GAA0B;IAC9D,YAAY;IACZ,WAAW;IACX,YAAY;IACZ,WAAW;IACX,iBAAiB;CAClB,CAAA;AACD,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAA;AACrD,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAA;AAEnC,MAAM,CAAC,MAAM,iCAAiC,GAAG,GAAW,EAAE;IAC5D,OAAO;;;;;;0BAMiB,uBAAuB;;EAE/C,wCAAwC,EAAE;EAC1C,kBAAkB;;;6BAGS,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC;kCAC/B,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC;+BAC5C,sBAAsB;0BAC3B,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+Q1C,CAAA;AACD,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"secret-collector.d.ts","sourceRoot":"","sources":["../../src/secret-collector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA4C,MAAM,4BAA4B,CAAA;AACpG,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAuCrC,eAAO,MAAM,cAAc,cAAe,aAAa,KAAG,WAAW,EAmCpE,CAAA;AAqCD,eAAO,MAAM,sBAAsB,WACzB,OAAO,MAAM,EAAE,OAAO,CAAC,YACrB,MAAM,UACR,MAAM,WACL,WAAW,EAAE,KACrB,OAAO,MAAM,EAAE,OAAO,CAYxB,CAAA;AAwBD,eAAO,MAAM,8BAA8B,cAAe,aAAa,KAAG,MAAM,EA2C/E,CAAA"}
1
+ {"version":3,"file":"secret-collector.d.ts","sourceRoot":"","sources":["../../src/secret-collector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA4C,MAAM,4BAA4B,CAAA;AACpG,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AA4CrC,eAAO,MAAM,cAAc,cAAe,aAAa,KAAG,WAAW,EAmCpE,CAAA;AAqCD,eAAO,MAAM,sBAAsB,WACzB,OAAO,MAAM,EAAE,OAAO,CAAC,YACrB,MAAM,UACR,MAAM,WACL,WAAW,EAAE,KACrB,OAAO,MAAM,EAAE,OAAO,CAYxB,CAAA;AAwBD,eAAO,MAAM,8BAA8B,cAAe,aAAa,KAAG,MAAM,EA2C/E,CAAA"}
@@ -21,11 +21,16 @@ const KNOWN_SECRET_FIELDS = {
21
21
  // Same credentials as the charge: a refund goes back through the provider
22
22
  // that took the money.
23
23
  'payment-refund': ['secretKey', 'clientId', 'clientSecret'],
24
- 'payment-subscribe-to-plan': ['secretKey'],
25
- 'payment-cancel-plan': ['secretKey'],
24
+ // A subscription's plan and the merchant's cancel / pause / resume go back
25
+ // through the provider that bills it; Stripe needs no plan.
26
+ 'payment-ensure-subscription-plan': ['clientId', 'clientSecret'],
27
+ 'payment-manage-subscription': ['secretKey', 'clientId', 'clientSecret'],
28
+ // The subscriber's billing page at the same provider.
29
+ 'payment-billing-portal': ['secretKey', 'clientId', 'clientSecret'],
30
+ // Closing an order's open checkout goes back through the provider that opened it.
31
+ 'payment-close-checkout': ['secretKey', 'clientId', 'clientSecret'],
26
32
  'payment-create-customer': ['secretKey', 'clientId', 'clientSecret'],
27
33
  'payment-create-product': ['secretKey'],
28
- 'payment-create-subscription': ['secretKey'],
29
34
  'payment-get-customer': ['secretKey'],
30
35
  'payment-get-product': ['secretKey'],
31
36
  'payment-list-customers': ['secretKey'],
@@ -1 +1 @@
1
- {"version":3,"file":"secret-collector.js","sourceRoot":"","sources":["../../src/secret-collector.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAEtC,MAAM,mBAAmB,GAA6B;IACpD,kBAAkB,EAAE,CAAC,OAAO,CAAC;IAC7B,uBAAuB,EAAE,CAAC,OAAO,CAAC;IAClC,kBAAkB,EAAE,CAAC,OAAO,CAAC;IAC7B,oBAAoB,EAAE,CAAC,OAAO,CAAC;IAC/B,mBAAmB,EAAE,CAAC,OAAO,CAAC;IAC9B,oBAAoB,EAAE,CAAC,OAAO,CAAC;IAC/B,4BAA4B,EAAE,CAAC,OAAO,CAAC;IACvC,kBAAkB,EAAE,CAAC,QAAQ,CAAC;IAC9B,eAAe,EAAE,CAAC,QAAQ,CAAC;IAC3B,gBAAgB,EAAE,CAAC,aAAa,CAAC;IACjC,cAAc,EAAE,CAAC,QAAQ,CAAC;IAC1B,gBAAgB,EAAE,CAAC,QAAQ,CAAC;IAC5B,eAAe,EAAE,CAAC,QAAQ,CAAC;IAC3B,aAAa,EAAE,CAAC,QAAQ,CAAC;IACzB,YAAY,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC;IACzC,YAAY,EAAE,CAAC,aAAa,CAAC;IAC7B,sBAAsB,EAAE,EAAE;IAC1B,qBAAqB,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,cAAc,CAAC;IAChE,0EAA0E;IAC1E,uBAAuB;IACvB,gBAAgB,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,cAAc,CAAC;IAC3D,2BAA2B,EAAE,CAAC,WAAW,CAAC;IAC1C,qBAAqB,EAAE,CAAC,WAAW,CAAC;IACpC,yBAAyB,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,cAAc,CAAC;IACpE,wBAAwB,EAAE,CAAC,WAAW,CAAC;IACvC,6BAA6B,EAAE,CAAC,WAAW,CAAC;IAC5C,sBAAsB,EAAE,CAAC,WAAW,CAAC;IACrC,qBAAqB,EAAE,CAAC,WAAW,CAAC;IACpC,wBAAwB,EAAE,CAAC,WAAW,CAAC;IACvC,oBAAoB,EAAE,CAAC,WAAW,CAAC;IACnC,uBAAuB,EAAE,CAAC,WAAW,CAAC;IACtC,4BAA4B,EAAE,CAAC,WAAW,CAAC;IAC3C,yBAAyB,EAAE,CAAC,WAAW,CAAC;CACzC,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,SAAwB,EAAiB,EAAE;IACxE,MAAM,OAAO,GAAkB,EAAE,CAAA;IACjC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAA;IAErC,MAAM,WAAW,GAAG,CAAC,IAAsB,EAAE,EAAE;QAC7C,MAAM,YAAY,GAAG,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACtD,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE;YAChC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YAChC,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,EAAE;gBACxE,MAAM,UAAU,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;gBAChE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;oBAChC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;oBAC3B,OAAO,CAAC,IAAI,CAAC;wBACX,UAAU;wBACV,KAAK,EAAE,KAAe;wBACtB,MAAM,EAAE,IAAI,CAAC,EAAE;wBACf,SAAS,EAAE,KAAK;qBACjB,CAAC,CAAA;iBACH;aACF;SACF;IACH,CAAC,CAAA;IAED,MAAM,YAAY,GAAG,SAAS,CAAC,SAA0D,CAAA;IACzF,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;QACzC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IAC/B,CAAC,CAAC,CAAA;IAEF,IAAI,SAAS,CAAC,WAAW,EAAE;QACzB,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,EAA0B,EAAE,EAAE;YAC1E,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;QAC/B,CAAC,CAAC,CAAA;KACH;IAED,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAED,MAAM,sBAAsB,GAAG,CAAC,QAAgB,EAAY,EAAE;IAC5D,IAAI,mBAAmB,CAAC,QAAQ,CAAC,EAAE;QACjC,OAAO,mBAAmB,CAAC,QAAQ,CAAC,CAAA;KACrC;IAED,IAAI,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE;QACvC,MAAM,SAAS,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;QACxC,IAAI,SAAS,IAAI,cAAc,IAAI,SAAS,EAAE;YAC5C,OAAQ,SAAiB,CAAC,YAAY,IAAI,EAAE,CAAA;SAC7C;QACD,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,CAAC,CAAA;KACvD;IAED,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;AAED,MAAM,kBAAkB,GAAG,CAAC,QAAgB,EAAE,SAAiB,EAAE,MAAc,EAAU,EAAE;IACzF,MAAM,MAAM,GAAG,iBAAiB,CAAA;IAChC,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAA;IAC1D,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAA;IACpE,MAAM,MAAM,GAAG,MAAM;SAClB,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC;SAC7B,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;SACf,WAAW,EAAE,CAAA;IAChB,OAAO,GAAG,MAAM,IAAI,QAAQ,IAAI,SAAS,IAAI,MAAM,EAAE,CAAA;AACvD,CAAC,CAAA;AAED,MAAM,sBAAsB,GAAG,CAAC,KAAc,EAAW,EAAE;IACzD,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACb,KAAiC,CAAC,IAAI,KAAK,iBAAiB,CAC9D,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,MAA+B,EAC/B,QAAgB,EAChB,MAAc,EACd,OAAsB,EACG,EAAE;IAC3B,MAAM,MAAM,qBAAQ,MAAM,CAAE,CAAA;IAC5B,MAAM,YAAY,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAA;IAErD,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE;QAChC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,SAAS,KAAK,KAAK,CAAC,CAAA;QAChF,IAAI,MAAM,EAAE;YACV,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,UAAU,CAAA;SAClC;KACF;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED,6EAA6E;AAC7E,yEAAyE;AACzE,2EAA2E;AAC3E,4EAA4E;AAC5E,6EAA6E;AAC7E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,wEAAwE;AACxE,MAAM,uBAAuB,GAAG,CAAC,KAAc,EAAwC,EAAE;IACvF,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QACvC,OAAO,KAAK,CAAA;KACb;IACD,MAAM,CAAC,GAAG,KAAgF,CAAA;IAC1F,OAAO,CACL,CAAC,CAAC,IAAI,KAAK,SAAS;QACpB,CAAC,CAAC,CAAC,CAAC,OAAO;QACX,CAAC,CAAC,OAAO,CAAC,aAAa,KAAK,QAAQ;QACpC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,QAAQ,CACjC,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,SAAwB,EAAY,EAAE;IACnF,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAA;IAC/B,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;QAC/C,OAAO,EAAE,CAAA;KACV;IAED,MAAM,IAAI,GAAG,CAAC,KAAc,EAAQ,EAAE;QACpC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YACvC,OAAM;SACP;QACD,IAAI,uBAAuB,CAAC,KAAK,CAAC,EAAE;YAClC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;YAC3B,OAAM;SACP;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACxB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YACnB,OAAM;SACP;QACD,MAAM,CAAC,MAAM,CAAC,KAAgC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/D,CAAC,CAAA;IAED,MAAM,WAAW,GAAG,CAAC,IAAsB,EAAE,EAAE;QAC7C,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE;YACvB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;SAClB;IACH,CAAC,CAAA;IAED,MAAM,YAAY,GAAG,CAAC,SAAS,CAAC,SAAS,IAAI,EAAE,CAAmD,CAAA;IAClG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;QACzC,IAAI,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE;YACjC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;SAC9B;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,WAAW,GAAG,CAAC,SAAS,CAAC,WAAW,IAAI,EAAE,CAA2C,CAAA;IAC3F,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;QACxC,MAAM,OAAO,GAAG,EAAE,IAAK,EAAgD,CAAC,KAAK,CAAA;QAC7E,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YAC1B,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;SAC7B;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAC1B,CAAC,CAAA"}
1
+ {"version":3,"file":"secret-collector.js","sourceRoot":"","sources":["../../src/secret-collector.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,16 @@
17
17
  * - teleport-gui/packages/workflow-schema/src/security/protected-env-names.ts
18
18
  * - teleport-services-worker/src/modules/vercel/security/protected-env-names.ts
19
19
  */
20
- export declare const PROTECTED_ENV_NAMES: readonly ["TELEPORT_DB_CONNECTION_STRING", "RUNTIME_STORAGE_API_KEY", "RUNTIME_STORAGE_PROJECT_ID", "TELEPORT_PROJECT_TOKEN", "REALTIME_SERVER_API_KEY", "REALTIME_SERVER_URL", "PDF_SERVICE_URL", "PDF_SERVICE_API_KEY"];
20
+ export declare const PROTECTED_ENV_NAMES: readonly ["TELEPORT_DB_CONNECTION_STRING", "RUNTIME_STORAGE_API_KEY", "RUNTIME_STORAGE_PROJECT_ID", "TELEPORT_PROJECT_TOKEN", "REALTIME_SERVER_API_KEY", "REALTIME_SERVER_URL", "PDF_SERVICE_URL", "PDF_SERVICE_API_KEY", "TELEPORT_CRON_SECRET", "TELEPORT_CRON_SECRET_PREVIOUS"];
21
+ /**
22
+ * The merchant's payment-provider credentials, under the name a deploy writes
23
+ * (`STRIPE_SECRET_KEY`) or the one the editor stores (`CONFIGURATION_STRIPE_…`,
24
+ * numbered on a second save). Only the store's payment drivers read them: a
25
+ * server script that could would hand the merchant's API key to any visitor.
26
+ * Mirror of the GUI's `PROTECTED_ENV_NAME_PATTERN`; the runtime guard in
27
+ * `general-custom-js.ts` denies the same names.
28
+ */
29
+ export declare const PROTECTED_ENV_NAME_PATTERN: RegExp;
21
30
  export interface CodegenSecurityViolation {
22
31
  workflowId: string;
23
32
  workflowName?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"security-scanner.d.ts","sourceRoot":"","sources":["../../src/security-scanner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,eAAO,MAAM,mBAAmB,2NAStB,CAAA;AAEV,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,qBAAa,oBAAqB,SAAQ,KAAK;aACjB,UAAU,EAAE,wBAAwB,EAAE;gBAAtC,UAAU,EAAE,wBAAwB,EAAE;CAWnE;AAED,UAAU,gBAAgB;IACxB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,MAAM,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAC3B;AAED,UAAU,YAAY;IACpB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,gBAAgB,EAAE,CAAA;CAC3B;AAED,UAAU,kBAAkB;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;CACzC;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,kBAAkB,EAAE,kBAAkB,GAAG,SAAS,GAAG,IAAI,CA2BjG"}
1
+ {"version":3,"file":"security-scanner.d.ts","sourceRoot":"","sources":["../../src/security-scanner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,eAAO,MAAM,mBAAmB,oRAWtB,CAAA;AAEV;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,QACqD,CAAA;AAE5F,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,qBAAa,oBAAqB,SAAQ,KAAK;aACjB,UAAU,EAAE,wBAAwB,EAAE;gBAAtC,UAAU,EAAE,wBAAwB,EAAE;CAWnE;AAED,UAAU,gBAAgB;IACxB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,MAAM,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAC3B;AAED,UAAU,YAAY;IACpB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,gBAAgB,EAAE,CAAA;CAC3B;AAED,UAAU,kBAAkB;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;CACzC;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,kBAAkB,EAAE,kBAAkB,GAAG,SAAS,GAAG,IAAI,CA2BjG"}
@@ -26,7 +26,18 @@ export const PROTECTED_ENV_NAMES = [
26
26
  'REALTIME_SERVER_URL',
27
27
  'PDF_SERVICE_URL',
28
28
  'PDF_SERVICE_API_KEY',
29
+ 'TELEPORT_CRON_SECRET',
30
+ 'TELEPORT_CRON_SECRET_PREVIOUS',
29
31
  ];
32
+ /**
33
+ * The merchant's payment-provider credentials, under the name a deploy writes
34
+ * (`STRIPE_SECRET_KEY`) or the one the editor stores (`CONFIGURATION_STRIPE_…`,
35
+ * numbered on a second save). Only the store's payment drivers read them: a
36
+ * server script that could would hand the merchant's API key to any visitor.
37
+ * Mirror of the GUI's `PROTECTED_ENV_NAME_PATTERN`; the runtime guard in
38
+ * `general-custom-js.ts` denies the same names.
39
+ */
40
+ export const PROTECTED_ENV_NAME_PATTERN = /^(?:CONFIGURATION_)?(?:STRIPE|PAYPAL|MOLLIE|RAZORPAY|SQUARE|PADDLE|COINGATE)_[A-Z0-9_]+$/;
30
41
  export class CodegenSecurityError extends Error {
31
42
  constructor(violations) {
32
43
  super(`Codegen blocked by ${violations.length} security violation${violations.length === 1 ? '' : 's'}`);
@@ -92,6 +103,13 @@ function scanForObviousViolations(rawCode) {
92
103
  });
93
104
  }
94
105
  }
106
+ const credentialNames = (code.match(/\b[A-Z][A-Z0-9_]+\b/g) || []).filter((word) => PROTECTED_ENV_NAME_PATTERN.test(word));
107
+ for (const name of Array.from(new Set(credentialNames))) {
108
+ out.push({
109
+ rule: 'protected-env-access',
110
+ message: `references payment credential "${name}"`,
111
+ });
112
+ }
95
113
  if (/\beval\s*\(/.test(code)) {
96
114
  out.push({ rule: 'sandbox-escape-eval', message: 'calls eval(...)' });
97
115
  }
@@ -1 +1 @@
1
- {"version":3,"file":"security-scanner.js","sourceRoot":"","sources":["../../src/security-scanner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"security-scanner.js","sourceRoot":"","sources":["../../src/security-scanner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import { UIDLCustomWorkflowNode, UIDLWorkflowNode } from '@teleporthq/teleport-types';
2
+ /**
3
+ * Which of the page's state a server segment can read.
4
+ *
5
+ * The browser hands a server segment the workflow context it holds, and that
6
+ * context carries `__stateValues` — a snapshot of EVERY state the page has,
7
+ * once at the top level and once inside the trigger context. A checkout page
8
+ * holds its country list, its cart and its order history there; a voucher
9
+ * check reads none of it, yet every request shipped all of it, and every
10
+ * reply echoed it back.
11
+ *
12
+ * What a server segment can read off that bag is fixed when the app is
13
+ * generated, because a server node reads page state only through these:
14
+ * - a whole-string `{{state.<name>...}}` template token
15
+ * (`resolveTemplateTokenString`), or `{{Current User.id}}`, which reads
16
+ * `currentUser`;
17
+ * - a `workflowContext` reference whose path walks through `__stateValues`;
18
+ * - a JS expression evaluated against the context (an expression condition,
19
+ * an expression switch, a while / until loop), which can name the bag —
20
+ * any string that mentions it is taken as reading all of it;
21
+ * - a custom node it calls, whose own nodes may do any of the above; the
22
+ * custom node's inner server segments prune for themselves, but they can
23
+ * only prune what the calling segment carried, so the need is transitive.
24
+ * A custom-JS node cannot: the bag is a reserved key its handler never exposes.
25
+ *
26
+ * The client runtime keeps exactly these entries in the request
27
+ * (`pruneContext`); '*' keeps the whole bag, as before.
28
+ */
29
+ /** Every state entry travels — an expression may read any of them. */
30
+ export declare const ALL_STATE_KEYS = "*";
31
+ export type SegmentStateKeys = string[] | typeof ALL_STATE_KEYS;
32
+ /**
33
+ * The page-state names the given nodes — and, transitively, the custom nodes
34
+ * they call — can read, sorted; or '*' when one of them evaluates an
35
+ * expression that may read the whole bag.
36
+ */
37
+ export declare const collectSegmentStateKeys: (nodes: UIDLWorkflowNode[], customNodes: Record<string, UIDLCustomWorkflowNode> | undefined) => SegmentStateKeys;
38
+ //# sourceMappingURL=segment-context-needs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"segment-context-needs.d.ts","sourceRoot":"","sources":["../../src/segment-context-needs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAErF;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,sEAAsE;AACtE,eAAO,MAAM,cAAc,MAAM,CAAA;AAEjC,MAAM,MAAM,gBAAgB,GAAG,MAAM,EAAE,GAAG,OAAO,cAAc,CAAA;AAsG/D;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,UAC3B,gBAAgB,EAAE,eACZ,OAAO,MAAM,EAAE,sBAAsB,CAAC,GAAG,SAAS,KAC9D,gBAIF,CAAA"}
@@ -0,0 +1,125 @@
1
+ /**
2
+ * Which of the page's state a server segment can read.
3
+ *
4
+ * The browser hands a server segment the workflow context it holds, and that
5
+ * context carries `__stateValues` — a snapshot of EVERY state the page has,
6
+ * once at the top level and once inside the trigger context. A checkout page
7
+ * holds its country list, its cart and its order history there; a voucher
8
+ * check reads none of it, yet every request shipped all of it, and every
9
+ * reply echoed it back.
10
+ *
11
+ * What a server segment can read off that bag is fixed when the app is
12
+ * generated, because a server node reads page state only through these:
13
+ * - a whole-string `{{state.<name>...}}` template token
14
+ * (`resolveTemplateTokenString`), or `{{Current User.id}}`, which reads
15
+ * `currentUser`;
16
+ * - a `workflowContext` reference whose path walks through `__stateValues`;
17
+ * - a JS expression evaluated against the context (an expression condition,
18
+ * an expression switch, a while / until loop), which can name the bag —
19
+ * any string that mentions it is taken as reading all of it;
20
+ * - a custom node it calls, whose own nodes may do any of the above; the
21
+ * custom node's inner server segments prune for themselves, but they can
22
+ * only prune what the calling segment carried, so the need is transitive.
23
+ * A custom-JS node cannot: the bag is a reserved key its handler never exposes.
24
+ *
25
+ * The client runtime keeps exactly these entries in the request
26
+ * (`pruneContext`); '*' keeps the whole bag, as before.
27
+ */
28
+ /** Every state entry travels — an expression may read any of them. */
29
+ export const ALL_STATE_KEYS = '*';
30
+ const STATE_BAG_KEY = '__stateValues';
31
+ /** The state a `{{Current User.id}}` / `{{currentUser.id}}` token reads. */
32
+ const CURRENT_USER_STATE_KEY = 'currentUser';
33
+ const STATE_TOKEN_PATTERN = /\{\{\s*state\.([A-Za-z_$][\w$]*)/g;
34
+ const CURRENT_USER_TOKEN_PATTERN = /\{\{\s*(?:Current User\.id|currentUser\.id)\s*\}\}/;
35
+ const collectFromString = (value, into) => {
36
+ if (value.indexOf(STATE_BAG_KEY) !== -1) {
37
+ into.all = true;
38
+ return;
39
+ }
40
+ if (value.indexOf('{{') === -1) {
41
+ return;
42
+ }
43
+ STATE_TOKEN_PATTERN.lastIndex = 0;
44
+ let match = STATE_TOKEN_PATTERN.exec(value);
45
+ while (match) {
46
+ into.keys.add(match[1]);
47
+ match = STATE_TOKEN_PATTERN.exec(value);
48
+ }
49
+ if (CURRENT_USER_TOKEN_PATTERN.test(value)) {
50
+ into.keys.add(CURRENT_USER_STATE_KEY);
51
+ }
52
+ };
53
+ const collectFromContextRef = (path, into) => {
54
+ const bagIndex = path.indexOf(STATE_BAG_KEY);
55
+ if (bagIndex === -1) {
56
+ return;
57
+ }
58
+ const stateName = path[bagIndex + 1];
59
+ if (typeof stateName === 'string' && stateName.length > 0) {
60
+ into.keys.add(stateName);
61
+ }
62
+ else {
63
+ into.all = true;
64
+ }
65
+ };
66
+ const collectFromValue = (value, into) => {
67
+ if (into.all) {
68
+ return;
69
+ }
70
+ if (typeof value === 'string') {
71
+ collectFromString(value, into);
72
+ return;
73
+ }
74
+ if (Array.isArray(value)) {
75
+ for (const entry of value) {
76
+ collectFromValue(entry, into);
77
+ }
78
+ return;
79
+ }
80
+ if (!value || typeof value !== 'object') {
81
+ return;
82
+ }
83
+ const record = value;
84
+ if (record.type === 'workflowContext' && Array.isArray(record.path)) {
85
+ // A reference names the bag in its path on purpose; that is a walk into
86
+ // one state, not an expression that may read all of them.
87
+ collectFromContextRef(record.path, into);
88
+ return;
89
+ }
90
+ for (const key of Object.keys(record)) {
91
+ collectFromValue(record[key], into);
92
+ }
93
+ };
94
+ const collectFromNodes = (nodes, customNodes, visited, into) => {
95
+ for (const node of nodes) {
96
+ if (into.all) {
97
+ return;
98
+ }
99
+ const config = (node.config || {});
100
+ collectFromValue(config, into);
101
+ if (node.type !== 'general-custom-node' || !customNodes) {
102
+ continue;
103
+ }
104
+ const customNodeId = config.customNodeId;
105
+ if (typeof customNodeId !== 'string' || visited.has(customNodeId)) {
106
+ continue;
107
+ }
108
+ visited.add(customNodeId);
109
+ const customNode = customNodes[customNodeId];
110
+ if (customNode && Array.isArray(customNode.nodes)) {
111
+ collectFromNodes(customNode.nodes, customNodes, visited, into);
112
+ }
113
+ }
114
+ };
115
+ /**
116
+ * The page-state names the given nodes — and, transitively, the custom nodes
117
+ * they call — can read, sorted; or '*' when one of them evaluates an
118
+ * expression that may read the whole bag.
119
+ */
120
+ export const collectSegmentStateKeys = (nodes, customNodes) => {
121
+ const into = { keys: new Set(), all: false };
122
+ collectFromNodes(nodes, customNodes, new Set(), into);
123
+ return into.all ? ALL_STATE_KEYS : Array.from(into.keys).sort();
124
+ };
125
+ //# sourceMappingURL=segment-context-needs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"segment-context-needs.js","sourceRoot":"","sources":["../../src/segment-context-needs.ts"],"names":[],"mappings":"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"}