@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
@@ -4,6 +4,13 @@ import {
4
4
  generateWorkflowLocaleHelpersCode,
5
5
  } from './email-locale'
6
6
  import { generateSignedInDestinationCode } from './auth-return/signed-in-destination-code'
7
+ import {
8
+ PRODUCTS_LIST_PARAM,
9
+ PRODUCTS_ROWS_PARAM,
10
+ TRUSTED_HTML_RUNTIME_CODE,
11
+ } from './nodes/email/trusted-html-code'
12
+ import { escapeHtmlTextJs, escapeHtmlValueJs } from './nodes/email/html-escape-code'
13
+ import { generateProtectionBypassHeaderStatements } from './self-call-headers'
7
14
  import { generateCredentialColumnsCode } from './credential-columns-code'
8
15
  import { generateCredentialResultsCode } from './credential-results'
9
16
 
@@ -55,6 +62,22 @@ function resolveValue(value, context) {
55
62
  }
56
63
 
57
64
  function resolveContextRef(ref, context) {
65
+ // On the server, a read of the page state's currentUser — at any depth, in
66
+ // any copy of the bag the request carries — is a read of the SESSION's user
67
+ // (see bindSessionIdentity in the server runtime).
68
+ if (context && Object.prototype.hasOwnProperty.call(context, '__sessionUserId')) {
69
+ var walk = [ref.nodeId].concat(ref.path || []);
70
+ for (var wi = 0; wi < walk.length - 1; wi++) {
71
+ if (walk[wi] === '__stateValues' && walk[wi + 1] === 'currentUser') {
72
+ var sessionValue = context.__sessionUser || null;
73
+ for (var wj = wi + 2; wj < walk.length; wj++) {
74
+ if (sessionValue === undefined || sessionValue === null) return undefined;
75
+ sessionValue = sessionValue[walk[wj]];
76
+ }
77
+ return sessionValue === null ? undefined : sessionValue;
78
+ }
79
+ }
80
+ }
58
81
  const nodeOutput = context[ref.nodeId];
59
82
  if (nodeOutput === undefined || nodeOutput === null) return undefined;
60
83
  let result = nodeOutput;
@@ -203,27 +226,42 @@ function isSecretRef(value) {
203
226
  // of the resolved value. Handles both the raw single-quoted attribute form and
204
227
  // the Quill-serialized &quot;-escaped form, plus the nested inner <span> Quill
205
228
  // wraps the label in.
206
- function resolveRichTextContext(html, context) {
229
+ // asText: the text is not HTML (a subject, an SMS or toast message): a value
230
+ // loses its line breaks and gets no HTML entities.
231
+ function resolveRichTextContext(html, context, asText) {
207
232
  if (typeof html !== 'string' || html.indexOf('context-value-inline') === -1) {
208
233
  return html;
209
234
  }
210
- var out = '';
235
+ return splitRichTextChips(html).map(function(part) {
236
+ if (typeof part === 'string') return part;
237
+ if (!part.chip) return '';
238
+ var value = resolveContextRef(part.chip, context);
239
+ if (value === undefined || value === null) return '';
240
+ return asText ? plainTextValue(String(value)) : escapeHtmlText(String(value));
241
+ }).join('');
242
+ }
243
+
244
+ // The rich text cut into its literal text (strings) and its inline context
245
+ // chips (\`{ chip: <workflowContext ref, or null when the chip names none> }\`),
246
+ // in order. An unrelated <span> stays text; a chip's nested inner spans are
247
+ // part of the chip.
248
+ function splitRichTextChips(html) {
249
+ var parts = [];
250
+ var text = '';
211
251
  var i = 0;
212
252
  while (i < html.length) {
213
253
  var spanStart = html.indexOf('<span', i);
214
- if (spanStart === -1) { out += html.slice(i); break; }
254
+ if (spanStart === -1) { text += html.slice(i); break; }
215
255
  var openEnd = html.indexOf('>', spanStart);
216
- if (openEnd === -1) { out += html.slice(i); break; }
256
+ if (openEnd === -1) { text += html.slice(i); break; }
217
257
  var openTag = html.slice(spanStart, openEnd + 1);
218
258
  if (openTag.indexOf('context-value-inline') === -1) {
219
259
  // Unrelated <span> — copy it through verbatim and keep scanning.
220
- out += html.slice(i, openEnd + 1);
260
+ text += html.slice(i, openEnd + 1);
221
261
  i = openEnd + 1;
222
262
  continue;
223
263
  }
224
- // Copy everything before the embed, then replace the whole embed span
225
- // (including any nested inner spans) with the resolved value.
226
- out += html.slice(i, spanStart);
264
+ text += html.slice(i, spanStart);
227
265
  var depth = 1;
228
266
  var j = openEnd + 1;
229
267
  while (j < html.length && depth > 0) {
@@ -239,13 +277,17 @@ function resolveRichTextContext(html, context) {
239
277
  depth--;
240
278
  }
241
279
  }
242
- out += resolveRichTextContextSpan(openTag, context);
280
+ parts.push(text);
281
+ text = '';
282
+ parts.push({ chip: richTextChipRef(openTag) });
243
283
  i = j;
244
284
  }
245
- return out;
285
+ parts.push(text);
286
+ return parts;
246
287
  }
247
288
 
248
- function resolveRichTextContextSpan(openTag, context) {
289
+ // The context value a chip's opening tag names, as a workflowContext ref.
290
+ function richTextChipRef(openTag) {
249
291
  var nodeId = extractHtmlAttr(openTag, 'data-ctx-node-id');
250
292
  var pathRaw = extractHtmlAttr(openTag, 'data-ctx-path');
251
293
  var path = null;
@@ -257,10 +299,7 @@ function resolveRichTextContextSpan(openTag, context) {
257
299
  path = nodeId ? [nodeId] : [];
258
300
  }
259
301
  if (!nodeId && path.length > 0) { nodeId = path[0]; }
260
- if (!nodeId) { return ''; }
261
- var value = resolveContextRef({ type: 'workflowContext', nodeId: nodeId, path: path }, context);
262
- if (value === undefined || value === null) { return ''; }
263
- return escapeHtmlText(String(value));
302
+ return nodeId ? { type: 'workflowContext', nodeId: nodeId, path: path } : null;
264
303
  }
265
304
 
266
305
  // Read a quoted HTML attribute value (double- or single-quoted) without a regex
@@ -277,8 +316,33 @@ function extractHtmlAttr(tag, name) {
277
316
  return tag.slice(start, end);
278
317
  }
279
318
 
319
+ // A value that lands in HTML text (a rich-text placeholder, a list item).
320
+ // Idempotent: an & that already starts a character reference stays as it is,
321
+ // so a value that arrives escaped is not escaped twice.
280
322
  function escapeHtmlText(value) {
281
- return value.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
323
+ return ${escapeHtmlTextJs('value')};
324
+ }
325
+
326
+ // A value filled into an email HTML body, where it may sit inside an attribute
327
+ // (href="{{url}}"): quotes too. Idempotent like escapeHtmlText.
328
+ function escapeHtmlValue(value) {
329
+ return ${escapeHtmlValueJs('value')};
330
+ }
331
+
332
+ // A value placed in text that is not HTML (a subject, an SMS or toast
333
+ // message): the character references it arrived with (the lifecycle token
334
+ // scripts escape theirs) are read back as characters, and line breaks are
335
+ // taken out — after the read-back, so an encoded line break goes too.
336
+ function plainTextValue(value) {
337
+ return value.replace(/&(amp|lt|gt|quot|apos|#[0-9]{1,7}|#[xX][0-9a-fA-F]{1,6});/g, function(m, ref) {
338
+ if (ref === 'amp') return '&';
339
+ if (ref === 'lt') return '<';
340
+ if (ref === 'gt') return '>';
341
+ if (ref === 'quot') return '"';
342
+ if (ref === 'apos') return "'";
343
+ var code = ref.charAt(1) === 'x' || ref.charAt(1) === 'X' ? parseInt(ref.slice(2), 16) : parseInt(ref.slice(1), 10);
344
+ return code > 0 && code <= 0x10ffff ? String.fromCodePoint(code) : m;
345
+ }).replace(/[\\r\\n]+/g, ' ');
282
346
  }
283
347
 
284
348
  // Sentinel for a page-context template token ({{urlDifferentiator}} /
@@ -325,7 +389,16 @@ function resolveTemplateTokenString(value, context) {
325
389
  }
326
390
  return { matched: true, value: UNRESOLVED_ROUTE_PARAM };
327
391
  }
328
- if (token === 'Current User.id' || token === 'currentUser.id') {
392
+ var userField = currentUserTokenField(token);
393
+ if (userField) {
394
+ // On the server the visitor is the SESSION's user, never one the request
395
+ // describes: a server route fills these reserved keys from the session
396
+ // cookie (empty for a guest) before any node resolves — see
397
+ // bindSessionIdentity in the server runtime.
398
+ if (context && Object.prototype.hasOwnProperty.call(context, '__sessionUserId')) {
399
+ return { matched: true, value: sessionUserField(context, userField) };
400
+ }
401
+ if (userField !== 'id') return { matched: false };
329
402
  var currentUser = context && context.__stateValues && context.__stateValues.currentUser;
330
403
  var userId = currentUser && typeof currentUser === 'object' ? currentUser.id : undefined;
331
404
  return { matched: true, value: userId === undefined ? null : userId };
@@ -333,10 +406,31 @@ function resolveTemplateTokenString(value, context) {
333
406
  return { matched: false };
334
407
  }
335
408
 
409
+ // 'id' for {{Current User.id}} / {{currentUser.id}}, the field for any other
410
+ // {{Current User.<field>}}; null for every other token.
411
+ function currentUserTokenField(token) {
412
+ var m = /^(?:Current User|currentUser)\\.([A-Za-z_$][A-Za-z0-9_$]*)$/.exec(token);
413
+ return m ? m[1] : null;
414
+ }
415
+
416
+ function sessionUserField(context, field) {
417
+ var value;
418
+ if (field === 'id') value = context.__sessionUserId;
419
+ else if (field === 'role') value = context.__sessionRole;
420
+ else {
421
+ var user = context.__sessionUser;
422
+ value = user && typeof user === 'object' && Object.prototype.hasOwnProperty.call(user, field) ? user[field] : undefined;
423
+ }
424
+ return value === undefined ? null : value;
425
+ }
426
+
336
427
  // Fills flat {{key}} merge tokens in a component-bodied email node's body/subject
337
428
  // from its (already-resolved) templateParams. Unknown tokens are left verbatim so
338
429
  // unrelated {{...}} (e.g. a campaign CustomerData {{name}}) is never blanked.
339
- // Values are injected unescaped, matching the e-commerce email fillers.
430
+ // Every value is escaped where it is filled in (it may come from the visitor —
431
+ // a form field, page state — or from a record a visitor once wrote), so only
432
+ // the author's template is HTML; asText (a subject, a header) takes its line
433
+ // breaks out instead. A value that must be markup goes through a list block.
340
434
  // Expands each \`<!--tq:each KEY-->…{{field}}…<!--/tq:each-->\` block (emitted by
341
435
  // the email serializer for a builder array mapper) by repeating the inner body
342
436
  // once per row of lists[KEY], substituting each row's {{field}} with the
@@ -362,7 +456,8 @@ function expandListBlocks(text, lists) {
362
456
  });
363
457
  }
364
458
 
365
- function applyTemplateParams(text, params) {
459
+ ${TRUSTED_HTML_RUNTIME_CODE}
460
+ function applyTemplateParams(text, params, asText) {
366
461
  if (typeof text !== 'string' || !Array.isArray(params)) return text;
367
462
  var map = {};
368
463
  for (var i = 0; i < params.length; i++) {
@@ -373,11 +468,17 @@ function applyTemplateParams(text, params) {
373
468
  map[p.key] = p.value;
374
469
  }
375
470
  }
471
+ // The products list is built here from its lines, never taken as handed over.
472
+ if (Array.isArray(map.${PRODUCTS_ROWS_PARAM}) && Object.prototype.hasOwnProperty.call(map, '${PRODUCTS_LIST_PARAM}')) {
473
+ map.${PRODUCTS_LIST_PARAM} = renderProductsListHtml(map.${PRODUCTS_ROWS_PARAM});
474
+ }
376
475
  var expanded = expandListBlocks(text, map);
377
476
  return expanded.replace(/\\{\\{\\s*([\\w.-]+)\\s*\\}\\}/g, function(m, key) {
378
477
  if (!Object.prototype.hasOwnProperty.call(map, key)) return m;
379
478
  var v = map[key];
380
- return (v === null || v === undefined) ? '' : String(v);
479
+ if (v === null || v === undefined) return '';
480
+ if (asText) return plainTextValue(String(v));
481
+ return isTrustedHtml(v) ? String(v) : escapeHtmlValue(String(v));
381
482
  });
382
483
  }
383
484
 
@@ -491,13 +592,13 @@ function finalizeResolvedConfig(nodeType, config) {
491
592
  // Scalar config values are normally just secret-resolved. Rich-text strings
492
593
  // (email bodies) additionally need their inline context placeholders resolved,
493
594
  // and whole-string {{...}} template tokens resolve against the page context.
494
- function resolveScalarValue(value, context) {
595
+ function resolveScalarValue(value, context, key) {
495
596
  var tokenResolution = resolveTemplateTokenString(value, context);
496
597
  if (tokenResolution.matched) {
497
598
  return tokenResolution.value;
498
599
  }
499
600
  if (typeof value === 'string' && value.indexOf('context-value-inline') !== -1) {
500
- return resolveRichTextContext(value, context);
601
+ return resolveRichTextContext(value, context, key === 'subject' || key === 'message');
501
602
  }
502
603
  return resolveSecret(value, context);
503
604
  }
@@ -553,7 +654,7 @@ function resolveConfig(config, context) {
553
654
  } else if (val && typeof val === 'object' && !Array.isArray(val)) {
554
655
  resolved[key] = resolveConfig(val, context);
555
656
  } else {
556
- resolved[key] = resolveScalarValue(val, context);
657
+ resolved[key] = resolveScalarValue(val, context, key);
557
658
  }
558
659
  }
559
660
  // Component-bodied email nodes carry their merge values as \`templateParams\`
@@ -587,18 +688,191 @@ function resolveConfig(config, context) {
587
688
  resolved.body = applyTemplateParams(resolved.body, resolved.templateParams);
588
689
  }
589
690
  if (typeof resolved.subject === 'string') {
590
- resolved.subject = applyTemplateParams(resolved.subject, resolved.templateParams);
691
+ resolved.subject = applyTemplateParams(resolved.subject, resolved.templateParams, true);
591
692
  }
592
693
  }
593
694
  return resolved;
594
695
  }
595
696
 
596
- function evaluateCondition(config, context) {
597
- const condType = config.conditionType || 'simple-comparison';
697
+ // The config fields a node compiles as code, and the mode fields that decide
698
+ // whether an if / switch compiles its condition. Only the text the author
699
+ // wrote may be: a field bound to a value — a {{…}} token, a context value, a
700
+ // secret, an inserted chip — is dropped from the resolved config, so the node
701
+ // runs its default (transform-array hands the item on as it is, a custom-JS
702
+ // step runs nothing, a condition compares as it does by default) and no
703
+ // request, webhook body or stored value ever becomes code. Every path that
704
+ // runs a node resolves its config through resolveNodeConfig: the client
705
+ // executor and the custom nodes it runs (in the browser, or in process inside
706
+ // a cron, webhook or automation route), and every loop of the segment, cron,
707
+ // webhook and automation routes.
708
+ var AUTHORED_ONLY_FIELDS = {
709
+ 'general-custom-js': ['code'],
710
+ 'transform-array': ['expression', 'mapExpression', 'filterExpression', 'reduceExpression', 'findExpression', 'sortExpression', 'includesExpression'],
711
+ 'general-if-statement': ['conditionType'],
712
+ 'general-switch': ['comparisonMode']
713
+ };
714
+
715
+ // Text the author wrote, taken as it is: no inserted chip, not a whole {{…}}
716
+ // token, not a secret reference.
717
+ function isAuthoredText(value) {
718
+ return typeof value === 'string' &&
719
+ value.indexOf('context-value-inline') === -1 &&
720
+ !/^\\s*\\{\\{[\\s\\S]*\\}\\}\\s*$/.test(value) &&
721
+ value.indexOf('WORKFLOW_SECRET_') !== 0 &&
722
+ value.indexOf('teleporthq.secrets.') !== 0;
723
+ }
724
+
725
+ // A node's config resolved for its handler (resolveConfig), with its code and
726
+ // mode fields only as the author wrote them.
727
+ function resolveNodeConfig(node, context) {
728
+ var authored = node ? node.config : undefined;
729
+ var resolved = resolveConfig(authored, context);
730
+ var fields = node ? AUTHORED_ONLY_FIELDS[node.type] : null;
731
+ if (!fields || !authored || typeof authored !== 'object' || !resolved || typeof resolved !== 'object') {
732
+ return resolved;
733
+ }
734
+ for (var i = 0; i < fields.length; i++) {
735
+ var field = fields[i];
736
+ if (authored[field] === undefined) continue;
737
+ if (isAuthoredText(authored[field])) {
738
+ resolved[field] = authored[field];
739
+ } else {
740
+ delete resolved[field];
741
+ }
742
+ }
743
+ return resolved;
744
+ }
745
+
746
+ // Only the expression the AUTHOR wrote is ever compiled, and only once. Every
747
+ // context chip in it (an inline chip of the rich-text input, a reference part
748
+ // of a parts array) is handed to the compiled function as a named argument —
749
+ // \`value > <chip max>\` runs as \`value > __tqv0\` with the chip's value passed
750
+ // in as \`__tqv0\` — so a value from the context is data, never code, and
751
+ // request text cannot run on the server (nor stored data in a visitor's
752
+ // browser). A chip the author wrote inside quotes (\`value === '<chip>'\`) is
753
+ // passed as a string. A condition that IS a reference, a whole {{…}} token or a
754
+ // secret has no code of the author's in it: its value is read as data, by its
755
+ // truth. \`authored\` is the node's config as written.
756
+ var WHOLE_TEMPLATE_TOKEN = /^\\{\\{\\s*[^{}]+?\\s*\\}\\}$/;
757
+
758
+ function authoredExpressionParts(authored) {
759
+ if (typeof authored === 'string') {
760
+ if (WHOLE_TEMPLATE_TOKEN.test(authored.trim())) return null;
761
+ if (authored.indexOf('WORKFLOW_SECRET_') === 0 || authored.indexOf('teleporthq.secrets.') === 0) return null;
762
+ return authored.indexOf('context-value-inline') === -1 ? [authored] : splitRichTextChips(authored);
763
+ }
764
+ if (Array.isArray(authored)) {
765
+ return authored.map(function(item) {
766
+ if (item && typeof item === 'object' && (item.type === 'workflowContext' || item.type === 'ctx')) {
767
+ return { chip: item };
768
+ }
769
+ return item === null || item === undefined ? '' : String(item);
770
+ });
771
+ }
772
+ return null;
773
+ }
774
+
775
+ var __compiledExpressions = new Map();
776
+
777
+ function compileExpression(parts, argNames) {
778
+ var text = '';
779
+ var chips = [];
780
+ var pending = parts.slice();
781
+ for (var i = 0; i < pending.length; i++) {
782
+ var part = pending[i];
783
+ if (typeof part === 'string') { text += part; continue; }
784
+ var quote = text.charAt(text.length - 1);
785
+ var next = pending[i + 1];
786
+ var quoted = (quote === '"' || quote === "'" || quote === '\`') && typeof next === 'string' && next.charAt(0) === quote;
787
+ if (quoted) {
788
+ text = text.slice(0, -1);
789
+ pending[i + 1] = next.slice(1);
790
+ }
791
+ text += '__tqv' + chips.length;
792
+ chips.push({ ref: part.chip, quoted: quoted });
793
+ }
794
+ var names = argNames.slice();
795
+ for (var c = 0; c < chips.length; c++) names.push('__tqv' + c);
796
+ var key = names.join(',') + '\\n' + text;
797
+ if (!__compiledExpressions.has(key)) {
798
+ var fn = null;
799
+ try { fn = Function.apply(null, names.concat(['return (' + text + ')'])); } catch (e) { fn = null; }
800
+ __compiledExpressions.set(key, fn);
801
+ }
802
+ return { fn: __compiledExpressions.get(key), chips: chips };
803
+ }
804
+
805
+ // The truth of a value read as data: a string reads as the word or number it
806
+ // spells ('false', '0', '' and 'null' are false), anything else by JS truth.
807
+ function truthOf(value) {
808
+ if (typeof value === 'string') {
809
+ var text = value.trim().toLowerCase();
810
+ if (text === '' || text === 'false' || text === 'null' || text === 'undefined' || text === 'nan') return false;
811
+ if (text === 'true') return true;
812
+ var number = Number(text);
813
+ return isNaN(number) ? true : number !== 0;
814
+ }
815
+ return !!value;
816
+ }
817
+
818
+ function chipValue(ref, context) {
819
+ if (!ref) return undefined;
820
+ return ref.type === 'ctx' ? resolveCtxRef(ref, context) : resolveContextRef(ref, context);
821
+ }
822
+
823
+ // The one chip a condition consists of, when the rest of it is only blank
824
+ // text or the editor's markup around it (\`<p>\`, \`&nbsp;\`); null otherwise.
825
+ function soleChip(parts) {
826
+ var chip = null;
827
+ for (var i = 0; i < parts.length; i++) {
828
+ var part = parts[i];
829
+ if (typeof part === 'string') {
830
+ if (part.replace(/<[^>]*>/g, '').replace(/&nbsp;/g, ' ').trim() !== '') return null;
831
+ } else if (chip) {
832
+ return null;
833
+ } else {
834
+ chip = part;
835
+ }
836
+ }
837
+ return chip;
838
+ }
839
+
840
+ function runExpression(authored, resolved, argNames, args, context) {
841
+ var parts = authoredExpressionParts(authored);
842
+ if (!parts) return truthOf(resolved);
843
+ // A condition that is only a chip is a value, read by the word it spells
844
+ // ('false', '0' and '' are false), as a whole {{…}} token is.
845
+ var only = soleChip(parts);
846
+ if (only) return truthOf(chipValue(only.chip, context));
847
+ var compiled = compileExpression(parts, argNames);
848
+ if (!compiled.fn) return false;
849
+ var values = args.slice();
850
+ for (var c = 0; c < compiled.chips.length; c++) {
851
+ var chip = compiled.chips[c];
852
+ var value = chipValue(chip.ref, context);
853
+ values.push(chip.quoted ? (value === null || value === undefined ? '' : String(value)) : value);
854
+ }
855
+ try { return !!compiled.fn.apply(null, values); }
856
+ catch (e) { return false; }
857
+ }
858
+
859
+ // The mode a condition runs in (an if's conditionType, a switch's
860
+ // comparisonMode), as the author wrote it. A mode bound to a value — a {{…}}
861
+ // token, a context value, a secret, an inserted chip — is no mode: request text
862
+ // can never switch a step into compiling its expression.
863
+ function authoredMode(value) {
864
+ return isAuthoredText(value) ? value : '';
865
+ }
866
+
867
+ function evaluateCondition(config, context, authoredConfig) {
868
+ const written = arguments.length > 2 ? (authoredConfig || {}) : config;
869
+ const condType = authoredMode(written.conditionType) || 'simple-comparison';
598
870
  if (condType === 'expression') {
599
871
  const cond = resolveValue(config.condition, context);
600
- try { return !!new Function('context', 'return (' + cond + ')')(context); }
601
- catch(e) { return false; }
872
+ // Callers pass the node's config as written; a caller that has only one
873
+ // config hands that one, whose condition is then its own text.
874
+ const authored = arguments.length > 2 ? (authoredConfig || {}).condition : config.condition;
875
+ return runExpression(authored, cond, ['context'], [context], context);
602
876
  }
603
877
  if (condType === 'multiple-conditions') {
604
878
  const conditions = config.conditions || [];
@@ -609,6 +883,26 @@ function evaluateCondition(config, context) {
609
883
  return evaluateSingleComparison(config, context);
610
884
  }
611
885
 
886
+ // The id of the case a switch node takes, 'default' when none matches.
887
+ // \`authoredConfig\` is the node's config as written (see runExpression): in
888
+ // expression mode only an authored case condition is compiled, with the switch
889
+ // value handed in as \`value\`.
890
+ function matchSwitchCase(authoredConfig, resolvedConfig, context) {
891
+ var switchVal = resolveValue(resolvedConfig.switchValue, context);
892
+ var cases = resolvedConfig.cases || [];
893
+ var authoredCases = authoredConfig && Array.isArray(authoredConfig.cases) ? authoredConfig.cases : [];
894
+ for (var i = 0; i < cases.length; i++) {
895
+ var caseVal = resolveValue(cases[i].condition, context);
896
+ if (authoredMode((authoredConfig || resolvedConfig).comparisonMode) === 'expression') {
897
+ var authored = authoredCases[i] && typeof authoredCases[i] === 'object' ? authoredCases[i].condition : undefined;
898
+ if (runExpression(authored, caseVal, ['value', 'context'], [switchVal, context], context)) return cases[i].id;
899
+ } else if (switchVal === caseVal) {
900
+ return cases[i].id;
901
+ }
902
+ }
903
+ return 'default';
904
+ }
905
+
612
906
  function coerceForComparison(a, b) {
613
907
  if (typeof a === 'boolean' && typeof b === 'string') {
614
908
  if (b === 'true') return [a, true];
@@ -923,7 +1217,7 @@ async function executeNodes(nodes, edges, context, nodeHandlers, workflowConfig,
923
1217
  continue;
924
1218
  }
925
1219
 
926
- const resolvedConfig = resolveConfig(node.config, context);
1220
+ const resolvedConfig = resolveNodeConfig(node, context);
927
1221
 
928
1222
  try {
929
1223
  const configError = finalizeResolvedConfig(node.type, resolvedConfig);
@@ -936,7 +1230,7 @@ async function executeNodes(nodes, edges, context, nodeHandlers, workflowConfig,
936
1230
  // once — see the comment there.
937
1231
 
938
1232
  if (node.type === 'general-if-statement') {
939
- const condResult = evaluateCondition(resolvedConfig, context);
1233
+ const condResult = evaluateCondition(resolvedConfig, context, node.config);
940
1234
  context[node.id] = { result: condResult };
941
1235
  executed[node.id] = true;
942
1236
 
@@ -953,17 +1247,7 @@ async function executeNodes(nodes, edges, context, nodeHandlers, workflowConfig,
953
1247
  }
954
1248
 
955
1249
  if (node.type === 'general-switch') {
956
- const switchVal = resolveValue(resolvedConfig.switchValue, context);
957
- const cases = resolvedConfig.cases || [];
958
- let matchedCase = 'default';
959
- for (let ci = 0; ci < cases.length; ci++) {
960
- const caseVal = resolveValue(cases[ci].condition, context);
961
- if (resolvedConfig.comparisonMode === 'expression') {
962
- try { if (new Function('value', 'context', 'return (' + caseVal + ')')(switchVal, context)) { matchedCase = cases[ci].id; break; } } catch(e) {}
963
- } else {
964
- if (switchVal === caseVal) { matchedCase = cases[ci].id; break; }
965
- }
966
- }
1250
+ const matchedCase = matchSwitchCase(node.config, resolvedConfig, context);
967
1251
  context[node.id] = { matchedCase: matchedCase };
968
1252
  executed[node.id] = true;
969
1253
 
@@ -1229,8 +1513,8 @@ async function executeLoop(loopNode, config, allNodes, edges, context, nodeHandl
1229
1513
  const whileCtx = Object.assign({}, context);
1230
1514
  whileCtx[loopNode.id + '_iter'] = { iteration: iter };
1231
1515
  const condStr = resolveValue(config.condition, whileCtx);
1232
- let condResult;
1233
- try { condResult = new Function('context', 'return (' + condStr + ')')(whileCtx); } catch(e) { condResult = false; }
1516
+ // Only the authored condition is compiled (see runExpression).
1517
+ const condResult = runExpression(loopNode.config && loopNode.config.condition, condStr, ['context'], [whileCtx], whileCtx);
1234
1518
  if (loopType === 'while' && !condResult) break;
1235
1519
  if (loopType === 'until' && condResult) break;
1236
1520
  await executeNodes(bodyNodes, edges, whileCtx, nodeHandlers, workflowConfig, callServerSegment, executionId);
@@ -1411,12 +1695,17 @@ function snapshotIncomingContext(incoming) {
1411
1695
  }
1412
1696
 
1413
1697
  // Never replied: the caller's own page-state snapshot (the client never merges
1414
- // it back — see mergeServerResults) and the route's private state.
1698
+ // it back — see mergeServerResults) and the route's private state, the
1699
+ // visitor's session identity included (the server reads it from the cookie on
1700
+ // every request).
1415
1701
  var SEGMENT_REPLY_PRIVATE_KEYS = {
1416
1702
  __stateValues: true,
1417
1703
  __internalHeaders: true,
1418
1704
  __request: true,
1419
- __pendingNodePromises: true
1705
+ __pendingNodePromises: true,
1706
+ __sessionUserId: true,
1707
+ __sessionRole: true,
1708
+ __sessionUser: true
1420
1709
  };
1421
1710
 
1422
1711
  // What a server segment replies with: the result of every node it ran itself
@@ -1506,12 +1795,7 @@ function internalRequestHeaders(req) {
1506
1795
  if (req && req.headers && req.headers.cookie) {
1507
1796
  headers.cookie = req.headers.cookie;
1508
1797
  }
1509
- const bypassSecret = process.env.VERCEL_AUTOMATION_BYPASS_SECRET;
1510
- if (bypassSecret) {
1511
- headers['x-vercel-protection-bypass'] = bypassSecret;
1512
- // Tells Vercel not to hand the bypass back to the caller as a cookie.
1513
- headers['x-vercel-set-bypass-cookie'] = 'false';
1514
- }
1798
+ ${generateProtectionBypassHeaderStatements('headers')}
1515
1799
  return headers;
1516
1800
  }
1517
1801
 
@@ -1528,6 +1812,7 @@ module.exports = {
1528
1812
  resolveValue,
1529
1813
  resolveSecret,
1530
1814
  resolveConfig,
1815
+ resolveNodeConfig,
1531
1816
  resolveContextRef,
1532
1817
  resolveRichTextContext,
1533
1818
  unwrapWorkflowCollection,
@@ -1537,6 +1822,7 @@ module.exports = {
1537
1822
  withoutCredentialColumns,
1538
1823
  credentialResultNodeIds,
1539
1824
  evaluateCondition,
1825
+ matchSwitchCase,
1540
1826
  evaluateSingleComparison,
1541
1827
  normalizeComparisonOperator,
1542
1828
  resolveTemplateTokenString,
@@ -1715,10 +2001,13 @@ function pruneContext(context, stateKeys) {
1715
2001
  // Credentials for a server-side caller's own requests travel as HEADERS
1716
2002
  // (see segmentRequestHeaders), never in the body.
1717
2003
  if (key === '__internalHeaders') continue;
1718
- // The signatures of earlier server results and of the key order must
1719
- // cross whole: a pruned signature no longer matches, and the server then
1720
- // treats the result it covers as never produced.
1721
- if (key === '__sig' || key === '__sigOrder') {
2004
+ // The visitor's identity is the server's to read from the session cookie;
2005
+ // a route ignores any it is sent.
2006
+ if (key === '__sessionUserId' || key === '__sessionRole' || key === '__sessionUser') continue;
2007
+ // The signatures of earlier server results, of the key order and of the
2008
+ // run they belong to must cross whole: a pruned signature no longer
2009
+ // matches, and the server then treats the result it covers as never produced.
2010
+ if (key === '__sig' || key === '__sigOrder' || key === '__sigRun') {
1722
2011
  pruned[key] = val;
1723
2012
  continue;
1724
2013
  }
@@ -1830,7 +2119,16 @@ async function callServerSegment(segmentUrl, context, stateKeys) {
1830
2119
  let errorData;
1831
2120
  try { errorData = await response.json(); } catch(e) { errorData = { error: response.statusText }; }
1832
2121
  if (response.status === 429) {
1833
- var rlErr = new Error(errorData.message || 'Rate limit exceeded');
2122
+ // The sentence the visitor reads. A rate-limiter step answers its
2123
+ // author's own \`message\` beside a generic \`error\` ("Too Many
2124
+ // Requests"), so \`message\` comes first; every other 429 (the shared
2125
+ // security runtime, a step's visitor limit, the route's abuse gate, the
2126
+ // site's AI budget) says only \`error\`. No 429 carries internal text.
2127
+ var rlErr = new Error(
2128
+ (errorData && typeof errorData.message === 'string' && errorData.message) ||
2129
+ (errorData && typeof errorData.error === 'string' && errorData.error) ||
2130
+ 'Too many requests. Try again later.'
2131
+ );
1834
2132
  rlErr.__skipErrorHandler = true;
1835
2133
  rlErr.__rateLimited = true;
1836
2134
  rlErr.__earlyResponse = errorData;
@@ -1920,7 +2218,16 @@ async function callStreamingServerSegment(segmentUrl, context, streamingInfo, al
1920
2218
  let errorData;
1921
2219
  try { errorData = await response.json(); } catch(e) { errorData = { error: response.statusText }; }
1922
2220
  if (response.status === 429) {
1923
- var rlErr = new Error(errorData.message || 'Rate limit exceeded');
2221
+ // The sentence the visitor reads. A rate-limiter step answers its
2222
+ // author's own \`message\` beside a generic \`error\` ("Too Many
2223
+ // Requests"), so \`message\` comes first; every other 429 (the shared
2224
+ // security runtime, a step's visitor limit, the route's abuse gate, the
2225
+ // site's AI budget) says only \`error\`. No 429 carries internal text.
2226
+ var rlErr = new Error(
2227
+ (errorData && typeof errorData.message === 'string' && errorData.message) ||
2228
+ (errorData && typeof errorData.error === 'string' && errorData.error) ||
2229
+ 'Too many requests. Try again later.'
2230
+ );
1924
2231
  rlErr.__skipErrorHandler = true;
1925
2232
  rlErr.__rateLimited = true;
1926
2233
  rlErr.__earlyResponse = errorData;
@@ -2179,14 +2486,19 @@ async function executeWorkflowWithSegments(workflowConfig, triggerContext, clien
2179
2486
  }
2180
2487
  }
2181
2488
  } catch (error) {
2182
- if (error.__skipErrorHandler || error.__rateLimited) {
2489
+ // A step the server refused for its rate limit (429) is a failure the
2490
+ // visitor must see: the workflow's error branch runs with the server's
2491
+ // public sentence and \`rateLimited: true\`, so a busy button is released
2492
+ // and a message shown. Only a workflow without an error branch ends quietly.
2493
+ const errorHandler = findErrorHandlerNodes(workflowConfig);
2494
+ if (error.__rateLimited ? !errorHandler : error.__skipErrorHandler) {
2183
2495
  return context;
2184
2496
  }
2185
- const errorHandler = findErrorHandlerNodes(workflowConfig);
2186
2497
  if (errorHandler) {
2187
2498
  context[workflowConfig.errorHandlerNodeId] = {
2188
2499
  error: { message: error.message || String(error), stack: error.stack || '' },
2189
- errorMessage: error.message || String(error)
2500
+ errorMessage: error.message || String(error),
2501
+ rateLimited: error.__rateLimited === true
2190
2502
  };
2191
2503
  try {
2192
2504
  await utils.executeNodes(errorHandler.nodes, errorHandler.edges, context, clientHandlers, workflowConfig, null, executionId);