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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (976) hide show
  1. package/__tests__/_helpers/fake-fetch.ts +75 -0
  2. package/__tests__/_helpers/gui-place-order-statements.ts +17 -0
  3. package/__tests__/_helpers/inserted-lines.ts +22 -0
  4. package/__tests__/_helpers/invoice-store.ts +10 -1
  5. package/__tests__/_helpers/load-security-runtime.ts +45 -0
  6. package/__tests__/_helpers/load-server-runtime.ts +26 -3
  7. package/__tests__/_helpers/run-account-delete-route.ts +3 -1
  8. package/__tests__/_helpers/run-generated-middleware.ts +7 -2
  9. package/__tests__/account-delete-owned-rows.test.ts +3 -1
  10. package/__tests__/adopted-element-trigger-code.test.ts +128 -0
  11. package/__tests__/analytics-track-outcome.test.ts +145 -0
  12. package/__tests__/auth-password-change-ends-sessions.test.ts +8 -1
  13. package/__tests__/auth-password-security.test.ts +2275 -0
  14. package/__tests__/auth-session-cost.test.ts +31 -0
  15. package/__tests__/auth-signup-route.test.ts +960 -0
  16. package/__tests__/authored-code-every-path.test.ts +247 -0
  17. package/__tests__/automations-bus.test.ts +3820 -0
  18. package/__tests__/automations-catalog-drift.test.ts +97 -0
  19. package/__tests__/booking-calendar-feed-route.test.ts +20 -3
  20. package/__tests__/cart-price-order.test.ts +336 -1
  21. package/__tests__/code-lookup-rate-limit-route.test.ts +189 -0
  22. package/__tests__/cost-bearing-node-types.test.ts +119 -0
  23. package/__tests__/credential-columns-reply.test.ts +9 -0
  24. package/__tests__/credential-result-reply.test.ts +19 -5
  25. package/__tests__/cron-route-loop-templateparams.test.ts +6 -3
  26. package/__tests__/custom-js-authored-code.test.ts +304 -0
  27. package/__tests__/custom-node-custom-code-gate.test.ts +136 -0
  28. package/__tests__/custom-node-step-handlers.test.ts +251 -0
  29. package/__tests__/custom-node-step-reach.test.ts +63 -0
  30. package/__tests__/data-api-anon-user-id-fallback.test.ts +7 -2
  31. package/__tests__/data-api-browser-reads.test.ts +7 -0
  32. package/__tests__/data-api-business-events.test.ts +403 -0
  33. package/__tests__/data-api-invalid-body.test.ts +7 -0
  34. package/__tests__/data-api-low-stock-autofire.test.ts +30 -4
  35. package/__tests__/data-api-optional-feature-columns.test.ts +44 -0
  36. package/__tests__/data-api-owner-scope-credentials.test.ts +1324 -0
  37. package/__tests__/data-api-protected-tables.test.ts +48 -15
  38. package/__tests__/data-api-retired-table-and-account-fields.test.ts +208 -0
  39. package/__tests__/email-locale-senders.test.ts +5 -3
  40. package/__tests__/expression-injection.test.ts +343 -0
  41. package/__tests__/fixtures/admin-file-workflows.json +242 -0
  42. package/__tests__/form-confirmation-email-template.test.ts +44 -0
  43. package/__tests__/internal-request-headers.test.ts +25 -0
  44. package/__tests__/invoice-pdf-service-project-header.test.ts +120 -0
  45. package/__tests__/invoice-self-call-origin.test.ts +57 -1
  46. package/__tests__/legacy-webhook-self-calls.test.ts +86 -1
  47. package/__tests__/middleware-home-route-protection.test.ts +3 -1
  48. package/__tests__/middleware-subscriber-access.test.ts +1 -1
  49. package/__tests__/newsletter-admin-route.test.ts +649 -0
  50. package/__tests__/newsletter-plugin.test.ts +1248 -0
  51. package/__tests__/outbound-nodes-security.test.ts +1929 -0
  52. package/__tests__/page-access-guard.test.ts +217 -0
  53. package/__tests__/page-access-route-table.test.ts +231 -0
  54. package/__tests__/payment-drivers-module.test.ts +23 -0
  55. package/__tests__/payment-legacy-webhook-routes.test.ts +100 -5
  56. package/__tests__/payment-webhook-route.test.ts +4 -1
  57. package/__tests__/paypal-webhook-signature-verification.test.ts +44 -0
  58. package/__tests__/place-order-guards.test.ts +506 -0
  59. package/__tests__/public-step-guards.test.ts +310 -0
  60. package/__tests__/publish-refusals.test.ts +505 -0
  61. package/__tests__/realtime-identity-routes.test.ts +492 -0
  62. package/__tests__/record-event-writer-server-only.test.ts +975 -0
  63. package/__tests__/resolve-config-template-params.test.ts +3 -3
  64. package/__tests__/runtime-storage-upload-access.test.ts +280 -17
  65. package/__tests__/security-integration-env-names.test.ts +74 -0
  66. package/__tests__/security-lists-parity.test.ts +245 -0
  67. package/__tests__/security-runtime-shadow.test.ts +224 -1
  68. package/__tests__/security-runtime.test.ts +893 -0
  69. package/__tests__/segment-rate-limit-error-branch.test.ts +284 -0
  70. package/__tests__/segment-route-abuse-gate.test.ts +309 -0
  71. package/__tests__/server-job-hops-real-data-api.test.ts +669 -0
  72. package/__tests__/server-session-identity.test.ts +522 -0
  73. package/__tests__/server-step-chain.test.ts +222 -0
  74. package/__tests__/server-step-signing.test.ts +107 -2
  75. package/__tests__/session-cookie-resolver.test.ts +62 -106
  76. package/__tests__/signup-event.test.ts +649 -0
  77. package/__tests__/signup-reply-identical.test.ts +144 -0
  78. package/__tests__/slack-message-escaping.test.ts +123 -0
  79. package/__tests__/visitor-step-limits.test.ts +318 -0
  80. package/__tests__/webhook-delivery-lease.test.ts +4 -1
  81. package/__tests__/webpack-safe-handlers.test.ts +57 -8
  82. package/__tests__/workflow-auth-guard.test.ts +9 -1
  83. package/dist/cjs/account-delete-route-generator.d.ts +1 -0
  84. package/dist/cjs/account-delete-route-generator.d.ts.map +1 -1
  85. package/dist/cjs/account-delete-route-generator.js +18 -3
  86. package/dist/cjs/account-delete-route-generator.js.map +1 -1
  87. package/dist/cjs/api-route-generator.d.ts +52 -3
  88. package/dist/cjs/api-route-generator.d.ts.map +1 -1
  89. package/dist/cjs/api-route-generator.js +600 -145
  90. package/dist/cjs/api-route-generator.js.map +1 -1
  91. package/dist/cjs/auth-generator.d.ts +126 -3
  92. package/dist/cjs/auth-generator.d.ts.map +1 -1
  93. package/dist/cjs/auth-generator.js +1353 -139
  94. package/dist/cjs/auth-generator.js.map +1 -1
  95. package/dist/cjs/automations/activity-kicks.d.ts +12 -0
  96. package/dist/cjs/automations/activity-kicks.d.ts.map +1 -0
  97. package/dist/cjs/automations/activity-kicks.js +123 -0
  98. package/dist/cjs/automations/activity-kicks.js.map +1 -0
  99. package/dist/cjs/automations/app-events-source.d.ts +33 -0
  100. package/dist/cjs/automations/app-events-source.d.ts.map +1 -0
  101. package/dist/cjs/automations/app-events-source.js +109 -0
  102. package/dist/cjs/automations/app-events-source.js.map +1 -0
  103. package/dist/cjs/automations/automations-project-plugin.d.ts +21 -0
  104. package/dist/cjs/automations/automations-project-plugin.d.ts.map +1 -0
  105. package/dist/cjs/automations/automations-project-plugin.js +102 -0
  106. package/dist/cjs/automations/automations-project-plugin.js.map +1 -0
  107. package/dist/cjs/automations/automations-scope.d.ts +104 -0
  108. package/dist/cjs/automations/automations-scope.d.ts.map +1 -0
  109. package/dist/cjs/automations/automations-scope.js +176 -0
  110. package/dist/cjs/automations/automations-scope.js.map +1 -0
  111. package/dist/cjs/automations/dispatcher-source.d.ts +72 -0
  112. package/dist/cjs/automations/dispatcher-source.d.ts.map +1 -0
  113. package/dist/cjs/automations/dispatcher-source.js +1008 -0
  114. package/dist/cjs/automations/dispatcher-source.js.map +1 -0
  115. package/dist/cjs/automations/event-bus-source.d.ts +44 -0
  116. package/dist/cjs/automations/event-bus-source.d.ts.map +1 -0
  117. package/dist/cjs/automations/event-bus-source.js +427 -0
  118. package/dist/cjs/automations/event-bus-source.js.map +1 -0
  119. package/dist/cjs/automations/handler-module-generator.d.ts +25 -0
  120. package/dist/cjs/automations/handler-module-generator.d.ts.map +1 -0
  121. package/dist/cjs/automations/handler-module-generator.js +78 -0
  122. package/dist/cjs/automations/handler-module-generator.js.map +1 -0
  123. package/dist/cjs/automations/hydrators-source.d.ts +33 -0
  124. package/dist/cjs/automations/hydrators-source.d.ts.map +1 -0
  125. package/dist/cjs/automations/hydrators-source.js +571 -0
  126. package/dist/cjs/automations/hydrators-source.js.map +1 -0
  127. package/dist/cjs/booking-calendar-feed-route-generator.d.ts.map +1 -1
  128. package/dist/cjs/booking-calendar-feed-route-generator.js +8 -0
  129. package/dist/cjs/booking-calendar-feed-route-generator.js.map +1 -1
  130. package/dist/cjs/configured-nextauth-url.d.ts +17 -0
  131. package/dist/cjs/configured-nextauth-url.d.ts.map +1 -0
  132. package/dist/cjs/configured-nextauth-url.js +20 -0
  133. package/dist/cjs/configured-nextauth-url.js.map +1 -0
  134. package/dist/cjs/cron-request-verification.d.ts +22 -1
  135. package/dist/cjs/cron-request-verification.d.ts.map +1 -1
  136. package/dist/cjs/cron-request-verification.js +50 -6
  137. package/dist/cjs/cron-request-verification.js.map +1 -1
  138. package/dist/cjs/data-api-route-generator.d.ts +19 -0
  139. package/dist/cjs/data-api-route-generator.d.ts.map +1 -1
  140. package/dist/cjs/data-api-route-generator.js +711 -43
  141. package/dist/cjs/data-api-route-generator.js.map +1 -1
  142. package/dist/cjs/ecommerce/parameterized-stock-chain.d.ts +3 -1
  143. package/dist/cjs/ecommerce/parameterized-stock-chain.d.ts.map +1 -1
  144. package/dist/cjs/ecommerce/parameterized-stock-chain.js +45 -5
  145. package/dist/cjs/ecommerce/parameterized-stock-chain.js.map +1 -1
  146. package/dist/cjs/ecommerce/place-order-guards.d.ts +126 -0
  147. package/dist/cjs/ecommerce/place-order-guards.d.ts.map +1 -0
  148. package/dist/cjs/ecommerce/place-order-guards.js +670 -0
  149. package/dist/cjs/ecommerce/place-order-guards.js.map +1 -0
  150. package/dist/cjs/ecommerce-customhandler-rewriter.d.ts +2 -0
  151. package/dist/cjs/ecommerce-customhandler-rewriter.d.ts.map +1 -1
  152. package/dist/cjs/ecommerce-customhandler-rewriter.js +38 -2
  153. package/dist/cjs/ecommerce-customhandler-rewriter.js.map +1 -1
  154. package/dist/cjs/executor-generator.d.ts.map +1 -1
  155. package/dist/cjs/executor-generator.js +368 -60
  156. package/dist/cjs/executor-generator.js.map +1 -1
  157. package/dist/cjs/graph-utils.d.ts +9 -0
  158. package/dist/cjs/graph-utils.d.ts.map +1 -1
  159. package/dist/cjs/graph-utils.js +32 -1
  160. package/dist/cjs/graph-utils.js.map +1 -1
  161. package/dist/cjs/index.d.ts +20 -1
  162. package/dist/cjs/index.d.ts.map +1 -1
  163. package/dist/cjs/index.js +72 -2
  164. package/dist/cjs/index.js.map +1 -1
  165. package/dist/cjs/invoice/api-routes-code.d.ts +9 -3
  166. package/dist/cjs/invoice/api-routes-code.d.ts.map +1 -1
  167. package/dist/cjs/invoice/api-routes-code.js +9 -7
  168. package/dist/cjs/invoice/api-routes-code.js.map +1 -1
  169. package/dist/cjs/invoice/index.d.ts.map +1 -1
  170. package/dist/cjs/invoice/index.js +12 -7
  171. package/dist/cjs/invoice/index.js.map +1 -1
  172. package/dist/cjs/invoice/invoice-assembly-code.d.ts.map +1 -1
  173. package/dist/cjs/invoice/invoice-assembly-code.js +8 -3
  174. package/dist/cjs/invoice/invoice-assembly-code.js.map +1 -1
  175. package/dist/cjs/invoice/pdf-generator-code.d.ts.map +1 -1
  176. package/dist/cjs/invoice/pdf-generator-code.js +2 -1
  177. package/dist/cjs/invoice/pdf-generator-code.js.map +1 -1
  178. package/dist/cjs/invoice/pdf-service-client-code.d.ts.map +1 -1
  179. package/dist/cjs/invoice/pdf-service-client-code.js +15 -7
  180. package/dist/cjs/invoice/pdf-service-client-code.js.map +1 -1
  181. package/dist/cjs/newsletter/admin-route-code.d.ts +60 -0
  182. package/dist/cjs/newsletter/admin-route-code.d.ts.map +1 -0
  183. package/dist/cjs/newsletter/admin-route-code.js +300 -0
  184. package/dist/cjs/newsletter/admin-route-code.js.map +1 -0
  185. package/dist/cjs/newsletter/helper-code.d.ts +109 -0
  186. package/dist/cjs/newsletter/helper-code.d.ts.map +1 -0
  187. package/dist/cjs/newsletter/helper-code.js +662 -0
  188. package/dist/cjs/newsletter/helper-code.js.map +1 -0
  189. package/dist/cjs/newsletter/newsletter-scope.d.ts +65 -0
  190. package/dist/cjs/newsletter/newsletter-scope.d.ts.map +1 -0
  191. package/dist/cjs/newsletter/newsletter-scope.js +103 -0
  192. package/dist/cjs/newsletter/newsletter-scope.js.map +1 -0
  193. package/dist/cjs/newsletter/project-plugin.d.ts +18 -0
  194. package/dist/cjs/newsletter/project-plugin.d.ts.map +1 -0
  195. package/dist/cjs/newsletter/project-plugin.js +97 -0
  196. package/dist/cjs/newsletter/project-plugin.js.map +1 -0
  197. package/dist/cjs/newsletter/routes-code.d.ts +6 -0
  198. package/dist/cjs/newsletter/routes-code.d.ts.map +1 -0
  199. package/dist/cjs/newsletter/routes-code.js +181 -0
  200. package/dist/cjs/newsletter/routes-code.js.map +1 -0
  201. package/dist/cjs/nodes/account/account-compare-passwords.d.ts.map +1 -1
  202. package/dist/cjs/nodes/account/account-compare-passwords.js +16 -6
  203. package/dist/cjs/nodes/account/account-compare-passwords.js.map +1 -1
  204. package/dist/cjs/nodes/account/account-delete-current.js +1 -1
  205. package/dist/cjs/nodes/account/account-get-current.js +1 -1
  206. package/dist/cjs/nodes/account/account-hash-password.d.ts.map +1 -1
  207. package/dist/cjs/nodes/account/account-hash-password.js +15 -3
  208. package/dist/cjs/nodes/account/account-hash-password.js.map +1 -1
  209. package/dist/cjs/nodes/account/account-login.d.ts.map +1 -1
  210. package/dist/cjs/nodes/account/account-login.js +23 -6
  211. package/dist/cjs/nodes/account/account-login.js.map +1 -1
  212. package/dist/cjs/nodes/account/account-logout.js +1 -1
  213. package/dist/cjs/nodes/account/account-refresh-session.js +1 -1
  214. package/dist/cjs/nodes/account/account-request-password-reset.d.ts +3 -0
  215. package/dist/cjs/nodes/account/account-request-password-reset.d.ts.map +1 -0
  216. package/dist/cjs/nodes/account/account-request-password-reset.js +46 -0
  217. package/dist/cjs/nodes/account/account-request-password-reset.js.map +1 -0
  218. package/dist/cjs/nodes/account/account-reset-password.d.ts +3 -0
  219. package/dist/cjs/nodes/account/account-reset-password.d.ts.map +1 -0
  220. package/dist/cjs/nodes/account/account-reset-password.js +44 -0
  221. package/dist/cjs/nodes/account/account-reset-password.js.map +1 -0
  222. package/dist/cjs/nodes/account/account-signup.d.ts.map +1 -1
  223. package/dist/cjs/nodes/account/account-signup.js +82 -19
  224. package/dist/cjs/nodes/account/account-signup.js.map +1 -1
  225. package/dist/cjs/nodes/account/account-social-login.js +1 -1
  226. package/dist/cjs/nodes/ai/ai-custom-prompt.d.ts.map +1 -1
  227. package/dist/cjs/nodes/ai/ai-custom-prompt.js +20 -5
  228. package/dist/cjs/nodes/ai/ai-custom-prompt.js.map +1 -1
  229. package/dist/cjs/nodes/ai/ai-detect-language.d.ts.map +1 -1
  230. package/dist/cjs/nodes/ai/ai-detect-language.js +20 -5
  231. package/dist/cjs/nodes/ai/ai-detect-language.js.map +1 -1
  232. package/dist/cjs/nodes/ai/ai-generate-text-embedding.d.ts.map +1 -1
  233. package/dist/cjs/nodes/ai/ai-generate-text-embedding.js +10 -2
  234. package/dist/cjs/nodes/ai/ai-generate-text-embedding.js.map +1 -1
  235. package/dist/cjs/nodes/ai/ai-provider-utils-sources.generated.js +2 -2
  236. package/dist/cjs/nodes/ai/ai-provider-utils-sources.generated.js.map +1 -1
  237. package/dist/cjs/nodes/ai/ai-provider-utils.d.ts +31 -2
  238. package/dist/cjs/nodes/ai/ai-provider-utils.d.ts.map +1 -1
  239. package/dist/cjs/nodes/ai/ai-provider-utils.js +125 -11
  240. package/dist/cjs/nodes/ai/ai-provider-utils.js.map +1 -1
  241. package/dist/cjs/nodes/ai/ai-select-database-data.d.ts.map +1 -1
  242. package/dist/cjs/nodes/ai/ai-select-database-data.js +6 -2
  243. package/dist/cjs/nodes/ai/ai-select-database-data.js.map +1 -1
  244. package/dist/cjs/nodes/ai/ai-sentiment-analysis.d.ts.map +1 -1
  245. package/dist/cjs/nodes/ai/ai-sentiment-analysis.js +20 -5
  246. package/dist/cjs/nodes/ai/ai-sentiment-analysis.js.map +1 -1
  247. package/dist/cjs/nodes/ai/ai-summarization.d.ts.map +1 -1
  248. package/dist/cjs/nodes/ai/ai-summarization.js +20 -5
  249. package/dist/cjs/nodes/ai/ai-summarization.js.map +1 -1
  250. package/dist/cjs/nodes/ai/ai-text-classifier.d.ts.map +1 -1
  251. package/dist/cjs/nodes/ai/ai-text-classifier.js +20 -5
  252. package/dist/cjs/nodes/ai/ai-text-classifier.js.map +1 -1
  253. package/dist/cjs/nodes/ai/ai-text-transform.d.ts.map +1 -1
  254. package/dist/cjs/nodes/ai/ai-text-transform.js +20 -5
  255. package/dist/cjs/nodes/ai/ai-text-transform.js.map +1 -1
  256. package/dist/cjs/nodes/analytics/analytics-track-outcome.d.ts +3 -0
  257. package/dist/cjs/nodes/analytics/analytics-track-outcome.d.ts.map +1 -0
  258. package/dist/cjs/nodes/analytics/analytics-track-outcome.js +110 -0
  259. package/dist/cjs/nodes/analytics/analytics-track-outcome.js.map +1 -0
  260. package/dist/cjs/nodes/cart/cart-price-order.d.ts.map +1 -1
  261. package/dist/cjs/nodes/cart/cart-price-order.js +161 -2
  262. package/dist/cjs/nodes/cart/cart-price-order.js.map +1 -1
  263. package/dist/cjs/nodes/cost-bearing-node-types.d.ts +4 -0
  264. package/dist/cjs/nodes/cost-bearing-node-types.d.ts.map +1 -0
  265. package/dist/cjs/nodes/cost-bearing-node-types.js +43 -0
  266. package/dist/cjs/nodes/cost-bearing-node-types.js.map +1 -0
  267. package/dist/cjs/nodes/data/data-select.d.ts.map +1 -1
  268. package/dist/cjs/nodes/data/data-select.js +12 -2
  269. package/dist/cjs/nodes/data/data-select.js.map +1 -1
  270. package/dist/cjs/nodes/email/email-mailersend.d.ts.map +1 -1
  271. package/dist/cjs/nodes/email/email-mailersend.js +15 -11
  272. package/dist/cjs/nodes/email/email-mailersend.js.map +1 -1
  273. package/dist/cjs/nodes/email/email-mailgun.d.ts.map +1 -1
  274. package/dist/cjs/nodes/email/email-mailgun.js +15 -15
  275. package/dist/cjs/nodes/email/email-mailgun.js.map +1 -1
  276. package/dist/cjs/nodes/email/email-postmark.d.ts.map +1 -1
  277. package/dist/cjs/nodes/email/email-postmark.js +15 -15
  278. package/dist/cjs/nodes/email/email-postmark.js.map +1 -1
  279. package/dist/cjs/nodes/email/email-resend.d.ts.map +1 -1
  280. package/dist/cjs/nodes/email/email-resend.js +15 -15
  281. package/dist/cjs/nodes/email/email-resend.js.map +1 -1
  282. package/dist/cjs/nodes/email/email-sendgrid.d.ts.map +1 -1
  283. package/dist/cjs/nodes/email/email-sendgrid.js +15 -15
  284. package/dist/cjs/nodes/email/email-sendgrid.js.map +1 -1
  285. package/dist/cjs/nodes/email/html-escape-code.d.ts +3 -0
  286. package/dist/cjs/nodes/email/html-escape-code.d.ts.map +1 -0
  287. package/dist/cjs/nodes/email/html-escape-code.js +23 -0
  288. package/dist/cjs/nodes/email/html-escape-code.js.map +1 -0
  289. package/dist/cjs/nodes/email/message-trust.d.ts +40 -0
  290. package/dist/cjs/nodes/email/message-trust.d.ts.map +1 -0
  291. package/dist/cjs/nodes/email/message-trust.js +167 -0
  292. package/dist/cjs/nodes/email/message-trust.js.map +1 -0
  293. package/dist/cjs/nodes/email/outbound-message-guard.d.ts +113 -0
  294. package/dist/cjs/nodes/email/outbound-message-guard.d.ts.map +1 -0
  295. package/dist/cjs/nodes/email/outbound-message-guard.js +460 -0
  296. package/dist/cjs/nodes/email/outbound-message-guard.js.map +1 -0
  297. package/dist/cjs/nodes/email/trusted-html-code.d.ts +22 -0
  298. package/dist/cjs/nodes/email/trusted-html-code.d.ts.map +1 -0
  299. package/dist/cjs/nodes/email/trusted-html-code.js +52 -0
  300. package/dist/cjs/nodes/email/trusted-html-code.js.map +1 -0
  301. package/dist/cjs/nodes/general/general-custom-js.d.ts.map +1 -1
  302. package/dist/cjs/nodes/general/general-custom-js.js +44 -7
  303. package/dist/cjs/nodes/general/general-custom-js.js.map +1 -1
  304. package/dist/cjs/nodes/general/general-http-request.d.ts.map +1 -1
  305. package/dist/cjs/nodes/general/general-http-request.js +431 -45
  306. package/dist/cjs/nodes/general/general-http-request.js.map +1 -1
  307. package/dist/cjs/nodes/general/general-rate-limiter.d.ts.map +1 -1
  308. package/dist/cjs/nodes/general/general-rate-limiter.js +46 -78
  309. package/dist/cjs/nodes/general/general-rate-limiter.js.map +1 -1
  310. package/dist/cjs/nodes/general/general-wait.d.ts +3 -0
  311. package/dist/cjs/nodes/general/general-wait.d.ts.map +1 -0
  312. package/dist/cjs/nodes/general/general-wait.js +81 -0
  313. package/dist/cjs/nodes/general/general-wait.js.map +1 -0
  314. package/dist/cjs/nodes/general/visitor-request.d.ts +44 -0
  315. package/dist/cjs/nodes/general/visitor-request.d.ts.map +1 -0
  316. package/dist/cjs/nodes/general/visitor-request.js +72 -0
  317. package/dist/cjs/nodes/general/visitor-request.js.map +1 -0
  318. package/dist/cjs/nodes/index.d.ts.map +1 -1
  319. package/dist/cjs/nodes/index.js +7 -1
  320. package/dist/cjs/nodes/index.js.map +1 -1
  321. package/dist/cjs/nodes/integrations/integration-slack.d.ts.map +1 -1
  322. package/dist/cjs/nodes/integrations/integration-slack.js +17 -6
  323. package/dist/cjs/nodes/integrations/integration-slack.js.map +1 -1
  324. package/dist/cjs/nodes/newsletter/newsletter-confirm.d.ts +3 -0
  325. package/dist/cjs/nodes/newsletter/newsletter-confirm.d.ts.map +1 -0
  326. package/dist/cjs/nodes/newsletter/newsletter-confirm.js +41 -0
  327. package/dist/cjs/nodes/newsletter/newsletter-confirm.js.map +1 -0
  328. package/dist/cjs/nodes/newsletter/newsletter-subscribe.d.ts +7 -0
  329. package/dist/cjs/nodes/newsletter/newsletter-subscribe.d.ts.map +1 -0
  330. package/dist/cjs/nodes/newsletter/newsletter-subscribe.js +69 -0
  331. package/dist/cjs/nodes/newsletter/newsletter-subscribe.js.map +1 -0
  332. package/dist/cjs/nodes/newsletter/newsletter-unsubscribe.d.ts +3 -0
  333. package/dist/cjs/nodes/newsletter/newsletter-unsubscribe.d.ts.map +1 -0
  334. package/dist/cjs/nodes/newsletter/newsletter-unsubscribe.js +42 -0
  335. package/dist/cjs/nodes/newsletter/newsletter-unsubscribe.js.map +1 -0
  336. package/dist/cjs/nodes/realtime/realtime-join-channel.d.ts.map +1 -1
  337. package/dist/cjs/nodes/realtime/realtime-join-channel.js +5 -4
  338. package/dist/cjs/nodes/realtime/realtime-join-channel.js.map +1 -1
  339. package/dist/cjs/nodes/realtime/realtime-send-channel-event.d.ts.map +1 -1
  340. package/dist/cjs/nodes/realtime/realtime-send-channel-event.js +11 -2
  341. package/dist/cjs/nodes/realtime/realtime-send-channel-event.js.map +1 -1
  342. package/dist/cjs/nodes/realtime/realtime-send-channel-message.d.ts.map +1 -1
  343. package/dist/cjs/nodes/realtime/realtime-send-channel-message.js +11 -2
  344. package/dist/cjs/nodes/realtime/realtime-send-channel-message.js.map +1 -1
  345. package/dist/cjs/nodes/sms/sms-infobip.d.ts.map +1 -1
  346. package/dist/cjs/nodes/sms/sms-infobip.js +11 -8
  347. package/dist/cjs/nodes/sms/sms-infobip.js.map +1 -1
  348. package/dist/cjs/nodes/sms/sms-smsapi.d.ts.map +1 -1
  349. package/dist/cjs/nodes/sms/sms-smsapi.js +11 -8
  350. package/dist/cjs/nodes/sms/sms-smsapi.js.map +1 -1
  351. package/dist/cjs/nodes/sms/sms-textmagic.d.ts.map +1 -1
  352. package/dist/cjs/nodes/sms/sms-textmagic.js +11 -8
  353. package/dist/cjs/nodes/sms/sms-textmagic.js.map +1 -1
  354. package/dist/cjs/nodes/sms/sms-twilio.d.ts.map +1 -1
  355. package/dist/cjs/nodes/sms/sms-twilio.js +12 -10
  356. package/dist/cjs/nodes/sms/sms-twilio.js.map +1 -1
  357. package/dist/cjs/nodes/types.d.ts +8 -1
  358. package/dist/cjs/nodes/types.d.ts.map +1 -1
  359. package/dist/cjs/nodes/utility/utility-similarity-scoring.d.ts.map +1 -1
  360. package/dist/cjs/nodes/utility/utility-similarity-scoring.js +29 -10
  361. package/dist/cjs/nodes/utility/utility-similarity-scoring.js.map +1 -1
  362. package/dist/cjs/page-access-guard-generator.d.ts +23 -0
  363. package/dist/cjs/page-access-guard-generator.d.ts.map +1 -0
  364. package/dist/cjs/page-access-guard-generator.js +135 -0
  365. package/dist/cjs/page-access-guard-generator.js.map +1 -0
  366. package/dist/cjs/password-reset-route-generator.d.ts +119 -0
  367. package/dist/cjs/password-reset-route-generator.d.ts.map +1 -0
  368. package/dist/cjs/password-reset-route-generator.js +460 -0
  369. package/dist/cjs/password-reset-route-generator.js.map +1 -0
  370. package/dist/cjs/payments/payment-core-code.d.ts.map +1 -1
  371. package/dist/cjs/payments/payment-core-code.js +12 -7
  372. package/dist/cjs/payments/payment-core-code.js.map +1 -1
  373. package/dist/cjs/project-code-scanner.d.ts +11 -0
  374. package/dist/cjs/project-code-scanner.d.ts.map +1 -0
  375. package/dist/cjs/project-code-scanner.js +80 -0
  376. package/dist/cjs/project-code-scanner.js.map +1 -0
  377. package/dist/cjs/public-step-guards.d.ts +122 -0
  378. package/dist/cjs/public-step-guards.d.ts.map +1 -0
  379. package/dist/cjs/public-step-guards.js +288 -0
  380. package/dist/cjs/public-step-guards.js.map +1 -0
  381. package/dist/cjs/publish-refusals.d.ts +66 -0
  382. package/dist/cjs/publish-refusals.d.ts.map +1 -0
  383. package/dist/cjs/publish-refusals.js +278 -0
  384. package/dist/cjs/publish-refusals.js.map +1 -0
  385. package/dist/cjs/realtime-generator.d.ts +63 -1
  386. package/dist/cjs/realtime-generator.d.ts.map +1 -1
  387. package/dist/cjs/realtime-generator.js +404 -230
  388. package/dist/cjs/realtime-generator.js.map +1 -1
  389. package/dist/cjs/runtime-storage-generator.d.ts +32 -1
  390. package/dist/cjs/runtime-storage-generator.d.ts.map +1 -1
  391. package/dist/cjs/runtime-storage-generator.js +265 -12
  392. package/dist/cjs/runtime-storage-generator.js.map +1 -1
  393. package/dist/cjs/security-runtime/index.d.ts +14 -0
  394. package/dist/cjs/security-runtime/index.d.ts.map +1 -0
  395. package/dist/cjs/security-runtime/index.js +48 -0
  396. package/dist/cjs/security-runtime/index.js.map +1 -0
  397. package/dist/cjs/security-runtime/security-runtime-code.d.ts +53 -0
  398. package/dist/cjs/security-runtime/security-runtime-code.d.ts.map +1 -0
  399. package/dist/cjs/security-runtime/security-runtime-code.js +580 -0
  400. package/dist/cjs/security-runtime/security-runtime-code.js.map +1 -0
  401. package/dist/cjs/security-scanner.d.ts +72 -3
  402. package/dist/cjs/security-scanner.d.ts.map +1 -1
  403. package/dist/cjs/security-scanner.js +220 -8
  404. package/dist/cjs/security-scanner.js.map +1 -1
  405. package/dist/cjs/segment-splitter.d.ts.map +1 -1
  406. package/dist/cjs/segment-splitter.js +10 -2
  407. package/dist/cjs/segment-splitter.js.map +1 -1
  408. package/dist/cjs/segment-trust.d.ts +36 -0
  409. package/dist/cjs/segment-trust.d.ts.map +1 -1
  410. package/dist/cjs/segment-trust.js +147 -3
  411. package/dist/cjs/segment-trust.js.map +1 -1
  412. package/dist/cjs/self-call-headers.d.ts +31 -0
  413. package/dist/cjs/self-call-headers.d.ts.map +1 -0
  414. package/dist/cjs/self-call-headers.js +48 -0
  415. package/dist/cjs/self-call-headers.js.map +1 -0
  416. package/dist/cjs/sent-email-log/index.d.ts +7 -0
  417. package/dist/cjs/sent-email-log/index.d.ts.map +1 -1
  418. package/dist/cjs/sent-email-log/index.js +17 -1
  419. package/dist/cjs/sent-email-log/index.js.map +1 -1
  420. package/dist/cjs/sent-email-log/sent-email-log-code.d.ts +7 -0
  421. package/dist/cjs/sent-email-log/sent-email-log-code.d.ts.map +1 -1
  422. package/dist/cjs/sent-email-log/sent-email-log-code.js +17 -3
  423. package/dist/cjs/sent-email-log/sent-email-log-code.js.map +1 -1
  424. package/dist/cjs/server-custom-node-call.d.ts +79 -0
  425. package/dist/cjs/server-custom-node-call.d.ts.map +1 -0
  426. package/dist/cjs/server-custom-node-call.js +285 -0
  427. package/dist/cjs/server-custom-node-call.js.map +1 -0
  428. package/dist/cjs/server-runtime-code.d.ts +39 -12
  429. package/dist/cjs/server-runtime-code.d.ts.map +1 -1
  430. package/dist/cjs/server-runtime-code.js +484 -41
  431. package/dist/cjs/server-runtime-code.js.map +1 -1
  432. package/dist/cjs/session-cookie-resolver.d.ts +3 -1
  433. package/dist/cjs/session-cookie-resolver.d.ts.map +1 -1
  434. package/dist/cjs/session-revocation-generator.d.ts +39 -0
  435. package/dist/cjs/session-revocation-generator.d.ts.map +1 -0
  436. package/dist/cjs/session-revocation-generator.js +177 -0
  437. package/dist/cjs/session-revocation-generator.js.map +1 -0
  438. package/dist/cjs/slack-message-values.d.ts +6 -0
  439. package/dist/cjs/slack-message-values.d.ts.map +1 -0
  440. package/dist/cjs/slack-message-values.js +73 -0
  441. package/dist/cjs/slack-message-values.js.map +1 -0
  442. package/dist/cjs/transactional-email-code.d.ts +11 -0
  443. package/dist/cjs/transactional-email-code.d.ts.map +1 -1
  444. package/dist/cjs/transactional-email-code.js +29 -5
  445. package/dist/cjs/transactional-email-code.js.map +1 -1
  446. package/dist/cjs/trigger-generator.d.ts +2 -0
  447. package/dist/cjs/trigger-generator.d.ts.map +1 -1
  448. package/dist/cjs/trigger-generator.js +17 -4
  449. package/dist/cjs/trigger-generator.js.map +1 -1
  450. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  451. package/dist/cjs/visitor-step-limits.d.ts +66 -0
  452. package/dist/cjs/visitor-step-limits.d.ts.map +1 -0
  453. package/dist/cjs/visitor-step-limits.js +187 -0
  454. package/dist/cjs/visitor-step-limits.js.map +1 -0
  455. package/dist/cjs/webhook-generator.d.ts.map +1 -1
  456. package/dist/cjs/webhook-generator.js +93 -15
  457. package/dist/cjs/webhook-generator.js.map +1 -1
  458. package/dist/cjs/webhook-signature-verification.d.ts.map +1 -1
  459. package/dist/cjs/webhook-signature-verification.js +13 -3
  460. package/dist/cjs/webhook-signature-verification.js.map +1 -1
  461. package/dist/cjs/workflow-auth-generator.d.ts +4 -1
  462. package/dist/cjs/workflow-auth-generator.d.ts.map +1 -1
  463. package/dist/cjs/workflow-auth-generator.js +8 -3
  464. package/dist/cjs/workflow-auth-generator.js.map +1 -1
  465. package/dist/cjs/workflow-component-plugin.js +11 -3
  466. package/dist/cjs/workflow-component-plugin.js.map +1 -1
  467. package/dist/cjs/workflow-project-plugin.d.ts.map +1 -1
  468. package/dist/cjs/workflow-project-plugin.js +302 -56
  469. package/dist/cjs/workflow-project-plugin.js.map +1 -1
  470. package/dist/cjs/workflow-scope.d.ts.map +1 -1
  471. package/dist/cjs/workflow-scope.js +5 -0
  472. package/dist/cjs/workflow-scope.js.map +1 -1
  473. package/dist/esm/account-delete-route-generator.d.ts +1 -0
  474. package/dist/esm/account-delete-route-generator.d.ts.map +1 -1
  475. package/dist/esm/account-delete-route-generator.js +18 -3
  476. package/dist/esm/account-delete-route-generator.js.map +1 -1
  477. package/dist/esm/api-route-generator.d.ts +52 -3
  478. package/dist/esm/api-route-generator.d.ts.map +1 -1
  479. package/dist/esm/api-route-generator.js +595 -142
  480. package/dist/esm/api-route-generator.js.map +1 -1
  481. package/dist/esm/auth-generator.d.ts +126 -3
  482. package/dist/esm/auth-generator.d.ts.map +1 -1
  483. package/dist/esm/auth-generator.js +1350 -140
  484. package/dist/esm/auth-generator.js.map +1 -1
  485. package/dist/esm/automations/activity-kicks.d.ts +12 -0
  486. package/dist/esm/automations/activity-kicks.d.ts.map +1 -0
  487. package/dist/esm/automations/activity-kicks.js +118 -0
  488. package/dist/esm/automations/activity-kicks.js.map +1 -0
  489. package/dist/esm/automations/app-events-source.d.ts +33 -0
  490. package/dist/esm/automations/app-events-source.d.ts.map +1 -0
  491. package/dist/esm/automations/app-events-source.js +104 -0
  492. package/dist/esm/automations/app-events-source.js.map +1 -0
  493. package/dist/esm/automations/automations-project-plugin.d.ts +21 -0
  494. package/dist/esm/automations/automations-project-plugin.d.ts.map +1 -0
  495. package/dist/esm/automations/automations-project-plugin.js +98 -0
  496. package/dist/esm/automations/automations-project-plugin.js.map +1 -0
  497. package/dist/esm/automations/automations-scope.d.ts +104 -0
  498. package/dist/esm/automations/automations-scope.d.ts.map +1 -0
  499. package/dist/esm/automations/automations-scope.js +165 -0
  500. package/dist/esm/automations/automations-scope.js.map +1 -0
  501. package/dist/esm/automations/dispatcher-source.d.ts +72 -0
  502. package/dist/esm/automations/dispatcher-source.d.ts.map +1 -0
  503. package/dist/esm/automations/dispatcher-source.js +999 -0
  504. package/dist/esm/automations/dispatcher-source.js.map +1 -0
  505. package/dist/esm/automations/event-bus-source.d.ts +44 -0
  506. package/dist/esm/automations/event-bus-source.d.ts.map +1 -0
  507. package/dist/esm/automations/event-bus-source.js +421 -0
  508. package/dist/esm/automations/event-bus-source.js.map +1 -0
  509. package/dist/esm/automations/handler-module-generator.d.ts +25 -0
  510. package/dist/esm/automations/handler-module-generator.d.ts.map +1 -0
  511. package/dist/esm/automations/handler-module-generator.js +71 -0
  512. package/dist/esm/automations/handler-module-generator.js.map +1 -0
  513. package/dist/esm/automations/hydrators-source.d.ts +33 -0
  514. package/dist/esm/automations/hydrators-source.d.ts.map +1 -0
  515. package/dist/esm/automations/hydrators-source.js +567 -0
  516. package/dist/esm/automations/hydrators-source.js.map +1 -0
  517. package/dist/esm/booking-calendar-feed-route-generator.d.ts.map +1 -1
  518. package/dist/esm/booking-calendar-feed-route-generator.js +8 -0
  519. package/dist/esm/booking-calendar-feed-route-generator.js.map +1 -1
  520. package/dist/esm/configured-nextauth-url.d.ts +17 -0
  521. package/dist/esm/configured-nextauth-url.d.ts.map +1 -0
  522. package/dist/esm/configured-nextauth-url.js +17 -0
  523. package/dist/esm/configured-nextauth-url.js.map +1 -0
  524. package/dist/esm/cron-request-verification.d.ts +22 -1
  525. package/dist/esm/cron-request-verification.d.ts.map +1 -1
  526. package/dist/esm/cron-request-verification.js +48 -5
  527. package/dist/esm/cron-request-verification.js.map +1 -1
  528. package/dist/esm/data-api-route-generator.d.ts +19 -0
  529. package/dist/esm/data-api-route-generator.d.ts.map +1 -1
  530. package/dist/esm/data-api-route-generator.js +710 -43
  531. package/dist/esm/data-api-route-generator.js.map +1 -1
  532. package/dist/esm/ecommerce/parameterized-stock-chain.d.ts +3 -1
  533. package/dist/esm/ecommerce/parameterized-stock-chain.d.ts.map +1 -1
  534. package/dist/esm/ecommerce/parameterized-stock-chain.js +43 -4
  535. package/dist/esm/ecommerce/parameterized-stock-chain.js.map +1 -1
  536. package/dist/esm/ecommerce/place-order-guards.d.ts +126 -0
  537. package/dist/esm/ecommerce/place-order-guards.d.ts.map +1 -0
  538. package/dist/esm/ecommerce/place-order-guards.js +655 -0
  539. package/dist/esm/ecommerce/place-order-guards.js.map +1 -0
  540. package/dist/esm/ecommerce-customhandler-rewriter.d.ts +2 -0
  541. package/dist/esm/ecommerce-customhandler-rewriter.d.ts.map +1 -1
  542. package/dist/esm/ecommerce-customhandler-rewriter.js +38 -2
  543. package/dist/esm/ecommerce-customhandler-rewriter.js.map +1 -1
  544. package/dist/esm/executor-generator.d.ts.map +1 -1
  545. package/dist/esm/executor-generator.js +368 -60
  546. package/dist/esm/executor-generator.js.map +1 -1
  547. package/dist/esm/graph-utils.d.ts +9 -0
  548. package/dist/esm/graph-utils.d.ts.map +1 -1
  549. package/dist/esm/graph-utils.js +30 -0
  550. package/dist/esm/graph-utils.js.map +1 -1
  551. package/dist/esm/index.d.ts +20 -1
  552. package/dist/esm/index.d.ts.map +1 -1
  553. package/dist/esm/index.js +27 -1
  554. package/dist/esm/index.js.map +1 -1
  555. package/dist/esm/invoice/api-routes-code.d.ts +9 -3
  556. package/dist/esm/invoice/api-routes-code.d.ts.map +1 -1
  557. package/dist/esm/invoice/api-routes-code.js +9 -7
  558. package/dist/esm/invoice/api-routes-code.js.map +1 -1
  559. package/dist/esm/invoice/index.d.ts.map +1 -1
  560. package/dist/esm/invoice/index.js +12 -7
  561. package/dist/esm/invoice/index.js.map +1 -1
  562. package/dist/esm/invoice/invoice-assembly-code.d.ts.map +1 -1
  563. package/dist/esm/invoice/invoice-assembly-code.js +8 -3
  564. package/dist/esm/invoice/invoice-assembly-code.js.map +1 -1
  565. package/dist/esm/invoice/pdf-generator-code.d.ts.map +1 -1
  566. package/dist/esm/invoice/pdf-generator-code.js +2 -1
  567. package/dist/esm/invoice/pdf-generator-code.js.map +1 -1
  568. package/dist/esm/invoice/pdf-service-client-code.d.ts.map +1 -1
  569. package/dist/esm/invoice/pdf-service-client-code.js +15 -7
  570. package/dist/esm/invoice/pdf-service-client-code.js.map +1 -1
  571. package/dist/esm/newsletter/admin-route-code.d.ts +60 -0
  572. package/dist/esm/newsletter/admin-route-code.d.ts.map +1 -0
  573. package/dist/esm/newsletter/admin-route-code.js +295 -0
  574. package/dist/esm/newsletter/admin-route-code.js.map +1 -0
  575. package/dist/esm/newsletter/helper-code.d.ts +109 -0
  576. package/dist/esm/newsletter/helper-code.d.ts.map +1 -0
  577. package/dist/esm/newsletter/helper-code.js +656 -0
  578. package/dist/esm/newsletter/helper-code.js.map +1 -0
  579. package/dist/esm/newsletter/newsletter-scope.d.ts +65 -0
  580. package/dist/esm/newsletter/newsletter-scope.d.ts.map +1 -0
  581. package/dist/esm/newsletter/newsletter-scope.js +97 -0
  582. package/dist/esm/newsletter/newsletter-scope.js.map +1 -0
  583. package/dist/esm/newsletter/project-plugin.d.ts +18 -0
  584. package/dist/esm/newsletter/project-plugin.d.ts.map +1 -0
  585. package/dist/esm/newsletter/project-plugin.js +93 -0
  586. package/dist/esm/newsletter/project-plugin.js.map +1 -0
  587. package/dist/esm/newsletter/routes-code.d.ts +6 -0
  588. package/dist/esm/newsletter/routes-code.d.ts.map +1 -0
  589. package/dist/esm/newsletter/routes-code.js +175 -0
  590. package/dist/esm/newsletter/routes-code.js.map +1 -0
  591. package/dist/esm/nodes/account/account-compare-passwords.d.ts.map +1 -1
  592. package/dist/esm/nodes/account/account-compare-passwords.js +16 -6
  593. package/dist/esm/nodes/account/account-compare-passwords.js.map +1 -1
  594. package/dist/esm/nodes/account/account-delete-current.js +1 -1
  595. package/dist/esm/nodes/account/account-get-current.js +1 -1
  596. package/dist/esm/nodes/account/account-hash-password.d.ts.map +1 -1
  597. package/dist/esm/nodes/account/account-hash-password.js +15 -3
  598. package/dist/esm/nodes/account/account-hash-password.js.map +1 -1
  599. package/dist/esm/nodes/account/account-login.d.ts.map +1 -1
  600. package/dist/esm/nodes/account/account-login.js +23 -6
  601. package/dist/esm/nodes/account/account-login.js.map +1 -1
  602. package/dist/esm/nodes/account/account-logout.js +1 -1
  603. package/dist/esm/nodes/account/account-refresh-session.js +1 -1
  604. package/dist/esm/nodes/account/account-request-password-reset.d.ts +3 -0
  605. package/dist/esm/nodes/account/account-request-password-reset.d.ts.map +1 -0
  606. package/dist/esm/nodes/account/account-request-password-reset.js +43 -0
  607. package/dist/esm/nodes/account/account-request-password-reset.js.map +1 -0
  608. package/dist/esm/nodes/account/account-reset-password.d.ts +3 -0
  609. package/dist/esm/nodes/account/account-reset-password.d.ts.map +1 -0
  610. package/dist/esm/nodes/account/account-reset-password.js +41 -0
  611. package/dist/esm/nodes/account/account-reset-password.js.map +1 -0
  612. package/dist/esm/nodes/account/account-signup.d.ts.map +1 -1
  613. package/dist/esm/nodes/account/account-signup.js +82 -19
  614. package/dist/esm/nodes/account/account-signup.js.map +1 -1
  615. package/dist/esm/nodes/account/account-social-login.js +1 -1
  616. package/dist/esm/nodes/ai/ai-custom-prompt.d.ts.map +1 -1
  617. package/dist/esm/nodes/ai/ai-custom-prompt.js +20 -5
  618. package/dist/esm/nodes/ai/ai-custom-prompt.js.map +1 -1
  619. package/dist/esm/nodes/ai/ai-detect-language.d.ts.map +1 -1
  620. package/dist/esm/nodes/ai/ai-detect-language.js +20 -5
  621. package/dist/esm/nodes/ai/ai-detect-language.js.map +1 -1
  622. package/dist/esm/nodes/ai/ai-generate-text-embedding.d.ts.map +1 -1
  623. package/dist/esm/nodes/ai/ai-generate-text-embedding.js +10 -2
  624. package/dist/esm/nodes/ai/ai-generate-text-embedding.js.map +1 -1
  625. package/dist/esm/nodes/ai/ai-provider-utils-sources.generated.js +2 -2
  626. package/dist/esm/nodes/ai/ai-provider-utils-sources.generated.js.map +1 -1
  627. package/dist/esm/nodes/ai/ai-provider-utils.d.ts +31 -2
  628. package/dist/esm/nodes/ai/ai-provider-utils.d.ts.map +1 -1
  629. package/dist/esm/nodes/ai/ai-provider-utils.js +124 -10
  630. package/dist/esm/nodes/ai/ai-provider-utils.js.map +1 -1
  631. package/dist/esm/nodes/ai/ai-select-database-data.d.ts.map +1 -1
  632. package/dist/esm/nodes/ai/ai-select-database-data.js +6 -2
  633. package/dist/esm/nodes/ai/ai-select-database-data.js.map +1 -1
  634. package/dist/esm/nodes/ai/ai-sentiment-analysis.d.ts.map +1 -1
  635. package/dist/esm/nodes/ai/ai-sentiment-analysis.js +20 -5
  636. package/dist/esm/nodes/ai/ai-sentiment-analysis.js.map +1 -1
  637. package/dist/esm/nodes/ai/ai-summarization.d.ts.map +1 -1
  638. package/dist/esm/nodes/ai/ai-summarization.js +20 -5
  639. package/dist/esm/nodes/ai/ai-summarization.js.map +1 -1
  640. package/dist/esm/nodes/ai/ai-text-classifier.d.ts.map +1 -1
  641. package/dist/esm/nodes/ai/ai-text-classifier.js +20 -5
  642. package/dist/esm/nodes/ai/ai-text-classifier.js.map +1 -1
  643. package/dist/esm/nodes/ai/ai-text-transform.d.ts.map +1 -1
  644. package/dist/esm/nodes/ai/ai-text-transform.js +20 -5
  645. package/dist/esm/nodes/ai/ai-text-transform.js.map +1 -1
  646. package/dist/esm/nodes/analytics/analytics-track-outcome.d.ts +3 -0
  647. package/dist/esm/nodes/analytics/analytics-track-outcome.d.ts.map +1 -0
  648. package/dist/esm/nodes/analytics/analytics-track-outcome.js +107 -0
  649. package/dist/esm/nodes/analytics/analytics-track-outcome.js.map +1 -0
  650. package/dist/esm/nodes/cart/cart-price-order.d.ts.map +1 -1
  651. package/dist/esm/nodes/cart/cart-price-order.js +161 -2
  652. package/dist/esm/nodes/cart/cart-price-order.js.map +1 -1
  653. package/dist/esm/nodes/cost-bearing-node-types.d.ts +4 -0
  654. package/dist/esm/nodes/cost-bearing-node-types.d.ts.map +1 -0
  655. package/dist/esm/nodes/cost-bearing-node-types.js +39 -0
  656. package/dist/esm/nodes/cost-bearing-node-types.js.map +1 -0
  657. package/dist/esm/nodes/data/data-select.d.ts.map +1 -1
  658. package/dist/esm/nodes/data/data-select.js +12 -2
  659. package/dist/esm/nodes/data/data-select.js.map +1 -1
  660. package/dist/esm/nodes/email/email-mailersend.d.ts.map +1 -1
  661. package/dist/esm/nodes/email/email-mailersend.js +15 -11
  662. package/dist/esm/nodes/email/email-mailersend.js.map +1 -1
  663. package/dist/esm/nodes/email/email-mailgun.d.ts.map +1 -1
  664. package/dist/esm/nodes/email/email-mailgun.js +15 -15
  665. package/dist/esm/nodes/email/email-mailgun.js.map +1 -1
  666. package/dist/esm/nodes/email/email-postmark.d.ts.map +1 -1
  667. package/dist/esm/nodes/email/email-postmark.js +15 -15
  668. package/dist/esm/nodes/email/email-postmark.js.map +1 -1
  669. package/dist/esm/nodes/email/email-resend.d.ts.map +1 -1
  670. package/dist/esm/nodes/email/email-resend.js +15 -15
  671. package/dist/esm/nodes/email/email-resend.js.map +1 -1
  672. package/dist/esm/nodes/email/email-sendgrid.d.ts.map +1 -1
  673. package/dist/esm/nodes/email/email-sendgrid.js +15 -15
  674. package/dist/esm/nodes/email/email-sendgrid.js.map +1 -1
  675. package/dist/esm/nodes/email/html-escape-code.d.ts +3 -0
  676. package/dist/esm/nodes/email/html-escape-code.d.ts.map +1 -0
  677. package/dist/esm/nodes/email/html-escape-code.js +18 -0
  678. package/dist/esm/nodes/email/html-escape-code.js.map +1 -0
  679. package/dist/esm/nodes/email/message-trust.d.ts +40 -0
  680. package/dist/esm/nodes/email/message-trust.d.ts.map +1 -0
  681. package/dist/esm/nodes/email/message-trust.js +161 -0
  682. package/dist/esm/nodes/email/message-trust.js.map +1 -0
  683. package/dist/esm/nodes/email/outbound-message-guard.d.ts +113 -0
  684. package/dist/esm/nodes/email/outbound-message-guard.d.ts.map +1 -0
  685. package/dist/esm/nodes/email/outbound-message-guard.js +452 -0
  686. package/dist/esm/nodes/email/outbound-message-guard.js.map +1 -0
  687. package/dist/esm/nodes/email/trusted-html-code.d.ts +22 -0
  688. package/dist/esm/nodes/email/trusted-html-code.d.ts.map +1 -0
  689. package/dist/esm/nodes/email/trusted-html-code.js +49 -0
  690. package/dist/esm/nodes/email/trusted-html-code.js.map +1 -0
  691. package/dist/esm/nodes/general/general-custom-js.d.ts.map +1 -1
  692. package/dist/esm/nodes/general/general-custom-js.js +44 -7
  693. package/dist/esm/nodes/general/general-custom-js.js.map +1 -1
  694. package/dist/esm/nodes/general/general-http-request.d.ts.map +1 -1
  695. package/dist/esm/nodes/general/general-http-request.js +431 -45
  696. package/dist/esm/nodes/general/general-http-request.js.map +1 -1
  697. package/dist/esm/nodes/general/general-rate-limiter.d.ts.map +1 -1
  698. package/dist/esm/nodes/general/general-rate-limiter.js +46 -78
  699. package/dist/esm/nodes/general/general-rate-limiter.js.map +1 -1
  700. package/dist/esm/nodes/general/general-wait.d.ts +3 -0
  701. package/dist/esm/nodes/general/general-wait.d.ts.map +1 -0
  702. package/dist/esm/nodes/general/general-wait.js +78 -0
  703. package/dist/esm/nodes/general/general-wait.js.map +1 -0
  704. package/dist/esm/nodes/general/visitor-request.d.ts +44 -0
  705. package/dist/esm/nodes/general/visitor-request.d.ts.map +1 -0
  706. package/dist/esm/nodes/general/visitor-request.js +65 -0
  707. package/dist/esm/nodes/general/visitor-request.js.map +1 -0
  708. package/dist/esm/nodes/index.d.ts.map +1 -1
  709. package/dist/esm/nodes/index.js +7 -1
  710. package/dist/esm/nodes/index.js.map +1 -1
  711. package/dist/esm/nodes/integrations/integration-slack.d.ts.map +1 -1
  712. package/dist/esm/nodes/integrations/integration-slack.js +17 -6
  713. package/dist/esm/nodes/integrations/integration-slack.js.map +1 -1
  714. package/dist/esm/nodes/newsletter/newsletter-confirm.d.ts +3 -0
  715. package/dist/esm/nodes/newsletter/newsletter-confirm.d.ts.map +1 -0
  716. package/dist/esm/nodes/newsletter/newsletter-confirm.js +38 -0
  717. package/dist/esm/nodes/newsletter/newsletter-confirm.js.map +1 -0
  718. package/dist/esm/nodes/newsletter/newsletter-subscribe.d.ts +7 -0
  719. package/dist/esm/nodes/newsletter/newsletter-subscribe.d.ts.map +1 -0
  720. package/dist/esm/nodes/newsletter/newsletter-subscribe.js +66 -0
  721. package/dist/esm/nodes/newsletter/newsletter-subscribe.js.map +1 -0
  722. package/dist/esm/nodes/newsletter/newsletter-unsubscribe.d.ts +3 -0
  723. package/dist/esm/nodes/newsletter/newsletter-unsubscribe.d.ts.map +1 -0
  724. package/dist/esm/nodes/newsletter/newsletter-unsubscribe.js +39 -0
  725. package/dist/esm/nodes/newsletter/newsletter-unsubscribe.js.map +1 -0
  726. package/dist/esm/nodes/realtime/realtime-join-channel.d.ts.map +1 -1
  727. package/dist/esm/nodes/realtime/realtime-join-channel.js +5 -4
  728. package/dist/esm/nodes/realtime/realtime-join-channel.js.map +1 -1
  729. package/dist/esm/nodes/realtime/realtime-send-channel-event.d.ts.map +1 -1
  730. package/dist/esm/nodes/realtime/realtime-send-channel-event.js +11 -2
  731. package/dist/esm/nodes/realtime/realtime-send-channel-event.js.map +1 -1
  732. package/dist/esm/nodes/realtime/realtime-send-channel-message.d.ts.map +1 -1
  733. package/dist/esm/nodes/realtime/realtime-send-channel-message.js +11 -2
  734. package/dist/esm/nodes/realtime/realtime-send-channel-message.js.map +1 -1
  735. package/dist/esm/nodes/sms/sms-infobip.d.ts.map +1 -1
  736. package/dist/esm/nodes/sms/sms-infobip.js +11 -8
  737. package/dist/esm/nodes/sms/sms-infobip.js.map +1 -1
  738. package/dist/esm/nodes/sms/sms-smsapi.d.ts.map +1 -1
  739. package/dist/esm/nodes/sms/sms-smsapi.js +11 -8
  740. package/dist/esm/nodes/sms/sms-smsapi.js.map +1 -1
  741. package/dist/esm/nodes/sms/sms-textmagic.d.ts.map +1 -1
  742. package/dist/esm/nodes/sms/sms-textmagic.js +11 -8
  743. package/dist/esm/nodes/sms/sms-textmagic.js.map +1 -1
  744. package/dist/esm/nodes/sms/sms-twilio.d.ts.map +1 -1
  745. package/dist/esm/nodes/sms/sms-twilio.js +12 -10
  746. package/dist/esm/nodes/sms/sms-twilio.js.map +1 -1
  747. package/dist/esm/nodes/types.d.ts +8 -1
  748. package/dist/esm/nodes/types.d.ts.map +1 -1
  749. package/dist/esm/nodes/utility/utility-similarity-scoring.d.ts.map +1 -1
  750. package/dist/esm/nodes/utility/utility-similarity-scoring.js +29 -10
  751. package/dist/esm/nodes/utility/utility-similarity-scoring.js.map +1 -1
  752. package/dist/esm/page-access-guard-generator.d.ts +23 -0
  753. package/dist/esm/page-access-guard-generator.d.ts.map +1 -0
  754. package/dist/esm/page-access-guard-generator.js +131 -0
  755. package/dist/esm/page-access-guard-generator.js.map +1 -0
  756. package/dist/esm/password-reset-route-generator.d.ts +119 -0
  757. package/dist/esm/password-reset-route-generator.d.ts.map +1 -0
  758. package/dist/esm/password-reset-route-generator.js +448 -0
  759. package/dist/esm/password-reset-route-generator.js.map +1 -0
  760. package/dist/esm/payments/payment-core-code.d.ts.map +1 -1
  761. package/dist/esm/payments/payment-core-code.js +12 -7
  762. package/dist/esm/payments/payment-core-code.js.map +1 -1
  763. package/dist/esm/project-code-scanner.d.ts +11 -0
  764. package/dist/esm/project-code-scanner.d.ts.map +1 -0
  765. package/dist/esm/project-code-scanner.js +75 -0
  766. package/dist/esm/project-code-scanner.js.map +1 -0
  767. package/dist/esm/public-step-guards.d.ts +122 -0
  768. package/dist/esm/public-step-guards.d.ts.map +1 -0
  769. package/dist/esm/public-step-guards.js +280 -0
  770. package/dist/esm/public-step-guards.js.map +1 -0
  771. package/dist/esm/publish-refusals.d.ts +66 -0
  772. package/dist/esm/publish-refusals.d.ts.map +1 -0
  773. package/dist/esm/publish-refusals.js +271 -0
  774. package/dist/esm/publish-refusals.js.map +1 -0
  775. package/dist/esm/realtime-generator.d.ts +63 -1
  776. package/dist/esm/realtime-generator.d.ts.map +1 -1
  777. package/dist/esm/realtime-generator.js +401 -229
  778. package/dist/esm/realtime-generator.js.map +1 -1
  779. package/dist/esm/runtime-storage-generator.d.ts +32 -1
  780. package/dist/esm/runtime-storage-generator.d.ts.map +1 -1
  781. package/dist/esm/runtime-storage-generator.js +264 -11
  782. package/dist/esm/runtime-storage-generator.js.map +1 -1
  783. package/dist/esm/security-runtime/index.d.ts +14 -0
  784. package/dist/esm/security-runtime/index.d.ts.map +1 -0
  785. package/dist/esm/security-runtime/index.js +37 -0
  786. package/dist/esm/security-runtime/index.js.map +1 -0
  787. package/dist/esm/security-runtime/security-runtime-code.d.ts +53 -0
  788. package/dist/esm/security-runtime/security-runtime-code.d.ts.map +1 -0
  789. package/dist/esm/security-runtime/security-runtime-code.js +575 -0
  790. package/dist/esm/security-runtime/security-runtime-code.js.map +1 -0
  791. package/dist/esm/security-scanner.d.ts +72 -3
  792. package/dist/esm/security-scanner.d.ts.map +1 -1
  793. package/dist/esm/security-scanner.js +217 -8
  794. package/dist/esm/security-scanner.js.map +1 -1
  795. package/dist/esm/segment-splitter.d.ts.map +1 -1
  796. package/dist/esm/segment-splitter.js +10 -2
  797. package/dist/esm/segment-splitter.js.map +1 -1
  798. package/dist/esm/segment-trust.d.ts +36 -0
  799. package/dist/esm/segment-trust.d.ts.map +1 -1
  800. package/dist/esm/segment-trust.js +146 -2
  801. package/dist/esm/segment-trust.js.map +1 -1
  802. package/dist/esm/self-call-headers.d.ts +31 -0
  803. package/dist/esm/self-call-headers.d.ts.map +1 -0
  804. package/dist/esm/self-call-headers.js +43 -0
  805. package/dist/esm/self-call-headers.js.map +1 -0
  806. package/dist/esm/sent-email-log/index.d.ts +7 -0
  807. package/dist/esm/sent-email-log/index.d.ts.map +1 -1
  808. package/dist/esm/sent-email-log/index.js +15 -0
  809. package/dist/esm/sent-email-log/index.js.map +1 -1
  810. package/dist/esm/sent-email-log/sent-email-log-code.d.ts +7 -0
  811. package/dist/esm/sent-email-log/sent-email-log-code.d.ts.map +1 -1
  812. package/dist/esm/sent-email-log/sent-email-log-code.js +17 -3
  813. package/dist/esm/sent-email-log/sent-email-log-code.js.map +1 -1
  814. package/dist/esm/server-custom-node-call.d.ts +79 -0
  815. package/dist/esm/server-custom-node-call.d.ts.map +1 -0
  816. package/dist/esm/server-custom-node-call.js +278 -0
  817. package/dist/esm/server-custom-node-call.js.map +1 -0
  818. package/dist/esm/server-runtime-code.d.ts +39 -12
  819. package/dist/esm/server-runtime-code.d.ts.map +1 -1
  820. package/dist/esm/server-runtime-code.js +483 -40
  821. package/dist/esm/server-runtime-code.js.map +1 -1
  822. package/dist/esm/session-cookie-resolver.d.ts +3 -1
  823. package/dist/esm/session-cookie-resolver.d.ts.map +1 -1
  824. package/dist/esm/session-revocation-generator.d.ts +39 -0
  825. package/dist/esm/session-revocation-generator.d.ts.map +1 -0
  826. package/dist/esm/session-revocation-generator.js +172 -0
  827. package/dist/esm/session-revocation-generator.js.map +1 -0
  828. package/dist/esm/slack-message-values.d.ts +6 -0
  829. package/dist/esm/slack-message-values.d.ts.map +1 -0
  830. package/dist/esm/slack-message-values.js +68 -0
  831. package/dist/esm/slack-message-values.js.map +1 -0
  832. package/dist/esm/transactional-email-code.d.ts +11 -0
  833. package/dist/esm/transactional-email-code.d.ts.map +1 -1
  834. package/dist/esm/transactional-email-code.js +28 -4
  835. package/dist/esm/transactional-email-code.js.map +1 -1
  836. package/dist/esm/trigger-generator.d.ts +2 -0
  837. package/dist/esm/trigger-generator.d.ts.map +1 -1
  838. package/dist/esm/trigger-generator.js +15 -3
  839. package/dist/esm/trigger-generator.js.map +1 -1
  840. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  841. package/dist/esm/visitor-step-limits.d.ts +66 -0
  842. package/dist/esm/visitor-step-limits.d.ts.map +1 -0
  843. package/dist/esm/visitor-step-limits.js +181 -0
  844. package/dist/esm/visitor-step-limits.js.map +1 -0
  845. package/dist/esm/webhook-generator.d.ts.map +1 -1
  846. package/dist/esm/webhook-generator.js +93 -15
  847. package/dist/esm/webhook-generator.js.map +1 -1
  848. package/dist/esm/webhook-signature-verification.d.ts.map +1 -1
  849. package/dist/esm/webhook-signature-verification.js +13 -3
  850. package/dist/esm/webhook-signature-verification.js.map +1 -1
  851. package/dist/esm/workflow-auth-generator.d.ts +4 -1
  852. package/dist/esm/workflow-auth-generator.d.ts.map +1 -1
  853. package/dist/esm/workflow-auth-generator.js +8 -3
  854. package/dist/esm/workflow-auth-generator.js.map +1 -1
  855. package/dist/esm/workflow-component-plugin.js +12 -4
  856. package/dist/esm/workflow-component-plugin.js.map +1 -1
  857. package/dist/esm/workflow-project-plugin.d.ts.map +1 -1
  858. package/dist/esm/workflow-project-plugin.js +306 -60
  859. package/dist/esm/workflow-project-plugin.js.map +1 -1
  860. package/dist/esm/workflow-scope.d.ts.map +1 -1
  861. package/dist/esm/workflow-scope.js +5 -0
  862. package/dist/esm/workflow-scope.js.map +1 -1
  863. package/package.json +4 -4
  864. package/src/account-delete-route-generator.ts +28 -4
  865. package/src/api-route-generator.ts +712 -134
  866. package/src/auth-generator.ts +1471 -142
  867. package/src/automations/activity-kicks.ts +139 -0
  868. package/src/automations/app-events-source.ts +117 -0
  869. package/src/automations/automations-project-plugin.ts +202 -0
  870. package/src/automations/automations-scope.ts +196 -0
  871. package/src/automations/dispatcher-source.ts +1072 -0
  872. package/src/automations/event-bus-source.ts +428 -0
  873. package/src/automations/handler-module-generator.ts +107 -0
  874. package/src/automations/hydrators-source.ts +647 -0
  875. package/src/booking-calendar-feed-route-generator.ts +8 -0
  876. package/src/configured-nextauth-url.ts +17 -0
  877. package/src/cron-request-verification.ts +55 -5
  878. package/src/data-api-route-generator.ts +780 -43
  879. package/src/ecommerce/parameterized-stock-chain.ts +52 -5
  880. package/src/ecommerce/place-order-guards.ts +785 -0
  881. package/src/ecommerce-customhandler-rewriter.ts +55 -2
  882. package/src/executor-generator.ts +372 -60
  883. package/src/graph-utils.ts +33 -0
  884. package/src/index.ts +70 -0
  885. package/src/invoice/api-routes-code.ts +20 -7
  886. package/src/invoice/index.ts +11 -6
  887. package/src/invoice/invoice-assembly-code.ts +8 -3
  888. package/src/invoice/pdf-generator-code.ts +2 -1
  889. package/src/invoice/pdf-service-client-code.ts +15 -7
  890. package/src/newsletter/admin-route-code.ts +319 -0
  891. package/src/newsletter/helper-code.ts +748 -0
  892. package/src/newsletter/newsletter-scope.ts +116 -0
  893. package/src/newsletter/project-plugin.ts +119 -0
  894. package/src/newsletter/routes-code.ts +186 -0
  895. package/src/nodes/account/account-compare-passwords.ts +17 -6
  896. package/src/nodes/account/account-delete-current.ts +1 -1
  897. package/src/nodes/account/account-get-current.ts +1 -1
  898. package/src/nodes/account/account-hash-password.ts +19 -3
  899. package/src/nodes/account/account-login.ts +24 -7
  900. package/src/nodes/account/account-logout.ts +1 -1
  901. package/src/nodes/account/account-refresh-session.ts +1 -1
  902. package/src/nodes/account/account-request-password-reset.ts +47 -0
  903. package/src/nodes/account/account-reset-password.ts +45 -0
  904. package/src/nodes/account/account-signup.ts +86 -20
  905. package/src/nodes/account/account-social-login.ts +1 -1
  906. package/src/nodes/ai/ai-custom-prompt.ts +25 -6
  907. package/src/nodes/ai/ai-detect-language.ts +25 -6
  908. package/src/nodes/ai/ai-generate-text-embedding.ts +16 -3
  909. package/src/nodes/ai/ai-provider-utils-sources.generated.ts +2 -2
  910. package/src/nodes/ai/ai-provider-utils.ts +135 -10
  911. package/src/nodes/ai/ai-select-database-data.ts +8 -3
  912. package/src/nodes/ai/ai-sentiment-analysis.ts +25 -6
  913. package/src/nodes/ai/ai-summarization.ts +25 -6
  914. package/src/nodes/ai/ai-text-classifier.ts +25 -6
  915. package/src/nodes/ai/ai-text-transform.ts +25 -6
  916. package/src/nodes/analytics/analytics-track-outcome.ts +111 -0
  917. package/src/nodes/cart/cart-price-order.ts +200 -2
  918. package/src/nodes/cost-bearing-node-types.ts +45 -0
  919. package/src/nodes/data/data-select.ts +11 -2
  920. package/src/nodes/email/email-mailersend.ts +16 -8
  921. package/src/nodes/email/email-mailgun.ts +17 -12
  922. package/src/nodes/email/email-postmark.ts +17 -12
  923. package/src/nodes/email/email-resend.ts +17 -12
  924. package/src/nodes/email/email-sendgrid.ts +17 -12
  925. package/src/nodes/email/html-escape-code.ts +21 -0
  926. package/src/nodes/email/message-trust.ts +198 -0
  927. package/src/nodes/email/outbound-message-guard.ts +572 -0
  928. package/src/nodes/email/trusted-html-code.ts +49 -0
  929. package/src/nodes/general/general-custom-js.ts +46 -7
  930. package/src/nodes/general/general-http-request.ts +449 -46
  931. package/src/nodes/general/general-rate-limiter.ts +54 -81
  932. package/src/nodes/general/general-wait.ts +80 -0
  933. package/src/nodes/general/visitor-request.ts +79 -0
  934. package/src/nodes/index.ts +12 -0
  935. package/src/nodes/integrations/integration-slack.ts +21 -6
  936. package/src/nodes/newsletter/newsletter-confirm.ts +44 -0
  937. package/src/nodes/newsletter/newsletter-subscribe.ts +78 -0
  938. package/src/nodes/newsletter/newsletter-unsubscribe.ts +43 -0
  939. package/src/nodes/realtime/realtime-join-channel.ts +5 -4
  940. package/src/nodes/realtime/realtime-send-channel-event.ts +13 -2
  941. package/src/nodes/realtime/realtime-send-channel-message.ts +13 -2
  942. package/src/nodes/sms/sms-infobip.ts +14 -4
  943. package/src/nodes/sms/sms-smsapi.ts +14 -4
  944. package/src/nodes/sms/sms-textmagic.ts +14 -4
  945. package/src/nodes/sms/sms-twilio.ts +14 -4
  946. package/src/nodes/types.ts +9 -1
  947. package/src/nodes/utility/utility-similarity-scoring.ts +33 -12
  948. package/src/page-access-guard-generator.ts +154 -0
  949. package/src/password-reset-route-generator.ts +531 -0
  950. package/src/payments/payment-core-code.ts +12 -7
  951. package/src/project-code-scanner.ts +98 -0
  952. package/src/public-step-guards.ts +448 -0
  953. package/src/publish-refusals.ts +459 -0
  954. package/src/realtime-generator.ts +457 -234
  955. package/src/runtime-storage-generator.ts +270 -11
  956. package/src/security-runtime/index.ts +53 -0
  957. package/src/security-runtime/security-runtime-code.ts +579 -0
  958. package/src/security-scanner.ts +253 -10
  959. package/src/segment-splitter.ts +10 -2
  960. package/src/segment-trust.ts +205 -2
  961. package/src/self-call-headers.ts +46 -0
  962. package/src/sent-email-log/index.ts +16 -0
  963. package/src/sent-email-log/sent-email-log-code.ts +30 -4
  964. package/src/server-custom-node-call.ts +331 -0
  965. package/src/server-runtime-code.ts +488 -40
  966. package/src/session-revocation-generator.ts +177 -0
  967. package/src/slack-message-values.ts +84 -0
  968. package/src/transactional-email-code.ts +30 -4
  969. package/src/trigger-generator.ts +19 -3
  970. package/src/visitor-step-limits.ts +228 -0
  971. package/src/webhook-generator.ts +94 -14
  972. package/src/webhook-signature-verification.ts +13 -3
  973. package/src/workflow-auth-generator.ts +9 -4
  974. package/src/workflow-component-plugin.ts +14 -4
  975. package/src/workflow-project-plugin.ts +374 -61
  976. package/src/workflow-scope.ts +6 -0
@@ -1,11 +1,12 @@
1
1
  import { FileType, } from '@teleporthq/teleport-types';
2
- import { UIDLUtils } from '@teleporthq/teleport-shared';
2
+ import { DataExposure, TableAccess, UIDLUtils } from '@teleporthq/teleport-shared';
3
3
  import { splitIntoSegments, resolveNodeExecutionEnv, redactServerNodeConfig, } from './segment-splitter';
4
4
  import { isFireAndForgetSegment } from './await-result';
5
5
  import { collectSegmentStateKeys } from './segment-context-needs';
6
6
  import { ADMIN_CUSTOM_NODES_MODULE, collectAdminModuleCustomNodeIds } from './custom-node-modules';
7
7
  import { generateServerSegmentAPIRoute, generateStreamingServerSegmentAPIRoute, generateCronAPIRoute, generateWebhookWorkflowAPIRoute, getAPIRouteFileName, getCronRouteFileName, getWebhookRouteFileName, getWebhookRoutePath, hasStreamingAINode, } from './api-route-generator';
8
8
  import { generateWorkflowAuthHelperFile } from './workflow-auth-generator';
9
+ import { generatePageAccessGuardModule } from './page-access-guard-generator';
9
10
  import { generateSubscriberAccessHelperModule, generateSubscriberAccessRoute, hasSubscriberOnlyPages, resolveCustomProductPageRoutes, resolveProductDetailsRoute, resolveSubscriptionFallbackRoute, } from './subscriber-access-route-generator';
10
11
  import { collectSecrets, collectSecretReferenceEnvNames } from './secret-collector';
11
12
  import { collectUsedNodeTypes, projectUsesRealtime, collectUsedRealtimeActionTypes, } from './graph-utils';
@@ -14,24 +15,34 @@ import { resolveHandlerEntryName } from './nodes/types';
14
15
  import { generateClientRuntimeCode, generateSharedRuntimeUtilsCode } from './executor-generator';
15
16
  import { generateServerRuntimeCode } from './server-runtime-code';
16
17
  import { buildSegmentTrust } from './segment-trust';
17
- import { generateRealtimeServerHelperCode, generateRealtimeClientCode, generateRealtimeTokenRoute, generateRealtimeJoinRoute, generateRealtimeLeaveRoute, generateRealtimeMessageRoute, generateRealtimeEventRoute, generateRealtimeChannelsListRoute, generateRealtimeChannelsMembersRoute, } from './realtime-generator';
18
- import { generateAuthDbHealthFile, generateAuthErrorMessagesFile, generateAuthOptionsFile, generateHashPasswordFile, generateNextAuthRouteFile, generateSignupRouteFile, generateMiddlewareFile, generateSessionProviderWrapper, generateNextAuthUrlGuardModule, getDatabaseDriverDependencies, } from './auth-generator';
18
+ import { assertSegmentRouteGates, assertWorkflowPublishGates } from './publish-refusals';
19
+ import { assertProjectCodeIsSecure } from './project-code-scanner';
20
+ import { escapeSlackMessageBindingsInWorkflows } from './slack-message-values';
21
+ import { generateRealtimeServerHelperCode, generateRealtimeClientCode, generateRealtimeTokenRoute, generateRealtimeJoinRoute, generateRealtimeLeaveRoute, generateRealtimeMessageRoute, generateRealtimeEventRoute, generateRealtimeChannelsListRoute, generateRealtimeChannelsMembersRoute, projectCallsRealtimeRoute, } from './realtime-generator';
22
+ import { generateAuthDbHealthFile, generateAuthErrorMessagesFile, generateAuthOptionsFile, generateHashPasswordFile, generateNextAuthRouteFile, generateSignupRouteFile, generateMiddlewareFile, generateSessionProviderWrapper, generateNextAuthUrlGuardModule, getDatabaseDriverDependencies, resolveSignupFields, } from './auth-generator';
23
+ import { collectWorkflowNodeConfigs, emitPasswordAuthFiles, resetEmailSenderOf, resetLinkOf, } from './password-reset-route-generator';
24
+ import { ensureSessionRevocationModule } from './session-revocation-generator';
19
25
  import { generateInvoiceFiles, resolveInvoiceDataSource } from './invoice';
20
26
  import { ensureSentEmailLogModule, hasEmailSendingNodeType } from './sent-email-log';
21
27
  import { ensureWebhookDeliveryLeaseModule } from './webhook-delivery-lease';
28
+ import { ensureSecurityRuntimeModule } from './security-runtime';
22
29
  import { declareVercelFunctionsWhereRequired } from './vercel-functions';
23
30
  import { ensureEmailLocaleModule, resolveEmailLocaleConfig } from './email-locale';
24
31
  import { workflowUtilsImportLine, workflowUtilsRequireLine } from './workflow-utils-alias';
25
32
  import { generateWebhookFiles } from './webhook-generator';
26
33
  import { ensurePaymentDriversModule, isPaymentWebhookConfig, readWebhookPaymentProvider, resolveStorePaymentDriverIds, } from './payments';
27
- import { needsDataAPIRoute, generateDataAPIRoute } from './data-api-route-generator';
34
+ import { needsDataAPIRoute, generateDataAPIRoute, dataAPIRouteRecordsLowStock, } from './data-api-route-generator';
28
35
  import { generateAccountDeleteRoute, accountDeleteRouteDependencies, } from './account-delete-route-generator';
29
36
  import { readLocalizedEmailTemplates, transactionalEmailDependencies, } from './transactional-email-code';
30
37
  import { needsRuntimeStorageRoute, generateRuntimeStorageUploadRoute, } from './runtime-storage-generator';
31
38
  import { rewriteLowStockCustomHandlers } from './ecommerce-customhandler-rewriter';
32
- import { assertWorkflowsAreSecure } from './security-scanner';
33
- import { parameterizeAllWorkflowRawSql } from './raw-sql-param-binding';
34
39
  import { generateBookingCalendarFeedFiles } from './booking-calendar-feed-route-generator';
40
+ import { collectAutomationWorkflows, hasAutomationsBus, isAutomationWorkflow, } from './automations/automations-scope';
41
+ import { generateAutomationFiles } from './automations/automations-project-plugin';
42
+ import { declareCronSecretEnv } from './cron-request-verification';
43
+ import { ensureAppEventsModule } from './automations/app-events-source';
44
+ import { DEFAULT_ORDER_DETAILS_PREFIX, resolveOrderDetailsRoutePrefix, } from './ecommerce/order-details-route';
45
+ import { newsletterSignupSubscribes } from './newsletter/newsletter-scope';
35
46
  // Resolves the auth IDENTITY (users) table from the UIDL auth tables. Getting
36
47
  // this wrong is a security hole (the /api/data guard only protects this table),
37
48
  // so it prefers the table that stores credentials (an email/login column AND a
@@ -138,25 +149,148 @@ export const stripEventHandlerAttrs = (uidl) => {
138
149
  scrubComponent(uidl.root);
139
150
  Object.values(uidl.components || {}).forEach(scrubComponent);
140
151
  };
152
+ const workflowContextRef = (nodeId, path) => ({
153
+ type: 'workflowContext',
154
+ nodeId,
155
+ path,
156
+ });
157
+ const NEWSLETTER_ACCOUNT_SWITCH_OFF = 'Newsletter · Switch Off From The Account';
158
+ const NEWSLETTER_UNSUBSCRIBE_RECORD = 'Record The Unsubscribe';
159
+ const NEWSLETTER_ACCOUNT_FETCH = 'Fetch The Signed-In Person';
160
+ const NEWSLETTER_UNSUBSCRIBE_UPDATE = 'Unsubscribe The Signed-In Person';
161
+ const NEWSLETTER_TIMESTAMP = 'Note The Time';
162
+ const NEWSLETTER_SWITCH_OFF_STATE = 'Show The Switch Off';
163
+ const NEWSLETTER_EVENT_INPUTS = 'Build The Unsubscribe Event';
164
+ const NEWSLETTER_EVENT_INPUTS_CODE = [
165
+ 'function customHandler(params) {',
166
+ ' var named = params && params.length ? params[params.length - 1] || {} : {};',
167
+ ' var id = named.id == null ? "" : String(named.id);',
168
+ ' var email = named.email == null ? "" : String(named.email);',
169
+ ' var stamp = named.timestamp == null ? "" : String(named.timestamp);',
170
+ ' var time = stamp ? new Date(stamp).getTime() : Date.now();',
171
+ ' if (!isFinite(time)) { time = Date.now(); }',
172
+ ' return {',
173
+ ' entityId: id,',
174
+ ' actor: email,',
175
+ ' dedupe: id + ":" + Math.floor(time / 60000),',
176
+ ' subscriber: { email: email, consent: false },',
177
+ ' };',
178
+ '}',
179
+ ].join('\n');
180
+ const hasStepLabel = (node, label) => node.label === label || node.name === label || node.builderLabel === label;
181
+ const edgeId = (source, target) => `${source}-${target}`;
182
+ const ensureEdge = (edges, source, target) => {
183
+ if (edges.some((edge) => edge.source === source && edge.target === target)) {
184
+ return;
185
+ }
186
+ edges.push({ id: edgeId(source, target), source, target });
187
+ };
188
+ const setRecordParam = (record, key, value) => {
189
+ const params = record.config.parameters;
190
+ if (!Array.isArray(params)) {
191
+ return;
192
+ }
193
+ const entry = params.find((item) => item && typeof item === 'object' && item.key === key);
194
+ if (entry) {
195
+ entry.value = value;
196
+ }
197
+ else {
198
+ params.push({ key, value });
199
+ }
200
+ };
201
+ const repairNewsletterAccountUnsubscribeEvents = (uidl) => {
202
+ var _a;
203
+ const workflows = ((_a = uidl.workflows) === null || _a === void 0 ? void 0 : _a.workflows) || {};
204
+ Object.values(workflows).forEach((workflow) => {
205
+ if (!workflow || workflow.name !== NEWSLETTER_ACCOUNT_SWITCH_OFF) {
206
+ return;
207
+ }
208
+ const nodes = workflow.nodes || [];
209
+ const edges = workflow.edges || [];
210
+ const findNode = (type, label) => nodes.find((node) => node.type === type && hasStepLabel(node, label));
211
+ const account = findNode('account-get-current', NEWSLETTER_ACCOUNT_FETCH);
212
+ const update = findNode('data-update-item', NEWSLETTER_UNSUBSCRIBE_UPDATE);
213
+ const record = findNode('general-custom-node', NEWSLETTER_UNSUBSCRIBE_RECORD);
214
+ if (!account || !update || !record || !Array.isArray(record.config.parameters)) {
215
+ return;
216
+ }
217
+ const eventType = record.config.parameters.find((param) => param && typeof param === 'object' && param.key === 'eventType');
218
+ if ((eventType === null || eventType === void 0 ? void 0 : eventType.value) !== 'newsletter-unsubscribed') {
219
+ return;
220
+ }
221
+ const timestamp = findNode('general-custom-js', NEWSLETTER_TIMESTAMP);
222
+ if (timestamp) {
223
+ timestamp.config.params = {};
224
+ }
225
+ let eventInputs = findNode('general-custom-js', NEWSLETTER_EVENT_INPUTS);
226
+ if (!eventInputs) {
227
+ eventInputs = {
228
+ id: `${record.id}-event-inputs`,
229
+ type: 'general-custom-js',
230
+ label: NEWSLETTER_EVENT_INPUTS,
231
+ config: {},
232
+ executionEnv: 'server',
233
+ stepNumber: record.stepNumber,
234
+ };
235
+ const recordIndex = nodes.indexOf(record);
236
+ if (recordIndex >= 0) {
237
+ nodes.splice(recordIndex, 0, eventInputs);
238
+ }
239
+ else {
240
+ nodes.push(eventInputs);
241
+ }
242
+ }
243
+ eventInputs.config = {
244
+ code: NEWSLETTER_EVENT_INPUTS_CODE,
245
+ context: 'server',
246
+ params: {
247
+ id: workflowContextRef(update.id, ['id']),
248
+ email: workflowContextRef(update.id, ['email']),
249
+ timestamp: timestamp ? workflowContextRef(timestamp.id, ['value']) : '',
250
+ },
251
+ };
252
+ const off = findNode('state-update-local-state', NEWSLETTER_SWITCH_OFF_STATE);
253
+ const redirected = edges.filter((edge) => edge.target === record.id &&
254
+ edge.source !== eventInputs.id &&
255
+ (!off || edge.source === off.id));
256
+ redirected.forEach((edge) => {
257
+ edge.target = eventInputs.id;
258
+ });
259
+ if (!edges.some((edge) => edge.target === eventInputs.id) && off) {
260
+ ensureEdge(edges, off.id, eventInputs.id);
261
+ }
262
+ ensureEdge(edges, eventInputs.id, record.id);
263
+ setRecordParam(record, 'entityId', workflowContextRef(eventInputs.id, ['entityId']));
264
+ setRecordParam(record, 'dedupeSubject', workflowContextRef(eventInputs.id, ['dedupe']));
265
+ setRecordParam(record, 'actor', workflowContextRef(eventInputs.id, ['actor']));
266
+ setRecordParam(record, 'subscriber', workflowContextRef(eventInputs.id, ['subscriber']));
267
+ });
268
+ };
141
269
  export class NextWorkflowProjectPlugin {
142
270
  async runBefore(structure) {
143
271
  var _a, _b, _c;
144
272
  const { uidl, strategy } = structure;
145
273
  stripEventHandlerAttrs(uidl);
146
- // SECURITY NET — parameterize raw-SQL interpolations before ANY config is
147
- // emitted. Rewrites each `{{ name }}` value token in a data-node's `query` /
148
- // `rawQueryUserPart` into a positional `$N` placeholder and moves the bound
149
- // value into the sibling params array, so the value binds via
150
- // `client.query(sql, params)` and never reaches the SQL text. Throws (aborts
151
- // generation) on an interpolation that cannot be safely bound — refusing to
152
- // ship injectable SQL. Runs FIRST so the security gate below sees final SQL.
153
- parameterizeAllWorkflowRawSql(uidl.workflows);
154
- // Codegen-time security gate. Throws CodegenSecurityError if any
155
- // `general-custom-js` body references a protected platform secret
156
- // or uses an obvious sandbox-escape primitive. Backstop for the GUI
157
- // and services-worker static checks; surfaces the failure before
158
- // any code is emitted.
159
- assertWorkflowsAreSecure(uidl.workflows);
274
+ repairNewsletterAccountUnsubscribeEvents(uidl);
275
+ // The workflow gates, before any code is emitted (publish-refusals.ts, the
276
+ // one list the editor's AI tools check against too), in order:
277
+ // - SECURITY NET — parameterize raw-SQL interpolations before ANY config is
278
+ // emitted. Rewrites each `{{ name }}` value token in a data-node's `query` /
279
+ // `rawQueryUserPart` into a positional `$N` placeholder and moves the bound
280
+ // value into the sibling params array, so the value binds via
281
+ // `client.query(sql, params)` and never reaches the SQL text. Throws (aborts
282
+ // generation) on an interpolation that cannot be safely bound — refusing to
283
+ // ship injectable SQL. Runs FIRST so the security gate below sees final SQL.
284
+ // - Codegen-time security gate. Throws CodegenSecurityError if any
285
+ // `general-custom-js` body references a protected platform secret
286
+ // or uses an obvious sandbox-escape primitive. Backstop for the GUI
287
+ // and services-worker static checks.
288
+ // - A push to every subscriber, or a step on any stored file, never sits on
289
+ // a route any visitor can call (see public-step-guards.ts).
290
+ assertWorkflowPublishGates(uidl.workflows, uidl.authentication);
291
+ // The author code a page runs on the server beside its workflows: state
292
+ // mapping functions and the expressions Next prerenders (project-code-scanner.ts).
293
+ assertProjectCodeIsSecure(uidl);
160
294
  if (uidl.workflows) {
161
295
  const pageRouteMap = this.buildPageRouteMap(uidl, strategy);
162
296
  // CUSTOM NODES are walked alongside workflows. They used to be skipped,
@@ -242,11 +376,25 @@ export class NextWorkflowProjectPlugin {
242
376
  return structure;
243
377
  }
244
378
  async runAfter(structure) {
245
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
379
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
246
380
  const { uidl, files, dependencies } = structure;
381
+ // Every app with server routes carries the shared security runtime its
382
+ // routes require (`utils/security-runtime.js`): the visitor's address,
383
+ // constant-time compare, durable rate limits, generic client errors.
384
+ if (hasServerRoutes(uidl)) {
385
+ ensureSecurityRuntimeModule(structure);
386
+ }
387
+ // Automations (workflows started by a business event), and whether the
388
+ // in-app event bus is generated for them: the routes that record or wake
389
+ // business events (signup, account deletion, the data API, a server-side
390
+ // signup) carry that code only then.
391
+ const automationWorkflows = collectAutomationWorkflows(uidl.workflows);
392
+ // Only with a database the queue runs on: without one no bus is generated
393
+ // (generateAutomationFiles says why).
394
+ const withAutomations = hasAutomationsBus(uidl);
247
395
  const hasAuthentication = uidl.authentication && uidl.authentication.enabled;
248
396
  if (hasAuthentication) {
249
- this.generateAuthFiles(uidl.authentication, structure);
397
+ this.generateAuthFiles(uidl.authentication, structure, withAutomations);
250
398
  }
251
399
  // The bookings' calendar feeds do not depend on any workflow, so they are
252
400
  // emitted before the early return for a project without workflows.
@@ -280,9 +428,23 @@ export class NextWorkflowProjectPlugin {
280
428
  declareVercelFunctionsWhereRequired(files, dependencies);
281
429
  return structure;
282
430
  }
431
+ // A Slack message bound whole to a value is escaped like a chip (slack-message-values.ts).
432
+ escapeSlackMessageBindingsInWorkflows(uidl.workflows);
283
433
  const allWorkflows = uidl.workflows.workflows;
284
434
  const customNodes = uidl.workflows.customNodes || {};
285
435
  const usedNodeTypes = collectUsedNodeTypes(uidl.workflows);
436
+ // Automations run in their own handler modules, which carry their nodes'
437
+ // handlers: the shared client and server handler files leave them out.
438
+ let handlerFileNodeTypes = usedNodeTypes;
439
+ if (automationWorkflows.length > 0) {
440
+ const browserAndRouteWorkflows = {};
441
+ for (const [id, wf] of Object.entries(allWorkflows)) {
442
+ if (!isAutomationWorkflow(wf)) {
443
+ browserAndRouteWorkflows[id] = wf;
444
+ }
445
+ }
446
+ handlerFileNodeTypes = collectUsedNodeTypes(Object.assign(Object.assign({}, uidl.workflows), { workflows: browserAndRouteWorkflows }));
447
+ }
286
448
  // Server routes that run a mail-sending node require the sent-email
287
449
  // ledger module (see generateNodeHandlersForSegment).
288
450
  if (hasEmailSendingNodeType(usedNodeTypes)) {
@@ -313,7 +475,7 @@ export class NextWorkflowProjectPlugin {
313
475
  },
314
476
  ],
315
477
  });
316
- const clientHandlerCode = this.generateNodeHandlerFile(usedNodeTypes, 'client');
478
+ const clientHandlerCode = this.generateNodeHandlerFile(handlerFileNodeTypes, 'client');
317
479
  if (clientHandlerCode) {
318
480
  files.set('workflow-client-handlers', {
319
481
  path: ['utils', 'workflows'],
@@ -345,12 +507,24 @@ export class NextWorkflowProjectPlugin {
345
507
  customNodeServerUrls[cnId] = {};
346
508
  // The same list, in the same order, the custom node's runner hands its
347
509
  // inner custom-js nodes as `params`.
348
- const cnGraph = { nodes: cn.nodes || [], edges: cn.edges || [], segments: cnSegments };
510
+ const cnGraph = {
511
+ id: cnId,
512
+ nodes: cn.nodes || [],
513
+ edges: cn.edges || [],
514
+ segments: cnSegments,
515
+ };
349
516
  for (const seg of cnServerSegments) {
350
517
  const routeOptions = {
351
518
  customNodeIds: (cn.nodes || []).map((n) => n.id),
352
519
  trust: buildSegmentTrust(seg, cnGraph),
520
+ customNodes,
353
521
  };
522
+ assertSegmentRouteGates(seg, routeOptions.trust, {
523
+ owner: cn.name || cnId,
524
+ graphNodes: cn.nodes || [],
525
+ protection: cn.protection,
526
+ staffRoles: TableAccess.resolveStaffRoles(uidl.authentication),
527
+ });
354
528
  const isStreaming = hasStreamingAINode(seg);
355
529
  if (routeHasPolicy(cn.protection)) {
356
530
  anyGuardedRouteEmitted = true;
@@ -412,20 +586,23 @@ export class NextWorkflowProjectPlugin {
412
586
  // legacy hard-coded webhook emission for those providers below.
413
587
  const webhookProvidersOwnedByWorkflows = new Set();
414
588
  for (const workflow of Object.values(allWorkflows)) {
589
+ // An automation runs in a handler module of the in-app event bus
590
+ // (generateAutomationFiles below), through the server runtime.
591
+ if (isAutomationWorkflow(workflow)) {
592
+ if (withAutomations) {
593
+ hasServerSegments = true;
594
+ }
595
+ continue;
596
+ }
415
597
  if (workflow.trigger.type === 'event-cron-triggered') {
416
598
  // A cron route runs its whole graph on the server through the same
417
599
  // runtime and handler file a server segment uses, so an app whose only
418
600
  // server work is a cron still needs them.
419
601
  hasServerSegments = true;
420
- // The route refuses every request not signed with this key; the deploy
421
- // fills it in (see cron-request-verification.ts).
422
- if (!uidl.globals.env) {
423
- uidl.globals.env = {};
424
- }
425
- if (!uidl.globals.env.TELEPORT_CRON_SECRET) {
426
- uidl.globals.env.TELEPORT_CRON_SECRET = '';
427
- }
428
- const cronContent = generateCronAPIRoute(workflow, customNodes);
602
+ // The route refuses every request not signed with these keys; the
603
+ // deploy fills them in (see cron-request-verification.ts).
604
+ declareCronSecretEnv(uidl);
605
+ const cronContent = generateCronAPIRoute(workflow, customNodes, { withAutomations });
429
606
  const cronFileName = getCronRouteFileName(workflow);
430
607
  files.set(`workflow-cron-${workflow.id}`, {
431
608
  path: ['pages', 'api', 'workflows'],
@@ -441,7 +618,9 @@ export class NextWorkflowProjectPlugin {
441
618
  }
442
619
  if (workflow.trigger.type === 'event-webhook-received' && workflow.webhookConfig) {
443
620
  hasServerSegments = true;
444
- const webhookContent = generateWebhookWorkflowAPIRoute(workflow, customNodes);
621
+ const webhookContent = generateWebhookWorkflowAPIRoute(workflow, customNodes, {
622
+ withAutomations,
623
+ });
445
624
  const webhookFileName = getWebhookRouteFileName(workflow);
446
625
  const webhookPath = getWebhookRoutePath(workflow);
447
626
  files.set(`workflow-webhook-${workflow.id}`, {
@@ -496,14 +675,25 @@ export class NextWorkflowProjectPlugin {
496
675
  }
497
676
  const segments = splitIntoSegments(workflow);
498
677
  const serverSegments = segments.filter((s) => s.env === 'server');
499
- const workflowGraph = { nodes: workflow.nodes || [], edges: workflow.edges || [], segments };
678
+ const workflowGraph = {
679
+ id: workflow.id,
680
+ nodes: workflow.nodes || [],
681
+ edges: workflow.edges || [],
682
+ segments,
683
+ };
500
684
  for (const serverSeg of serverSegments) {
501
685
  hasServerSegments = true;
502
686
  const isStreaming = hasStreamingAINode(serverSeg);
503
687
  if (routeHasPolicy(workflow.protection)) {
504
688
  anyGuardedRouteEmitted = true;
505
689
  }
506
- const routeOptions = { trust: buildSegmentTrust(serverSeg, workflowGraph) };
690
+ const routeOptions = { trust: buildSegmentTrust(serverSeg, workflowGraph), customNodes };
691
+ assertSegmentRouteGates(serverSeg, routeOptions.trust, {
692
+ owner: workflow.name || workflow.id,
693
+ graphNodes: workflow.nodes || [],
694
+ protection: workflow.protection,
695
+ staffRoles: TableAccess.resolveStaffRoles(uidl.authentication),
696
+ });
507
697
  const apiContent = isStreaming
508
698
  ? generateStreamingServerSegmentAPIRoute(serverSeg, workflow.name, workflow.protection, routeOptions)
509
699
  : generateServerSegmentAPIRoute(serverSeg, workflow.name, workflow.protection, routeOptions);
@@ -520,6 +710,15 @@ export class NextWorkflowProjectPlugin {
520
710
  });
521
711
  }
522
712
  }
713
+ if (automationWorkflows.length > 0) {
714
+ // The fallback prefix means the project has no order details page to link.
715
+ const orderPagePrefix = resolveOrderDetailsRoutePrefix(uidl);
716
+ generateAutomationFiles(structure, automationWorkflows, {
717
+ customNodes,
718
+ usersTable: resolveAuthUsersTableName(uidl.authentication) || 'users',
719
+ orderPagePrefix: orderPagePrefix === DEFAULT_ORDER_DETAILS_PREFIX ? null : orderPagePrefix,
720
+ });
721
+ }
523
722
  if (hasServerSegments) {
524
723
  files.set('workflow-server-runtime', {
525
724
  path: ['utils', 'workflows'],
@@ -527,7 +726,9 @@ export class NextWorkflowProjectPlugin {
527
726
  {
528
727
  name: 'server-runtime',
529
728
  fileType: FileType.JS,
530
- content: generateServerRuntimeCode(),
729
+ content: generateServerRuntimeCode({
730
+ withSessionRevocation: ((_b = uidl.authentication) === null || _b === void 0 ? void 0 : _b.enabled) === true,
731
+ }),
531
732
  },
532
733
  ],
533
734
  });
@@ -543,14 +744,16 @@ export class NextWorkflowProjectPlugin {
543
744
  name: 'workflow-auth',
544
745
  fileType: FileType.JS,
545
746
  content: generateWorkflowAuthHelperFile({
546
- withSubscriberAccess: ((_b = uidl.authentication) === null || _b === void 0 ? void 0 : _b.enabled) === true &&
747
+ withSubscriberAccess: ((_c = uidl.authentication) === null || _c === void 0 ? void 0 : _c.enabled) === true &&
547
748
  hasSubscriberOnlyPages(uidl.authentication),
749
+ // The session reader checks revocation only with authentication.
750
+ withSessionRevocation: ((_d = uidl.authentication) === null || _d === void 0 ? void 0 : _d.enabled) === true,
548
751
  }),
549
752
  },
550
753
  ],
551
754
  });
552
755
  }
553
- const serverHandlerCode = this.generateNodeHandlerFile(usedNodeTypes, 'server');
756
+ const serverHandlerCode = this.generateNodeHandlerFile(handlerFileNodeTypes, 'server');
554
757
  if (serverHandlerCode) {
555
758
  files.set('workflow-server-handlers', {
556
759
  path: ['utils', 'workflows'],
@@ -581,22 +784,33 @@ export class NextWorkflowProjectPlugin {
581
784
  const ecom = uidl.ecommerceSettings;
582
785
  const lowStockAlertsEnabled = !!(ecom &&
583
786
  ecom.stockManagement &&
584
- ((_c = ecom.stockManagementConfig) === null || _c === void 0 ? void 0 : _c.lowStockAlerts) &&
585
- ((_e = (_d = ecom.stockManagementConfig) === null || _d === void 0 ? void 0 : _d.lowStockAlertConfig) === null || _e === void 0 ? void 0 : _e.provider));
586
- const lowStockThreshold = typeof ((_f = ecom === null || ecom === void 0 ? void 0 : ecom.stockManagementConfig) === null || _f === void 0 ? void 0 : _f.lowStockThreshold) === 'number'
787
+ ((_e = ecom.stockManagementConfig) === null || _e === void 0 ? void 0 : _e.lowStockAlerts) &&
788
+ ((_g = (_f = ecom.stockManagementConfig) === null || _f === void 0 ? void 0 : _f.lowStockAlertConfig) === null || _g === void 0 ? void 0 : _g.provider));
789
+ const lowStockThreshold = typeof ((_h = ecom === null || ecom === void 0 ? void 0 : ecom.stockManagementConfig) === null || _h === void 0 ? void 0 : _h.lowStockThreshold) === 'number'
587
790
  ? ecom.stockManagementConfig.lowStockThreshold
588
791
  : 5;
792
+ const dataAPIRouteOptions = {
793
+ authUsersTableName,
794
+ lowStockAlertsEnabled,
795
+ lowStockThreshold,
796
+ withAutomations,
797
+ // Who reads and changes other customers' records (Task 1, owner scope).
798
+ staffRoles: TableAccess.resolveStaffRoles(uidl.authentication),
799
+ // Who reads which table from a browser (Task 1, exposure).
800
+ dataExposure: DataExposure.resolveDataExposure(uidl),
801
+ managedDataSourceIds: DataExposure.managedDataSourceIds(uidl),
802
+ };
803
+ // The low-stock events are recorded through utils/app-events.js.
804
+ if (dataAPIRouteRecordsLowStock(dataAPIRouteOptions)) {
805
+ ensureAppEventsModule(structure, withAutomations);
806
+ }
589
807
  files.set('workflow-data-api-route', {
590
808
  path: ['pages', 'api', 'data'],
591
809
  files: [
592
810
  {
593
811
  name: '[...params]',
594
812
  fileType: FileType.JS,
595
- content: generateDataAPIRoute({
596
- authUsersTableName,
597
- lowStockAlertsEnabled,
598
- lowStockThreshold,
599
- }),
813
+ content: generateDataAPIRoute(dataAPIRouteOptions),
600
814
  },
601
815
  ],
602
816
  });
@@ -606,7 +820,7 @@ export class NextWorkflowProjectPlugin {
606
820
  // farewell email's provider/sender/body are baked from the node config (the
607
821
  // credential is read from env at runtime; its placeholder is registered by the
608
822
  // generic secret-reference walk above).
609
- if (((_g = uidl.authentication) === null || _g === void 0 ? void 0 : _g.enabled) && usedNodeTypes.has('account-delete-current')) {
823
+ if (((_j = uidl.authentication) === null || _j === void 0 ? void 0 : _j.enabled) && usedNodeTypes.has('account-delete-current')) {
610
824
  const deleteConfig = findWorkflowNodeConfigByType(uidl.workflows, 'account-delete-current') || {};
611
825
  const providerNodeType = typeof deleteConfig.emailProvider === 'string' ? deleteConfig.emailProvider : '';
612
826
  const emailProvider = providerNodeType.startsWith('email-')
@@ -633,6 +847,7 @@ export class NextWorkflowProjectPlugin {
633
847
  deletedEmailPattern: typeof deleteConfig.deletedEmailPattern === 'string'
634
848
  ? deleteConfig.deletedEmailPattern
635
849
  : undefined,
850
+ withAutomations,
636
851
  }),
637
852
  },
638
853
  ],
@@ -655,7 +870,9 @@ export class NextWorkflowProjectPlugin {
655
870
  {
656
871
  name: 'upload',
657
872
  fileType: FileType.JS,
658
- content: generateRuntimeStorageUploadRoute(),
873
+ content: generateRuntimeStorageUploadRoute({
874
+ withSessionRevocation: ((_k = uidl.authentication) === null || _k === void 0 ? void 0 : _k.enabled) === true,
875
+ }),
659
876
  },
660
877
  ],
661
878
  });
@@ -667,7 +884,7 @@ export class NextWorkflowProjectPlugin {
667
884
  // the rendered PDF directly via uploadInvoicePdfToRuntimeStorage). The
668
885
  // invoice path does NOT add a file-storage-upload node to the UIDL, so it
669
886
  // would otherwise be missed by needsRuntimeStorageRoute.
670
- const needsRuntimeStorageEnv = needsRuntimeStorageRoute(usedNodeTypes) || Boolean((_h = uidl.invoiceSettings) === null || _h === void 0 ? void 0 : _h.enabled);
887
+ const needsRuntimeStorageEnv = needsRuntimeStorageRoute(usedNodeTypes) || Boolean((_l = uidl.invoiceSettings) === null || _l === void 0 ? void 0 : _l.enabled);
671
888
  if (needsRuntimeStorageEnv) {
672
889
  if (!uidl.globals.env) {
673
890
  uidl.globals.env = {};
@@ -755,7 +972,8 @@ export class NextWorkflowProjectPlugin {
755
972
  });
756
973
  const globalWorkflows = Object.values(allWorkflows).filter((wf) => wf.trigger.scope === 'global' &&
757
974
  wf.trigger.type !== 'event-cron-triggered' &&
758
- wf.trigger.type !== 'event-webhook-received');
975
+ wf.trigger.type !== 'event-webhook-received' &&
976
+ !isAutomationWorkflow(wf));
759
977
  if (globalWorkflows.length > 0) {
760
978
  const globalWorkflowCode = this.generateGlobalWorkflowsHook(globalWorkflows, customNodes);
761
979
  files.set('workflow-global-hook', {
@@ -775,7 +993,7 @@ export class NextWorkflowProjectPlugin {
775
993
  if (projectUsesRealtime(uidl.workflows)) {
776
994
  this.generateRealtimeFiles(structure);
777
995
  }
778
- if ((_j = uidl.invoiceSettings) === null || _j === void 0 ? void 0 : _j.enabled) {
996
+ if ((_m = uidl.invoiceSettings) === null || _m === void 0 ? void 0 : _m.enabled) {
779
997
  const { dataSourceType, dataSourceConfig } = resolveInvoiceDataSource(structure);
780
998
  generateInvoiceFiles(uidl.invoiceSettings, structure, dataSourceType, dataSourceConfig);
781
999
  }
@@ -831,6 +1049,7 @@ export class NextWorkflowProjectPlugin {
831
1049
  appFile.content = content;
832
1050
  }
833
1051
  generateRealtimeFiles(structure) {
1052
+ var _a;
834
1053
  const { uidl, files, dependencies } = structure;
835
1054
  dependencies.ably = '^2.6.0';
836
1055
  if (!uidl.globals.env) {
@@ -848,7 +1067,9 @@ export class NextWorkflowProjectPlugin {
848
1067
  {
849
1068
  name: 'server',
850
1069
  fileType: FileType.JS,
851
- content: generateRealtimeServerHelperCode(),
1070
+ content: generateRealtimeServerHelperCode(uidl.workflows, {
1071
+ withSessionRevocation: ((_a = uidl.authentication) === null || _a === void 0 ? void 0 : _a.enabled) === true,
1072
+ }),
852
1073
  },
853
1074
  ],
854
1075
  });
@@ -893,7 +1114,7 @@ export class NextWorkflowProjectPlugin {
893
1114
  ],
894
1115
  });
895
1116
  const usedRealtimeActions = collectUsedRealtimeActionTypes(uidl.workflows);
896
- if (usedRealtimeActions.has('realtime-send-channel-message')) {
1117
+ if (projectCallsRealtimeRoute(uidl.workflows, 'message')) {
897
1118
  files.set('realtime-api-message', {
898
1119
  path: ['pages', 'api', 'realtime'],
899
1120
  files: [
@@ -905,7 +1126,7 @@ export class NextWorkflowProjectPlugin {
905
1126
  ],
906
1127
  });
907
1128
  }
908
- if (usedRealtimeActions.has('realtime-send-channel-event')) {
1129
+ if (projectCallsRealtimeRoute(uidl.workflows, 'event')) {
909
1130
  files.set('realtime-api-event', {
910
1131
  path: ['pages', 'api', 'realtime'],
911
1132
  files: [
@@ -1010,7 +1231,8 @@ export class NextWorkflowProjectPlugin {
1010
1231
  return;
1011
1232
  }
1012
1233
  if (env === 'server' && generator.generateServerHandler) {
1013
- handlers.push(generator.generateServerHandler());
1234
+ // utils/workflows/node-handlers-server.js: two levels below the project root.
1235
+ handlers.push(generator.generateServerHandler({ relativePrefix: '../..' }));
1014
1236
  }
1015
1237
  else {
1016
1238
  handlers.push(generator.generateHandler());
@@ -1461,7 +1683,7 @@ ${registryEntries}
1461
1683
  module.exports = __customNodeRegistry;
1462
1684
  `;
1463
1685
  }
1464
- generateAuthFiles(auth, structure) {
1686
+ generateAuthFiles(auth, structure, withAutomations) {
1465
1687
  var _a, _b;
1466
1688
  const { files, dependencies, uidl } = structure;
1467
1689
  const dataSourceConfig = (auth.dataSourceId && ((_b = (_a = uidl.dataSources) === null || _a === void 0 ? void 0 : _a[auth.dataSourceId]) === null || _b === void 0 ? void 0 : _b.config)) || null;
@@ -1533,7 +1755,11 @@ module.exports = __customNodeRegistry;
1533
1755
  emailBodyHtml: typeof signupConfig.body === 'string' ? signupConfig.body : '',
1534
1756
  localizedTemplates: readLocalizedEmailTemplates(signupConfig.localizedTemplates),
1535
1757
  siteName: uidl.name || '',
1536
- });
1758
+ }, { withAutomations }, Object.assign(Object.assign({ fields: resolveSignupFields(auth, collectWorkflowNodeConfigs(uidl.workflows, 'account-signup')) }, resetLinkOf(uidl)), {
1759
+ // Without a sign-up email sender, the known-address emails use the reset one.
1760
+ noticeEmail: resetEmailSenderOf(uidl),
1761
+ // The ticked consent box also joins the newsletter (R-N15).
1762
+ newsletter: newsletterSignupSubscribes(uidl) }));
1537
1763
  files.set('auth-signup-route', {
1538
1764
  path: ['pages', 'api', 'auth'],
1539
1765
  files: [
@@ -1554,8 +1780,16 @@ module.exports = __customNodeRegistry;
1554
1780
  if (Object.keys(welcomeProviderDeps).length > 0) {
1555
1781
  ensureSentEmailLogModule(structure);
1556
1782
  }
1783
+ // Forgot / reset password routes, the session revocation check and the
1784
+ // AUTH_PEPPER_SECRET declaration (password-reset-route-generator.ts).
1785
+ emitPasswordAuthFiles(structure, auth);
1557
1786
  }
1558
- const nextAuthRouteCode = generateNextAuthRouteFile();
1787
+ // The shared session reader's revocation check (every server file reads
1788
+ // the session through it).
1789
+ ensureSessionRevocationModule(structure);
1790
+ const nextAuthRouteCode = generateNextAuthRouteFile({
1791
+ passwordAuthEnabled: auth.passwordAuthEnabled === true,
1792
+ });
1559
1793
  files.set('auth-nextauth-route', {
1560
1794
  path: ['pages', 'api', 'auth'],
1561
1795
  files: [
@@ -1610,6 +1844,18 @@ module.exports = __customNodeRegistry;
1610
1844
  },
1611
1845
  ],
1612
1846
  });
1847
+ // The server half of the same protection: every page the middleware
1848
+ // gates checks the session again in its getServerSideProps.
1849
+ files.set('auth-page-access', {
1850
+ path: ['utils', 'auth'],
1851
+ files: [
1852
+ {
1853
+ name: 'page-access',
1854
+ fileType: FileType.JS,
1855
+ content: generatePageAccessGuardModule(auth),
1856
+ },
1857
+ ],
1858
+ });
1613
1859
  }
1614
1860
  // Emitted BEFORE session-provider so its file lands next to it. session-provider
1615
1861
  // imports it first (`import './nextauth-url-guard'`) to strip an empty
@@ -1637,7 +1883,7 @@ module.exports = __customNodeRegistry;
1637
1883
  },
1638
1884
  ],
1639
1885
  });
1640
- dependencies['next-auth'] = '^4.24.0';
1886
+ dependencies['next-auth'] = '4.24.15';
1641
1887
  dependencies.bcryptjs = '^2.4.3';
1642
1888
  const driverDeps = getDatabaseDriverDependencies(auth.dataSourceType);
1643
1889
  for (const [pkg, version] of Object.entries(driverDeps)) {