@teleporthq/teleport-plugin-next-workflows 0.44.11 → 0.45.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/__tests__/_helpers/fake-fetch.ts +75 -0
- package/__tests__/_helpers/gui-place-order-statements.ts +17 -0
- package/__tests__/_helpers/inserted-lines.ts +22 -0
- package/__tests__/_helpers/invoice-store.ts +10 -1
- package/__tests__/_helpers/load-security-runtime.ts +45 -0
- package/__tests__/_helpers/load-server-runtime.ts +26 -3
- package/__tests__/_helpers/run-account-delete-route.ts +3 -1
- package/__tests__/_helpers/run-generated-middleware.ts +7 -2
- package/__tests__/account-delete-owned-rows.test.ts +3 -1
- package/__tests__/adopted-element-trigger-code.test.ts +128 -0
- package/__tests__/analytics-track-outcome.test.ts +145 -0
- package/__tests__/auth-password-change-ends-sessions.test.ts +8 -1
- package/__tests__/auth-password-security.test.ts +2275 -0
- package/__tests__/auth-session-cost.test.ts +31 -0
- package/__tests__/auth-signup-route.test.ts +960 -0
- package/__tests__/authored-code-every-path.test.ts +247 -0
- package/__tests__/automations-bus.test.ts +3820 -0
- package/__tests__/automations-catalog-drift.test.ts +97 -0
- package/__tests__/booking-calendar-feed-route.test.ts +20 -3
- package/__tests__/cart-price-order.test.ts +336 -1
- package/__tests__/code-lookup-rate-limit-route.test.ts +189 -0
- package/__tests__/cost-bearing-node-types.test.ts +119 -0
- package/__tests__/credential-columns-reply.test.ts +9 -0
- package/__tests__/credential-result-reply.test.ts +19 -5
- package/__tests__/cron-route-loop-templateparams.test.ts +6 -3
- package/__tests__/custom-js-authored-code.test.ts +304 -0
- package/__tests__/custom-node-custom-code-gate.test.ts +136 -0
- package/__tests__/custom-node-step-handlers.test.ts +251 -0
- package/__tests__/custom-node-step-reach.test.ts +63 -0
- package/__tests__/data-api-anon-user-id-fallback.test.ts +7 -2
- package/__tests__/data-api-browser-reads.test.ts +7 -0
- package/__tests__/data-api-business-events.test.ts +403 -0
- package/__tests__/data-api-invalid-body.test.ts +7 -0
- package/__tests__/data-api-low-stock-autofire.test.ts +30 -4
- package/__tests__/data-api-optional-feature-columns.test.ts +44 -0
- package/__tests__/data-api-owner-scope-credentials.test.ts +1324 -0
- package/__tests__/data-api-protected-tables.test.ts +48 -15
- package/__tests__/data-api-retired-table-and-account-fields.test.ts +208 -0
- package/__tests__/email-locale-senders.test.ts +5 -3
- package/__tests__/expression-injection.test.ts +343 -0
- package/__tests__/fixtures/admin-file-workflows.json +242 -0
- package/__tests__/form-confirmation-email-template.test.ts +44 -0
- package/__tests__/internal-request-headers.test.ts +25 -0
- package/__tests__/invoice-pdf-service-project-header.test.ts +120 -0
- package/__tests__/invoice-self-call-origin.test.ts +57 -1
- package/__tests__/legacy-webhook-self-calls.test.ts +86 -1
- package/__tests__/middleware-home-route-protection.test.ts +3 -1
- package/__tests__/middleware-subscriber-access.test.ts +1 -1
- package/__tests__/newsletter-admin-route.test.ts +649 -0
- package/__tests__/newsletter-plugin.test.ts +1248 -0
- package/__tests__/outbound-nodes-security.test.ts +1929 -0
- package/__tests__/page-access-guard.test.ts +217 -0
- package/__tests__/page-access-route-table.test.ts +231 -0
- package/__tests__/payment-drivers-module.test.ts +23 -0
- package/__tests__/payment-legacy-webhook-routes.test.ts +100 -5
- package/__tests__/payment-webhook-route.test.ts +4 -1
- package/__tests__/paypal-webhook-signature-verification.test.ts +44 -0
- package/__tests__/place-order-guards.test.ts +506 -0
- package/__tests__/public-step-guards.test.ts +310 -0
- package/__tests__/publish-refusals.test.ts +505 -0
- package/__tests__/realtime-identity-routes.test.ts +492 -0
- package/__tests__/record-event-writer-server-only.test.ts +975 -0
- package/__tests__/resolve-config-template-params.test.ts +3 -3
- package/__tests__/runtime-storage-upload-access.test.ts +280 -17
- package/__tests__/security-integration-env-names.test.ts +74 -0
- package/__tests__/security-lists-parity.test.ts +245 -0
- package/__tests__/security-runtime-shadow.test.ts +224 -1
- package/__tests__/security-runtime.test.ts +893 -0
- package/__tests__/segment-rate-limit-error-branch.test.ts +284 -0
- package/__tests__/segment-route-abuse-gate.test.ts +309 -0
- package/__tests__/server-job-hops-real-data-api.test.ts +669 -0
- package/__tests__/server-session-identity.test.ts +522 -0
- package/__tests__/server-step-chain.test.ts +222 -0
- package/__tests__/server-step-signing.test.ts +107 -2
- package/__tests__/session-cookie-resolver.test.ts +62 -106
- package/__tests__/signup-event.test.ts +649 -0
- package/__tests__/signup-reply-identical.test.ts +144 -0
- package/__tests__/slack-message-escaping.test.ts +123 -0
- package/__tests__/visitor-step-limits.test.ts +318 -0
- package/__tests__/webhook-delivery-lease.test.ts +4 -1
- package/__tests__/webpack-safe-handlers.test.ts +57 -8
- package/__tests__/workflow-auth-guard.test.ts +9 -1
- package/dist/cjs/account-delete-route-generator.d.ts +1 -0
- package/dist/cjs/account-delete-route-generator.d.ts.map +1 -1
- package/dist/cjs/account-delete-route-generator.js +18 -3
- package/dist/cjs/account-delete-route-generator.js.map +1 -1
- package/dist/cjs/api-route-generator.d.ts +52 -3
- package/dist/cjs/api-route-generator.d.ts.map +1 -1
- package/dist/cjs/api-route-generator.js +600 -145
- package/dist/cjs/api-route-generator.js.map +1 -1
- package/dist/cjs/auth-generator.d.ts +126 -3
- package/dist/cjs/auth-generator.d.ts.map +1 -1
- package/dist/cjs/auth-generator.js +1353 -139
- package/dist/cjs/auth-generator.js.map +1 -1
- package/dist/cjs/automations/activity-kicks.d.ts +12 -0
- package/dist/cjs/automations/activity-kicks.d.ts.map +1 -0
- package/dist/cjs/automations/activity-kicks.js +123 -0
- package/dist/cjs/automations/activity-kicks.js.map +1 -0
- package/dist/cjs/automations/app-events-source.d.ts +33 -0
- package/dist/cjs/automations/app-events-source.d.ts.map +1 -0
- package/dist/cjs/automations/app-events-source.js +109 -0
- package/dist/cjs/automations/app-events-source.js.map +1 -0
- package/dist/cjs/automations/automations-project-plugin.d.ts +21 -0
- package/dist/cjs/automations/automations-project-plugin.d.ts.map +1 -0
- package/dist/cjs/automations/automations-project-plugin.js +102 -0
- package/dist/cjs/automations/automations-project-plugin.js.map +1 -0
- package/dist/cjs/automations/automations-scope.d.ts +104 -0
- package/dist/cjs/automations/automations-scope.d.ts.map +1 -0
- package/dist/cjs/automations/automations-scope.js +176 -0
- package/dist/cjs/automations/automations-scope.js.map +1 -0
- package/dist/cjs/automations/dispatcher-source.d.ts +72 -0
- package/dist/cjs/automations/dispatcher-source.d.ts.map +1 -0
- package/dist/cjs/automations/dispatcher-source.js +1008 -0
- package/dist/cjs/automations/dispatcher-source.js.map +1 -0
- package/dist/cjs/automations/event-bus-source.d.ts +44 -0
- package/dist/cjs/automations/event-bus-source.d.ts.map +1 -0
- package/dist/cjs/automations/event-bus-source.js +427 -0
- package/dist/cjs/automations/event-bus-source.js.map +1 -0
- package/dist/cjs/automations/handler-module-generator.d.ts +25 -0
- package/dist/cjs/automations/handler-module-generator.d.ts.map +1 -0
- package/dist/cjs/automations/handler-module-generator.js +78 -0
- package/dist/cjs/automations/handler-module-generator.js.map +1 -0
- package/dist/cjs/automations/hydrators-source.d.ts +33 -0
- package/dist/cjs/automations/hydrators-source.d.ts.map +1 -0
- package/dist/cjs/automations/hydrators-source.js +571 -0
- package/dist/cjs/automations/hydrators-source.js.map +1 -0
- package/dist/cjs/booking-calendar-feed-route-generator.d.ts.map +1 -1
- package/dist/cjs/booking-calendar-feed-route-generator.js +8 -0
- package/dist/cjs/booking-calendar-feed-route-generator.js.map +1 -1
- package/dist/cjs/configured-nextauth-url.d.ts +17 -0
- package/dist/cjs/configured-nextauth-url.d.ts.map +1 -0
- package/dist/cjs/configured-nextauth-url.js +20 -0
- package/dist/cjs/configured-nextauth-url.js.map +1 -0
- package/dist/cjs/cron-request-verification.d.ts +22 -1
- package/dist/cjs/cron-request-verification.d.ts.map +1 -1
- package/dist/cjs/cron-request-verification.js +50 -6
- package/dist/cjs/cron-request-verification.js.map +1 -1
- package/dist/cjs/data-api-route-generator.d.ts +19 -0
- package/dist/cjs/data-api-route-generator.d.ts.map +1 -1
- package/dist/cjs/data-api-route-generator.js +711 -43
- package/dist/cjs/data-api-route-generator.js.map +1 -1
- package/dist/cjs/ecommerce/parameterized-stock-chain.d.ts +3 -1
- package/dist/cjs/ecommerce/parameterized-stock-chain.d.ts.map +1 -1
- package/dist/cjs/ecommerce/parameterized-stock-chain.js +45 -5
- package/dist/cjs/ecommerce/parameterized-stock-chain.js.map +1 -1
- package/dist/cjs/ecommerce/place-order-guards.d.ts +126 -0
- package/dist/cjs/ecommerce/place-order-guards.d.ts.map +1 -0
- package/dist/cjs/ecommerce/place-order-guards.js +670 -0
- package/dist/cjs/ecommerce/place-order-guards.js.map +1 -0
- package/dist/cjs/ecommerce-customhandler-rewriter.d.ts +2 -0
- package/dist/cjs/ecommerce-customhandler-rewriter.d.ts.map +1 -1
- package/dist/cjs/ecommerce-customhandler-rewriter.js +38 -2
- package/dist/cjs/ecommerce-customhandler-rewriter.js.map +1 -1
- package/dist/cjs/executor-generator.d.ts.map +1 -1
- package/dist/cjs/executor-generator.js +368 -60
- package/dist/cjs/executor-generator.js.map +1 -1
- package/dist/cjs/graph-utils.d.ts +9 -0
- package/dist/cjs/graph-utils.d.ts.map +1 -1
- package/dist/cjs/graph-utils.js +32 -1
- package/dist/cjs/graph-utils.js.map +1 -1
- package/dist/cjs/index.d.ts +20 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +72 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/invoice/api-routes-code.d.ts +9 -3
- package/dist/cjs/invoice/api-routes-code.d.ts.map +1 -1
- package/dist/cjs/invoice/api-routes-code.js +9 -7
- package/dist/cjs/invoice/api-routes-code.js.map +1 -1
- package/dist/cjs/invoice/index.d.ts.map +1 -1
- package/dist/cjs/invoice/index.js +12 -7
- package/dist/cjs/invoice/index.js.map +1 -1
- package/dist/cjs/invoice/invoice-assembly-code.d.ts.map +1 -1
- package/dist/cjs/invoice/invoice-assembly-code.js +8 -3
- package/dist/cjs/invoice/invoice-assembly-code.js.map +1 -1
- package/dist/cjs/invoice/pdf-generator-code.d.ts.map +1 -1
- package/dist/cjs/invoice/pdf-generator-code.js +2 -1
- package/dist/cjs/invoice/pdf-generator-code.js.map +1 -1
- package/dist/cjs/invoice/pdf-service-client-code.d.ts.map +1 -1
- package/dist/cjs/invoice/pdf-service-client-code.js +15 -7
- package/dist/cjs/invoice/pdf-service-client-code.js.map +1 -1
- package/dist/cjs/newsletter/admin-route-code.d.ts +60 -0
- package/dist/cjs/newsletter/admin-route-code.d.ts.map +1 -0
- package/dist/cjs/newsletter/admin-route-code.js +300 -0
- package/dist/cjs/newsletter/admin-route-code.js.map +1 -0
- package/dist/cjs/newsletter/helper-code.d.ts +109 -0
- package/dist/cjs/newsletter/helper-code.d.ts.map +1 -0
- package/dist/cjs/newsletter/helper-code.js +662 -0
- package/dist/cjs/newsletter/helper-code.js.map +1 -0
- package/dist/cjs/newsletter/newsletter-scope.d.ts +65 -0
- package/dist/cjs/newsletter/newsletter-scope.d.ts.map +1 -0
- package/dist/cjs/newsletter/newsletter-scope.js +103 -0
- package/dist/cjs/newsletter/newsletter-scope.js.map +1 -0
- package/dist/cjs/newsletter/project-plugin.d.ts +18 -0
- package/dist/cjs/newsletter/project-plugin.d.ts.map +1 -0
- package/dist/cjs/newsletter/project-plugin.js +97 -0
- package/dist/cjs/newsletter/project-plugin.js.map +1 -0
- package/dist/cjs/newsletter/routes-code.d.ts +6 -0
- package/dist/cjs/newsletter/routes-code.d.ts.map +1 -0
- package/dist/cjs/newsletter/routes-code.js +181 -0
- package/dist/cjs/newsletter/routes-code.js.map +1 -0
- package/dist/cjs/nodes/account/account-compare-passwords.d.ts.map +1 -1
- package/dist/cjs/nodes/account/account-compare-passwords.js +16 -6
- package/dist/cjs/nodes/account/account-compare-passwords.js.map +1 -1
- package/dist/cjs/nodes/account/account-delete-current.js +1 -1
- package/dist/cjs/nodes/account/account-get-current.js +1 -1
- package/dist/cjs/nodes/account/account-hash-password.d.ts.map +1 -1
- package/dist/cjs/nodes/account/account-hash-password.js +15 -3
- package/dist/cjs/nodes/account/account-hash-password.js.map +1 -1
- package/dist/cjs/nodes/account/account-login.d.ts.map +1 -1
- package/dist/cjs/nodes/account/account-login.js +23 -6
- package/dist/cjs/nodes/account/account-login.js.map +1 -1
- package/dist/cjs/nodes/account/account-logout.js +1 -1
- package/dist/cjs/nodes/account/account-refresh-session.js +1 -1
- package/dist/cjs/nodes/account/account-request-password-reset.d.ts +3 -0
- package/dist/cjs/nodes/account/account-request-password-reset.d.ts.map +1 -0
- package/dist/cjs/nodes/account/account-request-password-reset.js +46 -0
- package/dist/cjs/nodes/account/account-request-password-reset.js.map +1 -0
- package/dist/cjs/nodes/account/account-reset-password.d.ts +3 -0
- package/dist/cjs/nodes/account/account-reset-password.d.ts.map +1 -0
- package/dist/cjs/nodes/account/account-reset-password.js +44 -0
- package/dist/cjs/nodes/account/account-reset-password.js.map +1 -0
- package/dist/cjs/nodes/account/account-signup.d.ts.map +1 -1
- package/dist/cjs/nodes/account/account-signup.js +82 -19
- package/dist/cjs/nodes/account/account-signup.js.map +1 -1
- package/dist/cjs/nodes/account/account-social-login.js +1 -1
- package/dist/cjs/nodes/ai/ai-custom-prompt.d.ts.map +1 -1
- package/dist/cjs/nodes/ai/ai-custom-prompt.js +20 -5
- package/dist/cjs/nodes/ai/ai-custom-prompt.js.map +1 -1
- package/dist/cjs/nodes/ai/ai-detect-language.d.ts.map +1 -1
- package/dist/cjs/nodes/ai/ai-detect-language.js +20 -5
- package/dist/cjs/nodes/ai/ai-detect-language.js.map +1 -1
- package/dist/cjs/nodes/ai/ai-generate-text-embedding.d.ts.map +1 -1
- package/dist/cjs/nodes/ai/ai-generate-text-embedding.js +10 -2
- package/dist/cjs/nodes/ai/ai-generate-text-embedding.js.map +1 -1
- package/dist/cjs/nodes/ai/ai-provider-utils-sources.generated.js +2 -2
- package/dist/cjs/nodes/ai/ai-provider-utils-sources.generated.js.map +1 -1
- package/dist/cjs/nodes/ai/ai-provider-utils.d.ts +31 -2
- package/dist/cjs/nodes/ai/ai-provider-utils.d.ts.map +1 -1
- package/dist/cjs/nodes/ai/ai-provider-utils.js +125 -11
- package/dist/cjs/nodes/ai/ai-provider-utils.js.map +1 -1
- package/dist/cjs/nodes/ai/ai-select-database-data.d.ts.map +1 -1
- package/dist/cjs/nodes/ai/ai-select-database-data.js +6 -2
- package/dist/cjs/nodes/ai/ai-select-database-data.js.map +1 -1
- package/dist/cjs/nodes/ai/ai-sentiment-analysis.d.ts.map +1 -1
- package/dist/cjs/nodes/ai/ai-sentiment-analysis.js +20 -5
- package/dist/cjs/nodes/ai/ai-sentiment-analysis.js.map +1 -1
- package/dist/cjs/nodes/ai/ai-summarization.d.ts.map +1 -1
- package/dist/cjs/nodes/ai/ai-summarization.js +20 -5
- package/dist/cjs/nodes/ai/ai-summarization.js.map +1 -1
- package/dist/cjs/nodes/ai/ai-text-classifier.d.ts.map +1 -1
- package/dist/cjs/nodes/ai/ai-text-classifier.js +20 -5
- package/dist/cjs/nodes/ai/ai-text-classifier.js.map +1 -1
- package/dist/cjs/nodes/ai/ai-text-transform.d.ts.map +1 -1
- package/dist/cjs/nodes/ai/ai-text-transform.js +20 -5
- package/dist/cjs/nodes/ai/ai-text-transform.js.map +1 -1
- package/dist/cjs/nodes/analytics/analytics-track-outcome.d.ts +3 -0
- package/dist/cjs/nodes/analytics/analytics-track-outcome.d.ts.map +1 -0
- package/dist/cjs/nodes/analytics/analytics-track-outcome.js +110 -0
- package/dist/cjs/nodes/analytics/analytics-track-outcome.js.map +1 -0
- package/dist/cjs/nodes/cart/cart-price-order.d.ts.map +1 -1
- package/dist/cjs/nodes/cart/cart-price-order.js +161 -2
- package/dist/cjs/nodes/cart/cart-price-order.js.map +1 -1
- package/dist/cjs/nodes/cost-bearing-node-types.d.ts +4 -0
- package/dist/cjs/nodes/cost-bearing-node-types.d.ts.map +1 -0
- package/dist/cjs/nodes/cost-bearing-node-types.js +43 -0
- package/dist/cjs/nodes/cost-bearing-node-types.js.map +1 -0
- package/dist/cjs/nodes/data/data-select.d.ts.map +1 -1
- package/dist/cjs/nodes/data/data-select.js +12 -2
- package/dist/cjs/nodes/data/data-select.js.map +1 -1
- package/dist/cjs/nodes/email/email-mailersend.d.ts.map +1 -1
- package/dist/cjs/nodes/email/email-mailersend.js +15 -11
- package/dist/cjs/nodes/email/email-mailersend.js.map +1 -1
- package/dist/cjs/nodes/email/email-mailgun.d.ts.map +1 -1
- package/dist/cjs/nodes/email/email-mailgun.js +15 -15
- package/dist/cjs/nodes/email/email-mailgun.js.map +1 -1
- package/dist/cjs/nodes/email/email-postmark.d.ts.map +1 -1
- package/dist/cjs/nodes/email/email-postmark.js +15 -15
- package/dist/cjs/nodes/email/email-postmark.js.map +1 -1
- package/dist/cjs/nodes/email/email-resend.d.ts.map +1 -1
- package/dist/cjs/nodes/email/email-resend.js +15 -15
- package/dist/cjs/nodes/email/email-resend.js.map +1 -1
- package/dist/cjs/nodes/email/email-sendgrid.d.ts.map +1 -1
- package/dist/cjs/nodes/email/email-sendgrid.js +15 -15
- package/dist/cjs/nodes/email/email-sendgrid.js.map +1 -1
- package/dist/cjs/nodes/email/html-escape-code.d.ts +3 -0
- package/dist/cjs/nodes/email/html-escape-code.d.ts.map +1 -0
- package/dist/cjs/nodes/email/html-escape-code.js +23 -0
- package/dist/cjs/nodes/email/html-escape-code.js.map +1 -0
- package/dist/cjs/nodes/email/message-trust.d.ts +40 -0
- package/dist/cjs/nodes/email/message-trust.d.ts.map +1 -0
- package/dist/cjs/nodes/email/message-trust.js +167 -0
- package/dist/cjs/nodes/email/message-trust.js.map +1 -0
- package/dist/cjs/nodes/email/outbound-message-guard.d.ts +113 -0
- package/dist/cjs/nodes/email/outbound-message-guard.d.ts.map +1 -0
- package/dist/cjs/nodes/email/outbound-message-guard.js +460 -0
- package/dist/cjs/nodes/email/outbound-message-guard.js.map +1 -0
- package/dist/cjs/nodes/email/trusted-html-code.d.ts +22 -0
- package/dist/cjs/nodes/email/trusted-html-code.d.ts.map +1 -0
- package/dist/cjs/nodes/email/trusted-html-code.js +52 -0
- package/dist/cjs/nodes/email/trusted-html-code.js.map +1 -0
- package/dist/cjs/nodes/general/general-custom-js.d.ts.map +1 -1
- package/dist/cjs/nodes/general/general-custom-js.js +44 -7
- package/dist/cjs/nodes/general/general-custom-js.js.map +1 -1
- package/dist/cjs/nodes/general/general-http-request.d.ts.map +1 -1
- package/dist/cjs/nodes/general/general-http-request.js +431 -45
- package/dist/cjs/nodes/general/general-http-request.js.map +1 -1
- package/dist/cjs/nodes/general/general-rate-limiter.d.ts.map +1 -1
- package/dist/cjs/nodes/general/general-rate-limiter.js +46 -78
- package/dist/cjs/nodes/general/general-rate-limiter.js.map +1 -1
- package/dist/cjs/nodes/general/general-wait.d.ts +3 -0
- package/dist/cjs/nodes/general/general-wait.d.ts.map +1 -0
- package/dist/cjs/nodes/general/general-wait.js +81 -0
- package/dist/cjs/nodes/general/general-wait.js.map +1 -0
- package/dist/cjs/nodes/general/visitor-request.d.ts +44 -0
- package/dist/cjs/nodes/general/visitor-request.d.ts.map +1 -0
- package/dist/cjs/nodes/general/visitor-request.js +72 -0
- package/dist/cjs/nodes/general/visitor-request.js.map +1 -0
- package/dist/cjs/nodes/index.d.ts.map +1 -1
- package/dist/cjs/nodes/index.js +7 -1
- package/dist/cjs/nodes/index.js.map +1 -1
- package/dist/cjs/nodes/integrations/integration-slack.d.ts.map +1 -1
- package/dist/cjs/nodes/integrations/integration-slack.js +17 -6
- package/dist/cjs/nodes/integrations/integration-slack.js.map +1 -1
- package/dist/cjs/nodes/newsletter/newsletter-confirm.d.ts +3 -0
- package/dist/cjs/nodes/newsletter/newsletter-confirm.d.ts.map +1 -0
- package/dist/cjs/nodes/newsletter/newsletter-confirm.js +41 -0
- package/dist/cjs/nodes/newsletter/newsletter-confirm.js.map +1 -0
- package/dist/cjs/nodes/newsletter/newsletter-subscribe.d.ts +7 -0
- package/dist/cjs/nodes/newsletter/newsletter-subscribe.d.ts.map +1 -0
- package/dist/cjs/nodes/newsletter/newsletter-subscribe.js +69 -0
- package/dist/cjs/nodes/newsletter/newsletter-subscribe.js.map +1 -0
- package/dist/cjs/nodes/newsletter/newsletter-unsubscribe.d.ts +3 -0
- package/dist/cjs/nodes/newsletter/newsletter-unsubscribe.d.ts.map +1 -0
- package/dist/cjs/nodes/newsletter/newsletter-unsubscribe.js +42 -0
- package/dist/cjs/nodes/newsletter/newsletter-unsubscribe.js.map +1 -0
- package/dist/cjs/nodes/realtime/realtime-join-channel.d.ts.map +1 -1
- package/dist/cjs/nodes/realtime/realtime-join-channel.js +5 -4
- package/dist/cjs/nodes/realtime/realtime-join-channel.js.map +1 -1
- package/dist/cjs/nodes/realtime/realtime-send-channel-event.d.ts.map +1 -1
- package/dist/cjs/nodes/realtime/realtime-send-channel-event.js +11 -2
- package/dist/cjs/nodes/realtime/realtime-send-channel-event.js.map +1 -1
- package/dist/cjs/nodes/realtime/realtime-send-channel-message.d.ts.map +1 -1
- package/dist/cjs/nodes/realtime/realtime-send-channel-message.js +11 -2
- package/dist/cjs/nodes/realtime/realtime-send-channel-message.js.map +1 -1
- package/dist/cjs/nodes/sms/sms-infobip.d.ts.map +1 -1
- package/dist/cjs/nodes/sms/sms-infobip.js +11 -8
- package/dist/cjs/nodes/sms/sms-infobip.js.map +1 -1
- package/dist/cjs/nodes/sms/sms-smsapi.d.ts.map +1 -1
- package/dist/cjs/nodes/sms/sms-smsapi.js +11 -8
- package/dist/cjs/nodes/sms/sms-smsapi.js.map +1 -1
- package/dist/cjs/nodes/sms/sms-textmagic.d.ts.map +1 -1
- package/dist/cjs/nodes/sms/sms-textmagic.js +11 -8
- package/dist/cjs/nodes/sms/sms-textmagic.js.map +1 -1
- package/dist/cjs/nodes/sms/sms-twilio.d.ts.map +1 -1
- package/dist/cjs/nodes/sms/sms-twilio.js +12 -10
- package/dist/cjs/nodes/sms/sms-twilio.js.map +1 -1
- package/dist/cjs/nodes/types.d.ts +8 -1
- package/dist/cjs/nodes/types.d.ts.map +1 -1
- package/dist/cjs/nodes/utility/utility-similarity-scoring.d.ts.map +1 -1
- package/dist/cjs/nodes/utility/utility-similarity-scoring.js +29 -10
- package/dist/cjs/nodes/utility/utility-similarity-scoring.js.map +1 -1
- package/dist/cjs/page-access-guard-generator.d.ts +23 -0
- package/dist/cjs/page-access-guard-generator.d.ts.map +1 -0
- package/dist/cjs/page-access-guard-generator.js +135 -0
- package/dist/cjs/page-access-guard-generator.js.map +1 -0
- package/dist/cjs/password-reset-route-generator.d.ts +119 -0
- package/dist/cjs/password-reset-route-generator.d.ts.map +1 -0
- package/dist/cjs/password-reset-route-generator.js +460 -0
- package/dist/cjs/password-reset-route-generator.js.map +1 -0
- package/dist/cjs/payments/payment-core-code.d.ts.map +1 -1
- package/dist/cjs/payments/payment-core-code.js +12 -7
- package/dist/cjs/payments/payment-core-code.js.map +1 -1
- package/dist/cjs/project-code-scanner.d.ts +11 -0
- package/dist/cjs/project-code-scanner.d.ts.map +1 -0
- package/dist/cjs/project-code-scanner.js +80 -0
- package/dist/cjs/project-code-scanner.js.map +1 -0
- package/dist/cjs/public-step-guards.d.ts +122 -0
- package/dist/cjs/public-step-guards.d.ts.map +1 -0
- package/dist/cjs/public-step-guards.js +288 -0
- package/dist/cjs/public-step-guards.js.map +1 -0
- package/dist/cjs/publish-refusals.d.ts +66 -0
- package/dist/cjs/publish-refusals.d.ts.map +1 -0
- package/dist/cjs/publish-refusals.js +278 -0
- package/dist/cjs/publish-refusals.js.map +1 -0
- package/dist/cjs/realtime-generator.d.ts +63 -1
- package/dist/cjs/realtime-generator.d.ts.map +1 -1
- package/dist/cjs/realtime-generator.js +404 -230
- package/dist/cjs/realtime-generator.js.map +1 -1
- package/dist/cjs/runtime-storage-generator.d.ts +32 -1
- package/dist/cjs/runtime-storage-generator.d.ts.map +1 -1
- package/dist/cjs/runtime-storage-generator.js +265 -12
- package/dist/cjs/runtime-storage-generator.js.map +1 -1
- package/dist/cjs/security-runtime/index.d.ts +14 -0
- package/dist/cjs/security-runtime/index.d.ts.map +1 -0
- package/dist/cjs/security-runtime/index.js +48 -0
- package/dist/cjs/security-runtime/index.js.map +1 -0
- package/dist/cjs/security-runtime/security-runtime-code.d.ts +53 -0
- package/dist/cjs/security-runtime/security-runtime-code.d.ts.map +1 -0
- package/dist/cjs/security-runtime/security-runtime-code.js +580 -0
- package/dist/cjs/security-runtime/security-runtime-code.js.map +1 -0
- package/dist/cjs/security-scanner.d.ts +72 -3
- package/dist/cjs/security-scanner.d.ts.map +1 -1
- package/dist/cjs/security-scanner.js +220 -8
- package/dist/cjs/security-scanner.js.map +1 -1
- package/dist/cjs/segment-splitter.d.ts.map +1 -1
- package/dist/cjs/segment-splitter.js +10 -2
- package/dist/cjs/segment-splitter.js.map +1 -1
- package/dist/cjs/segment-trust.d.ts +36 -0
- package/dist/cjs/segment-trust.d.ts.map +1 -1
- package/dist/cjs/segment-trust.js +147 -3
- package/dist/cjs/segment-trust.js.map +1 -1
- package/dist/cjs/self-call-headers.d.ts +31 -0
- package/dist/cjs/self-call-headers.d.ts.map +1 -0
- package/dist/cjs/self-call-headers.js +48 -0
- package/dist/cjs/self-call-headers.js.map +1 -0
- package/dist/cjs/sent-email-log/index.d.ts +7 -0
- package/dist/cjs/sent-email-log/index.d.ts.map +1 -1
- package/dist/cjs/sent-email-log/index.js +17 -1
- package/dist/cjs/sent-email-log/index.js.map +1 -1
- package/dist/cjs/sent-email-log/sent-email-log-code.d.ts +7 -0
- package/dist/cjs/sent-email-log/sent-email-log-code.d.ts.map +1 -1
- package/dist/cjs/sent-email-log/sent-email-log-code.js +17 -3
- package/dist/cjs/sent-email-log/sent-email-log-code.js.map +1 -1
- package/dist/cjs/server-custom-node-call.d.ts +79 -0
- package/dist/cjs/server-custom-node-call.d.ts.map +1 -0
- package/dist/cjs/server-custom-node-call.js +285 -0
- package/dist/cjs/server-custom-node-call.js.map +1 -0
- package/dist/cjs/server-runtime-code.d.ts +39 -12
- package/dist/cjs/server-runtime-code.d.ts.map +1 -1
- package/dist/cjs/server-runtime-code.js +484 -41
- package/dist/cjs/server-runtime-code.js.map +1 -1
- package/dist/cjs/session-cookie-resolver.d.ts +3 -1
- package/dist/cjs/session-cookie-resolver.d.ts.map +1 -1
- package/dist/cjs/session-revocation-generator.d.ts +39 -0
- package/dist/cjs/session-revocation-generator.d.ts.map +1 -0
- package/dist/cjs/session-revocation-generator.js +177 -0
- package/dist/cjs/session-revocation-generator.js.map +1 -0
- package/dist/cjs/slack-message-values.d.ts +6 -0
- package/dist/cjs/slack-message-values.d.ts.map +1 -0
- package/dist/cjs/slack-message-values.js +73 -0
- package/dist/cjs/slack-message-values.js.map +1 -0
- package/dist/cjs/transactional-email-code.d.ts +11 -0
- package/dist/cjs/transactional-email-code.d.ts.map +1 -1
- package/dist/cjs/transactional-email-code.js +29 -5
- package/dist/cjs/transactional-email-code.js.map +1 -1
- package/dist/cjs/trigger-generator.d.ts +2 -0
- package/dist/cjs/trigger-generator.d.ts.map +1 -1
- package/dist/cjs/trigger-generator.js +17 -4
- package/dist/cjs/trigger-generator.js.map +1 -1
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/cjs/visitor-step-limits.d.ts +66 -0
- package/dist/cjs/visitor-step-limits.d.ts.map +1 -0
- package/dist/cjs/visitor-step-limits.js +187 -0
- package/dist/cjs/visitor-step-limits.js.map +1 -0
- package/dist/cjs/webhook-generator.d.ts.map +1 -1
- package/dist/cjs/webhook-generator.js +93 -15
- package/dist/cjs/webhook-generator.js.map +1 -1
- package/dist/cjs/webhook-signature-verification.d.ts.map +1 -1
- package/dist/cjs/webhook-signature-verification.js +13 -3
- package/dist/cjs/webhook-signature-verification.js.map +1 -1
- package/dist/cjs/workflow-auth-generator.d.ts +4 -1
- package/dist/cjs/workflow-auth-generator.d.ts.map +1 -1
- package/dist/cjs/workflow-auth-generator.js +8 -3
- package/dist/cjs/workflow-auth-generator.js.map +1 -1
- package/dist/cjs/workflow-component-plugin.js +11 -3
- package/dist/cjs/workflow-component-plugin.js.map +1 -1
- package/dist/cjs/workflow-project-plugin.d.ts.map +1 -1
- package/dist/cjs/workflow-project-plugin.js +302 -56
- package/dist/cjs/workflow-project-plugin.js.map +1 -1
- package/dist/cjs/workflow-scope.d.ts.map +1 -1
- package/dist/cjs/workflow-scope.js +5 -0
- package/dist/cjs/workflow-scope.js.map +1 -1
- package/dist/esm/account-delete-route-generator.d.ts +1 -0
- package/dist/esm/account-delete-route-generator.d.ts.map +1 -1
- package/dist/esm/account-delete-route-generator.js +18 -3
- package/dist/esm/account-delete-route-generator.js.map +1 -1
- package/dist/esm/api-route-generator.d.ts +52 -3
- package/dist/esm/api-route-generator.d.ts.map +1 -1
- package/dist/esm/api-route-generator.js +595 -142
- package/dist/esm/api-route-generator.js.map +1 -1
- package/dist/esm/auth-generator.d.ts +126 -3
- package/dist/esm/auth-generator.d.ts.map +1 -1
- package/dist/esm/auth-generator.js +1350 -140
- package/dist/esm/auth-generator.js.map +1 -1
- package/dist/esm/automations/activity-kicks.d.ts +12 -0
- package/dist/esm/automations/activity-kicks.d.ts.map +1 -0
- package/dist/esm/automations/activity-kicks.js +118 -0
- package/dist/esm/automations/activity-kicks.js.map +1 -0
- package/dist/esm/automations/app-events-source.d.ts +33 -0
- package/dist/esm/automations/app-events-source.d.ts.map +1 -0
- package/dist/esm/automations/app-events-source.js +104 -0
- package/dist/esm/automations/app-events-source.js.map +1 -0
- package/dist/esm/automations/automations-project-plugin.d.ts +21 -0
- package/dist/esm/automations/automations-project-plugin.d.ts.map +1 -0
- package/dist/esm/automations/automations-project-plugin.js +98 -0
- package/dist/esm/automations/automations-project-plugin.js.map +1 -0
- package/dist/esm/automations/automations-scope.d.ts +104 -0
- package/dist/esm/automations/automations-scope.d.ts.map +1 -0
- package/dist/esm/automations/automations-scope.js +165 -0
- package/dist/esm/automations/automations-scope.js.map +1 -0
- package/dist/esm/automations/dispatcher-source.d.ts +72 -0
- package/dist/esm/automations/dispatcher-source.d.ts.map +1 -0
- package/dist/esm/automations/dispatcher-source.js +999 -0
- package/dist/esm/automations/dispatcher-source.js.map +1 -0
- package/dist/esm/automations/event-bus-source.d.ts +44 -0
- package/dist/esm/automations/event-bus-source.d.ts.map +1 -0
- package/dist/esm/automations/event-bus-source.js +421 -0
- package/dist/esm/automations/event-bus-source.js.map +1 -0
- package/dist/esm/automations/handler-module-generator.d.ts +25 -0
- package/dist/esm/automations/handler-module-generator.d.ts.map +1 -0
- package/dist/esm/automations/handler-module-generator.js +71 -0
- package/dist/esm/automations/handler-module-generator.js.map +1 -0
- package/dist/esm/automations/hydrators-source.d.ts +33 -0
- package/dist/esm/automations/hydrators-source.d.ts.map +1 -0
- package/dist/esm/automations/hydrators-source.js +567 -0
- package/dist/esm/automations/hydrators-source.js.map +1 -0
- package/dist/esm/booking-calendar-feed-route-generator.d.ts.map +1 -1
- package/dist/esm/booking-calendar-feed-route-generator.js +8 -0
- package/dist/esm/booking-calendar-feed-route-generator.js.map +1 -1
- package/dist/esm/configured-nextauth-url.d.ts +17 -0
- package/dist/esm/configured-nextauth-url.d.ts.map +1 -0
- package/dist/esm/configured-nextauth-url.js +17 -0
- package/dist/esm/configured-nextauth-url.js.map +1 -0
- package/dist/esm/cron-request-verification.d.ts +22 -1
- package/dist/esm/cron-request-verification.d.ts.map +1 -1
- package/dist/esm/cron-request-verification.js +48 -5
- package/dist/esm/cron-request-verification.js.map +1 -1
- package/dist/esm/data-api-route-generator.d.ts +19 -0
- package/dist/esm/data-api-route-generator.d.ts.map +1 -1
- package/dist/esm/data-api-route-generator.js +710 -43
- package/dist/esm/data-api-route-generator.js.map +1 -1
- package/dist/esm/ecommerce/parameterized-stock-chain.d.ts +3 -1
- package/dist/esm/ecommerce/parameterized-stock-chain.d.ts.map +1 -1
- package/dist/esm/ecommerce/parameterized-stock-chain.js +43 -4
- package/dist/esm/ecommerce/parameterized-stock-chain.js.map +1 -1
- package/dist/esm/ecommerce/place-order-guards.d.ts +126 -0
- package/dist/esm/ecommerce/place-order-guards.d.ts.map +1 -0
- package/dist/esm/ecommerce/place-order-guards.js +655 -0
- package/dist/esm/ecommerce/place-order-guards.js.map +1 -0
- package/dist/esm/ecommerce-customhandler-rewriter.d.ts +2 -0
- package/dist/esm/ecommerce-customhandler-rewriter.d.ts.map +1 -1
- package/dist/esm/ecommerce-customhandler-rewriter.js +38 -2
- package/dist/esm/ecommerce-customhandler-rewriter.js.map +1 -1
- package/dist/esm/executor-generator.d.ts.map +1 -1
- package/dist/esm/executor-generator.js +368 -60
- package/dist/esm/executor-generator.js.map +1 -1
- package/dist/esm/graph-utils.d.ts +9 -0
- package/dist/esm/graph-utils.d.ts.map +1 -1
- package/dist/esm/graph-utils.js +30 -0
- package/dist/esm/graph-utils.js.map +1 -1
- package/dist/esm/index.d.ts +20 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +27 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/invoice/api-routes-code.d.ts +9 -3
- package/dist/esm/invoice/api-routes-code.d.ts.map +1 -1
- package/dist/esm/invoice/api-routes-code.js +9 -7
- package/dist/esm/invoice/api-routes-code.js.map +1 -1
- package/dist/esm/invoice/index.d.ts.map +1 -1
- package/dist/esm/invoice/index.js +12 -7
- package/dist/esm/invoice/index.js.map +1 -1
- package/dist/esm/invoice/invoice-assembly-code.d.ts.map +1 -1
- package/dist/esm/invoice/invoice-assembly-code.js +8 -3
- package/dist/esm/invoice/invoice-assembly-code.js.map +1 -1
- package/dist/esm/invoice/pdf-generator-code.d.ts.map +1 -1
- package/dist/esm/invoice/pdf-generator-code.js +2 -1
- package/dist/esm/invoice/pdf-generator-code.js.map +1 -1
- package/dist/esm/invoice/pdf-service-client-code.d.ts.map +1 -1
- package/dist/esm/invoice/pdf-service-client-code.js +15 -7
- package/dist/esm/invoice/pdf-service-client-code.js.map +1 -1
- package/dist/esm/newsletter/admin-route-code.d.ts +60 -0
- package/dist/esm/newsletter/admin-route-code.d.ts.map +1 -0
- package/dist/esm/newsletter/admin-route-code.js +295 -0
- package/dist/esm/newsletter/admin-route-code.js.map +1 -0
- package/dist/esm/newsletter/helper-code.d.ts +109 -0
- package/dist/esm/newsletter/helper-code.d.ts.map +1 -0
- package/dist/esm/newsletter/helper-code.js +656 -0
- package/dist/esm/newsletter/helper-code.js.map +1 -0
- package/dist/esm/newsletter/newsletter-scope.d.ts +65 -0
- package/dist/esm/newsletter/newsletter-scope.d.ts.map +1 -0
- package/dist/esm/newsletter/newsletter-scope.js +97 -0
- package/dist/esm/newsletter/newsletter-scope.js.map +1 -0
- package/dist/esm/newsletter/project-plugin.d.ts +18 -0
- package/dist/esm/newsletter/project-plugin.d.ts.map +1 -0
- package/dist/esm/newsletter/project-plugin.js +93 -0
- package/dist/esm/newsletter/project-plugin.js.map +1 -0
- package/dist/esm/newsletter/routes-code.d.ts +6 -0
- package/dist/esm/newsletter/routes-code.d.ts.map +1 -0
- package/dist/esm/newsletter/routes-code.js +175 -0
- package/dist/esm/newsletter/routes-code.js.map +1 -0
- package/dist/esm/nodes/account/account-compare-passwords.d.ts.map +1 -1
- package/dist/esm/nodes/account/account-compare-passwords.js +16 -6
- package/dist/esm/nodes/account/account-compare-passwords.js.map +1 -1
- package/dist/esm/nodes/account/account-delete-current.js +1 -1
- package/dist/esm/nodes/account/account-get-current.js +1 -1
- package/dist/esm/nodes/account/account-hash-password.d.ts.map +1 -1
- package/dist/esm/nodes/account/account-hash-password.js +15 -3
- package/dist/esm/nodes/account/account-hash-password.js.map +1 -1
- package/dist/esm/nodes/account/account-login.d.ts.map +1 -1
- package/dist/esm/nodes/account/account-login.js +23 -6
- package/dist/esm/nodes/account/account-login.js.map +1 -1
- package/dist/esm/nodes/account/account-logout.js +1 -1
- package/dist/esm/nodes/account/account-refresh-session.js +1 -1
- package/dist/esm/nodes/account/account-request-password-reset.d.ts +3 -0
- package/dist/esm/nodes/account/account-request-password-reset.d.ts.map +1 -0
- package/dist/esm/nodes/account/account-request-password-reset.js +43 -0
- package/dist/esm/nodes/account/account-request-password-reset.js.map +1 -0
- package/dist/esm/nodes/account/account-reset-password.d.ts +3 -0
- package/dist/esm/nodes/account/account-reset-password.d.ts.map +1 -0
- package/dist/esm/nodes/account/account-reset-password.js +41 -0
- package/dist/esm/nodes/account/account-reset-password.js.map +1 -0
- package/dist/esm/nodes/account/account-signup.d.ts.map +1 -1
- package/dist/esm/nodes/account/account-signup.js +82 -19
- package/dist/esm/nodes/account/account-signup.js.map +1 -1
- package/dist/esm/nodes/account/account-social-login.js +1 -1
- package/dist/esm/nodes/ai/ai-custom-prompt.d.ts.map +1 -1
- package/dist/esm/nodes/ai/ai-custom-prompt.js +20 -5
- package/dist/esm/nodes/ai/ai-custom-prompt.js.map +1 -1
- package/dist/esm/nodes/ai/ai-detect-language.d.ts.map +1 -1
- package/dist/esm/nodes/ai/ai-detect-language.js +20 -5
- package/dist/esm/nodes/ai/ai-detect-language.js.map +1 -1
- package/dist/esm/nodes/ai/ai-generate-text-embedding.d.ts.map +1 -1
- package/dist/esm/nodes/ai/ai-generate-text-embedding.js +10 -2
- package/dist/esm/nodes/ai/ai-generate-text-embedding.js.map +1 -1
- package/dist/esm/nodes/ai/ai-provider-utils-sources.generated.js +2 -2
- package/dist/esm/nodes/ai/ai-provider-utils-sources.generated.js.map +1 -1
- package/dist/esm/nodes/ai/ai-provider-utils.d.ts +31 -2
- package/dist/esm/nodes/ai/ai-provider-utils.d.ts.map +1 -1
- package/dist/esm/nodes/ai/ai-provider-utils.js +124 -10
- package/dist/esm/nodes/ai/ai-provider-utils.js.map +1 -1
- package/dist/esm/nodes/ai/ai-select-database-data.d.ts.map +1 -1
- package/dist/esm/nodes/ai/ai-select-database-data.js +6 -2
- package/dist/esm/nodes/ai/ai-select-database-data.js.map +1 -1
- package/dist/esm/nodes/ai/ai-sentiment-analysis.d.ts.map +1 -1
- package/dist/esm/nodes/ai/ai-sentiment-analysis.js +20 -5
- package/dist/esm/nodes/ai/ai-sentiment-analysis.js.map +1 -1
- package/dist/esm/nodes/ai/ai-summarization.d.ts.map +1 -1
- package/dist/esm/nodes/ai/ai-summarization.js +20 -5
- package/dist/esm/nodes/ai/ai-summarization.js.map +1 -1
- package/dist/esm/nodes/ai/ai-text-classifier.d.ts.map +1 -1
- package/dist/esm/nodes/ai/ai-text-classifier.js +20 -5
- package/dist/esm/nodes/ai/ai-text-classifier.js.map +1 -1
- package/dist/esm/nodes/ai/ai-text-transform.d.ts.map +1 -1
- package/dist/esm/nodes/ai/ai-text-transform.js +20 -5
- package/dist/esm/nodes/ai/ai-text-transform.js.map +1 -1
- package/dist/esm/nodes/analytics/analytics-track-outcome.d.ts +3 -0
- package/dist/esm/nodes/analytics/analytics-track-outcome.d.ts.map +1 -0
- package/dist/esm/nodes/analytics/analytics-track-outcome.js +107 -0
- package/dist/esm/nodes/analytics/analytics-track-outcome.js.map +1 -0
- package/dist/esm/nodes/cart/cart-price-order.d.ts.map +1 -1
- package/dist/esm/nodes/cart/cart-price-order.js +161 -2
- package/dist/esm/nodes/cart/cart-price-order.js.map +1 -1
- package/dist/esm/nodes/cost-bearing-node-types.d.ts +4 -0
- package/dist/esm/nodes/cost-bearing-node-types.d.ts.map +1 -0
- package/dist/esm/nodes/cost-bearing-node-types.js +39 -0
- package/dist/esm/nodes/cost-bearing-node-types.js.map +1 -0
- package/dist/esm/nodes/data/data-select.d.ts.map +1 -1
- package/dist/esm/nodes/data/data-select.js +12 -2
- package/dist/esm/nodes/data/data-select.js.map +1 -1
- package/dist/esm/nodes/email/email-mailersend.d.ts.map +1 -1
- package/dist/esm/nodes/email/email-mailersend.js +15 -11
- package/dist/esm/nodes/email/email-mailersend.js.map +1 -1
- package/dist/esm/nodes/email/email-mailgun.d.ts.map +1 -1
- package/dist/esm/nodes/email/email-mailgun.js +15 -15
- package/dist/esm/nodes/email/email-mailgun.js.map +1 -1
- package/dist/esm/nodes/email/email-postmark.d.ts.map +1 -1
- package/dist/esm/nodes/email/email-postmark.js +15 -15
- package/dist/esm/nodes/email/email-postmark.js.map +1 -1
- package/dist/esm/nodes/email/email-resend.d.ts.map +1 -1
- package/dist/esm/nodes/email/email-resend.js +15 -15
- package/dist/esm/nodes/email/email-resend.js.map +1 -1
- package/dist/esm/nodes/email/email-sendgrid.d.ts.map +1 -1
- package/dist/esm/nodes/email/email-sendgrid.js +15 -15
- package/dist/esm/nodes/email/email-sendgrid.js.map +1 -1
- package/dist/esm/nodes/email/html-escape-code.d.ts +3 -0
- package/dist/esm/nodes/email/html-escape-code.d.ts.map +1 -0
- package/dist/esm/nodes/email/html-escape-code.js +18 -0
- package/dist/esm/nodes/email/html-escape-code.js.map +1 -0
- package/dist/esm/nodes/email/message-trust.d.ts +40 -0
- package/dist/esm/nodes/email/message-trust.d.ts.map +1 -0
- package/dist/esm/nodes/email/message-trust.js +161 -0
- package/dist/esm/nodes/email/message-trust.js.map +1 -0
- package/dist/esm/nodes/email/outbound-message-guard.d.ts +113 -0
- package/dist/esm/nodes/email/outbound-message-guard.d.ts.map +1 -0
- package/dist/esm/nodes/email/outbound-message-guard.js +452 -0
- package/dist/esm/nodes/email/outbound-message-guard.js.map +1 -0
- package/dist/esm/nodes/email/trusted-html-code.d.ts +22 -0
- package/dist/esm/nodes/email/trusted-html-code.d.ts.map +1 -0
- package/dist/esm/nodes/email/trusted-html-code.js +49 -0
- package/dist/esm/nodes/email/trusted-html-code.js.map +1 -0
- package/dist/esm/nodes/general/general-custom-js.d.ts.map +1 -1
- package/dist/esm/nodes/general/general-custom-js.js +44 -7
- package/dist/esm/nodes/general/general-custom-js.js.map +1 -1
- package/dist/esm/nodes/general/general-http-request.d.ts.map +1 -1
- package/dist/esm/nodes/general/general-http-request.js +431 -45
- package/dist/esm/nodes/general/general-http-request.js.map +1 -1
- package/dist/esm/nodes/general/general-rate-limiter.d.ts.map +1 -1
- package/dist/esm/nodes/general/general-rate-limiter.js +46 -78
- package/dist/esm/nodes/general/general-rate-limiter.js.map +1 -1
- package/dist/esm/nodes/general/general-wait.d.ts +3 -0
- package/dist/esm/nodes/general/general-wait.d.ts.map +1 -0
- package/dist/esm/nodes/general/general-wait.js +78 -0
- package/dist/esm/nodes/general/general-wait.js.map +1 -0
- package/dist/esm/nodes/general/visitor-request.d.ts +44 -0
- package/dist/esm/nodes/general/visitor-request.d.ts.map +1 -0
- package/dist/esm/nodes/general/visitor-request.js +65 -0
- package/dist/esm/nodes/general/visitor-request.js.map +1 -0
- package/dist/esm/nodes/index.d.ts.map +1 -1
- package/dist/esm/nodes/index.js +7 -1
- package/dist/esm/nodes/index.js.map +1 -1
- package/dist/esm/nodes/integrations/integration-slack.d.ts.map +1 -1
- package/dist/esm/nodes/integrations/integration-slack.js +17 -6
- package/dist/esm/nodes/integrations/integration-slack.js.map +1 -1
- package/dist/esm/nodes/newsletter/newsletter-confirm.d.ts +3 -0
- package/dist/esm/nodes/newsletter/newsletter-confirm.d.ts.map +1 -0
- package/dist/esm/nodes/newsletter/newsletter-confirm.js +38 -0
- package/dist/esm/nodes/newsletter/newsletter-confirm.js.map +1 -0
- package/dist/esm/nodes/newsletter/newsletter-subscribe.d.ts +7 -0
- package/dist/esm/nodes/newsletter/newsletter-subscribe.d.ts.map +1 -0
- package/dist/esm/nodes/newsletter/newsletter-subscribe.js +66 -0
- package/dist/esm/nodes/newsletter/newsletter-subscribe.js.map +1 -0
- package/dist/esm/nodes/newsletter/newsletter-unsubscribe.d.ts +3 -0
- package/dist/esm/nodes/newsletter/newsletter-unsubscribe.d.ts.map +1 -0
- package/dist/esm/nodes/newsletter/newsletter-unsubscribe.js +39 -0
- package/dist/esm/nodes/newsletter/newsletter-unsubscribe.js.map +1 -0
- package/dist/esm/nodes/realtime/realtime-join-channel.d.ts.map +1 -1
- package/dist/esm/nodes/realtime/realtime-join-channel.js +5 -4
- package/dist/esm/nodes/realtime/realtime-join-channel.js.map +1 -1
- package/dist/esm/nodes/realtime/realtime-send-channel-event.d.ts.map +1 -1
- package/dist/esm/nodes/realtime/realtime-send-channel-event.js +11 -2
- package/dist/esm/nodes/realtime/realtime-send-channel-event.js.map +1 -1
- package/dist/esm/nodes/realtime/realtime-send-channel-message.d.ts.map +1 -1
- package/dist/esm/nodes/realtime/realtime-send-channel-message.js +11 -2
- package/dist/esm/nodes/realtime/realtime-send-channel-message.js.map +1 -1
- package/dist/esm/nodes/sms/sms-infobip.d.ts.map +1 -1
- package/dist/esm/nodes/sms/sms-infobip.js +11 -8
- package/dist/esm/nodes/sms/sms-infobip.js.map +1 -1
- package/dist/esm/nodes/sms/sms-smsapi.d.ts.map +1 -1
- package/dist/esm/nodes/sms/sms-smsapi.js +11 -8
- package/dist/esm/nodes/sms/sms-smsapi.js.map +1 -1
- package/dist/esm/nodes/sms/sms-textmagic.d.ts.map +1 -1
- package/dist/esm/nodes/sms/sms-textmagic.js +11 -8
- package/dist/esm/nodes/sms/sms-textmagic.js.map +1 -1
- package/dist/esm/nodes/sms/sms-twilio.d.ts.map +1 -1
- package/dist/esm/nodes/sms/sms-twilio.js +12 -10
- package/dist/esm/nodes/sms/sms-twilio.js.map +1 -1
- package/dist/esm/nodes/types.d.ts +8 -1
- package/dist/esm/nodes/types.d.ts.map +1 -1
- package/dist/esm/nodes/utility/utility-similarity-scoring.d.ts.map +1 -1
- package/dist/esm/nodes/utility/utility-similarity-scoring.js +29 -10
- package/dist/esm/nodes/utility/utility-similarity-scoring.js.map +1 -1
- package/dist/esm/page-access-guard-generator.d.ts +23 -0
- package/dist/esm/page-access-guard-generator.d.ts.map +1 -0
- package/dist/esm/page-access-guard-generator.js +131 -0
- package/dist/esm/page-access-guard-generator.js.map +1 -0
- package/dist/esm/password-reset-route-generator.d.ts +119 -0
- package/dist/esm/password-reset-route-generator.d.ts.map +1 -0
- package/dist/esm/password-reset-route-generator.js +448 -0
- package/dist/esm/password-reset-route-generator.js.map +1 -0
- package/dist/esm/payments/payment-core-code.d.ts.map +1 -1
- package/dist/esm/payments/payment-core-code.js +12 -7
- package/dist/esm/payments/payment-core-code.js.map +1 -1
- package/dist/esm/project-code-scanner.d.ts +11 -0
- package/dist/esm/project-code-scanner.d.ts.map +1 -0
- package/dist/esm/project-code-scanner.js +75 -0
- package/dist/esm/project-code-scanner.js.map +1 -0
- package/dist/esm/public-step-guards.d.ts +122 -0
- package/dist/esm/public-step-guards.d.ts.map +1 -0
- package/dist/esm/public-step-guards.js +280 -0
- package/dist/esm/public-step-guards.js.map +1 -0
- package/dist/esm/publish-refusals.d.ts +66 -0
- package/dist/esm/publish-refusals.d.ts.map +1 -0
- package/dist/esm/publish-refusals.js +271 -0
- package/dist/esm/publish-refusals.js.map +1 -0
- package/dist/esm/realtime-generator.d.ts +63 -1
- package/dist/esm/realtime-generator.d.ts.map +1 -1
- package/dist/esm/realtime-generator.js +401 -229
- package/dist/esm/realtime-generator.js.map +1 -1
- package/dist/esm/runtime-storage-generator.d.ts +32 -1
- package/dist/esm/runtime-storage-generator.d.ts.map +1 -1
- package/dist/esm/runtime-storage-generator.js +264 -11
- package/dist/esm/runtime-storage-generator.js.map +1 -1
- package/dist/esm/security-runtime/index.d.ts +14 -0
- package/dist/esm/security-runtime/index.d.ts.map +1 -0
- package/dist/esm/security-runtime/index.js +37 -0
- package/dist/esm/security-runtime/index.js.map +1 -0
- package/dist/esm/security-runtime/security-runtime-code.d.ts +53 -0
- package/dist/esm/security-runtime/security-runtime-code.d.ts.map +1 -0
- package/dist/esm/security-runtime/security-runtime-code.js +575 -0
- package/dist/esm/security-runtime/security-runtime-code.js.map +1 -0
- package/dist/esm/security-scanner.d.ts +72 -3
- package/dist/esm/security-scanner.d.ts.map +1 -1
- package/dist/esm/security-scanner.js +217 -8
- package/dist/esm/security-scanner.js.map +1 -1
- package/dist/esm/segment-splitter.d.ts.map +1 -1
- package/dist/esm/segment-splitter.js +10 -2
- package/dist/esm/segment-splitter.js.map +1 -1
- package/dist/esm/segment-trust.d.ts +36 -0
- package/dist/esm/segment-trust.d.ts.map +1 -1
- package/dist/esm/segment-trust.js +146 -2
- package/dist/esm/segment-trust.js.map +1 -1
- package/dist/esm/self-call-headers.d.ts +31 -0
- package/dist/esm/self-call-headers.d.ts.map +1 -0
- package/dist/esm/self-call-headers.js +43 -0
- package/dist/esm/self-call-headers.js.map +1 -0
- package/dist/esm/sent-email-log/index.d.ts +7 -0
- package/dist/esm/sent-email-log/index.d.ts.map +1 -1
- package/dist/esm/sent-email-log/index.js +15 -0
- package/dist/esm/sent-email-log/index.js.map +1 -1
- package/dist/esm/sent-email-log/sent-email-log-code.d.ts +7 -0
- package/dist/esm/sent-email-log/sent-email-log-code.d.ts.map +1 -1
- package/dist/esm/sent-email-log/sent-email-log-code.js +17 -3
- package/dist/esm/sent-email-log/sent-email-log-code.js.map +1 -1
- package/dist/esm/server-custom-node-call.d.ts +79 -0
- package/dist/esm/server-custom-node-call.d.ts.map +1 -0
- package/dist/esm/server-custom-node-call.js +278 -0
- package/dist/esm/server-custom-node-call.js.map +1 -0
- package/dist/esm/server-runtime-code.d.ts +39 -12
- package/dist/esm/server-runtime-code.d.ts.map +1 -1
- package/dist/esm/server-runtime-code.js +483 -40
- package/dist/esm/server-runtime-code.js.map +1 -1
- package/dist/esm/session-cookie-resolver.d.ts +3 -1
- package/dist/esm/session-cookie-resolver.d.ts.map +1 -1
- package/dist/esm/session-revocation-generator.d.ts +39 -0
- package/dist/esm/session-revocation-generator.d.ts.map +1 -0
- package/dist/esm/session-revocation-generator.js +172 -0
- package/dist/esm/session-revocation-generator.js.map +1 -0
- package/dist/esm/slack-message-values.d.ts +6 -0
- package/dist/esm/slack-message-values.d.ts.map +1 -0
- package/dist/esm/slack-message-values.js +68 -0
- package/dist/esm/slack-message-values.js.map +1 -0
- package/dist/esm/transactional-email-code.d.ts +11 -0
- package/dist/esm/transactional-email-code.d.ts.map +1 -1
- package/dist/esm/transactional-email-code.js +28 -4
- package/dist/esm/transactional-email-code.js.map +1 -1
- package/dist/esm/trigger-generator.d.ts +2 -0
- package/dist/esm/trigger-generator.d.ts.map +1 -1
- package/dist/esm/trigger-generator.js +15 -3
- package/dist/esm/trigger-generator.js.map +1 -1
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/visitor-step-limits.d.ts +66 -0
- package/dist/esm/visitor-step-limits.d.ts.map +1 -0
- package/dist/esm/visitor-step-limits.js +181 -0
- package/dist/esm/visitor-step-limits.js.map +1 -0
- package/dist/esm/webhook-generator.d.ts.map +1 -1
- package/dist/esm/webhook-generator.js +93 -15
- package/dist/esm/webhook-generator.js.map +1 -1
- package/dist/esm/webhook-signature-verification.d.ts.map +1 -1
- package/dist/esm/webhook-signature-verification.js +13 -3
- package/dist/esm/webhook-signature-verification.js.map +1 -1
- package/dist/esm/workflow-auth-generator.d.ts +4 -1
- package/dist/esm/workflow-auth-generator.d.ts.map +1 -1
- package/dist/esm/workflow-auth-generator.js +8 -3
- package/dist/esm/workflow-auth-generator.js.map +1 -1
- package/dist/esm/workflow-component-plugin.js +12 -4
- package/dist/esm/workflow-component-plugin.js.map +1 -1
- package/dist/esm/workflow-project-plugin.d.ts.map +1 -1
- package/dist/esm/workflow-project-plugin.js +306 -60
- package/dist/esm/workflow-project-plugin.js.map +1 -1
- package/dist/esm/workflow-scope.d.ts.map +1 -1
- package/dist/esm/workflow-scope.js +5 -0
- package/dist/esm/workflow-scope.js.map +1 -1
- package/package.json +4 -4
- package/src/account-delete-route-generator.ts +28 -4
- package/src/api-route-generator.ts +712 -134
- package/src/auth-generator.ts +1471 -142
- package/src/automations/activity-kicks.ts +139 -0
- package/src/automations/app-events-source.ts +117 -0
- package/src/automations/automations-project-plugin.ts +202 -0
- package/src/automations/automations-scope.ts +196 -0
- package/src/automations/dispatcher-source.ts +1072 -0
- package/src/automations/event-bus-source.ts +428 -0
- package/src/automations/handler-module-generator.ts +107 -0
- package/src/automations/hydrators-source.ts +647 -0
- package/src/booking-calendar-feed-route-generator.ts +8 -0
- package/src/configured-nextauth-url.ts +17 -0
- package/src/cron-request-verification.ts +55 -5
- package/src/data-api-route-generator.ts +780 -43
- package/src/ecommerce/parameterized-stock-chain.ts +52 -5
- package/src/ecommerce/place-order-guards.ts +785 -0
- package/src/ecommerce-customhandler-rewriter.ts +55 -2
- package/src/executor-generator.ts +372 -60
- package/src/graph-utils.ts +33 -0
- package/src/index.ts +70 -0
- package/src/invoice/api-routes-code.ts +20 -7
- package/src/invoice/index.ts +11 -6
- package/src/invoice/invoice-assembly-code.ts +8 -3
- package/src/invoice/pdf-generator-code.ts +2 -1
- package/src/invoice/pdf-service-client-code.ts +15 -7
- package/src/newsletter/admin-route-code.ts +319 -0
- package/src/newsletter/helper-code.ts +748 -0
- package/src/newsletter/newsletter-scope.ts +116 -0
- package/src/newsletter/project-plugin.ts +119 -0
- package/src/newsletter/routes-code.ts +186 -0
- package/src/nodes/account/account-compare-passwords.ts +17 -6
- package/src/nodes/account/account-delete-current.ts +1 -1
- package/src/nodes/account/account-get-current.ts +1 -1
- package/src/nodes/account/account-hash-password.ts +19 -3
- package/src/nodes/account/account-login.ts +24 -7
- package/src/nodes/account/account-logout.ts +1 -1
- package/src/nodes/account/account-refresh-session.ts +1 -1
- package/src/nodes/account/account-request-password-reset.ts +47 -0
- package/src/nodes/account/account-reset-password.ts +45 -0
- package/src/nodes/account/account-signup.ts +86 -20
- package/src/nodes/account/account-social-login.ts +1 -1
- package/src/nodes/ai/ai-custom-prompt.ts +25 -6
- package/src/nodes/ai/ai-detect-language.ts +25 -6
- package/src/nodes/ai/ai-generate-text-embedding.ts +16 -3
- package/src/nodes/ai/ai-provider-utils-sources.generated.ts +2 -2
- package/src/nodes/ai/ai-provider-utils.ts +135 -10
- package/src/nodes/ai/ai-select-database-data.ts +8 -3
- package/src/nodes/ai/ai-sentiment-analysis.ts +25 -6
- package/src/nodes/ai/ai-summarization.ts +25 -6
- package/src/nodes/ai/ai-text-classifier.ts +25 -6
- package/src/nodes/ai/ai-text-transform.ts +25 -6
- package/src/nodes/analytics/analytics-track-outcome.ts +111 -0
- package/src/nodes/cart/cart-price-order.ts +200 -2
- package/src/nodes/cost-bearing-node-types.ts +45 -0
- package/src/nodes/data/data-select.ts +11 -2
- package/src/nodes/email/email-mailersend.ts +16 -8
- package/src/nodes/email/email-mailgun.ts +17 -12
- package/src/nodes/email/email-postmark.ts +17 -12
- package/src/nodes/email/email-resend.ts +17 -12
- package/src/nodes/email/email-sendgrid.ts +17 -12
- package/src/nodes/email/html-escape-code.ts +21 -0
- package/src/nodes/email/message-trust.ts +198 -0
- package/src/nodes/email/outbound-message-guard.ts +572 -0
- package/src/nodes/email/trusted-html-code.ts +49 -0
- package/src/nodes/general/general-custom-js.ts +46 -7
- package/src/nodes/general/general-http-request.ts +449 -46
- package/src/nodes/general/general-rate-limiter.ts +54 -81
- package/src/nodes/general/general-wait.ts +80 -0
- package/src/nodes/general/visitor-request.ts +79 -0
- package/src/nodes/index.ts +12 -0
- package/src/nodes/integrations/integration-slack.ts +21 -6
- package/src/nodes/newsletter/newsletter-confirm.ts +44 -0
- package/src/nodes/newsletter/newsletter-subscribe.ts +78 -0
- package/src/nodes/newsletter/newsletter-unsubscribe.ts +43 -0
- package/src/nodes/realtime/realtime-join-channel.ts +5 -4
- package/src/nodes/realtime/realtime-send-channel-event.ts +13 -2
- package/src/nodes/realtime/realtime-send-channel-message.ts +13 -2
- package/src/nodes/sms/sms-infobip.ts +14 -4
- package/src/nodes/sms/sms-smsapi.ts +14 -4
- package/src/nodes/sms/sms-textmagic.ts +14 -4
- package/src/nodes/sms/sms-twilio.ts +14 -4
- package/src/nodes/types.ts +9 -1
- package/src/nodes/utility/utility-similarity-scoring.ts +33 -12
- package/src/page-access-guard-generator.ts +154 -0
- package/src/password-reset-route-generator.ts +531 -0
- package/src/payments/payment-core-code.ts +12 -7
- package/src/project-code-scanner.ts +98 -0
- package/src/public-step-guards.ts +448 -0
- package/src/publish-refusals.ts +459 -0
- package/src/realtime-generator.ts +457 -234
- package/src/runtime-storage-generator.ts +270 -11
- package/src/security-runtime/index.ts +53 -0
- package/src/security-runtime/security-runtime-code.ts +579 -0
- package/src/security-scanner.ts +253 -10
- package/src/segment-splitter.ts +10 -2
- package/src/segment-trust.ts +205 -2
- package/src/self-call-headers.ts +46 -0
- package/src/sent-email-log/index.ts +16 -0
- package/src/sent-email-log/sent-email-log-code.ts +30 -4
- package/src/server-custom-node-call.ts +331 -0
- package/src/server-runtime-code.ts +488 -40
- package/src/session-revocation-generator.ts +177 -0
- package/src/slack-message-values.ts +84 -0
- package/src/transactional-email-code.ts +30 -4
- package/src/trigger-generator.ts +19 -3
- package/src/visitor-step-limits.ts +228 -0
- package/src/webhook-generator.ts +94 -14
- package/src/webhook-signature-verification.ts +13 -3
- package/src/workflow-auth-generator.ts +9 -4
- package/src/workflow-component-plugin.ts +14 -4
- package/src/workflow-project-plugin.ts +374 -61
- package/src/workflow-scope.ts +6 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dispatcher-source.js","sourceRoot":"","sources":["../../../src/automations/dispatcher-source.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,mCAAmC,GACpC,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,uBAAuB,EAAE,+BAA+B,EAAE,MAAM,qBAAqB,CAAA;AAE9F,wFAAwF;AACxF,MAAM,uBAAuB,GAAG,EAAE,GAAG,IAAI,CAAA;AAEzC;;;;;;GAMG;AAEH,MAAM,EACJ,SAAS,EACT,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,uBAAuB,GACxB,GAAG,uBAAuB,CAAA;AAC3B,MAAM,KAAK,GAAG,aAAa,iBAAiB,WAAW,CAAA;AAEvD,MAAM,aAAa,GACjB,gJAAgJ,CAAA;AAElJ,2EAA2E;AAC3E,8EAA8E;AAC9E,8EAA8E;AAC9E,2EAA2E;AAC3E,0EAA0E;AAC1E,4EAA4E;AAC5E,qEAAqE;AACrE,qEAAqE;AACrE,2EAA2E;AAC3E,yEAAyE;AACzE,0EAA0E;AAC1E,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,WAAmB,EAAU,EAAE,CAC3D,kDAAkD;IAClD,+GAA+G;IAC/G,aAAa,KAAK,GAAG;IACrB,6GAA6G;IAC7G,2BAA2B,WAAW,YAAY;IAClD,uGAAuG,CAAA;AAEzG,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,CAAA;AAEvC,gFAAgF;AAChF,MAAM,kBAAkB,GAAG,CAAC,WAAmB,EAAU,EAAE,CACzD,iFAAiF;IACjF,2BAA2B,WAAW,mFAAmF,CAAA;AAE3H;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,UAAkB,EAAE,WAAmB,EAAU,EAAE,CACpF,sBAAsB,UAAU,YAAY;IAC5C,sBAAsB,WAAW,GAAG;IACpC,yDAAyD,aAAa,CAAC,WAAW,CAAC,KAAK;IACxF,OAAO,kBAAkB,CAAC,WAAW,CAAC,IAAI;IAC1C,8CAA8C,WAAW,QAAQ,aAAa,CAAC,WAAW,CAAC,IAAI,CAAA;AAEjG;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,WAAmB,EAAU,EAAE,CACzD,uBAAuB,WAAW,YAAY;IAC9C,oDAAoD;IACpD,oDAAoD,KAAK,KAAK;IAC9D,qGAAqG,CAAA;AAEvG,2EAA2E;AAC3E,4EAA4E;AAC5E,4EAA4E;AAC5E,0EAA0E;AAC1E,mBAAmB;AACnB,MAAM,gBAAgB,GACpB,UAAU,aAAa,0BAA0B;IACjD,uCAAuC;IACvC,sBAAsB,WAAW,GAAG;IACpC,oEAAoE,UAAU,UAAU;IACxF,yBAAyB;IACzB,gCAAgC,WAAW,KAAK;IAChD,OAAO,kBAAkB,CAAC,IAAI,CAAC,IAAI;IACnC,8CAA8C,WAAW,QAAQ,WAAW,KAAK;IACjF,2EAA2E;IAC3E,SAAS,SAAS,yBAAyB,CAAA;AAE7C,wEAAwE;AACxE,8EAA8E;AAC9E,2EAA2E;AAC3E,MAAM,gBAAgB,GACpB,gGAAgG;IAChG,qDAAqD,CAAA;AAEvD,MAAM,WAAW,GAAG,sCAAsC,CAAA;AAE1D,qEAAqE;AACrE,MAAM,iBAAiB,GAAG,wEAAwE,WAAW,IAAI,CAAA;AAEjH,4EAA4E;AAC5E,oBAAoB;AACpB,MAAM,qBAAqB,GACzB,yGAAyG;IACzG,oEAAoE;IACpE,0DAA0D,CAAA;AAE5D,2EAA2E;AAC3E,8EAA8E;AAC9E,yEAAyE;AACzE,MAAM,kBAAkB,GACtB,mGAAmG;IACnG,uCAAuC;IACvC,mGAAmG;IACnG,uDAAuD;IACvD,iFAAiF,KAAK,IAAI;IAC1F,4BAA4B,CAAA;AAE9B,2EAA2E;AAC3E,uEAAuE;AACvE,sBAAsB;AACtB,4EAA4E;AAC5E,oEAAoE;AACpE,MAAM,mBAAmB,GACvB,uHAAuH;IACvH,iDAAiD;IACjD,uGAAuG;IACvG,2BAA2B,CAAA;AAE7B,MAAM,mBAAmB,GACvB,oFAAoF;IACpF,wDAAwD,CAAA;AAE1D,0EAA0E;AAC1E,MAAM,uBAAuB,GAC3B,mGAAmG;IACnG,uEAAuE,KAAK,EAAE,CAAA;AAEhF,uEAAuE;AACvE,6EAA6E;AAC7E,4EAA4E;AAC5E,6EAA6E;AAC7E,0EAA0E;AAC1E,6EAA6E;AAC7E,2EAA2E;AAC3E,4EAA4E;AAC5E,+CAA+C;AAC/C,MAAM,iBAAiB,GACrB,8DAA8D;IAC9D,sEAAsE;IACtE,qGAAqG;IACrG,8FAA8F,CAAA;AAEhG,MAAM,oBAAoB,GACxB,+EAA+E,CAAA;AAEjF,mDAAmD;AACnD,MAAM,gBAAgB,GAAG,4DAA4D,WAAW,IAAI,CAAA;AAEpG,6EAA6E;AAC7E,MAAM,cAAc,GAClB,wEAAwE;IACxE,qBAAqB,WAAW,IAAI,CAAA;AAEtC,oEAAoE;AACpE,MAAM,qBAAqB,GACzB,2FAA2F;IAC3F,8DAA8D,CAAA;AAEhE,MAAM,uBAAuB,GAC3B,8FAA8F;IAC9F,6DAA6D,CAAA;AAE/D,6CAA6C;AAC7C,MAAM,eAAe,GACnB,uGAAuG;IACvG,SAAS,WAAW,CAAC,IAAI,CAAC,GAAG;IAC7B,2BAA2B,SAAS,yBAAyB,CAAA;AAE/D,gFAAgF;AAChF,MAAM,cAAc,GAClB,uGAAuG;IACvG,gDAAgD,CAAA;AAElD,qFAAqF;AACrF,MAAM,gBAAgB,GACpB,+GAA+G,CAAA;AAEjH,4EAA4E;AAC5E,+EAA+E;AAC/E,+EAA+E;AAC/E,MAAM,eAAe,GACnB,oEAAoE;IACpE,yFAAyF,CAAA;AAE3F,sFAAsF;AACtF,MAAM,sBAAsB,GAC1B,0FAA0F,CAAA;AAE5F,MAAM,eAAe,GAAG,UAAU,aAAa,yCAAyC,CAAA;AAExF,MAAM,aAAa,GAA2B;IAC5C,SAAS,EAAE,OAAO;IAClB,QAAQ,EAAE,OAAO;IACjB,IAAI,EAAE,gBAAgB;IACtB,QAAQ,EAAE,gBAAgB;CAC3B,CAAA;AAED,MAAM,UAAU,GAA4B;IAC1C,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;IACtC,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;IACtC,CAAC,mBAAmB,EAAE,iBAAiB,CAAC;IACxC,CAAC,uBAAuB,EAAE,qBAAqB,CAAC;IAChD,CAAC,oBAAoB,EAAE,kBAAkB,CAAC;IAC1C,CAAC,qBAAqB,EAAE,mBAAmB,CAAC;IAC5C,CAAC,qBAAqB,EAAE,mBAAmB,CAAC;IAC5C,CAAC,yBAAyB,EAAE,uBAAuB,CAAC;IACpD,CAAC,mBAAmB,EAAE,iBAAiB,CAAC;IACxC,CAAC,sBAAsB,EAAE,oBAAoB,CAAC;IAC9C,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;IACtC,CAAC,gBAAgB,EAAE,cAAc,CAAC;IAClC,CAAC,uBAAuB,EAAE,qBAAqB,CAAC;IAChD,CAAC,yBAAyB,EAAE,uBAAuB,CAAC;IACpD,CAAC,iBAAiB,EAAE,eAAe,CAAC;IACpC,CAAC,gBAAgB,EAAE,cAAc,CAAC;IAClC,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;IACtC,CAAC,iBAAiB,EAAE,eAAe,CAAC;IACpC,CAAC,wBAAwB,EAAE,sBAAsB,CAAC;IAClD,CAAC,iBAAiB,EAAE,eAAe,CAAC;CACrC,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,6BAA6B,GACxC,qHAAqH;IACrH,4FAA4F;IAC5F,4HAA4H;IAC5H,iFAAiF;IACjF,gHAAgH;IAChH,oHAAoH,CAAA;AAEtH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,OAIhD,EAAU,EAAE;IACX,MAAM,SAAS,GAAG,OAAO,CAAC,gBAAgB;SACvC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,wBAAwB,MAAM,gBAAgB,CAAC;SAC1F,IAAI,CAAC,IAAI,CAAC,CAAA;IACb,OAAO;;;;;;;;oBAQW,6BAA6B;;;;;;2BAMtB,gBAAgB;yBAClB,cAAc;qBAClB,WAAW;;uBAET,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;;sBAE9C,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC;;;sBAGnD,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;;;EAG1D,SAAS;;;EAGT,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,OAAO,IAAI,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8hBtF,CAAA;AACD,CAAC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAAG,GAAW,EAAE;IAC9D,MAAM,UAAU,GAAG,+BAA+B,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC5E,OAAO;;;;qBAIY,UAAU;EAC7B,mCAAmC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;;;uBAGpC,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCA0Ed,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qEA+Fc,uBAAuB;CAC3F,CAAA;AACD,CAAC,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,uCAAuC,GAAG,CAAC,MAAc,EAAU,EAAE,CAAC;;;gBAGnE,IAAI,CAAC,SAAS,CAAC,4CAA4C,MAAM,EAAE,CAAC;;;;;CAKnF,CAAA"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/** Where the dispatch route remembers the signed requests it took (see `takeSignedRequest`). */
|
|
2
|
+
export declare const SIGNED_REQUESTS_TABLE = "teleport_automation_requests";
|
|
3
|
+
/** The ledger row every emitter writes; a replayed dedupe key writes nothing. */
|
|
4
|
+
export declare const INSERT_EVENT_SQL: string;
|
|
5
|
+
/**
|
|
6
|
+
* `lib/automations/store.js`: one connection per call (`withClient`), with
|
|
7
|
+
* every statement bounded in time so a stuck database cannot hold the queue;
|
|
8
|
+
* the Wait writer; the signed requests the dispatch route has taken (each
|
|
9
|
+
* once, `takeSignedRequest`); where and with which credentials the app calls
|
|
10
|
+
* itself;
|
|
11
|
+
* and the small value helpers the dispatcher and the hydrators share. The
|
|
12
|
+
* database is the TeleportHQ one (`TELEPORT_DB_*`, the data API's client):
|
|
13
|
+
* the only one automations run on (v1).
|
|
14
|
+
*/
|
|
15
|
+
export declare const generateAutomationStoreCode: () => string;
|
|
16
|
+
/**
|
|
17
|
+
* `lib/automations/wait-until.js`: on Vercel, the platform's `waitUntil`
|
|
18
|
+
* (`@vercel/functions`, a dependency of every project with automations),
|
|
19
|
+
* published as `globalThis.__tqWaitUntil` unless the app set one of its own.
|
|
20
|
+
* Anywhere else it is null and the bus calls its own dispatch route: a
|
|
21
|
+
* `waitUntil` that is not the host's would keep nothing alive.
|
|
22
|
+
*/
|
|
23
|
+
export declare const generateAutomationWaitUntilCode: () => string;
|
|
24
|
+
/**
|
|
25
|
+
* `lib/automations/event-bus.js`:
|
|
26
|
+
*
|
|
27
|
+
* - `emitBusinessEvent({ type, entityType, entityId, orderId?, payload,
|
|
28
|
+
* actor, actorType, dedupeKey }, req?)` writes the `teleport_events` row (a
|
|
29
|
+
* replayed dedupe key writes nothing) and, for a new row, schedules the
|
|
30
|
+
* queue. `req` is the request being served, when there is one: a local
|
|
31
|
+
* server's own address is read from it (see `appBaseUrl` in store.js; never
|
|
32
|
+
* a URL a caller hands in). Never throws: it resolves `{ recorded, id }`.
|
|
33
|
+
* - `scheduleDispatch(req?)` runs `dispatch()` off the request path: on
|
|
34
|
+
* Vercel inside its `waitUntil`, elsewhere through a non-awaited call to
|
|
35
|
+
* the app's own dispatch route. The visitor's request never waits for a
|
|
36
|
+
* handler.
|
|
37
|
+
* - `runTestEvent({ workflowId, event }, req)` runs one automation once for
|
|
38
|
+
* the editor's "send a test" (see the dispatcher).
|
|
39
|
+
* - `takeSignedRequest(key, expiresAt)` resolves true the first time the
|
|
40
|
+
* dispatch route takes a signed request, false for the same request again.
|
|
41
|
+
* - `dispatch({ req })` is the queue worker (./dispatcher.js).
|
|
42
|
+
*/
|
|
43
|
+
export declare const generateAutomationEventBusCode: () => string;
|
|
44
|
+
//# sourceMappingURL=event-bus-source.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-bus-source.d.ts","sourceRoot":"","sources":["../../../src/automations/event-bus-source.ts"],"names":[],"mappings":"AAcA,gGAAgG;AAChG,eAAO,MAAM,qBAAqB,iCAAiC,CAAA;AAEnE,iFAAiF;AACjF,eAAO,MAAM,gBAAgB,QAA4I,CAAA;AAEzK;;;;;;;;;GASG;AACH,eAAO,MAAM,2BAA2B,QAAO,MA8P9C,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,+BAA+B,QAAO,MAoBlD,CAAA;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,8BAA8B,QAAO,MA6FjD,CAAA"}
|
|
@@ -0,0 +1,421 @@
|
|
|
1
|
+
import { generateLazyPgClientCode } from '../pg-client-code';
|
|
2
|
+
import { AUTOMATIONS_DISPATCH_URL } from './automations-scope';
|
|
3
|
+
import { generateSelfCallHeadersCode } from '../self-call-headers';
|
|
4
|
+
/**
|
|
5
|
+
* The automations' shared runtime: the database access (`store.js`), the
|
|
6
|
+
* platform's `waitUntil` (`wait-until.js`) and the event bus
|
|
7
|
+
* (`event-bus.js`). All three live in `lib/automations/` and are generated
|
|
8
|
+
* only for a project with at least one automation.
|
|
9
|
+
*/
|
|
10
|
+
const EVENT_COLUMNS = 'event_type, dedupe_key, order_id, entity_type, entity_id, payload, actor, actor_type';
|
|
11
|
+
/** Where the dispatch route remembers the signed requests it took (see `takeSignedRequest`). */
|
|
12
|
+
export const SIGNED_REQUESTS_TABLE = 'teleport_automation_requests';
|
|
13
|
+
/** The ledger row every emitter writes; a replayed dedupe key writes nothing. */
|
|
14
|
+
export const INSERT_EVENT_SQL = `INSERT INTO teleport_events (${EVENT_COLUMNS}) VALUES ($1, $2, $3, $4, $5, $6, $7, $8) ON CONFLICT (dedupe_key) DO NOTHING RETURNING id`;
|
|
15
|
+
/**
|
|
16
|
+
* `lib/automations/store.js`: one connection per call (`withClient`), with
|
|
17
|
+
* every statement bounded in time so a stuck database cannot hold the queue;
|
|
18
|
+
* the Wait writer; the signed requests the dispatch route has taken (each
|
|
19
|
+
* once, `takeSignedRequest`); where and with which credentials the app calls
|
|
20
|
+
* itself;
|
|
21
|
+
* and the small value helpers the dispatcher and the hydrators share. The
|
|
22
|
+
* database is the TeleportHQ one (`TELEPORT_DB_*`, the data API's client):
|
|
23
|
+
* the only one automations run on (v1).
|
|
24
|
+
*/
|
|
25
|
+
export const generateAutomationStoreCode = () => `'use strict';
|
|
26
|
+
/**
|
|
27
|
+
* Automations: database access and shared helpers (generated).
|
|
28
|
+
*/
|
|
29
|
+
${generateLazyPgClientCode()}
|
|
30
|
+
|
|
31
|
+
var QUERY_TIMEOUT_MS = 15000;
|
|
32
|
+
|
|
33
|
+
var SAVE_WAIT_SQL = 'INSERT INTO teleport_automation_waits (event_id, workflow_id, resume_node_id, context, run_at, status) ' +
|
|
34
|
+
"VALUES ($1, $2, $3, $4, $5, 'waiting')";
|
|
35
|
+
|
|
36
|
+
// What a table the project does not have, or a column it never gained, fails
|
|
37
|
+
// with: the record then reads as missing. Every other error is real.
|
|
38
|
+
var MISSING_RELATION_CODES = ['42P01', '42703'];
|
|
39
|
+
|
|
40
|
+
function errorMessage(error) {
|
|
41
|
+
return error && error.message ? String(error.message) : String(error);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
function withTimeout(promise, ms, what) {
|
|
45
|
+
var timer;
|
|
46
|
+
var timeout = new Promise(function (_resolve, reject) {
|
|
47
|
+
timer = setTimeout(function () { reject(new Error('[automations] ' + what + ' timed out after ' + ms + 'ms')); }, ms);
|
|
48
|
+
});
|
|
49
|
+
return Promise.race([promise, timeout]).then(
|
|
50
|
+
function (value) { clearTimeout(timer); return value; },
|
|
51
|
+
function (error) { clearTimeout(timer); throw error; }
|
|
52
|
+
);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// Runs fn(client) on a connection of its own, closed afterwards.
|
|
56
|
+
async function withClient(fn) {
|
|
57
|
+
if (!process.env.TELEPORT_DB_CONNECTION_STRING && !process.env.TELEPORT_DB_HOST) {
|
|
58
|
+
throw new Error('[automations] no database is configured (TELEPORT_DB_CONNECTION_STRING)');
|
|
59
|
+
}
|
|
60
|
+
if (!__loadPg()) {
|
|
61
|
+
throw new Error('[automations] the pg driver is not installed');
|
|
62
|
+
}
|
|
63
|
+
var raw = getClient();
|
|
64
|
+
var client = {
|
|
65
|
+
query: function (sql, values) {
|
|
66
|
+
return withTimeout(raw.query(sql, values), QUERY_TIMEOUT_MS, 'a query');
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
try {
|
|
70
|
+
await withTimeout(raw.connect(), QUERY_TIMEOUT_MS, 'connecting to the database');
|
|
71
|
+
return await fn(client);
|
|
72
|
+
} finally {
|
|
73
|
+
try { await raw.end(); } catch (_e) {}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// Stores a run parked at a Wait (see the general-wait node).
|
|
78
|
+
async function saveWait(wait) {
|
|
79
|
+
await withClient(function (client) {
|
|
80
|
+
return client.query(SAVE_WAIT_SQL, [wait.eventId, wait.workflowId, wait.resumeNodeId, wait.context, wait.runAt]);
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
// The signed requests the dispatch route has taken, each kept until its
|
|
85
|
+
// signature can no longer verify: the same request again is refused. The
|
|
86
|
+
// table (and its expiry index) is made on first use, two instances taking
|
|
87
|
+
// turns under the lock. The rows that are over are deleted at most once per
|
|
88
|
+
// instance every SIGNED_REQUESTS_CLEANUP_MS, a bounded batch at a time.
|
|
89
|
+
var SIGNED_REQUESTS_TABLE = '${SIGNED_REQUESTS_TABLE}';
|
|
90
|
+
var LOCK_SIGNED_REQUESTS_SQL = 'SELECT pg_advisory_xact_lock(hashtext($1))';
|
|
91
|
+
var CREATE_SIGNED_REQUESTS_SQL = 'CREATE TABLE IF NOT EXISTS ' + SIGNED_REQUESTS_TABLE +
|
|
92
|
+
' (request_key TEXT PRIMARY KEY, expires_at BIGINT NOT NULL)';
|
|
93
|
+
var INDEX_SIGNED_REQUESTS_SQL = 'CREATE INDEX IF NOT EXISTS ' + SIGNED_REQUESTS_TABLE + '_expires_at ON ' +
|
|
94
|
+
SIGNED_REQUESTS_TABLE + ' (expires_at)';
|
|
95
|
+
var FORGET_SIGNED_REQUESTS_SQL = 'DELETE FROM ' + SIGNED_REQUESTS_TABLE + ' WHERE request_key IN (SELECT request_key FROM ' +
|
|
96
|
+
SIGNED_REQUESTS_TABLE + ' WHERE expires_at < $1 LIMIT 1000)';
|
|
97
|
+
var TAKE_SIGNED_REQUEST_SQL = 'INSERT INTO ' + SIGNED_REQUESTS_TABLE + ' (request_key, expires_at) VALUES ($1, $2) ' +
|
|
98
|
+
'ON CONFLICT (request_key) DO NOTHING RETURNING request_key';
|
|
99
|
+
var SIGNED_REQUESTS_CLEANUP_MS = 600000;
|
|
100
|
+
var __signedRequestsReady = false;
|
|
101
|
+
var __signedRequestsCleanedAt = 0;
|
|
102
|
+
|
|
103
|
+
// true the first time a signed request (its key) is taken, false every time
|
|
104
|
+
// after while it is kept (until expiresAt, unix seconds). Throws when the
|
|
105
|
+
// database cannot say: the route then refuses.
|
|
106
|
+
async function takeSignedRequest(key, expiresAt) {
|
|
107
|
+
return withClient(async function (client) {
|
|
108
|
+
if (!__signedRequestsReady) {
|
|
109
|
+
await client.query('BEGIN');
|
|
110
|
+
try {
|
|
111
|
+
await client.query(LOCK_SIGNED_REQUESTS_SQL, [SIGNED_REQUESTS_TABLE]);
|
|
112
|
+
await client.query(CREATE_SIGNED_REQUESTS_SQL);
|
|
113
|
+
await client.query(INDEX_SIGNED_REQUESTS_SQL);
|
|
114
|
+
await client.query('COMMIT');
|
|
115
|
+
} catch (error) {
|
|
116
|
+
try { await client.query('ROLLBACK'); } catch (_e) {}
|
|
117
|
+
throw error;
|
|
118
|
+
}
|
|
119
|
+
__signedRequestsReady = true;
|
|
120
|
+
}
|
|
121
|
+
var nowMs = Date.now();
|
|
122
|
+
if (nowMs - __signedRequestsCleanedAt >= SIGNED_REQUESTS_CLEANUP_MS) {
|
|
123
|
+
__signedRequestsCleanedAt = nowMs;
|
|
124
|
+
await client.query(FORGET_SIGNED_REQUESTS_SQL, [Math.floor(nowMs / 1000)]);
|
|
125
|
+
}
|
|
126
|
+
var taken = await client.query(TAKE_SIGNED_REQUEST_SQL, [key, expiresAt]);
|
|
127
|
+
return !!(taken && taken.rows && taken.rows[0]);
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
function isLoopbackHost(host) {
|
|
132
|
+
var name = String(host || '').replace(/:[0-9]+$/, '').toLowerCase();
|
|
133
|
+
return name === 'localhost' || name === '127.0.0.1' || name === '[::1]' || name === '0.0.0.0';
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
// The origin of an absolute http(s) URL, or of a bare host ("shop.com", as
|
|
137
|
+
// Vercel's own variables hold it, taken as https); '' for anything else.
|
|
138
|
+
function originOf(value, bareHostScheme) {
|
|
139
|
+
var text = typeof value === 'string' ? value.trim() : '';
|
|
140
|
+
if (!text) return '';
|
|
141
|
+
if (!/^https?:[/][/]/i.test(text)) {
|
|
142
|
+
if (!bareHostScheme || text.indexOf('/') !== -1) return '';
|
|
143
|
+
text = bareHostScheme + '://' + text;
|
|
144
|
+
}
|
|
145
|
+
try { return new URL(text).origin; } catch (_e) { return ''; }
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
// NEXTAUTH_URL as the deployment configured it. The auth route rewrites
|
|
149
|
+
// process.env.NEXTAUTH_URL on every request (to the request's own origin when
|
|
150
|
+
// the configured one is local or unset), after keeping the configured value
|
|
151
|
+
// on globalThis.__tqConfiguredNextAuthUrl, once per process: that value is
|
|
152
|
+
// read here, never the rewritten one. Kept the same way (and by the same rule:
|
|
153
|
+
// a placeholder or anything but an http(s) URL is unset) when this module
|
|
154
|
+
// reads it first.
|
|
155
|
+
function configuredNextAuthUrl() {
|
|
156
|
+
var scope = globalThis;
|
|
157
|
+
if (typeof scope.__tqConfiguredNextAuthUrl !== 'string') {
|
|
158
|
+
var raw = process.env.NEXTAUTH_URL;
|
|
159
|
+
var usable = typeof raw === 'string' && raw.indexOf('teleporthq.secrets.') !== 0 && /^https?:[/][/]/i.test(raw);
|
|
160
|
+
scope.__tqConfiguredNextAuthUrl = usable ? raw : '';
|
|
161
|
+
}
|
|
162
|
+
return scope.__tqConfiguredNextAuthUrl;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
// The site's address when one is configured: NEXTAUTH_URL naming a real
|
|
166
|
+
// (non-local) origin. The generated default (http://localhost:3000) counts as
|
|
167
|
+
// unset.
|
|
168
|
+
function configuredSiteOrigin() {
|
|
169
|
+
var origin = originOf(configuredNextAuthUrl());
|
|
170
|
+
return origin && !isLoopbackHost(new URL(origin).host) ? origin : '';
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
function firstValue(value) {
|
|
174
|
+
return String(Array.isArray(value) ? value[0] : value || '').split(',')[0].trim();
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
// The app's own origin, where it calls its own routes with the app secret:
|
|
178
|
+
// - the configured site address (a real NEXTAUTH_URL), whatever a request says;
|
|
179
|
+
// - on Vercel, the origin the request reached (Vercel routes only this
|
|
180
|
+
// deployment's domains to it), else the production domain, else the
|
|
181
|
+
// deployment's own URL;
|
|
182
|
+
// - anywhere else a request's Host is whatever its caller sent: it is used
|
|
183
|
+
// only when it names this machine (a local server, which keeps its own
|
|
184
|
+
// port), never to send the secret to a host a caller picked.
|
|
185
|
+
function appBaseUrl(req) {
|
|
186
|
+
var configured = configuredSiteOrigin();
|
|
187
|
+
if (configured) return configured;
|
|
188
|
+
var headers = (req && req.headers) || {};
|
|
189
|
+
var host = firstValue(headers.host);
|
|
190
|
+
var proto = firstValue(headers['x-forwarded-proto']);
|
|
191
|
+
if (process.env.VERCEL) {
|
|
192
|
+
if (host) {
|
|
193
|
+
var reached = originOf((proto || (isLoopbackHost(host) ? 'http' : 'https')) + '://' + host);
|
|
194
|
+
if (reached) return reached;
|
|
195
|
+
}
|
|
196
|
+
var deployed =
|
|
197
|
+
originOf(process.env.VERCEL_PROJECT_PRODUCTION_URL, 'https') || originOf(process.env.VERCEL_URL, 'https');
|
|
198
|
+
if (deployed) return deployed;
|
|
199
|
+
}
|
|
200
|
+
if (host && isLoopbackHost(host)) {
|
|
201
|
+
return (proto === 'https' ? 'https' : 'http') + '://' + host;
|
|
202
|
+
}
|
|
203
|
+
return 'http://localhost:' + (process.env.PORT || '3000');
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
${generateSelfCallHeadersCode()}
|
|
207
|
+
|
|
208
|
+
// What the app presents to its own routes: the app secret, and the Vercel
|
|
209
|
+
// deployment-protection bypass where one is set.
|
|
210
|
+
function internalHeaders() {
|
|
211
|
+
return __selfCallHeaders({ 'Content-Type': 'application/json' });
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
function isPlainObject(value) {
|
|
215
|
+
return !!value && typeof value === 'object' && !Array.isArray(value) && !(value instanceof Date);
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
// JSON columns are TEXT (see teleport_events.payload): parsed, or null.
|
|
219
|
+
function parseJson(value) {
|
|
220
|
+
if (isPlainObject(value) || Array.isArray(value)) return value;
|
|
221
|
+
if (typeof value !== 'string' || !value) return null;
|
|
222
|
+
try { return JSON.parse(value); } catch (_e) { return null; }
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
function toNumber(value) {
|
|
226
|
+
if (value === null || value === undefined || value === '') return null;
|
|
227
|
+
var n = Number(value);
|
|
228
|
+
return isFinite(n) ? n : null;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
function toIso(value) {
|
|
232
|
+
if (value === null || value === undefined || value === '') return null;
|
|
233
|
+
var date = value instanceof Date ? value : new Date(value);
|
|
234
|
+
return isNaN(date.getTime()) ? null : date.toISOString();
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
function toText(value) {
|
|
238
|
+
return value === null || value === undefined || value === '' ? null : String(value);
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
function isMissingRelation(error) {
|
|
242
|
+
return !!error && MISSING_RELATION_CODES.indexOf(error.code) !== -1;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
// The first row a statement returns, or null. A table or column the project
|
|
246
|
+
// lacks also reads as no row; any other failure is thrown, so the event is
|
|
247
|
+
// retried instead of being delivered without its record.
|
|
248
|
+
async function firstRow(client, sql, values) {
|
|
249
|
+
var rows = await allRows(client, sql, values);
|
|
250
|
+
return rows[0] || null;
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
async function allRows(client, sql, values) {
|
|
254
|
+
try {
|
|
255
|
+
var result = await client.query(sql, values);
|
|
256
|
+
return (result && result.rows) || [];
|
|
257
|
+
} catch (error) {
|
|
258
|
+
if (!isMissingRelation(error)) throw error;
|
|
259
|
+
console.warn('[automations] ' + errorMessage(error));
|
|
260
|
+
return [];
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
module.exports = {
|
|
265
|
+
firstRow: firstRow,
|
|
266
|
+
allRows: allRows,
|
|
267
|
+
withClient: withClient,
|
|
268
|
+
saveWait: saveWait,
|
|
269
|
+
takeSignedRequest: takeSignedRequest,
|
|
270
|
+
appBaseUrl: appBaseUrl,
|
|
271
|
+
internalHeaders: internalHeaders,
|
|
272
|
+
errorMessage: errorMessage,
|
|
273
|
+
isPlainObject: isPlainObject,
|
|
274
|
+
parseJson: parseJson,
|
|
275
|
+
toNumber: toNumber,
|
|
276
|
+
toIso: toIso,
|
|
277
|
+
toText: toText,
|
|
278
|
+
};
|
|
279
|
+
`;
|
|
280
|
+
/**
|
|
281
|
+
* `lib/automations/wait-until.js`: on Vercel, the platform's `waitUntil`
|
|
282
|
+
* (`@vercel/functions`, a dependency of every project with automations),
|
|
283
|
+
* published as `globalThis.__tqWaitUntil` unless the app set one of its own.
|
|
284
|
+
* Anywhere else it is null and the bus calls its own dispatch route: a
|
|
285
|
+
* `waitUntil` that is not the host's would keep nothing alive.
|
|
286
|
+
*/
|
|
287
|
+
export const generateAutomationWaitUntilCode = () => `'use strict';
|
|
288
|
+
/**
|
|
289
|
+
* Automations: the platform's waitUntil, on Vercel (generated).
|
|
290
|
+
*/
|
|
291
|
+
var waitUntil = null;
|
|
292
|
+
if (process.env.VERCEL) {
|
|
293
|
+
try {
|
|
294
|
+
var vercelFunctions = require('@vercel/functions');
|
|
295
|
+
if (vercelFunctions && typeof vercelFunctions.waitUntil === 'function') {
|
|
296
|
+
waitUntil = vercelFunctions.waitUntil;
|
|
297
|
+
}
|
|
298
|
+
} catch (_e) {
|
|
299
|
+
waitUntil = null;
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
if (waitUntil && typeof globalThis.__tqWaitUntil !== 'function') {
|
|
303
|
+
globalThis.__tqWaitUntil = waitUntil;
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
module.exports = { waitUntil: waitUntil };
|
|
307
|
+
`;
|
|
308
|
+
/**
|
|
309
|
+
* `lib/automations/event-bus.js`:
|
|
310
|
+
*
|
|
311
|
+
* - `emitBusinessEvent({ type, entityType, entityId, orderId?, payload,
|
|
312
|
+
* actor, actorType, dedupeKey }, req?)` writes the `teleport_events` row (a
|
|
313
|
+
* replayed dedupe key writes nothing) and, for a new row, schedules the
|
|
314
|
+
* queue. `req` is the request being served, when there is one: a local
|
|
315
|
+
* server's own address is read from it (see `appBaseUrl` in store.js; never
|
|
316
|
+
* a URL a caller hands in). Never throws: it resolves `{ recorded, id }`.
|
|
317
|
+
* - `scheduleDispatch(req?)` runs `dispatch()` off the request path: on
|
|
318
|
+
* Vercel inside its `waitUntil`, elsewhere through a non-awaited call to
|
|
319
|
+
* the app's own dispatch route. The visitor's request never waits for a
|
|
320
|
+
* handler.
|
|
321
|
+
* - `runTestEvent({ workflowId, event }, req)` runs one automation once for
|
|
322
|
+
* the editor's "send a test" (see the dispatcher).
|
|
323
|
+
* - `takeSignedRequest(key, expiresAt)` resolves true the first time the
|
|
324
|
+
* dispatch route takes a signed request, false for the same request again.
|
|
325
|
+
* - `dispatch({ req })` is the queue worker (./dispatcher.js).
|
|
326
|
+
*/
|
|
327
|
+
export const generateAutomationEventBusCode = () => `'use strict';
|
|
328
|
+
/**
|
|
329
|
+
* Automations: the in-app event bus (generated).
|
|
330
|
+
*/
|
|
331
|
+
if (typeof globalThis.fetch === 'undefined') {
|
|
332
|
+
globalThis.fetch = require('node-fetch');
|
|
333
|
+
}
|
|
334
|
+
var crypto = require('crypto');
|
|
335
|
+
var store = require('./store');
|
|
336
|
+
require('./wait-until');
|
|
337
|
+
|
|
338
|
+
var DISPATCH_PATH = '${AUTOMATIONS_DISPATCH_URL}';
|
|
339
|
+
var INSERT_EVENT_SQL = '${INSERT_EVENT_SQL}';
|
|
340
|
+
|
|
341
|
+
function column(value, maxLength) {
|
|
342
|
+
if (value === undefined || value === null || value === '') return null;
|
|
343
|
+
return String(value).slice(0, maxLength);
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
function eventValues(input) {
|
|
347
|
+
var type = column(input.type, 100);
|
|
348
|
+
if (!type) throw new Error('An event needs its type');
|
|
349
|
+
var payload = input.payload !== undefined ? input.payload : input.details;
|
|
350
|
+
return [
|
|
351
|
+
type,
|
|
352
|
+
column(input.dedupeKey, 255) || type + ':' + crypto.randomUUID(),
|
|
353
|
+
column(input.orderId, 64),
|
|
354
|
+
column(input.entityType, 40),
|
|
355
|
+
column(input.entityId, 64),
|
|
356
|
+
payload === undefined || payload === null ? null : JSON.stringify(payload),
|
|
357
|
+
column(input.actor, 255),
|
|
358
|
+
column(input.actorType, 50) || 'system',
|
|
359
|
+
];
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
async function emitBusinessEvent(input, req) {
|
|
363
|
+
var event = input || {};
|
|
364
|
+
try {
|
|
365
|
+
var values = eventValues(event);
|
|
366
|
+
var result = await store.withClient(function (client) {
|
|
367
|
+
return client.query(INSERT_EVENT_SQL, values);
|
|
368
|
+
});
|
|
369
|
+
var row = result && result.rows && result.rows[0];
|
|
370
|
+
if (!row) return { recorded: false, id: null };
|
|
371
|
+
scheduleDispatch(req);
|
|
372
|
+
return { recorded: true, id: String(row.id) };
|
|
373
|
+
} catch (error) {
|
|
374
|
+
console.error('[automations] could not record the ' + String(event.type) + ' event: ' + store.errorMessage(error));
|
|
375
|
+
return { recorded: false, id: null };
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
function scheduleDispatch(req) {
|
|
380
|
+
var waitUntil = process.env.VERCEL && typeof globalThis.__tqWaitUntil === 'function' ? globalThis.__tqWaitUntil : null;
|
|
381
|
+
if (waitUntil) {
|
|
382
|
+
try {
|
|
383
|
+
waitUntil(dispatch({ req: req }).catch(function (error) {
|
|
384
|
+
console.error('[automations] dispatch failed: ' + store.errorMessage(error));
|
|
385
|
+
}));
|
|
386
|
+
return 'wait-until';
|
|
387
|
+
} catch (_e) {}
|
|
388
|
+
}
|
|
389
|
+
try {
|
|
390
|
+
globalThis.fetch(store.appBaseUrl(req) + DISPATCH_PATH, {
|
|
391
|
+
method: 'POST',
|
|
392
|
+
headers: store.internalHeaders(),
|
|
393
|
+
body: '{}',
|
|
394
|
+
}).catch(function () {});
|
|
395
|
+
return 'fetch';
|
|
396
|
+
} catch (_e) {
|
|
397
|
+
return 'none';
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
function dispatch(options) {
|
|
402
|
+
return require('./dispatcher').dispatch(options);
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
function runTestEvent(input, req) {
|
|
406
|
+
return require('./dispatcher').runTest(input, { req: req });
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
function takeSignedRequest(key, expiresAt) {
|
|
410
|
+
return store.takeSignedRequest(key, expiresAt);
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
module.exports = {
|
|
414
|
+
emitBusinessEvent: emitBusinessEvent,
|
|
415
|
+
scheduleDispatch: scheduleDispatch,
|
|
416
|
+
dispatch: dispatch,
|
|
417
|
+
runTestEvent: runTestEvent,
|
|
418
|
+
takeSignedRequest: takeSignedRequest,
|
|
419
|
+
};
|
|
420
|
+
`;
|
|
421
|
+
//# sourceMappingURL=event-bus-source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-bus-source.js","sourceRoot":"","sources":["../../../src/automations/event-bus-source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAA;AAElE;;;;;GAKG;AAEH,MAAM,aAAa,GACjB,sFAAsF,CAAA;AAExF,gGAAgG;AAChG,MAAM,CAAC,MAAM,qBAAqB,GAAG,8BAA8B,CAAA;AAEnE,iFAAiF;AACjF,MAAM,CAAC,MAAM,gBAAgB,GAAG,gCAAgC,aAAa,4FAA4F,CAAA;AAEzK;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAAW,EAAE,CAAC;;;;EAIvD,wBAAwB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BA4DG,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqHlD,2BAA2B,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyE9B,CAAA;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,GAAW,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;CAoB5D,CAAA;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,GAAW,EAAE,CAAC;;;;;;;;;;;uBAWrC,wBAAwB;0BACrB,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiFzC,CAAA"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { UIDLCustomWorkflowNode, UIDLWorkflow } from '@teleporthq/teleport-types';
|
|
2
|
+
/**
|
|
3
|
+
* One handler module per automation (`lib/automations/handlers/<file>.js`,
|
|
4
|
+
* exporting `run(event, context, resumeFrom)`, see generateHandlerFunction)
|
|
5
|
+
* and the registry the dispatcher reads them from.
|
|
6
|
+
*/
|
|
7
|
+
export interface AutomationRegistryEntry {
|
|
8
|
+
eventType: string;
|
|
9
|
+
workflowId: string;
|
|
10
|
+
name: string;
|
|
11
|
+
fileName: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* `<slug of the name>-<first 8 of the id>`, unique within the project: a
|
|
15
|
+
* name taken already gets the whole id, then a counter.
|
|
16
|
+
*/
|
|
17
|
+
export declare const resolveAutomationHandlerFileNames: (workflows: UIDLWorkflow[]) => Map<string, string>;
|
|
18
|
+
export declare const generateAutomationHandlerModule: (workflow: UIDLWorkflow, customNodes?: Record<string, UIDLCustomWorkflowNode>) => string;
|
|
19
|
+
export declare const toRegistryEntry: (workflow: UIDLWorkflow, fileName: string) => AutomationRegistryEntry;
|
|
20
|
+
/**
|
|
21
|
+
* `lib/automations/registry.js`: `{ '<event-type>': [{ workflowId, name, run }] }`,
|
|
22
|
+
* in the order the workflows are listed.
|
|
23
|
+
*/
|
|
24
|
+
export declare const generateAutomationRegistryCode: (entries: AutomationRegistryEntry[]) => string;
|
|
25
|
+
//# sourceMappingURL=handler-module-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handler-module-generator.d.ts","sourceRoot":"","sources":["../../../src/automations/handler-module-generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAKtF;;;;GAIG;AAEH,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;CACjB;AAUD;;;GAGG;AACH,eAAO,MAAM,iCAAiC,cACjC,YAAY,EAAE,KACxB,IAAI,MAAM,EAAE,MAAM,CAoBpB,CAAA;AAED,eAAO,MAAM,+BAA+B,aAChC,YAAY,gBACR,OAAO,MAAM,EAAE,sBAAsB,CAAC,KACnD,MAOF,CAAA;AAED,eAAO,MAAM,eAAe,aAChB,YAAY,YACZ,MAAM,KACf,uBAKD,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,8BAA8B,YAAa,uBAAuB,EAAE,KAAG,MA0BnF,CAAA"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { generateHandlerFunction } from '../api-route-generator';
|
|
2
|
+
import { escapeSlackMessageBindings } from '../slack-message-values';
|
|
3
|
+
import { automationEventType } from './automations-scope';
|
|
4
|
+
const slugOf = (value) => value
|
|
5
|
+
.toLowerCase()
|
|
6
|
+
.replace(/[^a-z0-9]+/g, '-')
|
|
7
|
+
.replace(/^-+|-+$/g, '')
|
|
8
|
+
.slice(0, 50)
|
|
9
|
+
.replace(/-+$/g, '');
|
|
10
|
+
/**
|
|
11
|
+
* `<slug of the name>-<first 8 of the id>`, unique within the project: a
|
|
12
|
+
* name taken already gets the whole id, then a counter.
|
|
13
|
+
*/
|
|
14
|
+
export const resolveAutomationHandlerFileNames = (workflows) => {
|
|
15
|
+
const taken = new Set();
|
|
16
|
+
const names = new Map();
|
|
17
|
+
for (const workflow of workflows) {
|
|
18
|
+
const nameSlug = slugOf(workflow.name || '');
|
|
19
|
+
const idSlug = slugOf(workflow.id);
|
|
20
|
+
const join = (idPart) => [nameSlug, idPart].filter(Boolean).join('-').replace(/-+$/g, '') || 'automation';
|
|
21
|
+
let fileName = join(idSlug.slice(0, 8));
|
|
22
|
+
if (taken.has(fileName)) {
|
|
23
|
+
fileName = join(idSlug);
|
|
24
|
+
}
|
|
25
|
+
const base = fileName;
|
|
26
|
+
for (let counter = 2; taken.has(fileName); counter++) {
|
|
27
|
+
fileName = `${base}-${counter}`;
|
|
28
|
+
}
|
|
29
|
+
taken.add(fileName);
|
|
30
|
+
names.set(workflow.id, fileName);
|
|
31
|
+
}
|
|
32
|
+
return names;
|
|
33
|
+
};
|
|
34
|
+
export const generateAutomationHandlerModule = (workflow, customNodes) => {
|
|
35
|
+
const nodes = workflow.nodes || [];
|
|
36
|
+
const escaped = escapeSlackMessageBindings(nodes);
|
|
37
|
+
return generateHandlerFunction(escaped === nodes ? workflow : Object.assign(Object.assign({}, workflow), { nodes: escaped }), customNodes);
|
|
38
|
+
};
|
|
39
|
+
export const toRegistryEntry = (workflow, fileName) => ({
|
|
40
|
+
eventType: automationEventType(workflow),
|
|
41
|
+
workflowId: workflow.id,
|
|
42
|
+
name: workflow.name || workflow.id,
|
|
43
|
+
fileName,
|
|
44
|
+
});
|
|
45
|
+
/**
|
|
46
|
+
* `lib/automations/registry.js`: `{ '<event-type>': [{ workflowId, name, run }] }`,
|
|
47
|
+
* in the order the workflows are listed.
|
|
48
|
+
*/
|
|
49
|
+
export const generateAutomationRegistryCode = (entries) => {
|
|
50
|
+
const byType = new Map();
|
|
51
|
+
for (const entry of entries) {
|
|
52
|
+
const list = byType.get(entry.eventType) || [];
|
|
53
|
+
list.push(entry);
|
|
54
|
+
byType.set(entry.eventType, list);
|
|
55
|
+
}
|
|
56
|
+
const blocks = Array.from(byType.entries()).map(([eventType, list]) => {
|
|
57
|
+
const lines = list.map((entry) => ` { workflowId: ${JSON.stringify(entry.workflowId)}, name: ${JSON.stringify(entry.name)}, run: require('./handlers/${entry.fileName}.js').run },`);
|
|
58
|
+
return ` ${JSON.stringify(eventType)}: [\n${lines.join('\n')}\n ],`;
|
|
59
|
+
});
|
|
60
|
+
return `'use strict';
|
|
61
|
+
/**
|
|
62
|
+
* The project's automations by the event they react to (generated). The
|
|
63
|
+
* dispatcher (./dispatcher.js) runs the handlers of an event's type that are
|
|
64
|
+
* switched on in teleport_automations.
|
|
65
|
+
*/
|
|
66
|
+
module.exports = {
|
|
67
|
+
${blocks.join('\n')}
|
|
68
|
+
};
|
|
69
|
+
`;
|
|
70
|
+
};
|
|
71
|
+
//# sourceMappingURL=handler-module-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handler-module-generator.js","sourceRoot":"","sources":["../../../src/automations/handler-module-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `lib/automations/hydrate/<entity>.js`: the record an event is about, read
|
|
3
|
+
* from the database when the event is delivered, in the shape of the
|
|
4
|
+
* business-event catalog's details (teleport-gui
|
|
5
|
+
* `packages/workflow-schema/src/constants/business-events.ts`). Every module
|
|
6
|
+
* exports `hydrate(client, row, payload, context)` (`context.baseUrl`: the
|
|
7
|
+
* app's origin, for links), which resolves the envelope blocks
|
|
8
|
+
* it read (`{ order }`, `{ giftCards, order }`, …).
|
|
9
|
+
*
|
|
10
|
+
* The record is the truth: the dispatcher lays the hydrated block OVER the
|
|
11
|
+
* payload (a ledger row can be written by a caller, the record cannot), and
|
|
12
|
+
* an event whose record is not there (a deleted row, a forged id, a table the
|
|
13
|
+
* project lacks) is refused — "No such <entity>", no automation runs. A module
|
|
14
|
+
* therefore returns no entity block when it finds no record. Any other failed
|
|
15
|
+
* read throws, and the event is retried.
|
|
16
|
+
*
|
|
17
|
+
* Credentials and codes never leave the tables: every block names its
|
|
18
|
+
* fields. A form submission has no row of its own (its block is the
|
|
19
|
+
* submission, recorded whole), so `form` has no module.
|
|
20
|
+
*/
|
|
21
|
+
export interface HydratorOptions {
|
|
22
|
+
/** The auth users table (`resolveAuthUsersTableName`), for the user block. */
|
|
23
|
+
usersTable: string;
|
|
24
|
+
/**
|
|
25
|
+
* Where the order details page is served (`/orders`, its `[order_number]`
|
|
26
|
+
* slot dropped), for `order.pageUrl`; null when the project has no order
|
|
27
|
+
* details page, and the link is then left out.
|
|
28
|
+
*/
|
|
29
|
+
orderPagePrefix: string | null;
|
|
30
|
+
}
|
|
31
|
+
/** The module source for `entity`, or null when it has no table to read. */
|
|
32
|
+
export declare const generateAutomationHydratorCode: (entity: string, options: HydratorOptions) => string | null;
|
|
33
|
+
//# sourceMappingURL=hydrators-source.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hydrators-source.d.ts","sourceRoot":"","sources":["../../../src/automations/hydrators-source.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,WAAW,eAAe;IAC9B,8EAA8E;IAC9E,UAAU,EAAE,MAAM,CAAA;IAClB;;;;OAIG;IACH,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;CAC/B;AAimBD,4EAA4E;AAC5E,eAAO,MAAM,8BAA8B,WACjC,MAAM,WACL,eAAe,KACvB,MAAM,GAAG,IAGX,CAAA"}
|