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

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,3 +1,6 @@
1
+ import { EventEmitter } from 'events'
2
+ import { Readable } from 'stream'
3
+
1
4
  export interface FetchCall {
2
5
  url: string
3
6
  method: string
@@ -94,3 +97,75 @@ export const withEnv = async <T>(
94
97
  }
95
98
  }
96
99
  }
100
+
101
+ /**
102
+ * `dns`, `http` and `https` for a generated route under test, answered by the
103
+ * fake `globalThis.fetch` the test installed (see `withFetch`).
104
+ *
105
+ * The general-http-request node never calls `fetch`: it connects through its
106
+ * own DNS lookup and `http(s).request`, so it can refuse private addresses on
107
+ * the address it actually connects to. A route `require`-shim that answers
108
+ * these three ids from here lets that node reach the test's fake fetch, with
109
+ * every name resolving to one public address.
110
+ */
111
+ export const FETCH_BACKED_NETWORK: Record<string, unknown> = (() => {
112
+ const PUBLIC_ADDRESS = { address: '93.184.216.34', family: 4 }
113
+ const dns = {
114
+ lookup(_hostname: string, options: any, callback: any) {
115
+ if (options && options.all) {
116
+ callback(null, [PUBLIC_ADDRESS])
117
+ } else {
118
+ callback(null, PUBLIC_ADDRESS.address, PUBLIC_ADDRESS.family)
119
+ }
120
+ },
121
+ }
122
+ const transport = (protocol: string) => ({
123
+ request(options: any, onResponse: (res: any) => void) {
124
+ const req: any = new EventEmitter()
125
+ const chunks: Buffer[] = []
126
+ req.write = (chunk: unknown) => {
127
+ chunks.push(Buffer.from(chunk as string))
128
+ return true
129
+ }
130
+ req.destroy = (): void => undefined
131
+ req.end = () => {
132
+ options.lookup(options.hostname, { all: true }, async (err: unknown) => {
133
+ if (err) {
134
+ req.emit('error', err)
135
+ return
136
+ }
137
+ try {
138
+ const port = options.port ? ':' + options.port : ''
139
+ const headers: Record<string, string> = {}
140
+ Object.keys(options.headers || {}).forEach((key) => {
141
+ headers[key] = String(options.headers[key])
142
+ })
143
+ const answer = await (globalThis as any).fetch(
144
+ protocol + '//' + options.hostname + port + options.path,
145
+ {
146
+ method: options.method,
147
+ headers,
148
+ body: chunks.length > 0 ? Buffer.concat(chunks).toString('utf8') : undefined,
149
+ }
150
+ )
151
+ const text = answer && typeof answer.text === 'function' ? await answer.text() : ''
152
+ const res: any = Readable.from(text ? [Buffer.from(text)] : [])
153
+ res.statusCode = answer.status
154
+ res.statusMessage = ''
155
+ res.headers = {}
156
+ if (answer.headers && typeof answer.headers.forEach === 'function') {
157
+ answer.headers.forEach((value: string, key: string) => {
158
+ res.headers[String(key).toLowerCase()] = value
159
+ })
160
+ }
161
+ onResponse(res)
162
+ } catch (fetchError) {
163
+ req.emit('error', fetchError)
164
+ }
165
+ })
166
+ }
167
+ return req
168
+ },
169
+ })
170
+ return { dns, http: transport('http:'), https: transport('https:') }
171
+ })()
@@ -0,0 +1,17 @@
1
+ // The place-order statements exactly as the editor bakes them
2
+ // (apps/gui/.../builders/ecommerce/order-redemption-helper.ts,
3
+ // order-side-effects-helper.ts and settle-unpaid-order-custom-node.ts, read out of the editor on 2026-10-25). The
4
+ // export-time guards recognise these shapes, so a change to the editor's
5
+ // statements must keep matching them (the editor carries the mirror spec).
6
+
7
+ export const GUI_ORDER_REDEMPTION_QUERY =
8
+ "WITH locked_voucher AS (\n SELECT v.id, v.code, v.usage_limit, v.usage_count, (to_jsonb(v) ->> 'per_customer_limit')::int AS per_customer_limit\n FROM teleport_vouchers v\n WHERE COALESCE($1::text, '') <> '' AND v.id::text = $1::text\n FOR UPDATE\n),\nlocked_card AS (\n SELECT g.id, g.balance, g.status, g.expires_at, g.currency\n FROM teleport_gift_cards g\n WHERE COALESCE($8::text, '') <> '' AND g.id::text = $8::text\n FOR UPDATE\n),\nverdict AS (\n SELECT\n (COALESCE($1::text, '') = '' OR EXISTS (\n SELECT 1 FROM locked_voucher lv\n WHERE (lv.usage_limit IS NULL OR lv.usage_count < lv.usage_limit)\n AND (lv.per_customer_limit IS NULL\n OR (SELECT COUNT(*) FROM teleport_voucher_redemptions r\n WHERE r.voucher_id = lv.id\n AND (r.user_id::text = $3::text\n OR ($4::text <> '' AND r.user_id::text = $4::text)\n OR ($5::text <> '' AND LOWER(COALESCE(r.billing_email, '')) = LOWER($5::text)))) < lv.per_customer_limit)\n )) AS voucher_ok,\n (COALESCE($8::text, '') = '' OR EXISTS (\n SELECT 1 FROM locked_card lc\n WHERE lc.status = 'active'\n AND (lc.expires_at IS NULL OR lc.expires_at > NOW())\n AND $9::numeric > 0\n AND lc.balance >= $9::numeric\n AND UPPER(COALESCE(lc.currency, '')) = UPPER(COALESCE((SELECT oc.currency FROM teleport_orders oc WHERE oc.id::text = $2::text), ''))\n )) AS gift_card_ok\n),\nok AS (SELECT voucher_ok AND gift_card_ok AS ok FROM verdict),\nbump AS (\n UPDATE teleport_vouchers\n SET usage_count = usage_count + 1, updated_at = NOW()\n WHERE (SELECT ok FROM ok)\n AND COALESCE($1::text, '') <> ''\n AND id::text = $1::text\n AND (usage_limit IS NULL OR usage_count < usage_limit)\n RETURNING id, code\n),\nredemption AS (\n INSERT INTO teleport_voucher_redemptions\n (voucher_id, order_id, voucher_code, user_id, billing_email, discount_amount, item_product_ids)\n SELECT\n bump.id,\n ($2::text)::uuid,\n bump.code,\n NULLIF($3::text, '')::uuid,\n NULLIF($5::text, ''),\n $6::numeric,\n NULLIF($7::text, '')\n FROM bump\n RETURNING id\n),\ndebit AS (\n UPDATE teleport_gift_cards g\n SET balance = g.balance - $9::numeric, updated_at = NOW()\n WHERE (SELECT ok FROM ok)\n AND COALESCE($8::text, '') <> ''\n AND g.id::text = $8::text\n AND g.status = 'active'\n AND (g.expires_at IS NULL OR g.expires_at > NOW())\n AND $9::numeric > 0\n AND g.balance >= $9::numeric\n AND UPPER(COALESCE(g.currency, '')) = UPPER(COALESCE((SELECT oc.currency FROM teleport_orders oc WHERE oc.id::text = $2::text), ''))\n RETURNING g.id, right(g.code, 4) AS last4, g.balance\n),\nledger AS (\n INSERT INTO teleport_gift_card_transactions\n (gift_card_id, order_id, type, amount, balance_after, dedupe_key, note)\n SELECT\n debit.id,\n ($2::text)::uuid,\n 'redeem',\n -($9::numeric),\n debit.balance,\n 'redeem:' || $2::text,\n 'Redeemed at checkout'\n FROM debit\n RETURNING id\n),\norder_update AS (\n UPDATE teleport_orders o\n SET gift_card_amount = $9::numeric, gift_card_id = debit.id, gift_card_last4 = debit.last4, updated_at = NOW()\n FROM debit\n WHERE o.id = ($2::text)::uuid\n RETURNING o.id\n)\nSELECT\n (SELECT ok FROM ok) AS ok,\n (SELECT COUNT(*) FROM redemption) AS voucher_redeemed,\n (SELECT COUNT(*) FROM ledger) AS gift_card_debited"
9
+
10
+ export const GUI_SETTLE_ORDER_QUERY =
11
+ "WITH tender AS (\n SELECT COALESCE(-SUM(t.amount), 0) AS debited\n FROM teleport_gift_card_transactions t\n WHERE t.dedupe_key = 'redeem:' || $1::text\n)\nUPDATE teleport_orders o\nSET status = 'confirmed',\n payment_status = CASE WHEN (SELECT debited FROM tender) > 0 AND o.total_amount - (SELECT debited FROM tender) <= 0\n THEN 'paid' ELSE 'pending' END,\n payment_method = CASE WHEN (SELECT debited FROM tender) > 0 AND o.total_amount - (SELECT debited FROM tender) <= 0\n THEN 'gift_card' ELSE 'cash_on_delivery' END,\n payment_provider = '',\n order_number = $2::text,\n updated_at = NOW()\nWHERE o.id::text = $1::text\n AND o.status = 'pending'\nRETURNING o.id, o.payment_status, o.payment_method"
12
+
13
+ export const GUI_STOCK_DECREMENT_QUERY =
14
+ 'WITH product_decrement AS ( UPDATE teleport_products AS p SET quantity = p.quantity - d.qty, updated_at = NOW() FROM unnest($1::text[], $2::int[]) AS d(id, qty) WHERE p.quantity IS NOT NULL AND p.id::text = d.id AND p.quantity >= d.qty ) UPDATE teleport_product_variants AS v SET quantity = v.quantity - d.qty, updated_at = NOW() FROM unnest($3::text[], $4::int[]) AS d(id, qty) WHERE v.quantity IS NOT NULL AND v.id::text = d.id AND v.quantity >= d.qty'
15
+
16
+ export const GUI_SETTLE_UNPAID_ORDER_QUERY =
17
+ "WITH target AS (\n SELECT o.id,\n LOWER(COALESCE(o.payment_status, '')) AS payment_status,\n LOWER(COALESCE(o.status, '')) AS status,\n LOWER(COALESCE(o.payment_method, '')) AS payment_method,\n (CASE WHEN COALESCE(to_jsonb(o) ->> 'payment_attempt_ref', '') <> ''\n THEN NOT (split_part(to_jsonb(o) ->> 'payment_attempt_ref', ':', 1) = ANY(string_to_array(COALESCE(NULLIF($4::text, ''), $3::text), ',')))\n ELSE COALESCE(o.payment_intent_id, '') <> '' AND NOT (o.payment_intent_id = ANY(string_to_array(COALESCE(NULLIF($4::text, ''), $3::text), ',')))\n END) AS stale,\n (COALESCE(to_jsonb(o) ->> 'provider_invoice_id', '') LIKE 'store:%') AS store_renewal\n FROM teleport_orders o\n WHERE $1::text <> '' AND o.id::text = $1::text\n FOR UPDATE\n),\nawaiting AS (\n UPDATE teleport_orders o\n SET payment_status = 'awaiting_confirmation',\n payment_intent_id = COALESCE(NULLIF($3::text, ''), o.payment_intent_id),\n updated_at = NOW()\n FROM target t\n WHERE o.id = t.id AND $2::text = 'awaiting'\n AND t.payment_status IN ('', 'unpaid', 'pending')\n AND t.status IN ('', 'pending')\n AND t.payment_method NOT IN ('cash_on_delivery', 'cod', 'cash', 'store_pickup', 'pickup')\n RETURNING o.id\n),\nreleased AS (\n UPDATE teleport_orders o\n SET payment_status = 'failed', status = 'cancelled', updated_at = NOW()\n FROM target t\n WHERE o.id = t.id AND $2::text IN ('failed', 'expired', 'cancelled')\n AND t.payment_status IN ('', 'unpaid', 'pending', 'awaiting_confirmation')\n AND t.status IN ('', 'pending')\n AND t.payment_method NOT IN ('cash_on_delivery', 'cod', 'cash', 'store_pickup', 'pickup')\n AND NOT t.stale AND NOT t.store_renewal\n RETURNING o.id, o.currency\n),\ndropped AS (\n UPDATE teleport_orders o\n SET payment_status = 'failed', updated_at = NOW()\n FROM target t\n WHERE o.id = t.id AND $2::text IN ('failed', 'expired', 'cancelled')\n AND t.payment_status = 'awaiting_confirmation' AND t.status = 'cancelled'\n AND t.payment_method NOT IN ('cash_on_delivery', 'cod', 'cash', 'store_pickup', 'pickup')\n AND NOT t.stale AND NOT t.store_renewal\n RETURNING o.id\n),\nreopened AS (\n UPDATE teleport_orders o\n SET payment_status = 'unpaid', updated_at = NOW()\n FROM target t\n WHERE o.id = t.id AND $2::text IN ('failed', 'expired', 'cancelled')\n AND t.store_renewal AND NOT t.stale AND t.payment_status = 'awaiting_confirmation'\n AND t.status IN ('', 'pending')\n RETURNING o.id\n),\nlines AS (\n SELECT oi.product_id::text AS product_id, NULLIF(COALESCE(oi.variant_id::text, ''), '') AS variant_id, oi.quantity\n FROM teleport_order_items oi JOIN released r ON oi.order_id = r.id\n WHERE oi.quantity > 0\n),\nproduct_restore AS (\n UPDATE teleport_products p SET quantity = p.quantity + d.qty, updated_at = NOW()\n FROM (SELECT product_id AS id, SUM(quantity)::int AS qty FROM lines\n WHERE variant_id IS NULL AND product_id IS NOT NULL GROUP BY product_id) d\n WHERE p.quantity IS NOT NULL AND p.id::text = d.id\n RETURNING p.id\n),\nvariant_restore AS (\n UPDATE teleport_product_variants v SET quantity = v.quantity + d.qty, updated_at = NOW()\n FROM (SELECT variant_id AS id, SUM(quantity)::int AS qty FROM lines\n WHERE variant_id IS NOT NULL GROUP BY variant_id) d\n WHERE v.quantity IS NOT NULL AND v.id::text = d.id\n RETURNING v.id\n)\nSELECT\n (SELECT COUNT(*) FROM awaiting) AS awaiting,\n (SELECT COUNT(*) FROM released) AS released,\n (SELECT COUNT(*) FROM dropped) AS dropped,\n (SELECT COUNT(*) FROM reopened) AS reopened,\n (SELECT COALESCE(SUM(quantity), 0) FROM lines) AS units,\n (SELECT COUNT(*) FROM product_restore) + (SELECT COUNT(*) FROM variant_restore) AS restocked_rows,\n (SELECT currency FROM released) AS currency"
@@ -0,0 +1,22 @@
1
+ /**
2
+ * How `after` differs from `before`, line by line, when it may only ADD:
3
+ * `kept` is false when a line of `before` was removed or changed (it is not a
4
+ * subsequence of `after`), and `inserted` holds the lines `after` added.
5
+ */
6
+ export const insertedLines = (
7
+ before: string,
8
+ after: string
9
+ ): { kept: boolean; inserted: string[] } => {
10
+ const original = before.split('\n')
11
+ const changed = after.split('\n')
12
+ const inserted: string[] = []
13
+ let next = 0
14
+ for (const line of changed) {
15
+ if (next < original.length && line === original[next]) {
16
+ next++
17
+ } else {
18
+ inserted.push(line)
19
+ }
20
+ }
21
+ return { kept: next === original.length, inserted }
22
+ }
@@ -180,6 +180,15 @@ export function openStore(options: { emailDelivery?: boolean } = {}): Store {
180
180
  if (id === 'next-auth/jwt') {
181
181
  return { getToken: async () => ({ id: 'admin-1', role: 'admin' }) }
182
182
  }
183
+ if (/(^|\/)security-runtime$/.test(id)) {
184
+ return {
185
+ safeEqual: (given: unknown, expected: unknown) =>
186
+ typeof given === 'string' &&
187
+ typeof expected === 'string' &&
188
+ given !== '' &&
189
+ given === expected,
190
+ }
191
+ }
183
192
  const name = id.split('/').pop() as string
184
193
  if (sources[name] !== undefined) {
185
194
  if (!(name in loaded)) {
@@ -224,7 +233,7 @@ export function openStore(options: { emailDelivery?: boolean } = {}): Store {
224
233
  'x-forwarded-proto': 'https',
225
234
  'x-teleport-locale': 'de',
226
235
  referer: 'https://shop.test/de/admin/invoices',
227
- cookie: 'next-auth.session-token=abc; NEXT_LOCALE=de',
236
+ cookie: '__Host-next-auth.session-token=abc; NEXT_LOCALE=de',
228
237
  }
229
238
 
230
239
  const store: Store = {
@@ -0,0 +1,45 @@
1
+ import * as nodeCrypto from 'crypto'
2
+ import * as net from 'net'
3
+ import { generateSecurityRuntimeCode } from '../../src/security-runtime/security-runtime-code'
4
+
5
+ /**
6
+ * A generated file's `require` of the shared security runtime
7
+ * (`utils/security-runtime.js`), from whatever folder it sits in.
8
+ */
9
+ export const isSecurityRuntimeSpecifier = (name: string): boolean =>
10
+ /(^|\/)utils\/security-runtime$/.test(name)
11
+
12
+ /**
13
+ * One app instance's `utils/security-runtime.js` with no database: it counts
14
+ * rate limits in memory and logs nothing. What a spec's `require` shim answers
15
+ * for `isSecurityRuntimeSpecifier` (the data routes compare the app secret
16
+ * with its `safeEqual`).
17
+ */
18
+ export const loadSecurityRuntime = (): any => {
19
+ const module = { exports: {} as any }
20
+ const quiet = {
21
+ warn: (): void => undefined,
22
+ error: (): void => undefined,
23
+ log: (): void => undefined,
24
+ }
25
+ const requireShim = (id: string): unknown => {
26
+ if (id === 'crypto') {
27
+ return nodeCrypto
28
+ }
29
+ if (id === 'net') {
30
+ return net
31
+ }
32
+ throw new Error("Cannot find module '" + id + "'")
33
+ }
34
+ // eslint-disable-next-line no-new-func
35
+ new Function(
36
+ 'module',
37
+ 'exports',
38
+ 'require',
39
+ 'process',
40
+ 'console',
41
+ 'Buffer',
42
+ generateSecurityRuntimeCode()
43
+ )(module, module.exports, requireShim, { env: {} }, quiet, Buffer)
44
+ return module.exports
45
+ }
@@ -2,13 +2,33 @@ import * as crypto from 'crypto'
2
2
  import { generateSharedRuntimeUtilsCode } from '../../src/executor-generator'
3
3
  import { generateServerRuntimeCode } from '../../src/server-runtime-code'
4
4
 
5
+ export interface ServerRuntimeOptions {
6
+ /**
7
+ * next-auth's `getToken`, for a runtime that decodes the visitor's session
8
+ * cookie. Without it `next-auth/jwt` is absent and every visitor is a guest.
9
+ */
10
+ getToken?: (params: { req: unknown }) => unknown
11
+ /**
12
+ * Packages a project may have installed (`@vercel/functions`). Any other
13
+ * require is missing. A plain module map (no `getToken`) is accepted as this.
14
+ */
15
+ modules?: Record<string, unknown>
16
+ }
17
+
5
18
  /**
6
19
  * The generated `utils/workflows/server-runtime.js` exactly as a route loads
7
20
  * it: the shared runtime utilities plus the server-only signed hand-off,
8
- * internal-call token and trusted base URL. `modules` answers the packages a
9
- * project may have installed (`@vercel/functions`); any other is missing.
21
+ * session identity, internal-call token and trusted base URL.
10
22
  */
11
- export function loadServerRuntime(modules: Record<string, unknown> = {}): Record<string, any> {
23
+ export function loadServerRuntime(
24
+ options: ServerRuntimeOptions | Record<string, unknown> = {}
25
+ ): Record<string, any> {
26
+ const asOptions = options as ServerRuntimeOptions
27
+ const named =
28
+ typeof asOptions.getToken === 'function' ||
29
+ (asOptions.modules != null && typeof asOptions.modules === 'object')
30
+ const getToken = named ? asOptions.getToken : undefined
31
+ const modules = named ? asOptions.modules || {} : (options as Record<string, unknown>)
12
32
  const shared: { exports: Record<string, unknown> } = { exports: {} }
13
33
  // eslint-disable-next-line @typescript-eslint/no-implied-eval
14
34
  new Function('module', 'exports', generateSharedRuntimeUtilsCode())(shared, shared.exports)
@@ -20,6 +40,9 @@ export function loadServerRuntime(modules: Record<string, unknown> = {}): Record
20
40
  if (id === './runtime-utils') {
21
41
  return shared.exports
22
42
  }
43
+ if (id === 'next-auth/jwt' && getToken) {
44
+ return { getToken }
45
+ }
23
46
  if (id in modules) {
24
47
  return modules[id]
25
48
  }
@@ -129,7 +129,9 @@ export const runAccountDeleteRoute = async (setup: DeleteRouteSetup): Promise<De
129
129
  await handler(
130
130
  {
131
131
  method: 'POST',
132
- headers: {},
132
+ // No host: the request is local http, so the plain session cookie is the
133
+ // one the reader accepts. getToken is stubbed and ignores its value.
134
+ headers: { cookie: 'next-auth.session-token=signed' },
133
135
  ...(setup.requestBody === undefined ? {} : { body: setup.requestBody }),
134
136
  },
135
137
  res
@@ -140,7 +140,12 @@ export const compileGeneratedMiddleware = (
140
140
  ): Promise<MiddlewareResult> => {
141
141
  const origin = options.origin || 'https://shop.test'
142
142
  const sessionUser = options.sessionUser ?? null
143
- const cookieHeader = sessionUser ? 'next-auth.session-token=stub' : ''
143
+ // The session cookie the site sets for the origin's protocol (see the auth options).
144
+ const sessionCookie =
145
+ origin.indexOf('https://') === 0
146
+ ? '__Host-next-auth.session-token'
147
+ : 'next-auth.session-token'
148
+ const cookieHeader = sessionUser ? `${sessionCookie}=stub` : ''
144
149
  const subscriberAccess: SubscriberAccessStub = options.subscriberAccess ?? { entitled: false }
145
150
 
146
151
  const fetchImpl = async (url: string, init?: { headers?: { cookie?: string } }) => {
@@ -168,7 +173,7 @@ export const compileGeneratedMiddleware = (
168
173
  url: `${origin}${localePrefix}${pathname}`,
169
174
  cookies: {
170
175
  get: (name: string) =>
171
- sessionUser && name === 'next-auth.session-token' ? { name, value: 'stub' } : undefined,
176
+ sessionUser && name === sessionCookie ? { name, value: 'stub' } : undefined,
172
177
  },
173
178
  headers: { get: (name: string) => (name === 'cookie' ? cookieHeader : '') },
174
179
  })
@@ -185,7 +185,9 @@ const runRoute = async (schema: FixtureSchema, refuse: Refuse = () => null): Pro
185
185
  return res
186
186
  },
187
187
  }
188
- await handler({ method: 'POST', headers: {} }, res)
188
+ // No host: the request is local http, so the plain session cookie is the one
189
+ // the reader accepts. getToken is stubbed and ignores its value.
190
+ await handler({ method: 'POST', headers: { cookie: 'next-auth.session-token=signed' } }, res)
189
191
  return run
190
192
  }
191
193
 
@@ -0,0 +1,128 @@
1
+ // The native-listener form of an element trigger (`generateTriggerCode`), as the
2
+ // editor exports it for a navigation element the Instant search plugin adopted:
3
+ // a click on a linked control, and the submit of a search form, both with
4
+ // `preventDefault` + `stopPropagation`.
5
+ //
6
+ // `generateTriggerCode` has NO production caller: what a published site runs are
7
+ // the React props `workflow-component-plugin.ts` puts on the element, proven in
8
+ // `adopted-navigation-element-end2end.test.ts` (and, for a form whose submissions
9
+ // the platform stores, `adopted-search-form-submission-end2end.test.ts`) in the
10
+ // Next project generator. This file only pins the same contract on the exported
11
+ // function, for whoever wires it again: the listener is attached to the element
12
+ // found by its published html id (never the editor's internal node id), cancels
13
+ // the default action and the bubbling BEFORE the workflow runs, and does so only
14
+ // when the trigger asked.
15
+
16
+ import type { UIDLWorkflow } from '@teleporthq/teleport-types'
17
+ import { generateTriggerCode } from '../src/trigger-generator'
18
+
19
+ const HTML_ID = 'nav-search-link'
20
+ const INTERNAL_NODE_ID = 'TQ_internal_node_id'
21
+
22
+ const workflowWith = (
23
+ type: 'event-element-clicked' | 'event-element-event',
24
+ config: Record<string, unknown>
25
+ ): UIDLWorkflow =>
26
+ ({
27
+ id: 'open-search',
28
+ name: 'Open the search',
29
+ trigger: {
30
+ nodeId: 'open-search-trigger',
31
+ type,
32
+ scope: 'element',
33
+ config: { nodeId: INTERNAL_NODE_ID, elementHtmlId: HTML_ID, ...config },
34
+ },
35
+ nodes: [],
36
+ edges: [],
37
+ } as unknown as UIDLWorkflow)
38
+
39
+ /**
40
+ * Runs the generated statements against a fake document. Returns what the
41
+ * browser would have seen: which ids were looked up, which events got a
42
+ * listener, and the order of everything a dispatched event then did.
43
+ */
44
+ const run = (workflow: UIDLWorkflow) => {
45
+ const listeners: Record<string, (event: unknown) => void> = {}
46
+ const lookups: string[] = []
47
+ const calls: string[] = []
48
+
49
+ const element = {
50
+ addEventListener: (type: string, handler: (event: unknown) => void) => {
51
+ listeners[type] = handler
52
+ },
53
+ removeEventListener: (): void => undefined,
54
+ }
55
+ const fakeDocument = {
56
+ getElementById: (id: string) => {
57
+ lookups.push(id)
58
+ return id === HTML_ID ? element : null
59
+ },
60
+ }
61
+ const runWorkflow = () => {
62
+ calls.push('workflow')
63
+ }
64
+
65
+ const code = generateTriggerCode(workflow, 'runWorkflow')
66
+ // The statements end in a `return` of the cleanup, as they do inside the
67
+ // effect they are placed in.
68
+ // eslint-disable-next-line @typescript-eslint/no-implied-eval
69
+ const attach = new Function('document', 'window', 'runWorkflow', code)
70
+ const cleanup = attach(fakeDocument, {}, runWorkflow)
71
+
72
+ const dispatch = (type: string) => {
73
+ const event = {
74
+ preventDefault: () => calls.push('preventDefault'),
75
+ stopPropagation: () => calls.push('stopPropagation'),
76
+ target: {},
77
+ }
78
+ listeners[type](event)
79
+ }
80
+ return { code, listeners, lookups, calls, dispatch, cleanup }
81
+ }
82
+
83
+ describe('generateTriggerCode for an adopted navigation element', () => {
84
+ it('looks the control up by its published html id, never the editor node id', () => {
85
+ const { lookups, code } = run(
86
+ workflowWith('event-element-clicked', { preventDefault: true, stopPropagation: true })
87
+ )
88
+ expect(lookups).toEqual([HTML_ID])
89
+ expect(code).toContain(`document.getElementById('${HTML_ID}')`)
90
+ expect(code).not.toContain(INTERNAL_NODE_ID)
91
+ })
92
+
93
+ it('cancels the link, stops the bubbling, then runs the workflow on a click', () => {
94
+ const { listeners, calls, dispatch, cleanup } = run(
95
+ workflowWith('event-element-clicked', { preventDefault: true, stopPropagation: true })
96
+ )
97
+ expect(Object.keys(listeners)).toEqual(['click'])
98
+
99
+ dispatch('click')
100
+ expect(calls).toEqual(['preventDefault', 'stopPropagation', 'workflow'])
101
+ // And it unregisters with the effect.
102
+ expect(typeof cleanup).toBe('function')
103
+ })
104
+
105
+ it('cancels the form submit, stops the bubbling, then runs the workflow on a submit', () => {
106
+ const { listeners, calls, dispatch } = run(
107
+ workflowWith('event-element-event', {
108
+ eventType: 'submit',
109
+ preventDefault: true,
110
+ stopPropagation: true,
111
+ })
112
+ )
113
+ expect(Object.keys(listeners)).toEqual(['submit'])
114
+
115
+ dispatch('submit')
116
+ expect(calls).toEqual(['preventDefault', 'stopPropagation', 'workflow'])
117
+ })
118
+
119
+ it('leaves the default action and the bubbling alone when the trigger did not ask', () => {
120
+ const click = run(workflowWith('event-element-clicked', {}))
121
+ click.dispatch('click')
122
+ expect(click.calls).toEqual(['workflow'])
123
+
124
+ const submit = run(workflowWith('event-element-event', { eventType: 'submit' }))
125
+ submit.dispatch('submit')
126
+ expect(submit.calls).toEqual(['workflow'])
127
+ })
128
+ })
@@ -0,0 +1,145 @@
1
+ import { nodeRegistry } from '../src/nodes'
2
+ import { resolveHandlerEntryName } from '../src/nodes/types'
3
+ import { assertHandlerHasNoModuleRefs } from '../src/nodes/analytics/commerce-tracking'
4
+ import { TRACK_LEAD_SOURCE, TRACKER_IDS_EXPRESSION } from '../src/trigger-generator'
5
+
6
+ /**
7
+ * `analytics-track-outcome` reports what a visit produced. One node, two
8
+ * bodies: the browser hands the outcome to the tracker, the server posts money
9
+ * outcomes with the server key. Both must stay free of module references (a
10
+ * handler is serialized) and must never throw into a checkout.
11
+ */
12
+ const NODE_TYPE = 'analytics-track-outcome'
13
+
14
+ type Handler = (
15
+ config: Record<string, unknown>,
16
+ context: Record<string, unknown>
17
+ ) => Promise<unknown>
18
+
19
+ function evalHandler(source: string, globals: Record<string, unknown>): Handler {
20
+ const entry = resolveHandlerEntryName(source, NODE_TYPE)
21
+ const names = Object.keys(globals)
22
+ // tslint:disable-next-line:function-constructor
23
+ const factory = new Function(...names, `${source}\nreturn ${entry};`)
24
+ return factory(...names.map((name) => globals[name]))
25
+ }
26
+
27
+ describe('analytics-track-outcome node', () => {
28
+ const generator = nodeRegistry[NODE_TYPE]
29
+
30
+ it('is registered as universal with a client and a server body free of module refs', () => {
31
+ expect(generator).toBeDefined()
32
+ expect(generator.executionEnv).toBe('universal')
33
+ expect(() => assertHandlerHasNoModuleRefs(generator.generateHandler(), NODE_TYPE)).not.toThrow()
34
+ expect(() =>
35
+ assertHandlerHasNoModuleRefs(generator.generateServerHandler?.() ?? '', NODE_TYPE)
36
+ ).not.toThrow()
37
+ expect(resolveHandlerEntryName(generator.generateHandler(), NODE_TYPE)).toBe(
38
+ 'analytics_track_outcome'
39
+ )
40
+ })
41
+
42
+ it('client: hands a browser outcome to the tracker and refuses money names', async () => {
43
+ const tracked: unknown[] = []
44
+ const handler = evalHandler(generator.generateHandler(), {
45
+ window: {
46
+ tpAnalytics: { track: (name: string, detail: unknown) => tracked.push([name, detail]) },
47
+ },
48
+ })
49
+ expect(await handler({ name: 'lead', recordId: 'form-1' }, {})).toEqual({ sent: true })
50
+ expect(tracked).toEqual([['lead', expect.objectContaining({ recordId: 'form-1' })]])
51
+ expect(await handler({ name: 'purchase', value: 10 }, {})).toEqual({
52
+ sent: false,
53
+ reason: 'server-only',
54
+ })
55
+ expect(tracked).toHaveLength(1)
56
+ })
57
+
58
+ it('client: is a silent no-op without the tracker', async () => {
59
+ const handler = evalHandler(generator.generateHandler(), { window: {} })
60
+ expect(await handler({ name: 'newsletter' }, {})).toEqual({
61
+ sent: false,
62
+ reason: 'tracker-unavailable',
63
+ })
64
+ })
65
+
66
+ it('server: posts the outcome with the server key and the ids the trigger stamped', async () => {
67
+ const calls: Array<{ url: string; init: { headers: Record<string, string>; body: string } }> =
68
+ []
69
+ const handler = evalHandler(generator.generateServerHandler?.() ?? '', {
70
+ globalThis: {
71
+ process: {
72
+ env: {
73
+ NEXT_PUBLIC_TELEPORT_ANALYTICS_URL: 'https://analytics.example/',
74
+ NEXT_PUBLIC_TELEPORT_ANALYTICS_KEY: 'tpa_key',
75
+ TELEPORT_ANALYTICS_SERVER_KEY: 'tpas_secret',
76
+ },
77
+ },
78
+ },
79
+ fetch: (url: string, init: { headers: Record<string, string>; body: string }) => {
80
+ calls.push({ url, init })
81
+ return Promise.resolve({ status: 202 })
82
+ },
83
+ AbortController: undefined,
84
+ })
85
+ const result = await handler(
86
+ {
87
+ name: 'purchase',
88
+ value: '49.90',
89
+ currency: 'EUR',
90
+ outcomeId: 'ord-1',
91
+ attribution: { utm_source: 'facebook', visitor_id: 'aid-1' },
92
+ },
93
+ { __tpa: { sessionId: 'sid-1', visitorId: null, path: '/checkout' } }
94
+ )
95
+ expect(result).toEqual({ sent: true, status: 202 })
96
+ expect(calls[0].url).toBe('https://analytics.example/events/tpa_key/server')
97
+ expect(calls[0].init.headers['x-tp-server-key']).toBe('tpas_secret')
98
+ const body = JSON.parse(calls[0].init.body)
99
+ expect(body.outcomes[0]).toMatchObject({
100
+ name: 'purchase',
101
+ value: 49.9,
102
+ currency: 'EUR',
103
+ outcomeId: 'ord-1',
104
+ sessionId: 'sid-1',
105
+ visitorId: 'aid-1',
106
+ path: '/checkout',
107
+ attribution: { utmSource: 'facebook' },
108
+ })
109
+ })
110
+
111
+ it('server: answers not-configured without the key and never throws on a network failure', async () => {
112
+ const unconfigured = evalHandler(generator.generateServerHandler?.() ?? '', {
113
+ globalThis: { process: { env: {} } },
114
+ fetch: () => Promise.reject(new Error('unreachable')),
115
+ AbortController: undefined,
116
+ })
117
+ expect(await unconfigured({ name: 'purchase', outcomeId: 'o' }, {})).toEqual({
118
+ sent: false,
119
+ reason: 'not-configured',
120
+ })
121
+ const offline = evalHandler(generator.generateServerHandler?.() ?? '', {
122
+ globalThis: {
123
+ process: {
124
+ env: {
125
+ NEXT_PUBLIC_TELEPORT_ANALYTICS_URL: 'https://analytics.example',
126
+ NEXT_PUBLIC_TELEPORT_ANALYTICS_KEY: 'k',
127
+ TELEPORT_ANALYTICS_SERVER_KEY: 's',
128
+ },
129
+ },
130
+ },
131
+ fetch: () => Promise.reject(new Error('unreachable')),
132
+ AbortController: undefined,
133
+ })
134
+ expect(await offline({ name: 'booking_made', outcomeId: 'b' }, {})).toEqual({
135
+ sent: false,
136
+ reason: 'network',
137
+ })
138
+ })
139
+
140
+ it('stamps the tracker ids on every trigger context and reports a sent form as a lead', () => {
141
+ expect(TRACKER_IDS_EXPRESSION).toContain('window.tpAnalytics.ids()')
142
+ expect(TRACK_LEAD_SOURCE('form-9')).toContain("track('lead', { recordId: 'form-9' })")
143
+ expect(TRACK_LEAD_SOURCE('form-9')).toContain("typeof window !== 'undefined'")
144
+ })
145
+ })
@@ -68,7 +68,14 @@ const bootAuthOptions = () => {
68
68
  return crypto
69
69
  }
70
70
  if (name === './hash-password') {
71
- return { verifyPassword: (password: string, hash: string) => hash === hashOf(password) }
71
+ return {
72
+ verifyPassword: (password: string, hash: string) => hash === hashOf(password),
73
+ checkPassword: (password: string, hash: string) => ({
74
+ ok: typeof hash === 'string' && hash !== '' && hash === hashOf(password),
75
+ needsRehash: false,
76
+ }),
77
+ hashPassword: (password: string) => hashOf(password),
78
+ }
72
79
  }
73
80
  if (name === './db-health') {
74
81
  return { classifyAuthInfrastructureError: () => 'unknown' }