@teleporthq/teleport-plugin-next-workflows 0.44.11 → 0.45.0

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 (976) hide show
  1. package/__tests__/_helpers/fake-fetch.ts +75 -0
  2. package/__tests__/_helpers/gui-place-order-statements.ts +17 -0
  3. package/__tests__/_helpers/inserted-lines.ts +22 -0
  4. package/__tests__/_helpers/invoice-store.ts +10 -1
  5. package/__tests__/_helpers/load-security-runtime.ts +45 -0
  6. package/__tests__/_helpers/load-server-runtime.ts +26 -3
  7. package/__tests__/_helpers/run-account-delete-route.ts +3 -1
  8. package/__tests__/_helpers/run-generated-middleware.ts +7 -2
  9. package/__tests__/account-delete-owned-rows.test.ts +3 -1
  10. package/__tests__/adopted-element-trigger-code.test.ts +128 -0
  11. package/__tests__/analytics-track-outcome.test.ts +145 -0
  12. package/__tests__/auth-password-change-ends-sessions.test.ts +8 -1
  13. package/__tests__/auth-password-security.test.ts +2275 -0
  14. package/__tests__/auth-session-cost.test.ts +31 -0
  15. package/__tests__/auth-signup-route.test.ts +960 -0
  16. package/__tests__/authored-code-every-path.test.ts +247 -0
  17. package/__tests__/automations-bus.test.ts +3820 -0
  18. package/__tests__/automations-catalog-drift.test.ts +97 -0
  19. package/__tests__/booking-calendar-feed-route.test.ts +20 -3
  20. package/__tests__/cart-price-order.test.ts +336 -1
  21. package/__tests__/code-lookup-rate-limit-route.test.ts +189 -0
  22. package/__tests__/cost-bearing-node-types.test.ts +119 -0
  23. package/__tests__/credential-columns-reply.test.ts +9 -0
  24. package/__tests__/credential-result-reply.test.ts +19 -5
  25. package/__tests__/cron-route-loop-templateparams.test.ts +6 -3
  26. package/__tests__/custom-js-authored-code.test.ts +304 -0
  27. package/__tests__/custom-node-custom-code-gate.test.ts +136 -0
  28. package/__tests__/custom-node-step-handlers.test.ts +251 -0
  29. package/__tests__/custom-node-step-reach.test.ts +63 -0
  30. package/__tests__/data-api-anon-user-id-fallback.test.ts +7 -2
  31. package/__tests__/data-api-browser-reads.test.ts +7 -0
  32. package/__tests__/data-api-business-events.test.ts +403 -0
  33. package/__tests__/data-api-invalid-body.test.ts +7 -0
  34. package/__tests__/data-api-low-stock-autofire.test.ts +30 -4
  35. package/__tests__/data-api-optional-feature-columns.test.ts +44 -0
  36. package/__tests__/data-api-owner-scope-credentials.test.ts +1324 -0
  37. package/__tests__/data-api-protected-tables.test.ts +48 -15
  38. package/__tests__/data-api-retired-table-and-account-fields.test.ts +208 -0
  39. package/__tests__/email-locale-senders.test.ts +5 -3
  40. package/__tests__/expression-injection.test.ts +343 -0
  41. package/__tests__/fixtures/admin-file-workflows.json +242 -0
  42. package/__tests__/form-confirmation-email-template.test.ts +44 -0
  43. package/__tests__/internal-request-headers.test.ts +25 -0
  44. package/__tests__/invoice-pdf-service-project-header.test.ts +120 -0
  45. package/__tests__/invoice-self-call-origin.test.ts +57 -1
  46. package/__tests__/legacy-webhook-self-calls.test.ts +86 -1
  47. package/__tests__/middleware-home-route-protection.test.ts +3 -1
  48. package/__tests__/middleware-subscriber-access.test.ts +1 -1
  49. package/__tests__/newsletter-admin-route.test.ts +649 -0
  50. package/__tests__/newsletter-plugin.test.ts +1248 -0
  51. package/__tests__/outbound-nodes-security.test.ts +1929 -0
  52. package/__tests__/page-access-guard.test.ts +217 -0
  53. package/__tests__/page-access-route-table.test.ts +231 -0
  54. package/__tests__/payment-drivers-module.test.ts +23 -0
  55. package/__tests__/payment-legacy-webhook-routes.test.ts +100 -5
  56. package/__tests__/payment-webhook-route.test.ts +4 -1
  57. package/__tests__/paypal-webhook-signature-verification.test.ts +44 -0
  58. package/__tests__/place-order-guards.test.ts +506 -0
  59. package/__tests__/public-step-guards.test.ts +310 -0
  60. package/__tests__/publish-refusals.test.ts +505 -0
  61. package/__tests__/realtime-identity-routes.test.ts +492 -0
  62. package/__tests__/record-event-writer-server-only.test.ts +975 -0
  63. package/__tests__/resolve-config-template-params.test.ts +3 -3
  64. package/__tests__/runtime-storage-upload-access.test.ts +280 -17
  65. package/__tests__/security-integration-env-names.test.ts +74 -0
  66. package/__tests__/security-lists-parity.test.ts +245 -0
  67. package/__tests__/security-runtime-shadow.test.ts +224 -1
  68. package/__tests__/security-runtime.test.ts +893 -0
  69. package/__tests__/segment-rate-limit-error-branch.test.ts +284 -0
  70. package/__tests__/segment-route-abuse-gate.test.ts +309 -0
  71. package/__tests__/server-job-hops-real-data-api.test.ts +669 -0
  72. package/__tests__/server-session-identity.test.ts +522 -0
  73. package/__tests__/server-step-chain.test.ts +222 -0
  74. package/__tests__/server-step-signing.test.ts +107 -2
  75. package/__tests__/session-cookie-resolver.test.ts +62 -106
  76. package/__tests__/signup-event.test.ts +649 -0
  77. package/__tests__/signup-reply-identical.test.ts +144 -0
  78. package/__tests__/slack-message-escaping.test.ts +123 -0
  79. package/__tests__/visitor-step-limits.test.ts +318 -0
  80. package/__tests__/webhook-delivery-lease.test.ts +4 -1
  81. package/__tests__/webpack-safe-handlers.test.ts +57 -8
  82. package/__tests__/workflow-auth-guard.test.ts +9 -1
  83. package/dist/cjs/account-delete-route-generator.d.ts +1 -0
  84. package/dist/cjs/account-delete-route-generator.d.ts.map +1 -1
  85. package/dist/cjs/account-delete-route-generator.js +18 -3
  86. package/dist/cjs/account-delete-route-generator.js.map +1 -1
  87. package/dist/cjs/api-route-generator.d.ts +52 -3
  88. package/dist/cjs/api-route-generator.d.ts.map +1 -1
  89. package/dist/cjs/api-route-generator.js +600 -145
  90. package/dist/cjs/api-route-generator.js.map +1 -1
  91. package/dist/cjs/auth-generator.d.ts +126 -3
  92. package/dist/cjs/auth-generator.d.ts.map +1 -1
  93. package/dist/cjs/auth-generator.js +1353 -139
  94. package/dist/cjs/auth-generator.js.map +1 -1
  95. package/dist/cjs/automations/activity-kicks.d.ts +12 -0
  96. package/dist/cjs/automations/activity-kicks.d.ts.map +1 -0
  97. package/dist/cjs/automations/activity-kicks.js +123 -0
  98. package/dist/cjs/automations/activity-kicks.js.map +1 -0
  99. package/dist/cjs/automations/app-events-source.d.ts +33 -0
  100. package/dist/cjs/automations/app-events-source.d.ts.map +1 -0
  101. package/dist/cjs/automations/app-events-source.js +109 -0
  102. package/dist/cjs/automations/app-events-source.js.map +1 -0
  103. package/dist/cjs/automations/automations-project-plugin.d.ts +21 -0
  104. package/dist/cjs/automations/automations-project-plugin.d.ts.map +1 -0
  105. package/dist/cjs/automations/automations-project-plugin.js +102 -0
  106. package/dist/cjs/automations/automations-project-plugin.js.map +1 -0
  107. package/dist/cjs/automations/automations-scope.d.ts +104 -0
  108. package/dist/cjs/automations/automations-scope.d.ts.map +1 -0
  109. package/dist/cjs/automations/automations-scope.js +176 -0
  110. package/dist/cjs/automations/automations-scope.js.map +1 -0
  111. package/dist/cjs/automations/dispatcher-source.d.ts +72 -0
  112. package/dist/cjs/automations/dispatcher-source.d.ts.map +1 -0
  113. package/dist/cjs/automations/dispatcher-source.js +1008 -0
  114. package/dist/cjs/automations/dispatcher-source.js.map +1 -0
  115. package/dist/cjs/automations/event-bus-source.d.ts +44 -0
  116. package/dist/cjs/automations/event-bus-source.d.ts.map +1 -0
  117. package/dist/cjs/automations/event-bus-source.js +427 -0
  118. package/dist/cjs/automations/event-bus-source.js.map +1 -0
  119. package/dist/cjs/automations/handler-module-generator.d.ts +25 -0
  120. package/dist/cjs/automations/handler-module-generator.d.ts.map +1 -0
  121. package/dist/cjs/automations/handler-module-generator.js +78 -0
  122. package/dist/cjs/automations/handler-module-generator.js.map +1 -0
  123. package/dist/cjs/automations/hydrators-source.d.ts +33 -0
  124. package/dist/cjs/automations/hydrators-source.d.ts.map +1 -0
  125. package/dist/cjs/automations/hydrators-source.js +571 -0
  126. package/dist/cjs/automations/hydrators-source.js.map +1 -0
  127. package/dist/cjs/booking-calendar-feed-route-generator.d.ts.map +1 -1
  128. package/dist/cjs/booking-calendar-feed-route-generator.js +8 -0
  129. package/dist/cjs/booking-calendar-feed-route-generator.js.map +1 -1
  130. package/dist/cjs/configured-nextauth-url.d.ts +17 -0
  131. package/dist/cjs/configured-nextauth-url.d.ts.map +1 -0
  132. package/dist/cjs/configured-nextauth-url.js +20 -0
  133. package/dist/cjs/configured-nextauth-url.js.map +1 -0
  134. package/dist/cjs/cron-request-verification.d.ts +22 -1
  135. package/dist/cjs/cron-request-verification.d.ts.map +1 -1
  136. package/dist/cjs/cron-request-verification.js +50 -6
  137. package/dist/cjs/cron-request-verification.js.map +1 -1
  138. package/dist/cjs/data-api-route-generator.d.ts +19 -0
  139. package/dist/cjs/data-api-route-generator.d.ts.map +1 -1
  140. package/dist/cjs/data-api-route-generator.js +711 -43
  141. package/dist/cjs/data-api-route-generator.js.map +1 -1
  142. package/dist/cjs/ecommerce/parameterized-stock-chain.d.ts +3 -1
  143. package/dist/cjs/ecommerce/parameterized-stock-chain.d.ts.map +1 -1
  144. package/dist/cjs/ecommerce/parameterized-stock-chain.js +45 -5
  145. package/dist/cjs/ecommerce/parameterized-stock-chain.js.map +1 -1
  146. package/dist/cjs/ecommerce/place-order-guards.d.ts +126 -0
  147. package/dist/cjs/ecommerce/place-order-guards.d.ts.map +1 -0
  148. package/dist/cjs/ecommerce/place-order-guards.js +670 -0
  149. package/dist/cjs/ecommerce/place-order-guards.js.map +1 -0
  150. package/dist/cjs/ecommerce-customhandler-rewriter.d.ts +2 -0
  151. package/dist/cjs/ecommerce-customhandler-rewriter.d.ts.map +1 -1
  152. package/dist/cjs/ecommerce-customhandler-rewriter.js +38 -2
  153. package/dist/cjs/ecommerce-customhandler-rewriter.js.map +1 -1
  154. package/dist/cjs/executor-generator.d.ts.map +1 -1
  155. package/dist/cjs/executor-generator.js +368 -60
  156. package/dist/cjs/executor-generator.js.map +1 -1
  157. package/dist/cjs/graph-utils.d.ts +9 -0
  158. package/dist/cjs/graph-utils.d.ts.map +1 -1
  159. package/dist/cjs/graph-utils.js +32 -1
  160. package/dist/cjs/graph-utils.js.map +1 -1
  161. package/dist/cjs/index.d.ts +20 -1
  162. package/dist/cjs/index.d.ts.map +1 -1
  163. package/dist/cjs/index.js +72 -2
  164. package/dist/cjs/index.js.map +1 -1
  165. package/dist/cjs/invoice/api-routes-code.d.ts +9 -3
  166. package/dist/cjs/invoice/api-routes-code.d.ts.map +1 -1
  167. package/dist/cjs/invoice/api-routes-code.js +9 -7
  168. package/dist/cjs/invoice/api-routes-code.js.map +1 -1
  169. package/dist/cjs/invoice/index.d.ts.map +1 -1
  170. package/dist/cjs/invoice/index.js +12 -7
  171. package/dist/cjs/invoice/index.js.map +1 -1
  172. package/dist/cjs/invoice/invoice-assembly-code.d.ts.map +1 -1
  173. package/dist/cjs/invoice/invoice-assembly-code.js +8 -3
  174. package/dist/cjs/invoice/invoice-assembly-code.js.map +1 -1
  175. package/dist/cjs/invoice/pdf-generator-code.d.ts.map +1 -1
  176. package/dist/cjs/invoice/pdf-generator-code.js +2 -1
  177. package/dist/cjs/invoice/pdf-generator-code.js.map +1 -1
  178. package/dist/cjs/invoice/pdf-service-client-code.d.ts.map +1 -1
  179. package/dist/cjs/invoice/pdf-service-client-code.js +15 -7
  180. package/dist/cjs/invoice/pdf-service-client-code.js.map +1 -1
  181. package/dist/cjs/newsletter/admin-route-code.d.ts +60 -0
  182. package/dist/cjs/newsletter/admin-route-code.d.ts.map +1 -0
  183. package/dist/cjs/newsletter/admin-route-code.js +300 -0
  184. package/dist/cjs/newsletter/admin-route-code.js.map +1 -0
  185. package/dist/cjs/newsletter/helper-code.d.ts +109 -0
  186. package/dist/cjs/newsletter/helper-code.d.ts.map +1 -0
  187. package/dist/cjs/newsletter/helper-code.js +662 -0
  188. package/dist/cjs/newsletter/helper-code.js.map +1 -0
  189. package/dist/cjs/newsletter/newsletter-scope.d.ts +65 -0
  190. package/dist/cjs/newsletter/newsletter-scope.d.ts.map +1 -0
  191. package/dist/cjs/newsletter/newsletter-scope.js +103 -0
  192. package/dist/cjs/newsletter/newsletter-scope.js.map +1 -0
  193. package/dist/cjs/newsletter/project-plugin.d.ts +18 -0
  194. package/dist/cjs/newsletter/project-plugin.d.ts.map +1 -0
  195. package/dist/cjs/newsletter/project-plugin.js +97 -0
  196. package/dist/cjs/newsletter/project-plugin.js.map +1 -0
  197. package/dist/cjs/newsletter/routes-code.d.ts +6 -0
  198. package/dist/cjs/newsletter/routes-code.d.ts.map +1 -0
  199. package/dist/cjs/newsletter/routes-code.js +181 -0
  200. package/dist/cjs/newsletter/routes-code.js.map +1 -0
  201. package/dist/cjs/nodes/account/account-compare-passwords.d.ts.map +1 -1
  202. package/dist/cjs/nodes/account/account-compare-passwords.js +16 -6
  203. package/dist/cjs/nodes/account/account-compare-passwords.js.map +1 -1
  204. package/dist/cjs/nodes/account/account-delete-current.js +1 -1
  205. package/dist/cjs/nodes/account/account-get-current.js +1 -1
  206. package/dist/cjs/nodes/account/account-hash-password.d.ts.map +1 -1
  207. package/dist/cjs/nodes/account/account-hash-password.js +15 -3
  208. package/dist/cjs/nodes/account/account-hash-password.js.map +1 -1
  209. package/dist/cjs/nodes/account/account-login.d.ts.map +1 -1
  210. package/dist/cjs/nodes/account/account-login.js +23 -6
  211. package/dist/cjs/nodes/account/account-login.js.map +1 -1
  212. package/dist/cjs/nodes/account/account-logout.js +1 -1
  213. package/dist/cjs/nodes/account/account-refresh-session.js +1 -1
  214. package/dist/cjs/nodes/account/account-request-password-reset.d.ts +3 -0
  215. package/dist/cjs/nodes/account/account-request-password-reset.d.ts.map +1 -0
  216. package/dist/cjs/nodes/account/account-request-password-reset.js +46 -0
  217. package/dist/cjs/nodes/account/account-request-password-reset.js.map +1 -0
  218. package/dist/cjs/nodes/account/account-reset-password.d.ts +3 -0
  219. package/dist/cjs/nodes/account/account-reset-password.d.ts.map +1 -0
  220. package/dist/cjs/nodes/account/account-reset-password.js +44 -0
  221. package/dist/cjs/nodes/account/account-reset-password.js.map +1 -0
  222. package/dist/cjs/nodes/account/account-signup.d.ts.map +1 -1
  223. package/dist/cjs/nodes/account/account-signup.js +82 -19
  224. package/dist/cjs/nodes/account/account-signup.js.map +1 -1
  225. package/dist/cjs/nodes/account/account-social-login.js +1 -1
  226. package/dist/cjs/nodes/ai/ai-custom-prompt.d.ts.map +1 -1
  227. package/dist/cjs/nodes/ai/ai-custom-prompt.js +20 -5
  228. package/dist/cjs/nodes/ai/ai-custom-prompt.js.map +1 -1
  229. package/dist/cjs/nodes/ai/ai-detect-language.d.ts.map +1 -1
  230. package/dist/cjs/nodes/ai/ai-detect-language.js +20 -5
  231. package/dist/cjs/nodes/ai/ai-detect-language.js.map +1 -1
  232. package/dist/cjs/nodes/ai/ai-generate-text-embedding.d.ts.map +1 -1
  233. package/dist/cjs/nodes/ai/ai-generate-text-embedding.js +10 -2
  234. package/dist/cjs/nodes/ai/ai-generate-text-embedding.js.map +1 -1
  235. package/dist/cjs/nodes/ai/ai-provider-utils-sources.generated.js +2 -2
  236. package/dist/cjs/nodes/ai/ai-provider-utils-sources.generated.js.map +1 -1
  237. package/dist/cjs/nodes/ai/ai-provider-utils.d.ts +31 -2
  238. package/dist/cjs/nodes/ai/ai-provider-utils.d.ts.map +1 -1
  239. package/dist/cjs/nodes/ai/ai-provider-utils.js +125 -11
  240. package/dist/cjs/nodes/ai/ai-provider-utils.js.map +1 -1
  241. package/dist/cjs/nodes/ai/ai-select-database-data.d.ts.map +1 -1
  242. package/dist/cjs/nodes/ai/ai-select-database-data.js +6 -2
  243. package/dist/cjs/nodes/ai/ai-select-database-data.js.map +1 -1
  244. package/dist/cjs/nodes/ai/ai-sentiment-analysis.d.ts.map +1 -1
  245. package/dist/cjs/nodes/ai/ai-sentiment-analysis.js +20 -5
  246. package/dist/cjs/nodes/ai/ai-sentiment-analysis.js.map +1 -1
  247. package/dist/cjs/nodes/ai/ai-summarization.d.ts.map +1 -1
  248. package/dist/cjs/nodes/ai/ai-summarization.js +20 -5
  249. package/dist/cjs/nodes/ai/ai-summarization.js.map +1 -1
  250. package/dist/cjs/nodes/ai/ai-text-classifier.d.ts.map +1 -1
  251. package/dist/cjs/nodes/ai/ai-text-classifier.js +20 -5
  252. package/dist/cjs/nodes/ai/ai-text-classifier.js.map +1 -1
  253. package/dist/cjs/nodes/ai/ai-text-transform.d.ts.map +1 -1
  254. package/dist/cjs/nodes/ai/ai-text-transform.js +20 -5
  255. package/dist/cjs/nodes/ai/ai-text-transform.js.map +1 -1
  256. package/dist/cjs/nodes/analytics/analytics-track-outcome.d.ts +3 -0
  257. package/dist/cjs/nodes/analytics/analytics-track-outcome.d.ts.map +1 -0
  258. package/dist/cjs/nodes/analytics/analytics-track-outcome.js +110 -0
  259. package/dist/cjs/nodes/analytics/analytics-track-outcome.js.map +1 -0
  260. package/dist/cjs/nodes/cart/cart-price-order.d.ts.map +1 -1
  261. package/dist/cjs/nodes/cart/cart-price-order.js +161 -2
  262. package/dist/cjs/nodes/cart/cart-price-order.js.map +1 -1
  263. package/dist/cjs/nodes/cost-bearing-node-types.d.ts +4 -0
  264. package/dist/cjs/nodes/cost-bearing-node-types.d.ts.map +1 -0
  265. package/dist/cjs/nodes/cost-bearing-node-types.js +43 -0
  266. package/dist/cjs/nodes/cost-bearing-node-types.js.map +1 -0
  267. package/dist/cjs/nodes/data/data-select.d.ts.map +1 -1
  268. package/dist/cjs/nodes/data/data-select.js +12 -2
  269. package/dist/cjs/nodes/data/data-select.js.map +1 -1
  270. package/dist/cjs/nodes/email/email-mailersend.d.ts.map +1 -1
  271. package/dist/cjs/nodes/email/email-mailersend.js +15 -11
  272. package/dist/cjs/nodes/email/email-mailersend.js.map +1 -1
  273. package/dist/cjs/nodes/email/email-mailgun.d.ts.map +1 -1
  274. package/dist/cjs/nodes/email/email-mailgun.js +15 -15
  275. package/dist/cjs/nodes/email/email-mailgun.js.map +1 -1
  276. package/dist/cjs/nodes/email/email-postmark.d.ts.map +1 -1
  277. package/dist/cjs/nodes/email/email-postmark.js +15 -15
  278. package/dist/cjs/nodes/email/email-postmark.js.map +1 -1
  279. package/dist/cjs/nodes/email/email-resend.d.ts.map +1 -1
  280. package/dist/cjs/nodes/email/email-resend.js +15 -15
  281. package/dist/cjs/nodes/email/email-resend.js.map +1 -1
  282. package/dist/cjs/nodes/email/email-sendgrid.d.ts.map +1 -1
  283. package/dist/cjs/nodes/email/email-sendgrid.js +15 -15
  284. package/dist/cjs/nodes/email/email-sendgrid.js.map +1 -1
  285. package/dist/cjs/nodes/email/html-escape-code.d.ts +3 -0
  286. package/dist/cjs/nodes/email/html-escape-code.d.ts.map +1 -0
  287. package/dist/cjs/nodes/email/html-escape-code.js +23 -0
  288. package/dist/cjs/nodes/email/html-escape-code.js.map +1 -0
  289. package/dist/cjs/nodes/email/message-trust.d.ts +40 -0
  290. package/dist/cjs/nodes/email/message-trust.d.ts.map +1 -0
  291. package/dist/cjs/nodes/email/message-trust.js +167 -0
  292. package/dist/cjs/nodes/email/message-trust.js.map +1 -0
  293. package/dist/cjs/nodes/email/outbound-message-guard.d.ts +113 -0
  294. package/dist/cjs/nodes/email/outbound-message-guard.d.ts.map +1 -0
  295. package/dist/cjs/nodes/email/outbound-message-guard.js +460 -0
  296. package/dist/cjs/nodes/email/outbound-message-guard.js.map +1 -0
  297. package/dist/cjs/nodes/email/trusted-html-code.d.ts +22 -0
  298. package/dist/cjs/nodes/email/trusted-html-code.d.ts.map +1 -0
  299. package/dist/cjs/nodes/email/trusted-html-code.js +52 -0
  300. package/dist/cjs/nodes/email/trusted-html-code.js.map +1 -0
  301. package/dist/cjs/nodes/general/general-custom-js.d.ts.map +1 -1
  302. package/dist/cjs/nodes/general/general-custom-js.js +44 -7
  303. package/dist/cjs/nodes/general/general-custom-js.js.map +1 -1
  304. package/dist/cjs/nodes/general/general-http-request.d.ts.map +1 -1
  305. package/dist/cjs/nodes/general/general-http-request.js +431 -45
  306. package/dist/cjs/nodes/general/general-http-request.js.map +1 -1
  307. package/dist/cjs/nodes/general/general-rate-limiter.d.ts.map +1 -1
  308. package/dist/cjs/nodes/general/general-rate-limiter.js +46 -78
  309. package/dist/cjs/nodes/general/general-rate-limiter.js.map +1 -1
  310. package/dist/cjs/nodes/general/general-wait.d.ts +3 -0
  311. package/dist/cjs/nodes/general/general-wait.d.ts.map +1 -0
  312. package/dist/cjs/nodes/general/general-wait.js +81 -0
  313. package/dist/cjs/nodes/general/general-wait.js.map +1 -0
  314. package/dist/cjs/nodes/general/visitor-request.d.ts +44 -0
  315. package/dist/cjs/nodes/general/visitor-request.d.ts.map +1 -0
  316. package/dist/cjs/nodes/general/visitor-request.js +72 -0
  317. package/dist/cjs/nodes/general/visitor-request.js.map +1 -0
  318. package/dist/cjs/nodes/index.d.ts.map +1 -1
  319. package/dist/cjs/nodes/index.js +7 -1
  320. package/dist/cjs/nodes/index.js.map +1 -1
  321. package/dist/cjs/nodes/integrations/integration-slack.d.ts.map +1 -1
  322. package/dist/cjs/nodes/integrations/integration-slack.js +17 -6
  323. package/dist/cjs/nodes/integrations/integration-slack.js.map +1 -1
  324. package/dist/cjs/nodes/newsletter/newsletter-confirm.d.ts +3 -0
  325. package/dist/cjs/nodes/newsletter/newsletter-confirm.d.ts.map +1 -0
  326. package/dist/cjs/nodes/newsletter/newsletter-confirm.js +41 -0
  327. package/dist/cjs/nodes/newsletter/newsletter-confirm.js.map +1 -0
  328. package/dist/cjs/nodes/newsletter/newsletter-subscribe.d.ts +7 -0
  329. package/dist/cjs/nodes/newsletter/newsletter-subscribe.d.ts.map +1 -0
  330. package/dist/cjs/nodes/newsletter/newsletter-subscribe.js +69 -0
  331. package/dist/cjs/nodes/newsletter/newsletter-subscribe.js.map +1 -0
  332. package/dist/cjs/nodes/newsletter/newsletter-unsubscribe.d.ts +3 -0
  333. package/dist/cjs/nodes/newsletter/newsletter-unsubscribe.d.ts.map +1 -0
  334. package/dist/cjs/nodes/newsletter/newsletter-unsubscribe.js +42 -0
  335. package/dist/cjs/nodes/newsletter/newsletter-unsubscribe.js.map +1 -0
  336. package/dist/cjs/nodes/realtime/realtime-join-channel.d.ts.map +1 -1
  337. package/dist/cjs/nodes/realtime/realtime-join-channel.js +5 -4
  338. package/dist/cjs/nodes/realtime/realtime-join-channel.js.map +1 -1
  339. package/dist/cjs/nodes/realtime/realtime-send-channel-event.d.ts.map +1 -1
  340. package/dist/cjs/nodes/realtime/realtime-send-channel-event.js +11 -2
  341. package/dist/cjs/nodes/realtime/realtime-send-channel-event.js.map +1 -1
  342. package/dist/cjs/nodes/realtime/realtime-send-channel-message.d.ts.map +1 -1
  343. package/dist/cjs/nodes/realtime/realtime-send-channel-message.js +11 -2
  344. package/dist/cjs/nodes/realtime/realtime-send-channel-message.js.map +1 -1
  345. package/dist/cjs/nodes/sms/sms-infobip.d.ts.map +1 -1
  346. package/dist/cjs/nodes/sms/sms-infobip.js +11 -8
  347. package/dist/cjs/nodes/sms/sms-infobip.js.map +1 -1
  348. package/dist/cjs/nodes/sms/sms-smsapi.d.ts.map +1 -1
  349. package/dist/cjs/nodes/sms/sms-smsapi.js +11 -8
  350. package/dist/cjs/nodes/sms/sms-smsapi.js.map +1 -1
  351. package/dist/cjs/nodes/sms/sms-textmagic.d.ts.map +1 -1
  352. package/dist/cjs/nodes/sms/sms-textmagic.js +11 -8
  353. package/dist/cjs/nodes/sms/sms-textmagic.js.map +1 -1
  354. package/dist/cjs/nodes/sms/sms-twilio.d.ts.map +1 -1
  355. package/dist/cjs/nodes/sms/sms-twilio.js +12 -10
  356. package/dist/cjs/nodes/sms/sms-twilio.js.map +1 -1
  357. package/dist/cjs/nodes/types.d.ts +8 -1
  358. package/dist/cjs/nodes/types.d.ts.map +1 -1
  359. package/dist/cjs/nodes/utility/utility-similarity-scoring.d.ts.map +1 -1
  360. package/dist/cjs/nodes/utility/utility-similarity-scoring.js +29 -10
  361. package/dist/cjs/nodes/utility/utility-similarity-scoring.js.map +1 -1
  362. package/dist/cjs/page-access-guard-generator.d.ts +23 -0
  363. package/dist/cjs/page-access-guard-generator.d.ts.map +1 -0
  364. package/dist/cjs/page-access-guard-generator.js +135 -0
  365. package/dist/cjs/page-access-guard-generator.js.map +1 -0
  366. package/dist/cjs/password-reset-route-generator.d.ts +119 -0
  367. package/dist/cjs/password-reset-route-generator.d.ts.map +1 -0
  368. package/dist/cjs/password-reset-route-generator.js +460 -0
  369. package/dist/cjs/password-reset-route-generator.js.map +1 -0
  370. package/dist/cjs/payments/payment-core-code.d.ts.map +1 -1
  371. package/dist/cjs/payments/payment-core-code.js +12 -7
  372. package/dist/cjs/payments/payment-core-code.js.map +1 -1
  373. package/dist/cjs/project-code-scanner.d.ts +11 -0
  374. package/dist/cjs/project-code-scanner.d.ts.map +1 -0
  375. package/dist/cjs/project-code-scanner.js +80 -0
  376. package/dist/cjs/project-code-scanner.js.map +1 -0
  377. package/dist/cjs/public-step-guards.d.ts +122 -0
  378. package/dist/cjs/public-step-guards.d.ts.map +1 -0
  379. package/dist/cjs/public-step-guards.js +288 -0
  380. package/dist/cjs/public-step-guards.js.map +1 -0
  381. package/dist/cjs/publish-refusals.d.ts +66 -0
  382. package/dist/cjs/publish-refusals.d.ts.map +1 -0
  383. package/dist/cjs/publish-refusals.js +278 -0
  384. package/dist/cjs/publish-refusals.js.map +1 -0
  385. package/dist/cjs/realtime-generator.d.ts +63 -1
  386. package/dist/cjs/realtime-generator.d.ts.map +1 -1
  387. package/dist/cjs/realtime-generator.js +404 -230
  388. package/dist/cjs/realtime-generator.js.map +1 -1
  389. package/dist/cjs/runtime-storage-generator.d.ts +32 -1
  390. package/dist/cjs/runtime-storage-generator.d.ts.map +1 -1
  391. package/dist/cjs/runtime-storage-generator.js +265 -12
  392. package/dist/cjs/runtime-storage-generator.js.map +1 -1
  393. package/dist/cjs/security-runtime/index.d.ts +14 -0
  394. package/dist/cjs/security-runtime/index.d.ts.map +1 -0
  395. package/dist/cjs/security-runtime/index.js +48 -0
  396. package/dist/cjs/security-runtime/index.js.map +1 -0
  397. package/dist/cjs/security-runtime/security-runtime-code.d.ts +53 -0
  398. package/dist/cjs/security-runtime/security-runtime-code.d.ts.map +1 -0
  399. package/dist/cjs/security-runtime/security-runtime-code.js +580 -0
  400. package/dist/cjs/security-runtime/security-runtime-code.js.map +1 -0
  401. package/dist/cjs/security-scanner.d.ts +72 -3
  402. package/dist/cjs/security-scanner.d.ts.map +1 -1
  403. package/dist/cjs/security-scanner.js +220 -8
  404. package/dist/cjs/security-scanner.js.map +1 -1
  405. package/dist/cjs/segment-splitter.d.ts.map +1 -1
  406. package/dist/cjs/segment-splitter.js +10 -2
  407. package/dist/cjs/segment-splitter.js.map +1 -1
  408. package/dist/cjs/segment-trust.d.ts +36 -0
  409. package/dist/cjs/segment-trust.d.ts.map +1 -1
  410. package/dist/cjs/segment-trust.js +147 -3
  411. package/dist/cjs/segment-trust.js.map +1 -1
  412. package/dist/cjs/self-call-headers.d.ts +31 -0
  413. package/dist/cjs/self-call-headers.d.ts.map +1 -0
  414. package/dist/cjs/self-call-headers.js +48 -0
  415. package/dist/cjs/self-call-headers.js.map +1 -0
  416. package/dist/cjs/sent-email-log/index.d.ts +7 -0
  417. package/dist/cjs/sent-email-log/index.d.ts.map +1 -1
  418. package/dist/cjs/sent-email-log/index.js +17 -1
  419. package/dist/cjs/sent-email-log/index.js.map +1 -1
  420. package/dist/cjs/sent-email-log/sent-email-log-code.d.ts +7 -0
  421. package/dist/cjs/sent-email-log/sent-email-log-code.d.ts.map +1 -1
  422. package/dist/cjs/sent-email-log/sent-email-log-code.js +17 -3
  423. package/dist/cjs/sent-email-log/sent-email-log-code.js.map +1 -1
  424. package/dist/cjs/server-custom-node-call.d.ts +79 -0
  425. package/dist/cjs/server-custom-node-call.d.ts.map +1 -0
  426. package/dist/cjs/server-custom-node-call.js +285 -0
  427. package/dist/cjs/server-custom-node-call.js.map +1 -0
  428. package/dist/cjs/server-runtime-code.d.ts +39 -12
  429. package/dist/cjs/server-runtime-code.d.ts.map +1 -1
  430. package/dist/cjs/server-runtime-code.js +484 -41
  431. package/dist/cjs/server-runtime-code.js.map +1 -1
  432. package/dist/cjs/session-cookie-resolver.d.ts +3 -1
  433. package/dist/cjs/session-cookie-resolver.d.ts.map +1 -1
  434. package/dist/cjs/session-revocation-generator.d.ts +39 -0
  435. package/dist/cjs/session-revocation-generator.d.ts.map +1 -0
  436. package/dist/cjs/session-revocation-generator.js +177 -0
  437. package/dist/cjs/session-revocation-generator.js.map +1 -0
  438. package/dist/cjs/slack-message-values.d.ts +6 -0
  439. package/dist/cjs/slack-message-values.d.ts.map +1 -0
  440. package/dist/cjs/slack-message-values.js +73 -0
  441. package/dist/cjs/slack-message-values.js.map +1 -0
  442. package/dist/cjs/transactional-email-code.d.ts +11 -0
  443. package/dist/cjs/transactional-email-code.d.ts.map +1 -1
  444. package/dist/cjs/transactional-email-code.js +29 -5
  445. package/dist/cjs/transactional-email-code.js.map +1 -1
  446. package/dist/cjs/trigger-generator.d.ts +2 -0
  447. package/dist/cjs/trigger-generator.d.ts.map +1 -1
  448. package/dist/cjs/trigger-generator.js +17 -4
  449. package/dist/cjs/trigger-generator.js.map +1 -1
  450. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  451. package/dist/cjs/visitor-step-limits.d.ts +66 -0
  452. package/dist/cjs/visitor-step-limits.d.ts.map +1 -0
  453. package/dist/cjs/visitor-step-limits.js +187 -0
  454. package/dist/cjs/visitor-step-limits.js.map +1 -0
  455. package/dist/cjs/webhook-generator.d.ts.map +1 -1
  456. package/dist/cjs/webhook-generator.js +93 -15
  457. package/dist/cjs/webhook-generator.js.map +1 -1
  458. package/dist/cjs/webhook-signature-verification.d.ts.map +1 -1
  459. package/dist/cjs/webhook-signature-verification.js +13 -3
  460. package/dist/cjs/webhook-signature-verification.js.map +1 -1
  461. package/dist/cjs/workflow-auth-generator.d.ts +4 -1
  462. package/dist/cjs/workflow-auth-generator.d.ts.map +1 -1
  463. package/dist/cjs/workflow-auth-generator.js +8 -3
  464. package/dist/cjs/workflow-auth-generator.js.map +1 -1
  465. package/dist/cjs/workflow-component-plugin.js +11 -3
  466. package/dist/cjs/workflow-component-plugin.js.map +1 -1
  467. package/dist/cjs/workflow-project-plugin.d.ts.map +1 -1
  468. package/dist/cjs/workflow-project-plugin.js +302 -56
  469. package/dist/cjs/workflow-project-plugin.js.map +1 -1
  470. package/dist/cjs/workflow-scope.d.ts.map +1 -1
  471. package/dist/cjs/workflow-scope.js +5 -0
  472. package/dist/cjs/workflow-scope.js.map +1 -1
  473. package/dist/esm/account-delete-route-generator.d.ts +1 -0
  474. package/dist/esm/account-delete-route-generator.d.ts.map +1 -1
  475. package/dist/esm/account-delete-route-generator.js +18 -3
  476. package/dist/esm/account-delete-route-generator.js.map +1 -1
  477. package/dist/esm/api-route-generator.d.ts +52 -3
  478. package/dist/esm/api-route-generator.d.ts.map +1 -1
  479. package/dist/esm/api-route-generator.js +595 -142
  480. package/dist/esm/api-route-generator.js.map +1 -1
  481. package/dist/esm/auth-generator.d.ts +126 -3
  482. package/dist/esm/auth-generator.d.ts.map +1 -1
  483. package/dist/esm/auth-generator.js +1350 -140
  484. package/dist/esm/auth-generator.js.map +1 -1
  485. package/dist/esm/automations/activity-kicks.d.ts +12 -0
  486. package/dist/esm/automations/activity-kicks.d.ts.map +1 -0
  487. package/dist/esm/automations/activity-kicks.js +118 -0
  488. package/dist/esm/automations/activity-kicks.js.map +1 -0
  489. package/dist/esm/automations/app-events-source.d.ts +33 -0
  490. package/dist/esm/automations/app-events-source.d.ts.map +1 -0
  491. package/dist/esm/automations/app-events-source.js +104 -0
  492. package/dist/esm/automations/app-events-source.js.map +1 -0
  493. package/dist/esm/automations/automations-project-plugin.d.ts +21 -0
  494. package/dist/esm/automations/automations-project-plugin.d.ts.map +1 -0
  495. package/dist/esm/automations/automations-project-plugin.js +98 -0
  496. package/dist/esm/automations/automations-project-plugin.js.map +1 -0
  497. package/dist/esm/automations/automations-scope.d.ts +104 -0
  498. package/dist/esm/automations/automations-scope.d.ts.map +1 -0
  499. package/dist/esm/automations/automations-scope.js +165 -0
  500. package/dist/esm/automations/automations-scope.js.map +1 -0
  501. package/dist/esm/automations/dispatcher-source.d.ts +72 -0
  502. package/dist/esm/automations/dispatcher-source.d.ts.map +1 -0
  503. package/dist/esm/automations/dispatcher-source.js +999 -0
  504. package/dist/esm/automations/dispatcher-source.js.map +1 -0
  505. package/dist/esm/automations/event-bus-source.d.ts +44 -0
  506. package/dist/esm/automations/event-bus-source.d.ts.map +1 -0
  507. package/dist/esm/automations/event-bus-source.js +421 -0
  508. package/dist/esm/automations/event-bus-source.js.map +1 -0
  509. package/dist/esm/automations/handler-module-generator.d.ts +25 -0
  510. package/dist/esm/automations/handler-module-generator.d.ts.map +1 -0
  511. package/dist/esm/automations/handler-module-generator.js +71 -0
  512. package/dist/esm/automations/handler-module-generator.js.map +1 -0
  513. package/dist/esm/automations/hydrators-source.d.ts +33 -0
  514. package/dist/esm/automations/hydrators-source.d.ts.map +1 -0
  515. package/dist/esm/automations/hydrators-source.js +567 -0
  516. package/dist/esm/automations/hydrators-source.js.map +1 -0
  517. package/dist/esm/booking-calendar-feed-route-generator.d.ts.map +1 -1
  518. package/dist/esm/booking-calendar-feed-route-generator.js +8 -0
  519. package/dist/esm/booking-calendar-feed-route-generator.js.map +1 -1
  520. package/dist/esm/configured-nextauth-url.d.ts +17 -0
  521. package/dist/esm/configured-nextauth-url.d.ts.map +1 -0
  522. package/dist/esm/configured-nextauth-url.js +17 -0
  523. package/dist/esm/configured-nextauth-url.js.map +1 -0
  524. package/dist/esm/cron-request-verification.d.ts +22 -1
  525. package/dist/esm/cron-request-verification.d.ts.map +1 -1
  526. package/dist/esm/cron-request-verification.js +48 -5
  527. package/dist/esm/cron-request-verification.js.map +1 -1
  528. package/dist/esm/data-api-route-generator.d.ts +19 -0
  529. package/dist/esm/data-api-route-generator.d.ts.map +1 -1
  530. package/dist/esm/data-api-route-generator.js +710 -43
  531. package/dist/esm/data-api-route-generator.js.map +1 -1
  532. package/dist/esm/ecommerce/parameterized-stock-chain.d.ts +3 -1
  533. package/dist/esm/ecommerce/parameterized-stock-chain.d.ts.map +1 -1
  534. package/dist/esm/ecommerce/parameterized-stock-chain.js +43 -4
  535. package/dist/esm/ecommerce/parameterized-stock-chain.js.map +1 -1
  536. package/dist/esm/ecommerce/place-order-guards.d.ts +126 -0
  537. package/dist/esm/ecommerce/place-order-guards.d.ts.map +1 -0
  538. package/dist/esm/ecommerce/place-order-guards.js +655 -0
  539. package/dist/esm/ecommerce/place-order-guards.js.map +1 -0
  540. package/dist/esm/ecommerce-customhandler-rewriter.d.ts +2 -0
  541. package/dist/esm/ecommerce-customhandler-rewriter.d.ts.map +1 -1
  542. package/dist/esm/ecommerce-customhandler-rewriter.js +38 -2
  543. package/dist/esm/ecommerce-customhandler-rewriter.js.map +1 -1
  544. package/dist/esm/executor-generator.d.ts.map +1 -1
  545. package/dist/esm/executor-generator.js +368 -60
  546. package/dist/esm/executor-generator.js.map +1 -1
  547. package/dist/esm/graph-utils.d.ts +9 -0
  548. package/dist/esm/graph-utils.d.ts.map +1 -1
  549. package/dist/esm/graph-utils.js +30 -0
  550. package/dist/esm/graph-utils.js.map +1 -1
  551. package/dist/esm/index.d.ts +20 -1
  552. package/dist/esm/index.d.ts.map +1 -1
  553. package/dist/esm/index.js +27 -1
  554. package/dist/esm/index.js.map +1 -1
  555. package/dist/esm/invoice/api-routes-code.d.ts +9 -3
  556. package/dist/esm/invoice/api-routes-code.d.ts.map +1 -1
  557. package/dist/esm/invoice/api-routes-code.js +9 -7
  558. package/dist/esm/invoice/api-routes-code.js.map +1 -1
  559. package/dist/esm/invoice/index.d.ts.map +1 -1
  560. package/dist/esm/invoice/index.js +12 -7
  561. package/dist/esm/invoice/index.js.map +1 -1
  562. package/dist/esm/invoice/invoice-assembly-code.d.ts.map +1 -1
  563. package/dist/esm/invoice/invoice-assembly-code.js +8 -3
  564. package/dist/esm/invoice/invoice-assembly-code.js.map +1 -1
  565. package/dist/esm/invoice/pdf-generator-code.d.ts.map +1 -1
  566. package/dist/esm/invoice/pdf-generator-code.js +2 -1
  567. package/dist/esm/invoice/pdf-generator-code.js.map +1 -1
  568. package/dist/esm/invoice/pdf-service-client-code.d.ts.map +1 -1
  569. package/dist/esm/invoice/pdf-service-client-code.js +15 -7
  570. package/dist/esm/invoice/pdf-service-client-code.js.map +1 -1
  571. package/dist/esm/newsletter/admin-route-code.d.ts +60 -0
  572. package/dist/esm/newsletter/admin-route-code.d.ts.map +1 -0
  573. package/dist/esm/newsletter/admin-route-code.js +295 -0
  574. package/dist/esm/newsletter/admin-route-code.js.map +1 -0
  575. package/dist/esm/newsletter/helper-code.d.ts +109 -0
  576. package/dist/esm/newsletter/helper-code.d.ts.map +1 -0
  577. package/dist/esm/newsletter/helper-code.js +656 -0
  578. package/dist/esm/newsletter/helper-code.js.map +1 -0
  579. package/dist/esm/newsletter/newsletter-scope.d.ts +65 -0
  580. package/dist/esm/newsletter/newsletter-scope.d.ts.map +1 -0
  581. package/dist/esm/newsletter/newsletter-scope.js +97 -0
  582. package/dist/esm/newsletter/newsletter-scope.js.map +1 -0
  583. package/dist/esm/newsletter/project-plugin.d.ts +18 -0
  584. package/dist/esm/newsletter/project-plugin.d.ts.map +1 -0
  585. package/dist/esm/newsletter/project-plugin.js +93 -0
  586. package/dist/esm/newsletter/project-plugin.js.map +1 -0
  587. package/dist/esm/newsletter/routes-code.d.ts +6 -0
  588. package/dist/esm/newsletter/routes-code.d.ts.map +1 -0
  589. package/dist/esm/newsletter/routes-code.js +175 -0
  590. package/dist/esm/newsletter/routes-code.js.map +1 -0
  591. package/dist/esm/nodes/account/account-compare-passwords.d.ts.map +1 -1
  592. package/dist/esm/nodes/account/account-compare-passwords.js +16 -6
  593. package/dist/esm/nodes/account/account-compare-passwords.js.map +1 -1
  594. package/dist/esm/nodes/account/account-delete-current.js +1 -1
  595. package/dist/esm/nodes/account/account-get-current.js +1 -1
  596. package/dist/esm/nodes/account/account-hash-password.d.ts.map +1 -1
  597. package/dist/esm/nodes/account/account-hash-password.js +15 -3
  598. package/dist/esm/nodes/account/account-hash-password.js.map +1 -1
  599. package/dist/esm/nodes/account/account-login.d.ts.map +1 -1
  600. package/dist/esm/nodes/account/account-login.js +23 -6
  601. package/dist/esm/nodes/account/account-login.js.map +1 -1
  602. package/dist/esm/nodes/account/account-logout.js +1 -1
  603. package/dist/esm/nodes/account/account-refresh-session.js +1 -1
  604. package/dist/esm/nodes/account/account-request-password-reset.d.ts +3 -0
  605. package/dist/esm/nodes/account/account-request-password-reset.d.ts.map +1 -0
  606. package/dist/esm/nodes/account/account-request-password-reset.js +43 -0
  607. package/dist/esm/nodes/account/account-request-password-reset.js.map +1 -0
  608. package/dist/esm/nodes/account/account-reset-password.d.ts +3 -0
  609. package/dist/esm/nodes/account/account-reset-password.d.ts.map +1 -0
  610. package/dist/esm/nodes/account/account-reset-password.js +41 -0
  611. package/dist/esm/nodes/account/account-reset-password.js.map +1 -0
  612. package/dist/esm/nodes/account/account-signup.d.ts.map +1 -1
  613. package/dist/esm/nodes/account/account-signup.js +82 -19
  614. package/dist/esm/nodes/account/account-signup.js.map +1 -1
  615. package/dist/esm/nodes/account/account-social-login.js +1 -1
  616. package/dist/esm/nodes/ai/ai-custom-prompt.d.ts.map +1 -1
  617. package/dist/esm/nodes/ai/ai-custom-prompt.js +20 -5
  618. package/dist/esm/nodes/ai/ai-custom-prompt.js.map +1 -1
  619. package/dist/esm/nodes/ai/ai-detect-language.d.ts.map +1 -1
  620. package/dist/esm/nodes/ai/ai-detect-language.js +20 -5
  621. package/dist/esm/nodes/ai/ai-detect-language.js.map +1 -1
  622. package/dist/esm/nodes/ai/ai-generate-text-embedding.d.ts.map +1 -1
  623. package/dist/esm/nodes/ai/ai-generate-text-embedding.js +10 -2
  624. package/dist/esm/nodes/ai/ai-generate-text-embedding.js.map +1 -1
  625. package/dist/esm/nodes/ai/ai-provider-utils-sources.generated.js +2 -2
  626. package/dist/esm/nodes/ai/ai-provider-utils-sources.generated.js.map +1 -1
  627. package/dist/esm/nodes/ai/ai-provider-utils.d.ts +31 -2
  628. package/dist/esm/nodes/ai/ai-provider-utils.d.ts.map +1 -1
  629. package/dist/esm/nodes/ai/ai-provider-utils.js +124 -10
  630. package/dist/esm/nodes/ai/ai-provider-utils.js.map +1 -1
  631. package/dist/esm/nodes/ai/ai-select-database-data.d.ts.map +1 -1
  632. package/dist/esm/nodes/ai/ai-select-database-data.js +6 -2
  633. package/dist/esm/nodes/ai/ai-select-database-data.js.map +1 -1
  634. package/dist/esm/nodes/ai/ai-sentiment-analysis.d.ts.map +1 -1
  635. package/dist/esm/nodes/ai/ai-sentiment-analysis.js +20 -5
  636. package/dist/esm/nodes/ai/ai-sentiment-analysis.js.map +1 -1
  637. package/dist/esm/nodes/ai/ai-summarization.d.ts.map +1 -1
  638. package/dist/esm/nodes/ai/ai-summarization.js +20 -5
  639. package/dist/esm/nodes/ai/ai-summarization.js.map +1 -1
  640. package/dist/esm/nodes/ai/ai-text-classifier.d.ts.map +1 -1
  641. package/dist/esm/nodes/ai/ai-text-classifier.js +20 -5
  642. package/dist/esm/nodes/ai/ai-text-classifier.js.map +1 -1
  643. package/dist/esm/nodes/ai/ai-text-transform.d.ts.map +1 -1
  644. package/dist/esm/nodes/ai/ai-text-transform.js +20 -5
  645. package/dist/esm/nodes/ai/ai-text-transform.js.map +1 -1
  646. package/dist/esm/nodes/analytics/analytics-track-outcome.d.ts +3 -0
  647. package/dist/esm/nodes/analytics/analytics-track-outcome.d.ts.map +1 -0
  648. package/dist/esm/nodes/analytics/analytics-track-outcome.js +107 -0
  649. package/dist/esm/nodes/analytics/analytics-track-outcome.js.map +1 -0
  650. package/dist/esm/nodes/cart/cart-price-order.d.ts.map +1 -1
  651. package/dist/esm/nodes/cart/cart-price-order.js +161 -2
  652. package/dist/esm/nodes/cart/cart-price-order.js.map +1 -1
  653. package/dist/esm/nodes/cost-bearing-node-types.d.ts +4 -0
  654. package/dist/esm/nodes/cost-bearing-node-types.d.ts.map +1 -0
  655. package/dist/esm/nodes/cost-bearing-node-types.js +39 -0
  656. package/dist/esm/nodes/cost-bearing-node-types.js.map +1 -0
  657. package/dist/esm/nodes/data/data-select.d.ts.map +1 -1
  658. package/dist/esm/nodes/data/data-select.js +12 -2
  659. package/dist/esm/nodes/data/data-select.js.map +1 -1
  660. package/dist/esm/nodes/email/email-mailersend.d.ts.map +1 -1
  661. package/dist/esm/nodes/email/email-mailersend.js +15 -11
  662. package/dist/esm/nodes/email/email-mailersend.js.map +1 -1
  663. package/dist/esm/nodes/email/email-mailgun.d.ts.map +1 -1
  664. package/dist/esm/nodes/email/email-mailgun.js +15 -15
  665. package/dist/esm/nodes/email/email-mailgun.js.map +1 -1
  666. package/dist/esm/nodes/email/email-postmark.d.ts.map +1 -1
  667. package/dist/esm/nodes/email/email-postmark.js +15 -15
  668. package/dist/esm/nodes/email/email-postmark.js.map +1 -1
  669. package/dist/esm/nodes/email/email-resend.d.ts.map +1 -1
  670. package/dist/esm/nodes/email/email-resend.js +15 -15
  671. package/dist/esm/nodes/email/email-resend.js.map +1 -1
  672. package/dist/esm/nodes/email/email-sendgrid.d.ts.map +1 -1
  673. package/dist/esm/nodes/email/email-sendgrid.js +15 -15
  674. package/dist/esm/nodes/email/email-sendgrid.js.map +1 -1
  675. package/dist/esm/nodes/email/html-escape-code.d.ts +3 -0
  676. package/dist/esm/nodes/email/html-escape-code.d.ts.map +1 -0
  677. package/dist/esm/nodes/email/html-escape-code.js +18 -0
  678. package/dist/esm/nodes/email/html-escape-code.js.map +1 -0
  679. package/dist/esm/nodes/email/message-trust.d.ts +40 -0
  680. package/dist/esm/nodes/email/message-trust.d.ts.map +1 -0
  681. package/dist/esm/nodes/email/message-trust.js +161 -0
  682. package/dist/esm/nodes/email/message-trust.js.map +1 -0
  683. package/dist/esm/nodes/email/outbound-message-guard.d.ts +113 -0
  684. package/dist/esm/nodes/email/outbound-message-guard.d.ts.map +1 -0
  685. package/dist/esm/nodes/email/outbound-message-guard.js +452 -0
  686. package/dist/esm/nodes/email/outbound-message-guard.js.map +1 -0
  687. package/dist/esm/nodes/email/trusted-html-code.d.ts +22 -0
  688. package/dist/esm/nodes/email/trusted-html-code.d.ts.map +1 -0
  689. package/dist/esm/nodes/email/trusted-html-code.js +49 -0
  690. package/dist/esm/nodes/email/trusted-html-code.js.map +1 -0
  691. package/dist/esm/nodes/general/general-custom-js.d.ts.map +1 -1
  692. package/dist/esm/nodes/general/general-custom-js.js +44 -7
  693. package/dist/esm/nodes/general/general-custom-js.js.map +1 -1
  694. package/dist/esm/nodes/general/general-http-request.d.ts.map +1 -1
  695. package/dist/esm/nodes/general/general-http-request.js +431 -45
  696. package/dist/esm/nodes/general/general-http-request.js.map +1 -1
  697. package/dist/esm/nodes/general/general-rate-limiter.d.ts.map +1 -1
  698. package/dist/esm/nodes/general/general-rate-limiter.js +46 -78
  699. package/dist/esm/nodes/general/general-rate-limiter.js.map +1 -1
  700. package/dist/esm/nodes/general/general-wait.d.ts +3 -0
  701. package/dist/esm/nodes/general/general-wait.d.ts.map +1 -0
  702. package/dist/esm/nodes/general/general-wait.js +78 -0
  703. package/dist/esm/nodes/general/general-wait.js.map +1 -0
  704. package/dist/esm/nodes/general/visitor-request.d.ts +44 -0
  705. package/dist/esm/nodes/general/visitor-request.d.ts.map +1 -0
  706. package/dist/esm/nodes/general/visitor-request.js +65 -0
  707. package/dist/esm/nodes/general/visitor-request.js.map +1 -0
  708. package/dist/esm/nodes/index.d.ts.map +1 -1
  709. package/dist/esm/nodes/index.js +7 -1
  710. package/dist/esm/nodes/index.js.map +1 -1
  711. package/dist/esm/nodes/integrations/integration-slack.d.ts.map +1 -1
  712. package/dist/esm/nodes/integrations/integration-slack.js +17 -6
  713. package/dist/esm/nodes/integrations/integration-slack.js.map +1 -1
  714. package/dist/esm/nodes/newsletter/newsletter-confirm.d.ts +3 -0
  715. package/dist/esm/nodes/newsletter/newsletter-confirm.d.ts.map +1 -0
  716. package/dist/esm/nodes/newsletter/newsletter-confirm.js +38 -0
  717. package/dist/esm/nodes/newsletter/newsletter-confirm.js.map +1 -0
  718. package/dist/esm/nodes/newsletter/newsletter-subscribe.d.ts +7 -0
  719. package/dist/esm/nodes/newsletter/newsletter-subscribe.d.ts.map +1 -0
  720. package/dist/esm/nodes/newsletter/newsletter-subscribe.js +66 -0
  721. package/dist/esm/nodes/newsletter/newsletter-subscribe.js.map +1 -0
  722. package/dist/esm/nodes/newsletter/newsletter-unsubscribe.d.ts +3 -0
  723. package/dist/esm/nodes/newsletter/newsletter-unsubscribe.d.ts.map +1 -0
  724. package/dist/esm/nodes/newsletter/newsletter-unsubscribe.js +39 -0
  725. package/dist/esm/nodes/newsletter/newsletter-unsubscribe.js.map +1 -0
  726. package/dist/esm/nodes/realtime/realtime-join-channel.d.ts.map +1 -1
  727. package/dist/esm/nodes/realtime/realtime-join-channel.js +5 -4
  728. package/dist/esm/nodes/realtime/realtime-join-channel.js.map +1 -1
  729. package/dist/esm/nodes/realtime/realtime-send-channel-event.d.ts.map +1 -1
  730. package/dist/esm/nodes/realtime/realtime-send-channel-event.js +11 -2
  731. package/dist/esm/nodes/realtime/realtime-send-channel-event.js.map +1 -1
  732. package/dist/esm/nodes/realtime/realtime-send-channel-message.d.ts.map +1 -1
  733. package/dist/esm/nodes/realtime/realtime-send-channel-message.js +11 -2
  734. package/dist/esm/nodes/realtime/realtime-send-channel-message.js.map +1 -1
  735. package/dist/esm/nodes/sms/sms-infobip.d.ts.map +1 -1
  736. package/dist/esm/nodes/sms/sms-infobip.js +11 -8
  737. package/dist/esm/nodes/sms/sms-infobip.js.map +1 -1
  738. package/dist/esm/nodes/sms/sms-smsapi.d.ts.map +1 -1
  739. package/dist/esm/nodes/sms/sms-smsapi.js +11 -8
  740. package/dist/esm/nodes/sms/sms-smsapi.js.map +1 -1
  741. package/dist/esm/nodes/sms/sms-textmagic.d.ts.map +1 -1
  742. package/dist/esm/nodes/sms/sms-textmagic.js +11 -8
  743. package/dist/esm/nodes/sms/sms-textmagic.js.map +1 -1
  744. package/dist/esm/nodes/sms/sms-twilio.d.ts.map +1 -1
  745. package/dist/esm/nodes/sms/sms-twilio.js +12 -10
  746. package/dist/esm/nodes/sms/sms-twilio.js.map +1 -1
  747. package/dist/esm/nodes/types.d.ts +8 -1
  748. package/dist/esm/nodes/types.d.ts.map +1 -1
  749. package/dist/esm/nodes/utility/utility-similarity-scoring.d.ts.map +1 -1
  750. package/dist/esm/nodes/utility/utility-similarity-scoring.js +29 -10
  751. package/dist/esm/nodes/utility/utility-similarity-scoring.js.map +1 -1
  752. package/dist/esm/page-access-guard-generator.d.ts +23 -0
  753. package/dist/esm/page-access-guard-generator.d.ts.map +1 -0
  754. package/dist/esm/page-access-guard-generator.js +131 -0
  755. package/dist/esm/page-access-guard-generator.js.map +1 -0
  756. package/dist/esm/password-reset-route-generator.d.ts +119 -0
  757. package/dist/esm/password-reset-route-generator.d.ts.map +1 -0
  758. package/dist/esm/password-reset-route-generator.js +448 -0
  759. package/dist/esm/password-reset-route-generator.js.map +1 -0
  760. package/dist/esm/payments/payment-core-code.d.ts.map +1 -1
  761. package/dist/esm/payments/payment-core-code.js +12 -7
  762. package/dist/esm/payments/payment-core-code.js.map +1 -1
  763. package/dist/esm/project-code-scanner.d.ts +11 -0
  764. package/dist/esm/project-code-scanner.d.ts.map +1 -0
  765. package/dist/esm/project-code-scanner.js +75 -0
  766. package/dist/esm/project-code-scanner.js.map +1 -0
  767. package/dist/esm/public-step-guards.d.ts +122 -0
  768. package/dist/esm/public-step-guards.d.ts.map +1 -0
  769. package/dist/esm/public-step-guards.js +280 -0
  770. package/dist/esm/public-step-guards.js.map +1 -0
  771. package/dist/esm/publish-refusals.d.ts +66 -0
  772. package/dist/esm/publish-refusals.d.ts.map +1 -0
  773. package/dist/esm/publish-refusals.js +271 -0
  774. package/dist/esm/publish-refusals.js.map +1 -0
  775. package/dist/esm/realtime-generator.d.ts +63 -1
  776. package/dist/esm/realtime-generator.d.ts.map +1 -1
  777. package/dist/esm/realtime-generator.js +401 -229
  778. package/dist/esm/realtime-generator.js.map +1 -1
  779. package/dist/esm/runtime-storage-generator.d.ts +32 -1
  780. package/dist/esm/runtime-storage-generator.d.ts.map +1 -1
  781. package/dist/esm/runtime-storage-generator.js +264 -11
  782. package/dist/esm/runtime-storage-generator.js.map +1 -1
  783. package/dist/esm/security-runtime/index.d.ts +14 -0
  784. package/dist/esm/security-runtime/index.d.ts.map +1 -0
  785. package/dist/esm/security-runtime/index.js +37 -0
  786. package/dist/esm/security-runtime/index.js.map +1 -0
  787. package/dist/esm/security-runtime/security-runtime-code.d.ts +53 -0
  788. package/dist/esm/security-runtime/security-runtime-code.d.ts.map +1 -0
  789. package/dist/esm/security-runtime/security-runtime-code.js +575 -0
  790. package/dist/esm/security-runtime/security-runtime-code.js.map +1 -0
  791. package/dist/esm/security-scanner.d.ts +72 -3
  792. package/dist/esm/security-scanner.d.ts.map +1 -1
  793. package/dist/esm/security-scanner.js +217 -8
  794. package/dist/esm/security-scanner.js.map +1 -1
  795. package/dist/esm/segment-splitter.d.ts.map +1 -1
  796. package/dist/esm/segment-splitter.js +10 -2
  797. package/dist/esm/segment-splitter.js.map +1 -1
  798. package/dist/esm/segment-trust.d.ts +36 -0
  799. package/dist/esm/segment-trust.d.ts.map +1 -1
  800. package/dist/esm/segment-trust.js +146 -2
  801. package/dist/esm/segment-trust.js.map +1 -1
  802. package/dist/esm/self-call-headers.d.ts +31 -0
  803. package/dist/esm/self-call-headers.d.ts.map +1 -0
  804. package/dist/esm/self-call-headers.js +43 -0
  805. package/dist/esm/self-call-headers.js.map +1 -0
  806. package/dist/esm/sent-email-log/index.d.ts +7 -0
  807. package/dist/esm/sent-email-log/index.d.ts.map +1 -1
  808. package/dist/esm/sent-email-log/index.js +15 -0
  809. package/dist/esm/sent-email-log/index.js.map +1 -1
  810. package/dist/esm/sent-email-log/sent-email-log-code.d.ts +7 -0
  811. package/dist/esm/sent-email-log/sent-email-log-code.d.ts.map +1 -1
  812. package/dist/esm/sent-email-log/sent-email-log-code.js +17 -3
  813. package/dist/esm/sent-email-log/sent-email-log-code.js.map +1 -1
  814. package/dist/esm/server-custom-node-call.d.ts +79 -0
  815. package/dist/esm/server-custom-node-call.d.ts.map +1 -0
  816. package/dist/esm/server-custom-node-call.js +278 -0
  817. package/dist/esm/server-custom-node-call.js.map +1 -0
  818. package/dist/esm/server-runtime-code.d.ts +39 -12
  819. package/dist/esm/server-runtime-code.d.ts.map +1 -1
  820. package/dist/esm/server-runtime-code.js +483 -40
  821. package/dist/esm/server-runtime-code.js.map +1 -1
  822. package/dist/esm/session-cookie-resolver.d.ts +3 -1
  823. package/dist/esm/session-cookie-resolver.d.ts.map +1 -1
  824. package/dist/esm/session-revocation-generator.d.ts +39 -0
  825. package/dist/esm/session-revocation-generator.d.ts.map +1 -0
  826. package/dist/esm/session-revocation-generator.js +172 -0
  827. package/dist/esm/session-revocation-generator.js.map +1 -0
  828. package/dist/esm/slack-message-values.d.ts +6 -0
  829. package/dist/esm/slack-message-values.d.ts.map +1 -0
  830. package/dist/esm/slack-message-values.js +68 -0
  831. package/dist/esm/slack-message-values.js.map +1 -0
  832. package/dist/esm/transactional-email-code.d.ts +11 -0
  833. package/dist/esm/transactional-email-code.d.ts.map +1 -1
  834. package/dist/esm/transactional-email-code.js +28 -4
  835. package/dist/esm/transactional-email-code.js.map +1 -1
  836. package/dist/esm/trigger-generator.d.ts +2 -0
  837. package/dist/esm/trigger-generator.d.ts.map +1 -1
  838. package/dist/esm/trigger-generator.js +15 -3
  839. package/dist/esm/trigger-generator.js.map +1 -1
  840. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  841. package/dist/esm/visitor-step-limits.d.ts +66 -0
  842. package/dist/esm/visitor-step-limits.d.ts.map +1 -0
  843. package/dist/esm/visitor-step-limits.js +181 -0
  844. package/dist/esm/visitor-step-limits.js.map +1 -0
  845. package/dist/esm/webhook-generator.d.ts.map +1 -1
  846. package/dist/esm/webhook-generator.js +93 -15
  847. package/dist/esm/webhook-generator.js.map +1 -1
  848. package/dist/esm/webhook-signature-verification.d.ts.map +1 -1
  849. package/dist/esm/webhook-signature-verification.js +13 -3
  850. package/dist/esm/webhook-signature-verification.js.map +1 -1
  851. package/dist/esm/workflow-auth-generator.d.ts +4 -1
  852. package/dist/esm/workflow-auth-generator.d.ts.map +1 -1
  853. package/dist/esm/workflow-auth-generator.js +8 -3
  854. package/dist/esm/workflow-auth-generator.js.map +1 -1
  855. package/dist/esm/workflow-component-plugin.js +12 -4
  856. package/dist/esm/workflow-component-plugin.js.map +1 -1
  857. package/dist/esm/workflow-project-plugin.d.ts.map +1 -1
  858. package/dist/esm/workflow-project-plugin.js +306 -60
  859. package/dist/esm/workflow-project-plugin.js.map +1 -1
  860. package/dist/esm/workflow-scope.d.ts.map +1 -1
  861. package/dist/esm/workflow-scope.js +5 -0
  862. package/dist/esm/workflow-scope.js.map +1 -1
  863. package/package.json +4 -4
  864. package/src/account-delete-route-generator.ts +28 -4
  865. package/src/api-route-generator.ts +712 -134
  866. package/src/auth-generator.ts +1471 -142
  867. package/src/automations/activity-kicks.ts +139 -0
  868. package/src/automations/app-events-source.ts +117 -0
  869. package/src/automations/automations-project-plugin.ts +202 -0
  870. package/src/automations/automations-scope.ts +196 -0
  871. package/src/automations/dispatcher-source.ts +1072 -0
  872. package/src/automations/event-bus-source.ts +428 -0
  873. package/src/automations/handler-module-generator.ts +107 -0
  874. package/src/automations/hydrators-source.ts +647 -0
  875. package/src/booking-calendar-feed-route-generator.ts +8 -0
  876. package/src/configured-nextauth-url.ts +17 -0
  877. package/src/cron-request-verification.ts +55 -5
  878. package/src/data-api-route-generator.ts +780 -43
  879. package/src/ecommerce/parameterized-stock-chain.ts +52 -5
  880. package/src/ecommerce/place-order-guards.ts +785 -0
  881. package/src/ecommerce-customhandler-rewriter.ts +55 -2
  882. package/src/executor-generator.ts +372 -60
  883. package/src/graph-utils.ts +33 -0
  884. package/src/index.ts +70 -0
  885. package/src/invoice/api-routes-code.ts +20 -7
  886. package/src/invoice/index.ts +11 -6
  887. package/src/invoice/invoice-assembly-code.ts +8 -3
  888. package/src/invoice/pdf-generator-code.ts +2 -1
  889. package/src/invoice/pdf-service-client-code.ts +15 -7
  890. package/src/newsletter/admin-route-code.ts +319 -0
  891. package/src/newsletter/helper-code.ts +748 -0
  892. package/src/newsletter/newsletter-scope.ts +116 -0
  893. package/src/newsletter/project-plugin.ts +119 -0
  894. package/src/newsletter/routes-code.ts +186 -0
  895. package/src/nodes/account/account-compare-passwords.ts +17 -6
  896. package/src/nodes/account/account-delete-current.ts +1 -1
  897. package/src/nodes/account/account-get-current.ts +1 -1
  898. package/src/nodes/account/account-hash-password.ts +19 -3
  899. package/src/nodes/account/account-login.ts +24 -7
  900. package/src/nodes/account/account-logout.ts +1 -1
  901. package/src/nodes/account/account-refresh-session.ts +1 -1
  902. package/src/nodes/account/account-request-password-reset.ts +47 -0
  903. package/src/nodes/account/account-reset-password.ts +45 -0
  904. package/src/nodes/account/account-signup.ts +86 -20
  905. package/src/nodes/account/account-social-login.ts +1 -1
  906. package/src/nodes/ai/ai-custom-prompt.ts +25 -6
  907. package/src/nodes/ai/ai-detect-language.ts +25 -6
  908. package/src/nodes/ai/ai-generate-text-embedding.ts +16 -3
  909. package/src/nodes/ai/ai-provider-utils-sources.generated.ts +2 -2
  910. package/src/nodes/ai/ai-provider-utils.ts +135 -10
  911. package/src/nodes/ai/ai-select-database-data.ts +8 -3
  912. package/src/nodes/ai/ai-sentiment-analysis.ts +25 -6
  913. package/src/nodes/ai/ai-summarization.ts +25 -6
  914. package/src/nodes/ai/ai-text-classifier.ts +25 -6
  915. package/src/nodes/ai/ai-text-transform.ts +25 -6
  916. package/src/nodes/analytics/analytics-track-outcome.ts +111 -0
  917. package/src/nodes/cart/cart-price-order.ts +200 -2
  918. package/src/nodes/cost-bearing-node-types.ts +45 -0
  919. package/src/nodes/data/data-select.ts +11 -2
  920. package/src/nodes/email/email-mailersend.ts +16 -8
  921. package/src/nodes/email/email-mailgun.ts +17 -12
  922. package/src/nodes/email/email-postmark.ts +17 -12
  923. package/src/nodes/email/email-resend.ts +17 -12
  924. package/src/nodes/email/email-sendgrid.ts +17 -12
  925. package/src/nodes/email/html-escape-code.ts +21 -0
  926. package/src/nodes/email/message-trust.ts +198 -0
  927. package/src/nodes/email/outbound-message-guard.ts +572 -0
  928. package/src/nodes/email/trusted-html-code.ts +49 -0
  929. package/src/nodes/general/general-custom-js.ts +46 -7
  930. package/src/nodes/general/general-http-request.ts +449 -46
  931. package/src/nodes/general/general-rate-limiter.ts +54 -81
  932. package/src/nodes/general/general-wait.ts +80 -0
  933. package/src/nodes/general/visitor-request.ts +79 -0
  934. package/src/nodes/index.ts +12 -0
  935. package/src/nodes/integrations/integration-slack.ts +21 -6
  936. package/src/nodes/newsletter/newsletter-confirm.ts +44 -0
  937. package/src/nodes/newsletter/newsletter-subscribe.ts +78 -0
  938. package/src/nodes/newsletter/newsletter-unsubscribe.ts +43 -0
  939. package/src/nodes/realtime/realtime-join-channel.ts +5 -4
  940. package/src/nodes/realtime/realtime-send-channel-event.ts +13 -2
  941. package/src/nodes/realtime/realtime-send-channel-message.ts +13 -2
  942. package/src/nodes/sms/sms-infobip.ts +14 -4
  943. package/src/nodes/sms/sms-smsapi.ts +14 -4
  944. package/src/nodes/sms/sms-textmagic.ts +14 -4
  945. package/src/nodes/sms/sms-twilio.ts +14 -4
  946. package/src/nodes/types.ts +9 -1
  947. package/src/nodes/utility/utility-similarity-scoring.ts +33 -12
  948. package/src/page-access-guard-generator.ts +154 -0
  949. package/src/password-reset-route-generator.ts +531 -0
  950. package/src/payments/payment-core-code.ts +12 -7
  951. package/src/project-code-scanner.ts +98 -0
  952. package/src/public-step-guards.ts +448 -0
  953. package/src/publish-refusals.ts +459 -0
  954. package/src/realtime-generator.ts +457 -234
  955. package/src/runtime-storage-generator.ts +270 -11
  956. package/src/security-runtime/index.ts +53 -0
  957. package/src/security-runtime/security-runtime-code.ts +579 -0
  958. package/src/security-scanner.ts +253 -10
  959. package/src/segment-splitter.ts +10 -2
  960. package/src/segment-trust.ts +205 -2
  961. package/src/self-call-headers.ts +46 -0
  962. package/src/sent-email-log/index.ts +16 -0
  963. package/src/sent-email-log/sent-email-log-code.ts +30 -4
  964. package/src/server-custom-node-call.ts +331 -0
  965. package/src/server-runtime-code.ts +488 -40
  966. package/src/session-revocation-generator.ts +177 -0
  967. package/src/slack-message-values.ts +84 -0
  968. package/src/transactional-email-code.ts +30 -4
  969. package/src/trigger-generator.ts +19 -3
  970. package/src/visitor-step-limits.ts +228 -0
  971. package/src/webhook-generator.ts +94 -14
  972. package/src/webhook-signature-verification.ts +13 -3
  973. package/src/workflow-auth-generator.ts +9 -4
  974. package/src/workflow-component-plugin.ts +14 -4
  975. package/src/workflow-project-plugin.ts +374 -61
  976. package/src/workflow-scope.ts +6 -0
@@ -1 +1 @@
1
- {"version":3,"file":"realtime-generator.js","sourceRoot":"","sources":["../../src/realtime-generator.ts"],"names":[],"mappings":";;;AAAO,MAAM,gCAAgC,GAAG,GAAW,EAAE;IAC3D,OAAO;;;;;;;;;;;;;;CAcR,CAAA;AACD,CAAC,CAAA;AAhBY,QAAA,gCAAgC,oCAgB5C;AAEM,MAAM,0BAA0B,GAAG,GAAW,EAAE;IACrD,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsJR,CAAA;AACD,CAAC,CAAA;AAxJY,QAAA,0BAA0B,8BAwJtC;AAEM,MAAM,0BAA0B,GAAG,GAAW,EAAE;IACrD,OAAO;;;;;;;;;;;;;;;;;;;;CAoBR,CAAA;AACD,CAAC,CAAA;AAtBY,QAAA,0BAA0B,8BAsBtC;AAEM,MAAM,yBAAyB,GAAG,GAAW,EAAE;IACpD,OAAO;;;;;;;;;;;;;;;;;;;;CAoBR,CAAA;AACD,CAAC,CAAA;AAtBY,QAAA,yBAAyB,6BAsBrC;AAEM,MAAM,0BAA0B,GAAG,GAAW,EAAE;IACrD,OAAO;;;;;;;;;;;;;;;;;;;;CAoBR,CAAA;AACD,CAAC,CAAA;AAtBY,QAAA,0BAA0B,8BAsBtC;AAEM,MAAM,4BAA4B,GAAG,GAAW,EAAE;IACvD,OAAO;;;;;;;;;;;;;;;;;;;;CAoBR,CAAA;AACD,CAAC,CAAA;AAtBY,QAAA,4BAA4B,gCAsBxC;AAEM,MAAM,0BAA0B,GAAG,GAAW,EAAE;IACrD,OAAO;;;;;;;;;;;;;;;;;;;;CAoBR,CAAA;AACD,CAAC,CAAA;AAtBY,QAAA,0BAA0B,8BAsBtC;AAEM,MAAM,iCAAiC,GAAG,GAAW,EAAE;IAC5D,OAAO;;;;;;;;;;;;;;;;;;;;;;CAsBR,CAAA;AACD,CAAC,CAAA;AAxBY,QAAA,iCAAiC,qCAwB7C;AAEM,MAAM,oCAAoC,GAAG,GAAW,EAAE;IAC/D,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;CAyBR,CAAA;AACD,CAAC,CAAA;AA3BY,QAAA,oCAAoC,wCA2BhD"}
1
+ {"version":3,"file":"realtime-generator.js","sourceRoot":"","sources":["../../src/realtime-generator.ts"],"names":[],"mappings":"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"}
@@ -45,5 +45,36 @@ export declare const TRUSTED_UPLOAD_ROLES: ReadonlyArray<string>;
45
45
  export declare const VISITOR_UPLOAD_MIME_TYPES: ReadonlyArray<string>;
46
46
  export declare const VISITOR_MAX_FILE_BYTES: number;
47
47
  export declare const VISITOR_MAX_FILES = 10;
48
- export declare const generateRuntimeStorageUploadRoute: () => string;
48
+ /**
49
+ * How much one visitor (by address, IPv6 by its /64) and the whole site may
50
+ * upload, through the shared security runtime:
51
+ * - VISITOR_UPLOAD_LIMITS: requests, `[limit, windowSeconds]`, checked before
52
+ * the body is read;
53
+ * - VISITOR_UPLOAD_MB_PER_DAY: bytes, counted per file in whole MB (a file
54
+ * counts at least 1), after the form passed its checks;
55
+ * - SITE_VISITOR_FILES_PER_DAY: files from all visitors together, counted only
56
+ * for forms that passed, so junk requests cannot pause everyone's uploads.
57
+ * The storage worker also holds all guests together to their share of the
58
+ * project's quota. Without these a guest could fill the merchant's quota with
59
+ * allowed files until the admin's own uploads fail.
60
+ */
61
+ export declare const VISITOR_UPLOAD_LIMITS: ReadonlyArray<[number, number]>;
62
+ export declare const VISITOR_UPLOAD_MB_PER_DAY = 25;
63
+ export declare const SITE_VISITOR_FILES_PER_DAY = 500;
64
+ /** The true values of the `private` flag, read the way the storage worker reads them. */
65
+ export declare const PRIVATE_FLAG_VALUES: ReadonlyArray<string>;
66
+ /** The extensions a proven type keeps; any other is replaced by the first. */
67
+ export declare const PROVEN_TYPE_EXTENSIONS: Record<string, string[]>;
68
+ /**
69
+ * Tells the storage worker which policy a forwarded upload gets. Only this
70
+ * route sends it (the request carries the project key): `visitor` uploads
71
+ * meet the worker's own allow-list as well as this route's, `trusted` ones
72
+ * (the store's server code, an admin) upload any type as before. A site
73
+ * exported before this header existed sends none, and the worker refuses
74
+ * active content (HTML, SVG, XML, scripts) from it.
75
+ */
76
+ export declare const UPLOAD_ACCESS_HEADER = "x-teleport-upload-access";
77
+ export declare const generateRuntimeStorageUploadRoute: (options?: {
78
+ withSessionRevocation?: boolean;
79
+ }) => string;
49
80
  //# 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":"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
+ {"version":3,"file":"runtime-storage-generator.d.ts","sourceRoot":"","sources":["../../src/runtime-storage-generator.ts"],"names":[],"mappings":"AAWA,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;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,qBAAqB,EAAE,aAAa,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAGjE,CAAA;AACD,eAAO,MAAM,yBAAyB,KAAK,CAAA;AAC3C,eAAO,MAAM,0BAA0B,MAAM,CAAA;AAE7C,yFAAyF;AACzF,eAAO,MAAM,mBAAmB,EAAE,aAAa,CAAC,MAAM,CAAwB,CAAA;AAE9E,8EAA8E;AAC9E,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAM3D,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,6BAA6B,CAAA;AAE9D,eAAO,MAAM,iCAAiC,aACnC;IAAE,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAAE,KAC3C,MAsfF,CAAA"}
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateRuntimeStorageUploadRoute = exports.VISITOR_MAX_FILES = exports.VISITOR_MAX_FILE_BYTES = exports.VISITOR_UPLOAD_MIME_TYPES = exports.TRUSTED_UPLOAD_ROLES = exports.UPLOAD_PROXY_TIMEOUT_MS = exports.needsRuntimeStorageRoute = void 0;
3
+ exports.generateRuntimeStorageUploadRoute = exports.UPLOAD_ACCESS_HEADER = exports.PROVEN_TYPE_EXTENSIONS = exports.PRIVATE_FLAG_VALUES = exports.SITE_VISITOR_FILES_PER_DAY = exports.VISITOR_UPLOAD_MB_PER_DAY = exports.VISITOR_UPLOAD_LIMITS = exports.VISITOR_MAX_FILES = exports.VISITOR_MAX_FILE_BYTES = exports.VISITOR_UPLOAD_MIME_TYPES = exports.TRUSTED_UPLOAD_ROLES = exports.UPLOAD_PROXY_TIMEOUT_MS = exports.needsRuntimeStorageRoute = void 0;
4
4
  const session_cookie_resolver_1 = require("./session-cookie-resolver");
5
5
  const workflow_auth_generator_1 = require("./workflow-auth-generator");
6
+ const security_runtime_1 = require("./security-runtime");
6
7
  const FILE_STORAGE_NODE_TYPES = new Set([
7
8
  'file-storage-upload',
8
9
  'file-storage-list',
@@ -70,7 +71,45 @@ exports.VISITOR_UPLOAD_MIME_TYPES = [
70
71
  ];
71
72
  exports.VISITOR_MAX_FILE_BYTES = 5 * 1024 * 1024;
72
73
  exports.VISITOR_MAX_FILES = 10;
73
- const generateRuntimeStorageUploadRoute = () => {
74
+ /**
75
+ * How much one visitor (by address, IPv6 by its /64) and the whole site may
76
+ * upload, through the shared security runtime:
77
+ * - VISITOR_UPLOAD_LIMITS: requests, `[limit, windowSeconds]`, checked before
78
+ * the body is read;
79
+ * - VISITOR_UPLOAD_MB_PER_DAY: bytes, counted per file in whole MB (a file
80
+ * counts at least 1), after the form passed its checks;
81
+ * - SITE_VISITOR_FILES_PER_DAY: files from all visitors together, counted only
82
+ * for forms that passed, so junk requests cannot pause everyone's uploads.
83
+ * The storage worker also holds all guests together to their share of the
84
+ * project's quota. Without these a guest could fill the merchant's quota with
85
+ * allowed files until the admin's own uploads fail.
86
+ */
87
+ exports.VISITOR_UPLOAD_LIMITS = [
88
+ [20, 3600],
89
+ [60, 86400],
90
+ ];
91
+ exports.VISITOR_UPLOAD_MB_PER_DAY = 25;
92
+ exports.SITE_VISITOR_FILES_PER_DAY = 500;
93
+ /** The true values of the `private` flag, read the way the storage worker reads them. */
94
+ exports.PRIVATE_FLAG_VALUES = ['true', '1', 'yes'];
95
+ /** The extensions a proven type keeps; any other is replaced by the first. */
96
+ exports.PROVEN_TYPE_EXTENSIONS = {
97
+ 'image/jpeg': ['.jpg', '.jpeg'],
98
+ 'image/png': ['.png'],
99
+ 'image/webp': ['.webp'],
100
+ 'image/gif': ['.gif'],
101
+ 'application/pdf': ['.pdf'],
102
+ };
103
+ /**
104
+ * Tells the storage worker which policy a forwarded upload gets. Only this
105
+ * route sends it (the request carries the project key): `visitor` uploads
106
+ * meet the worker's own allow-list as well as this route's, `trusted` ones
107
+ * (the store's server code, an admin) upload any type as before. A site
108
+ * exported before this header existed sends none, and the worker refuses
109
+ * active content (HTML, SVG, XML, scripts) from it.
110
+ */
111
+ exports.UPLOAD_ACCESS_HEADER = 'x-teleport-upload-access';
112
+ const generateRuntimeStorageUploadRoute = (options = {}) => {
74
113
  return `var RUNTIME_STORAGE_URL = process.env.RUNTIME_STORAGE_URL;
75
114
  var RUNTIME_STORAGE_API_KEY = process.env.RUNTIME_STORAGE_API_KEY;
76
115
  var RUNTIME_STORAGE_PROJECT_ID = process.env.RUNTIME_STORAGE_PROJECT_ID;
@@ -79,7 +118,9 @@ var RUNTIME_STORAGE_PROJECT_ID = process.env.RUNTIME_STORAGE_PROJECT_ID;
79
118
  // must become a 504, never a request the browser waits on forever.
80
119
  var UPLOAD_TIMEOUT_MS = ${exports.UPLOAD_PROXY_TIMEOUT_MS};
81
120
 
82
- ${(0, session_cookie_resolver_1.generateCommonJsSessionTokenResolverCode)()}
121
+ ${(0, session_cookie_resolver_1.generateCommonJsSessionTokenResolverCode)('../../..', {
122
+ withRevocation: options.withSessionRevocation !== false,
123
+ })}
83
124
  ${workflow_auth_generator_1.ROLE_OF_TOKEN_CODE}
84
125
 
85
126
  // What a visitor may upload — see TRUSTED_UPLOAD_ROLES in the generator.
@@ -93,6 +134,14 @@ var VISITOR_MAX_REQUEST_BYTES = VISITOR_MAX_FILES * VISITOR_MAX_FILE_BYTES + 256
93
134
  var CRLF = Buffer.from([13, 10]);
94
135
  var BLANK_LINE = Buffer.from([13, 10, 13, 10]);
95
136
 
137
+ var __security = require('${(0, security_runtime_1.securityRuntimeSpecifier)('../../..')}');
138
+ var VISITOR_UPLOAD_LIMITS = ${JSON.stringify(exports.VISITOR_UPLOAD_LIMITS)};
139
+ var VISITOR_UPLOAD_MB_PER_DAY = ${exports.VISITOR_UPLOAD_MB_PER_DAY};
140
+ var SITE_VISITOR_FILES_PER_DAY = ${exports.SITE_VISITOR_FILES_PER_DAY};
141
+ var PRIVATE_FLAG_VALUES = ${JSON.stringify(exports.PRIVATE_FLAG_VALUES)};
142
+ var PROVEN_TYPE_EXTENSIONS = ${JSON.stringify(exports.PROVEN_TYPE_EXTENSIONS)};
143
+ var UPLOAD_ACCESS_HEADER = '${exports.UPLOAD_ACCESS_HEADER}';
144
+
96
145
  // Only server code can read NEXTAUTH_SECRET, so a browser cannot present it.
97
146
  function presentsAppSecret(req) {
98
147
  var given = req && req.headers ? req.headers['x-internal-data-secret'] : '';
@@ -155,23 +204,113 @@ function multipartBoundary(contentType) {
155
204
  return match ? (match[1] || match[2] || '').trim() : '';
156
205
  }
157
206
 
207
+ // RFC 7230 token characters: what busboy accepts as a disposition type or a
208
+ // parameter name.
209
+ var TOKEN_CHAR = /[!#$%&'*+.^_\\x60|~0-9A-Za-z-]/;
210
+
211
+ // A Content-Disposition value read the way busboy (the storage worker's
212
+ // parser) reads it: the type, then ';'-separated parameters whose value is a
213
+ // token, a quoted string (backslash escapes) or, for a name ending in '*', an
214
+ // RFC 5987 extended value (charset'language'percent-encoded). null when it is
215
+ // malformed. Deciding "is this a file" on any other reading lets a part the
216
+ // worker stores as a file pass this route as a plain field.
217
+ function parseDisposition(value) {
218
+ var i = 0;
219
+ while (i < value.length && TOKEN_CHAR.test(value[i])) i++;
220
+ var type = value.slice(0, i).toLowerCase();
221
+ if (!type) return null;
222
+ var params = {};
223
+ while (i < value.length) {
224
+ while (value[i] === ' ' || value[i] === '\\t') i++;
225
+ if (i >= value.length) break;
226
+ if (value[i] !== ';') return null;
227
+ i++;
228
+ while (value[i] === ' ' || value[i] === '\\t') i++;
229
+ var nameStart = i;
230
+ while (i < value.length && TOKEN_CHAR.test(value[i])) i++;
231
+ if (i === nameStart || value[i] !== '=') return null;
232
+ var name = value.slice(nameStart, i).toLowerCase();
233
+ i++;
234
+ var paramValue = '';
235
+ if (name.charAt(name.length - 1) === '*') {
236
+ var ext = /^([^']*)'[^']*'([^;\\s]*)/.exec(value.slice(i));
237
+ if (!ext) return null;
238
+ i += ext[0].length;
239
+ try {
240
+ paramValue = /^utf-?8$/i.test(ext[1])
241
+ ? decodeURIComponent(ext[2])
242
+ : unescape(ext[2]);
243
+ } catch (e) {
244
+ return null;
245
+ }
246
+ } else if (value[i] === '"') {
247
+ i++;
248
+ var closed = false;
249
+ while (i < value.length) {
250
+ var ch = value[i];
251
+ if (ch === '\\\\' && i + 1 < value.length) {
252
+ paramValue += value[i + 1];
253
+ i += 2;
254
+ continue;
255
+ }
256
+ if (ch === '"') {
257
+ closed = true;
258
+ i++;
259
+ break;
260
+ }
261
+ paramValue += ch;
262
+ i++;
263
+ }
264
+ if (!closed) return null;
265
+ } else {
266
+ var valueStart = i;
267
+ while (i < value.length && TOKEN_CHAR.test(value[i])) i++;
268
+ if (i === valueStart) return null;
269
+ paramValue = value.slice(valueStart, i);
270
+ }
271
+ if (!Object.prototype.hasOwnProperty.call(params, name)) params[name] = paramValue;
272
+ }
273
+ return { type: type, params: params };
274
+ }
275
+
276
+ // One part's name, filename and declared type. A file is what the storage
277
+ // worker stores as one: a part whose 'filename*' or 'filename' is not empty
278
+ // ('filename*' first), quoted, unquoted or extended alike. The ambiguous flag marks a
279
+ // part two parsers could read differently (a second disposition, a folded
280
+ // header line, a disposition that is not well-formed form-data); a visitor's
281
+ // form with one is refused.
158
282
  function readPart(headerText, data) {
159
- var part = { name: '', filename: null, type: '', data: data };
283
+ var part = { name: '', filename: null, type: '', data: data, ambiguous: false };
284
+ var sawDisposition = false;
160
285
  var lines = headerText.split(String.fromCharCode(13, 10));
161
286
  for (var i = 0; i < lines.length; i++) {
287
+ if (lines[i].charAt(0) === ' ' || lines[i].charAt(0) === '\\t') {
288
+ part.ambiguous = true;
289
+ continue;
290
+ }
162
291
  var colon = lines[i].indexOf(':');
163
292
  if (colon <= 0) continue;
164
293
  var key = lines[i].slice(0, colon).trim().toLowerCase();
165
294
  var value = lines[i].slice(colon + 1).trim();
166
295
  if (key === 'content-disposition') {
167
- var name = /[; ]name="([^"]*)"/i.exec(value);
168
- var filename = /filename="([^"]*)"/i.exec(value);
169
- part.name = name ? name[1] : '';
170
- part.filename = filename ? filename[1] : null;
296
+ if (sawDisposition) {
297
+ part.ambiguous = true;
298
+ continue;
299
+ }
300
+ sawDisposition = true;
301
+ var disposition = parseDisposition(value);
302
+ if (!disposition || disposition.type !== 'form-data') {
303
+ part.ambiguous = true;
304
+ continue;
305
+ }
306
+ part.name = disposition.params.name || '';
307
+ var filename = disposition.params['filename*'] || disposition.params.filename || '';
308
+ part.filename = filename ? filename : null;
171
309
  } else if (key === 'content-type') {
172
310
  part.type = value.split(';')[0].trim().toLowerCase();
173
311
  }
174
312
  }
313
+ if (!sawDisposition) part.ambiguous = true;
175
314
  return part;
176
315
  }
177
316
 
@@ -215,8 +354,12 @@ function visitorUploadRefusal(parts) {
215
354
  var files = 0;
216
355
  for (var i = 0; i < parts.length; i++) {
217
356
  var part = parts[i];
357
+ if (part.ambiguous) {
358
+ return { status: 400, code: 'UPLOAD_INVALID', message: 'The upload is not a file form.' };
359
+ }
218
360
  if (part.filename === null) {
219
- if (part.name === 'private' && String(part.data.toString('utf8')).trim() === 'true') {
361
+ // Every value the storage worker takes as private (true, 1, yes; any case).
362
+ if (part.name === 'private' && PRIVATE_FLAG_VALUES.indexOf(part.data.toString('utf8').trim().toLowerCase()) !== -1) {
220
363
  return { status: 403, code: 'UPLOAD_PRIVATE_FORBIDDEN', message: 'Only the store can upload private files.' };
221
364
  }
222
365
  continue;
@@ -238,6 +381,103 @@ function visitorUploadRefusal(parts) {
238
381
  return null;
239
382
  }
240
383
 
384
+ // The file's base name with the extension its proven type has: x.html holding
385
+ // PNG bytes is stored as x.png, never under a name that says it is a page.
386
+ function provenFileName(filename, type) {
387
+ var base = String(filename).split(/[\\\\/]/).pop() || 'file';
388
+ var allowed = PROVEN_TYPE_EXTENSIONS[type] || [];
389
+ var dot = base.lastIndexOf('.');
390
+ var ext = dot > 0 ? base.slice(dot).toLowerCase() : '';
391
+ if (allowed.indexOf(ext) !== -1) return base;
392
+ var stem = dot > 0 ? base.slice(0, dot) : base;
393
+ var stemDot = stem.lastIndexOf('.');
394
+ if (stemDot > 0 && allowed.indexOf(stem.slice(stemDot).toLowerCase()) !== -1) return stem;
395
+ return (stem || 'file') + (allowed[0] || '');
396
+ }
397
+
398
+ // Header-safe: no quote, backslash or control character survives.
399
+ function headerSafe(text) {
400
+ return String(text).replace(/["\\\\\\u0000-\\u001f\\u007f]/g, '_');
401
+ }
402
+
403
+ // The checked form, written afresh: one quoted disposition per part, each
404
+ // file with the type its bytes proved and its base name, under a boundary of
405
+ // our own. The storage worker parses this and nothing else, so what it stores
406
+ // is exactly what visitorUploadRefusal passed — not a second reading of the
407
+ // visitor's bytes. null when the boundary cannot be made unique.
408
+ function serializeVisitorForm(parts) {
409
+ for (var attempt = 0; attempt < 3; attempt++) {
410
+ var boundary = '----tqupload' + require('crypto').randomBytes(16).toString('hex');
411
+ var marker = Buffer.from('--' + boundary);
412
+ var clash = false;
413
+ var chunks = [];
414
+ for (var i = 0; i < parts.length && !clash; i++) {
415
+ var part = parts[i];
416
+ if (part.data.indexOf(marker) !== -1) {
417
+ clash = true;
418
+ break;
419
+ }
420
+ var head = '--' + boundary + '\\r\\nContent-Disposition: form-data; name="' + headerSafe(part.name) + '"';
421
+ if (part.filename !== null) {
422
+ var type = sniffMimeType(part.data);
423
+ head += '; filename="' + headerSafe(provenFileName(part.filename, type)) + '"\\r\\nContent-Type: ' + type;
424
+ }
425
+ chunks.push(Buffer.from(head + '\\r\\n\\r\\n', 'utf8'), part.data, CRLF);
426
+ }
427
+ if (clash) continue;
428
+ chunks.push(Buffer.from('--' + boundary + '--\\r\\n'));
429
+ return { boundary: boundary, body: Buffer.concat(chunks) };
430
+ }
431
+ return null;
432
+ }
433
+
434
+ // A visitor's request allowance, before the body is read.
435
+ // false = the 429 is already sent.
436
+ async function visitorMayUpload(req, res) {
437
+ for (var i = 0; i < VISITOR_UPLOAD_LIMITS.length; i++) {
438
+ var ok = await __security.rateLimitRequest(req, res, {
439
+ scope: 'runtime-storage-upload',
440
+ limit: VISITOR_UPLOAD_LIMITS[i][0],
441
+ windowSeconds: VISITOR_UPLOAD_LIMITS[i][1],
442
+ });
443
+ if (!ok) return false;
444
+ }
445
+ return true;
446
+ }
447
+
448
+ // A checked form's cost, per file: its size in whole MB out of the visitor's
449
+ // daily byte budget, then one file out of the site's daily visitor files.
450
+ // false = the 429 is already sent.
451
+ async function visitorMayStore(req, res, parts) {
452
+ var files = 0;
453
+ for (var i = 0; i < parts.length; i++) {
454
+ if (parts[i].filename === null) continue;
455
+ files += 1;
456
+ var units = Math.max(1, Math.ceil(parts[i].data.length / 1048576));
457
+ for (var u = 0; u < units; u++) {
458
+ var ok = await __security.rateLimitRequest(req, res, {
459
+ scope: 'runtime-storage-upload-mb',
460
+ limit: VISITOR_UPLOAD_MB_PER_DAY,
461
+ windowSeconds: 86400,
462
+ });
463
+ if (!ok) return false;
464
+ }
465
+ }
466
+ for (var f = 0; f < files; f++) {
467
+ var site = await __security.rateLimit({
468
+ key: 'site:visitor-uploads',
469
+ limit: SITE_VISITOR_FILES_PER_DAY,
470
+ windowSeconds: 86400,
471
+ });
472
+ if (!site.allowed) {
473
+ res.setHeader('Retry-After', String(site.retryAfter));
474
+ refuse(res, 429, 'UPLOAD_LIMIT_REACHED', 'Uploads are paused for now. Please try again later.');
475
+ return false;
476
+ }
477
+ }
478
+ return true;
479
+ }
480
+
241
481
  module.exports = async function handler(req, res) {
242
482
  if (req.method !== 'POST') {
243
483
  res.status(405).json({ error: 'Method not allowed' });
@@ -252,8 +492,10 @@ module.exports = async function handler(req, res) {
252
492
  var trusted = await isTrustedUploader(req);
253
493
  var body = req;
254
494
  var contentLength = req.headers['content-length'];
495
+ var contentType = req.headers['content-type'];
255
496
 
256
497
  if (!trusted) {
498
+ if (!(await visitorMayUpload(req, res))) return;
257
499
  var declaredLength = parseInt(contentLength, 10);
258
500
  if (!isNaN(declaredLength) && declaredLength > VISITOR_MAX_REQUEST_BYTES) {
259
501
  refuse(res, 413, 'UPLOAD_TOO_LARGE', 'The upload is too large.');
@@ -284,6 +526,14 @@ module.exports = async function handler(req, res) {
284
526
  refuse(res, refusal.status, refusal.code, refusal.message);
285
527
  return;
286
528
  }
529
+ if (!(await visitorMayStore(req, res, parts))) return;
530
+ var checked = serializeVisitorForm(parts);
531
+ if (!checked) {
532
+ refuse(res, 400, 'UPLOAD_INVALID', 'The upload could not be read.');
533
+ return;
534
+ }
535
+ body = checked.body;
536
+ contentType = 'multipart/form-data; boundary=' + checked.boundary;
287
537
  contentLength = String(body.length);
288
538
  }
289
539
 
@@ -300,9 +550,12 @@ module.exports = async function handler(req, res) {
300
550
  var headers = {
301
551
  'Authorization': 'Bearer ' + RUNTIME_STORAGE_API_KEY,
302
552
  };
553
+ // Which of the storage worker's policies this upload gets (only this
554
+ // server can send it: the request carries the project key).
555
+ headers[UPLOAD_ACCESS_HEADER] = trusted ? 'trusted' : 'visitor';
303
556
 
304
- if (req.headers['content-type']) {
305
- headers['content-type'] = req.headers['content-type'];
557
+ if (contentType) {
558
+ headers['content-type'] = contentType;
306
559
  }
307
560
  if (contentLength) {
308
561
  headers['content-length'] = contentLength;
@@ -312,7 +565,7 @@ module.exports = async function handler(req, res) {
312
565
  method: 'POST',
313
566
  headers: headers,
314
567
  // A trusted caller's form is streamed through untouched; a visitor's was
315
- // read in full to be checked, and is forwarded byte for byte.
568
+ // read in full, checked, and is forwarded as the form it was checked as.
316
569
  body: body,
317
570
  duplex: 'half',
318
571
  signal: controller.signal,
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-storage-generator.js","sourceRoot":"","sources":["../../src/runtime-storage-generator.ts"],"names":[],"mappings":";;;AAAA,uEAAoF;AACpF,uEAA8D;AAE9D,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC;IACtC,qBAAqB;IACrB,mBAAmB;IACnB,0BAA0B;IAC1B,qBAAqB;CACtB,CAAC,CAAA;AAEK,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;AAPY,QAAA,wBAAwB,4BAOpC;AAED;;;;;;;;;;;;;;;;GAgBG;AACU,QAAA,uBAAuB,GAAG,MAAM,CAAA;AAE7C;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACU,QAAA,oBAAoB,GAA0B,CAAC,OAAO,CAAC,CAAA;AACvD,QAAA,yBAAyB,GAA0B;IAC9D,YAAY;IACZ,WAAW;IACX,YAAY;IACZ,WAAW;IACX,iBAAiB;CAClB,CAAA;AACY,QAAA,sBAAsB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAA;AACxC,QAAA,iBAAiB,GAAG,EAAE,CAAA;AAE5B,MAAM,iCAAiC,GAAG,GAAW,EAAE;IAC5D,OAAO;;;;;;0BAMiB,+BAAuB;;EAE/C,IAAA,kEAAwC,GAAE;EAC1C,4CAAkB;;;6BAGS,IAAI,CAAC,SAAS,CAAC,4BAAoB,CAAC;kCAC/B,IAAI,CAAC,SAAS,CAAC,iCAAyB,CAAC;+BAC5C,8BAAsB;0BAC3B,yBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+Q1C,CAAA;AACD,CAAC,CAAA;AAhSY,QAAA,iCAAiC,qCAgS7C"}
1
+ {"version":3,"file":"runtime-storage-generator.js","sourceRoot":"","sources":["../../src/runtime-storage-generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { ProjectPluginStructure } from '@teleporthq/teleport-types';
2
+ export { generateSecurityRuntimeCode, RATE_LIMITS_TABLE, SECURITY_RUNTIME_FILE_KEY, SECURITY_RUNTIME_FILE_NAME, SECURITY_RUNTIME_PATH, securityRuntimeSpecifier, TOO_MANY_REQUESTS_MESSAGE, } from './security-runtime-code';
3
+ /**
4
+ * Writes `utils/security-runtime.js` into the project, once. The workflow
5
+ * project plugin calls it for every app with server routes; an emitter whose
6
+ * route can exist in an app without them calls it where it emits the route
7
+ * that `require`s the module.
8
+ *
9
+ * The module is the same for every app (it finds the database at run time);
10
+ * the `pg` driver is added only when the project's database is Postgres,
11
+ * through the same driver map auth and invoices use.
12
+ */
13
+ export declare const ensureSecurityRuntimeModule: (structure: ProjectPluginStructure) => void;
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/security-runtime/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,sBAAsB,EAAE,MAAM,4BAA4B,CAAA;AAU7E,OAAO,EACL,2BAA2B,EAC3B,iBAAiB,EACjB,yBAAyB,EACzB,0BAA0B,EAC1B,qBAAqB,EACrB,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,yBAAyB,CAAA;AAEhC;;;;;;;;;GASG;AACH,eAAO,MAAM,2BAA2B,cAAe,sBAAsB,KAAG,IAsB/E,CAAA"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ensureSecurityRuntimeModule = exports.TOO_MANY_REQUESTS_MESSAGE = exports.securityRuntimeSpecifier = exports.SECURITY_RUNTIME_PATH = exports.SECURITY_RUNTIME_FILE_NAME = exports.SECURITY_RUNTIME_FILE_KEY = exports.RATE_LIMITS_TABLE = exports.generateSecurityRuntimeCode = void 0;
4
+ const teleport_types_1 = require("@teleporthq/teleport-types");
5
+ const auth_generator_1 = require("../auth-generator");
6
+ const resolve_data_source_1 = require("../invoice/resolve-data-source");
7
+ const security_runtime_code_1 = require("./security-runtime-code");
8
+ var security_runtime_code_2 = require("./security-runtime-code");
9
+ Object.defineProperty(exports, "generateSecurityRuntimeCode", { enumerable: true, get: function () { return security_runtime_code_2.generateSecurityRuntimeCode; } });
10
+ Object.defineProperty(exports, "RATE_LIMITS_TABLE", { enumerable: true, get: function () { return security_runtime_code_2.RATE_LIMITS_TABLE; } });
11
+ Object.defineProperty(exports, "SECURITY_RUNTIME_FILE_KEY", { enumerable: true, get: function () { return security_runtime_code_2.SECURITY_RUNTIME_FILE_KEY; } });
12
+ Object.defineProperty(exports, "SECURITY_RUNTIME_FILE_NAME", { enumerable: true, get: function () { return security_runtime_code_2.SECURITY_RUNTIME_FILE_NAME; } });
13
+ Object.defineProperty(exports, "SECURITY_RUNTIME_PATH", { enumerable: true, get: function () { return security_runtime_code_2.SECURITY_RUNTIME_PATH; } });
14
+ Object.defineProperty(exports, "securityRuntimeSpecifier", { enumerable: true, get: function () { return security_runtime_code_2.securityRuntimeSpecifier; } });
15
+ Object.defineProperty(exports, "TOO_MANY_REQUESTS_MESSAGE", { enumerable: true, get: function () { return security_runtime_code_2.TOO_MANY_REQUESTS_MESSAGE; } });
16
+ /**
17
+ * Writes `utils/security-runtime.js` into the project, once. The workflow
18
+ * project plugin calls it for every app with server routes; an emitter whose
19
+ * route can exist in an app without them calls it where it emits the route
20
+ * that `require`s the module.
21
+ *
22
+ * The module is the same for every app (it finds the database at run time);
23
+ * the `pg` driver is added only when the project's database is Postgres,
24
+ * through the same driver map auth and invoices use.
25
+ */
26
+ const ensureSecurityRuntimeModule = (structure) => {
27
+ const { files, dependencies } = structure;
28
+ if (files.has(security_runtime_code_1.SECURITY_RUNTIME_FILE_KEY)) {
29
+ return;
30
+ }
31
+ files.set(security_runtime_code_1.SECURITY_RUNTIME_FILE_KEY, {
32
+ path: security_runtime_code_1.SECURITY_RUNTIME_PATH,
33
+ files: [
34
+ {
35
+ name: security_runtime_code_1.SECURITY_RUNTIME_FILE_NAME,
36
+ fileType: teleport_types_1.FileType.JS,
37
+ content: (0, security_runtime_code_1.generateSecurityRuntimeCode)(),
38
+ },
39
+ ],
40
+ });
41
+ const { dataSourceType } = (0, resolve_data_source_1.resolveInvoiceDataSource)(structure);
42
+ const driverDeps = (0, auth_generator_1.getDatabaseDriverDependencies)(dataSourceType);
43
+ if ('pg' in driverDeps && !dependencies.pg) {
44
+ dependencies.pg = driverDeps.pg;
45
+ }
46
+ };
47
+ exports.ensureSecurityRuntimeModule = ensureSecurityRuntimeModule;
48
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/security-runtime/index.ts"],"names":[],"mappings":";;;AAAA,+DAA6E;AAC7E,sDAAiE;AACjE,wEAAyE;AACzE,mEAKgC;AAEhC,iEAQgC;AAP9B,oIAAA,2BAA2B,OAAA;AAC3B,0HAAA,iBAAiB,OAAA;AACjB,kIAAA,yBAAyB,OAAA;AACzB,mIAAA,0BAA0B,OAAA;AAC1B,8HAAA,qBAAqB,OAAA;AACrB,iIAAA,wBAAwB,OAAA;AACxB,kIAAA,yBAAyB,OAAA;AAG3B;;;;;;;;;GASG;AACI,MAAM,2BAA2B,GAAG,CAAC,SAAiC,EAAQ,EAAE;IACrF,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,SAAS,CAAA;IACzC,IAAI,KAAK,CAAC,GAAG,CAAC,iDAAyB,CAAC,EAAE;QACxC,OAAM;KACP;IAED,KAAK,CAAC,GAAG,CAAC,iDAAyB,EAAE;QACnC,IAAI,EAAE,6CAAqB;QAC3B,KAAK,EAAE;YACL;gBACE,IAAI,EAAE,kDAA0B;gBAChC,QAAQ,EAAE,yBAAQ,CAAC,EAAE;gBACrB,OAAO,EAAE,IAAA,mDAA2B,GAAE;aACvC;SACF;KACF,CAAC,CAAA;IAEF,MAAM,EAAE,cAAc,EAAE,GAAG,IAAA,8CAAwB,EAAC,SAAS,CAAC,CAAA;IAC9D,MAAM,UAAU,GAAG,IAAA,8CAA6B,EAAC,cAAc,CAAC,CAAA;IAChE,IAAI,IAAI,IAAI,UAAU,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE;QAC1C,YAAY,CAAC,EAAE,GAAG,UAAU,CAAC,EAAE,CAAA;KAChC;AACH,CAAC,CAAA;AAtBY,QAAA,2BAA2B,+BAsBvC"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Where the shared security runtime lives in the generated project
3
+ * (`utils/security-runtime.js`), and the table its rate limits keep.
4
+ */
5
+ export declare const SECURITY_RUNTIME_FILE_KEY = "security-runtime";
6
+ export declare const SECURITY_RUNTIME_PATH: string[];
7
+ export declare const SECURITY_RUNTIME_FILE_NAME = "security-runtime";
8
+ export declare const RATE_LIMITS_TABLE = "teleport_rate_limits";
9
+ /** What `rateLimitRequest` answers a refused request, with a 429. */
10
+ export declare const TOO_MANY_REQUESTS_MESSAGE = "Too many requests. Try again later.";
11
+ /**
12
+ * The `require` specifier of the runtime from a generated file whose folder
13
+ * is `relativePrefix` below the project root: `'../../..'` for
14
+ * `pages/api/<folder>/<route>.js`, `'../..'` for `pages/api/<route>.js` and
15
+ * for `utils/workflows/server-runtime.js`.
16
+ */
17
+ export declare const securityRuntimeSpecifier: (relativePrefix: string) => string;
18
+ /**
19
+ * Emits `utils/security-runtime.js` — the one place the generated app's
20
+ * server code takes the visitor's address, compares secrets, counts rate
21
+ * limits and answers errors from.
22
+ *
23
+ * - `clientIp(req)` reads the address only where the host guarantees it: on
24
+ * Vercel the headers its edge sets; elsewhere `X-Forwarded-For` only when
25
+ * the connection comes from a proxy on a private address, and only the hop
26
+ * that proxy appended; otherwise the socket address. A visitor-written hop
27
+ * is never read. `TQ_TRUSTED_PROXY` (`private` default | `vercel` | `none`)
28
+ * lets a self-hoster narrow that (see the emitted header).
29
+ * - `safeEqual(a, b)` is a constant-time compare that is false for anything
30
+ * missing, empty or of another length, and never throws.
31
+ * - `visitorKey(ip)` is the visitor an address stands for: an IPv4 address
32
+ * itself, an IPv6 one its /64 (an IPv4 tail counted as the two groups it
33
+ * fills). Every rate limit keyed by visitor uses it.
34
+ * - `rateLimit` counts fixed windows in the app's Postgres database (table
35
+ * `teleport_rate_limits`, created on first use under an advisory lock), so
36
+ * every instance of a serverless app counts together. Only an app with no
37
+ * database (or no `pg` driver) counts in a bounded per-instance map; a
38
+ * database error counts in that map for a short while and is logged once.
39
+ * A request waits on the database at most 1.5 s; after a failure one
40
+ * request at a time probes it. Keys are stored as `<windowSeconds>:<sha256>`,
41
+ * so no address or email reaches the table; each row carries its indexed
42
+ * `expires_at`, and an unawaited cleanup deletes windows that are over.
43
+ * - `rateLimitRequest` keys by route scope, visitor (an IPv6 visitor by its
44
+ * /64) and optional parts, and answers a refusal with a 429 itself.
45
+ * - `sendClientError` answers `{ error, id }` with a generic message and logs
46
+ * the detail under the same opaque id, server-side only.
47
+ *
48
+ * One module for every app: whether a database is there is read at run time
49
+ * (`TELEPORT_DB_CONNECTION_STRING` / `TELEPORT_DB_HOST` and the driver), and
50
+ * the driver is loaded on first use, so an app without `pg` still builds.
51
+ */
52
+ export declare const generateSecurityRuntimeCode: () => string;
53
+ //# sourceMappingURL=security-runtime-code.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security-runtime-code.d.ts","sourceRoot":"","sources":["../../../src/security-runtime/security-runtime-code.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,yBAAyB,qBAAqB,CAAA;AAC3D,eAAO,MAAM,qBAAqB,UAAY,CAAA;AAC9C,eAAO,MAAM,0BAA0B,qBAAqB,CAAA;AAC5D,eAAO,MAAM,iBAAiB,yBAAyB,CAAA;AAEvD,qEAAqE;AACrE,eAAO,MAAM,yBAAyB,wCAAwC,CAAA;AAE9E;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,mBAAoB,MAAM,KAAG,MACoB,CAAA;AAEtF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,eAAO,MAAM,2BAA2B,QAAO,MAygB9C,CAAA"}