@teleporthq/teleport-plugin-next-workflows 0.44.10 → 0.44.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +225 -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 +46 -8
- 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 +221 -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 +46 -8
- 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 +218 -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 +48 -8
- 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 +254 -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,122 @@
|
|
|
1
|
+
import { UIDLAuthentication } from '@teleporthq/teleport-types';
|
|
2
|
+
/**
|
|
3
|
+
* Steps no visitor may run, refused at generation when their workflow's route
|
|
4
|
+
* answers callers it should not.
|
|
5
|
+
*
|
|
6
|
+
* - `push-send-notification` sends to every subscriber of the site (or to one
|
|
7
|
+
* user's browsers), with a title, text and link the workflow fills in.
|
|
8
|
+
* - The runtime-storage file steps act on ANY file of the project with the
|
|
9
|
+
* project's storage key: the storage worker keeps no owner per file, and a
|
|
10
|
+
* file's id is in its public address.
|
|
11
|
+
*
|
|
12
|
+
* Who may run them:
|
|
13
|
+
*
|
|
14
|
+
* - Sending a push, deleting or listing files (`STAFF`): only this
|
|
15
|
+
* deployment's own server code — a route that is `serverOnly`, a cron (signed
|
|
16
|
+
* by the crons worker), an automation (the in-app event bus), a webhook that
|
|
17
|
+
* verifies its signature — or a route that requires a session with a named
|
|
18
|
+
* staff role: every role it admits is one of the project's staff roles (the
|
|
19
|
+
* admin panel's and `admin`, `TableAccess.resolveStaffRoles`, the rule the
|
|
20
|
+
* data API uses). "Any signed-in user" is not enough: on a site with open
|
|
21
|
+
* sign-up that is one sign-up away from anyone.
|
|
22
|
+
* - Reading one file's details (`SESSION`): the same, or any session — a
|
|
23
|
+
* private file comes back without an address, and a public one is public.
|
|
24
|
+
*
|
|
25
|
+
* A custom node only server code may call (`serverOnly`) runs in its CALLERS'
|
|
26
|
+
* server segments with this deployment's credentials, so it is as reachable
|
|
27
|
+
* as its most reachable caller: a public page's workflow calling it can replay
|
|
28
|
+
* its push or its delete.
|
|
29
|
+
*
|
|
30
|
+
* The refusal is thrown before any code is emitted, the way the raw-SQL and
|
|
31
|
+
* custom-code gates refuse; the editor shows its `message` (see
|
|
32
|
+
* {@link PublicStepRefusalError}). Disabled workflows are checked too: the
|
|
33
|
+
* generator emits every workflow it is given.
|
|
34
|
+
*/
|
|
35
|
+
export declare const PUBLIC_STEP_REFUSAL_CODE = "PUBLIC_STEP_REFUSED";
|
|
36
|
+
export declare const PUBLIC_RESTRICTED_STEP_TYPES: ReadonlyArray<string>;
|
|
37
|
+
export interface PublicStepRefusal {
|
|
38
|
+
/** The workflow's id, or the custom node's. */
|
|
39
|
+
ownerId: string;
|
|
40
|
+
ownerName: string;
|
|
41
|
+
ownerKind: 'workflow' | 'custom-node';
|
|
42
|
+
nodeId: string;
|
|
43
|
+
nodeType: string;
|
|
44
|
+
stepName: string;
|
|
45
|
+
/** For a server-only custom node: the caller that makes it reachable. */
|
|
46
|
+
calledFrom?: string;
|
|
47
|
+
/**
|
|
48
|
+
* Who can start the route today: absent for anyone, `[]` for any session,
|
|
49
|
+
* else the roles it admits (none of them all staff).
|
|
50
|
+
*/
|
|
51
|
+
admits?: string[];
|
|
52
|
+
}
|
|
53
|
+
/** One line of plain prose, for the person publishing. */
|
|
54
|
+
export declare const describePublicStepRefusals: (refusals: PublicStepRefusal[], staffRoles?: string[]) => string;
|
|
55
|
+
/**
|
|
56
|
+
* Thrown when a restricted step sits on a route that answers callers it should
|
|
57
|
+
* not. Its message carries a JSON body whose `message` is one sentence for the
|
|
58
|
+
* person publishing — the editor's publish flow shows exactly that sentence
|
|
59
|
+
* ("Publishing failed. …") instead of its "contact support" notice, the same
|
|
60
|
+
* contract a server refusal uses (`getApiErrorMessage`). `refusals` lists
|
|
61
|
+
* every refused step.
|
|
62
|
+
*/
|
|
63
|
+
export declare class PublicStepRefusalError extends Error {
|
|
64
|
+
readonly code = "PUBLIC_STEP_REFUSED";
|
|
65
|
+
readonly refusals: PublicStepRefusal[];
|
|
66
|
+
constructor(refusals: PublicStepRefusal[], staffRoles?: string[]);
|
|
67
|
+
}
|
|
68
|
+
interface NodeLike {
|
|
69
|
+
id?: string;
|
|
70
|
+
type?: string;
|
|
71
|
+
name?: string;
|
|
72
|
+
label?: string;
|
|
73
|
+
config?: Record<string, unknown>;
|
|
74
|
+
}
|
|
75
|
+
interface WorkflowLike {
|
|
76
|
+
name?: string;
|
|
77
|
+
nodes?: NodeLike[];
|
|
78
|
+
trigger?: {
|
|
79
|
+
type?: string;
|
|
80
|
+
};
|
|
81
|
+
webhookConfig?: {
|
|
82
|
+
verifySignature?: boolean;
|
|
83
|
+
};
|
|
84
|
+
protection?: RoutePolicyLike;
|
|
85
|
+
}
|
|
86
|
+
/** The fields of a route's policy (`UIDLWorkflowProtection`) that gate its callers. */
|
|
87
|
+
interface RoutePolicyLike {
|
|
88
|
+
requiresAuth?: boolean;
|
|
89
|
+
allowedRoles?: string[];
|
|
90
|
+
serverOnly?: boolean;
|
|
91
|
+
}
|
|
92
|
+
interface WorkflowsLike {
|
|
93
|
+
workflows?: Record<string, WorkflowLike>;
|
|
94
|
+
customNodes?: Record<string, WorkflowLike>;
|
|
95
|
+
}
|
|
96
|
+
export interface PublicStepGuardOptions {
|
|
97
|
+
/** The project's staff roles; `['admin']` when not given. */
|
|
98
|
+
staffRoles?: string[];
|
|
99
|
+
}
|
|
100
|
+
/** Every restricted step on a route that answers callers it should not (custom nodes included). */
|
|
101
|
+
export declare const findPublicRestrictedSteps: (workflows: WorkflowsLike | undefined, options?: PublicStepGuardOptions) => PublicStepRefusal[];
|
|
102
|
+
/** How reachable one custom node's push and file steps are, with the roles a session reach admits. */
|
|
103
|
+
export interface CustomNodeStepReach {
|
|
104
|
+
access: 'public' | 'session' | 'staff' | 'server';
|
|
105
|
+
admits?: string[];
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* The reach `findPublicRestrictedSteps` judges one custom node's steps by: its
|
|
109
|
+
* own policy, or — when it is server-only — its least-guarded caller's,
|
|
110
|
+
* workflows and custom nodes alike (`customNodeReach`). The editor's workflow
|
|
111
|
+
* agents read it (teleport-gui `workflow-route-access.ts`), so they refuse what
|
|
112
|
+
* the publish refuses.
|
|
113
|
+
*/
|
|
114
|
+
export declare const customNodeStepReach: (workflows: WorkflowsLike, customNodeId: string, options?: PublicStepGuardOptions) => CustomNodeStepReach;
|
|
115
|
+
/**
|
|
116
|
+
* Throws {@link PublicStepRefusalError} when any restricted step sits on a
|
|
117
|
+
* route that answers callers it should not. The staff roles are the project's
|
|
118
|
+
* (`TableAccess.resolveStaffRoles(authentication)`).
|
|
119
|
+
*/
|
|
120
|
+
export declare const assertNoPublicRestrictedSteps: (workflows: WorkflowsLike | undefined, authentication?: UIDLAuthentication | null) => void;
|
|
121
|
+
export {};
|
|
122
|
+
//# sourceMappingURL=public-step-guards.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public-step-guards.d.ts","sourceRoot":"","sources":["../../src/public-step-guards.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAI/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,eAAO,MAAM,wBAAwB,wBAAwB,CAAA;AAY7D,eAAO,MAAM,4BAA4B,EAAE,aAAa,CAAC,MAAM,CAAiC,CAAA;AAEhG,MAAM,WAAW,iBAAiB;IAChC,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,UAAU,GAAG,aAAa,CAAA;IACrC,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,yEAAyE;IACzE,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAClB;AAqCD,0DAA0D;AAC1D,eAAO,MAAM,0BAA0B,aAC3B,iBAAiB,EAAE,eACjB,MAAM,EAAE,KACnB,MA0BF,CAAA;AAED;;;;;;;GAOG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,QAAQ,CAAC,IAAI,yBAA2B;IACxC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,EAAE,CAAA;gBAE1B,QAAQ,EAAE,iBAAiB,EAAE,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE;CAajE;AAED,UAAU,QAAQ;IAChB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACjC;AAED,UAAU,YAAY;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAA;IAClB,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC3B,aAAa,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;IAC7C,UAAU,CAAC,EAAE,eAAe,CAAA;CAC7B;AAED,uFAAuF;AACvF,UAAU,eAAe;IACvB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAED,UAAU,aAAa;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;CAC3C;AA6LD,MAAM,WAAW,sBAAsB;IACrC,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;CACtB;AAED,mGAAmG;AACnG,eAAO,MAAM,yBAAyB,cACzB,aAAa,GAAG,SAAS,YAC3B,sBAAsB,KAC9B,iBAAiB,EAoBnB,CAAA;AAED,sGAAsG;AACtG,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAA;IACjD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAClB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,cACnB,aAAa,gBACV,MAAM,YACX,sBAAsB,KAC9B,mBAIF,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,cAC7B,aAAa,GAAG,SAAS,mBACnB,kBAAkB,GAAG,IAAI,KACzC,IAMF,CAAA"}
|
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.assertNoPublicRestrictedSteps = exports.customNodeStepReach = exports.findPublicRestrictedSteps = exports.PublicStepRefusalError = exports.describePublicStepRefusals = exports.PUBLIC_RESTRICTED_STEP_TYPES = exports.PUBLIC_STEP_REFUSAL_CODE = void 0;
|
|
4
|
+
const teleport_shared_1 = require("@teleporthq/teleport-shared");
|
|
5
|
+
const automations_scope_1 = require("./automations/automations-scope");
|
|
6
|
+
const payments_1 = require("./payments");
|
|
7
|
+
/**
|
|
8
|
+
* Steps no visitor may run, refused at generation when their workflow's route
|
|
9
|
+
* answers callers it should not.
|
|
10
|
+
*
|
|
11
|
+
* - `push-send-notification` sends to every subscriber of the site (or to one
|
|
12
|
+
* user's browsers), with a title, text and link the workflow fills in.
|
|
13
|
+
* - The runtime-storage file steps act on ANY file of the project with the
|
|
14
|
+
* project's storage key: the storage worker keeps no owner per file, and a
|
|
15
|
+
* file's id is in its public address.
|
|
16
|
+
*
|
|
17
|
+
* Who may run them:
|
|
18
|
+
*
|
|
19
|
+
* - Sending a push, deleting or listing files (`STAFF`): only this
|
|
20
|
+
* deployment's own server code — a route that is `serverOnly`, a cron (signed
|
|
21
|
+
* by the crons worker), an automation (the in-app event bus), a webhook that
|
|
22
|
+
* verifies its signature — or a route that requires a session with a named
|
|
23
|
+
* staff role: every role it admits is one of the project's staff roles (the
|
|
24
|
+
* admin panel's and `admin`, `TableAccess.resolveStaffRoles`, the rule the
|
|
25
|
+
* data API uses). "Any signed-in user" is not enough: on a site with open
|
|
26
|
+
* sign-up that is one sign-up away from anyone.
|
|
27
|
+
* - Reading one file's details (`SESSION`): the same, or any session — a
|
|
28
|
+
* private file comes back without an address, and a public one is public.
|
|
29
|
+
*
|
|
30
|
+
* A custom node only server code may call (`serverOnly`) runs in its CALLERS'
|
|
31
|
+
* server segments with this deployment's credentials, so it is as reachable
|
|
32
|
+
* as its most reachable caller: a public page's workflow calling it can replay
|
|
33
|
+
* its push or its delete.
|
|
34
|
+
*
|
|
35
|
+
* The refusal is thrown before any code is emitted, the way the raw-SQL and
|
|
36
|
+
* custom-code gates refuse; the editor shows its `message` (see
|
|
37
|
+
* {@link PublicStepRefusalError}). Disabled workflows are checked too: the
|
|
38
|
+
* generator emits every workflow it is given.
|
|
39
|
+
*/
|
|
40
|
+
exports.PUBLIC_STEP_REFUSAL_CODE = 'PUBLIC_STEP_REFUSED';
|
|
41
|
+
/** What each refused step does, in the words the editor shows, and who may run it. */
|
|
42
|
+
const RESTRICTED_STEPS = {
|
|
43
|
+
'push-send-notification': { does: 'sends a push notification', gate: 'staff' },
|
|
44
|
+
'file-storage-delete': { does: 'deletes a stored file', gate: 'staff' },
|
|
45
|
+
'file-storage-list': { does: 'lists the stored files', gate: 'staff' },
|
|
46
|
+
'file-storage-get-details': { does: "reads a stored file's details", gate: 'session' },
|
|
47
|
+
};
|
|
48
|
+
exports.PUBLIC_RESTRICTED_STEP_TYPES = Object.keys(RESTRICTED_STEPS);
|
|
49
|
+
/** The longest sentence the editor shows as it is (`getApiErrorMessage` in teleport-gui). */
|
|
50
|
+
const MAX_SENTENCE_LENGTH = 400;
|
|
51
|
+
const LISTED_STEPS = 3;
|
|
52
|
+
const quote = (text) => `"${text.replace(/["\r\n]+/g, ' ').trim()}"`;
|
|
53
|
+
const quoteList = (values) => values.map(quote).join(' or ');
|
|
54
|
+
/** Who can start the step's route today, in words. */
|
|
55
|
+
const whoCanStart = (refusal) => refusal.admits === undefined
|
|
56
|
+
? 'any visitor'
|
|
57
|
+
: refusal.admits.length === 0
|
|
58
|
+
? 'anyone signed in'
|
|
59
|
+
: `anyone with the role ${quoteList(refusal.admits)}`;
|
|
60
|
+
const describe = (refusal) => `${quote(refusal.stepName)} (${RESTRICTED_STEPS[refusal.nodeType].does}) in ${refusal.ownerKind === 'custom-node' ? 'the custom node' : 'the workflow'} ${quote(refusal.ownerName)}${refusal.calledFrom ? `, started from ${quote(refusal.calledFrom)}` : ''}, which ${whoCanStart(refusal)} can start`;
|
|
61
|
+
/**
|
|
62
|
+
* What to change: the roles that count as staff here (the admin panel's and
|
|
63
|
+
* `admin`), and how a role becomes one — by the admin-panel pages admitting it.
|
|
64
|
+
*/
|
|
65
|
+
const adviceFor = (staffRoles) => `Only an admin or your server should run it: let only the role ${quoteList(staffRoles.length > 0 ? staffRoles : [teleport_shared_1.TableAccess.ADMIN_ROLE])} start it (another role counts once your admin-panel pages admit it), or move it into a scheduled, signed webhook or automation workflow, then publish again.`;
|
|
66
|
+
const SHORT_ADVICE = 'Let only an admin role start it (a role your admin-panel pages admit), or move it into a scheduled, signed webhook or automation workflow, then publish again.';
|
|
67
|
+
/** One line of plain prose, for the person publishing. */
|
|
68
|
+
const describePublicStepRefusals = (refusals, staffRoles = [teleport_shared_1.TableAccess.ADMIN_ROLE]) => {
|
|
69
|
+
const advice = adviceFor(staffRoles);
|
|
70
|
+
const listed = refusals.slice(0, LISTED_STEPS).map(describe);
|
|
71
|
+
const more = refusals.length - listed.length;
|
|
72
|
+
const subject = refusals.length === 1
|
|
73
|
+
? `On your site the step ${listed[0]}.`
|
|
74
|
+
: `On your site ${refusals.length} steps meant only for an admin or your own server can be started by others: ${listed.join('; ')}${more > 0 ? `; and ${more} more` : ''}.`;
|
|
75
|
+
for (const candidate of [
|
|
76
|
+
`${subject} ${advice}`,
|
|
77
|
+
`${subject} ${SHORT_ADVICE}`,
|
|
78
|
+
`On your site the step ${describe(refusals[0])}${refusals.length > 1 ? `, and ${refusals.length - 1} more` : ''}. ${SHORT_ADVICE}`,
|
|
79
|
+
]) {
|
|
80
|
+
if (candidate.length <= MAX_SENTENCE_LENGTH) {
|
|
81
|
+
return candidate;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return `On your site ${refusals.length === 1 ? 'a step' : `${refusals.length} steps`} meant only for an admin or your own server (a push notification or a stored-file step) can be started by others. ${SHORT_ADVICE}`;
|
|
85
|
+
};
|
|
86
|
+
exports.describePublicStepRefusals = describePublicStepRefusals;
|
|
87
|
+
/**
|
|
88
|
+
* Thrown when a restricted step sits on a route that answers callers it should
|
|
89
|
+
* not. Its message carries a JSON body whose `message` is one sentence for the
|
|
90
|
+
* person publishing — the editor's publish flow shows exactly that sentence
|
|
91
|
+
* ("Publishing failed. …") instead of its "contact support" notice, the same
|
|
92
|
+
* contract a server refusal uses (`getApiErrorMessage`). `refusals` lists
|
|
93
|
+
* every refused step.
|
|
94
|
+
*/
|
|
95
|
+
class PublicStepRefusalError extends Error {
|
|
96
|
+
constructor(refusals, staffRoles) {
|
|
97
|
+
super(`Publishing refused: ${JSON.stringify({
|
|
98
|
+
code: exports.PUBLIC_STEP_REFUSAL_CODE,
|
|
99
|
+
message: (0, exports.describePublicStepRefusals)(refusals, staffRoles),
|
|
100
|
+
steps: refusals.map((r) => ({ owner: r.ownerId, node: r.nodeId, type: r.nodeType })),
|
|
101
|
+
})}`);
|
|
102
|
+
this.code = exports.PUBLIC_STEP_REFUSAL_CODE;
|
|
103
|
+
// `extends Error` loses the prototype when downlevelled to ES5.
|
|
104
|
+
Object.setPrototypeOf(this, PublicStepRefusalError.prototype);
|
|
105
|
+
this.name = 'PublicStepRefusalError';
|
|
106
|
+
this.refusals = refusals;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
exports.PublicStepRefusalError = PublicStepRefusalError;
|
|
110
|
+
const ACCESS_ORDER = ['public', 'session', 'staff', 'server'];
|
|
111
|
+
const lessGuarded = (a, b) => ACCESS_ORDER.indexOf(a) <= ACCESS_ORDER.indexOf(b) ? a : b;
|
|
112
|
+
const allows = (access, gate) => access === 'server' || access === 'staff' || (gate === 'session' && access === 'session');
|
|
113
|
+
const policyAccess = (protection, staffRoles) => {
|
|
114
|
+
if (!protection) {
|
|
115
|
+
return 'public';
|
|
116
|
+
}
|
|
117
|
+
if (protection.serverOnly === true) {
|
|
118
|
+
return 'server';
|
|
119
|
+
}
|
|
120
|
+
if (protection.requiresAuth === true) {
|
|
121
|
+
const roles = Array.isArray(protection.allowedRoles) ? protection.allowedRoles : [];
|
|
122
|
+
return roles.length > 0 && roles.every((role) => staffRoles.has(role)) ? 'staff' : 'session';
|
|
123
|
+
}
|
|
124
|
+
return 'public';
|
|
125
|
+
};
|
|
126
|
+
/** Who can make the route(s) a workflow compiles to run. */
|
|
127
|
+
const workflowAccess = (workflow, staffRoles) => {
|
|
128
|
+
// An automation runs in the in-app event bus, from this deployment's own code.
|
|
129
|
+
if ((0, automations_scope_1.isAutomationWorkflow)(workflow)) {
|
|
130
|
+
return 'server';
|
|
131
|
+
}
|
|
132
|
+
const triggerType = workflow.trigger && workflow.trigger.type;
|
|
133
|
+
// A cron route refuses every request the crons worker did not sign.
|
|
134
|
+
if (triggerType === 'event-cron-triggered') {
|
|
135
|
+
return 'server';
|
|
136
|
+
}
|
|
137
|
+
// A webhook route is the trigger's own: guarded only when it checks a signature.
|
|
138
|
+
if (triggerType === 'event-webhook-received' && workflow.webhookConfig) {
|
|
139
|
+
return (0, payments_1.isPaymentWebhookConfig)(workflow.webhookConfig) ||
|
|
140
|
+
workflow.webhookConfig.verifySignature === true
|
|
141
|
+
? 'server'
|
|
142
|
+
: 'public';
|
|
143
|
+
}
|
|
144
|
+
return policyAccess(workflow.protection, staffRoles);
|
|
145
|
+
};
|
|
146
|
+
const calledCustomNodeIds = (owner) => (owner.nodes || [])
|
|
147
|
+
.filter((node) => !!node && node.type === 'general-custom-node')
|
|
148
|
+
.map((node) => (node.config || {}).customNodeId || (node.config || {}).customWorkflowNodeId)
|
|
149
|
+
.filter((id) => typeof id === 'string' && id.length > 0);
|
|
150
|
+
/** How reachable a workflow's route is, with the roles it admits when a session is enough. */
|
|
151
|
+
const workflowReach = (workflow, staffRoles) => {
|
|
152
|
+
const access = workflowAccess(workflow, staffRoles);
|
|
153
|
+
return access === 'session'
|
|
154
|
+
? { access, admits: (workflow.protection && workflow.protection.allowedRoles) || [] }
|
|
155
|
+
: { access };
|
|
156
|
+
};
|
|
157
|
+
/**
|
|
158
|
+
* How reachable each custom node's steps are: a custom node with a policy of
|
|
159
|
+
* its own is called by the browser and its route answers by that policy; a
|
|
160
|
+
* server-only one runs in its callers' server segments, so it is as reachable
|
|
161
|
+
* as its most reachable caller (a workflow, or another custom node, the same
|
|
162
|
+
* way). Server-only with no caller: only server code reaches it.
|
|
163
|
+
*/
|
|
164
|
+
const customNodeReach = (workflows, staffRoles) => {
|
|
165
|
+
const customNodes = workflows.customNodes || {};
|
|
166
|
+
const callers = {};
|
|
167
|
+
const reach = {};
|
|
168
|
+
const resolving = new Set();
|
|
169
|
+
const reachOf = (customNodeId) => {
|
|
170
|
+
if (reach[customNodeId]) {
|
|
171
|
+
return reach[customNodeId];
|
|
172
|
+
}
|
|
173
|
+
const customNode = customNodes[customNodeId];
|
|
174
|
+
const own = policyAccess(customNode && customNode.protection, staffRoles);
|
|
175
|
+
if (own !== 'server') {
|
|
176
|
+
reach[customNodeId] =
|
|
177
|
+
own === 'session'
|
|
178
|
+
? {
|
|
179
|
+
access: own,
|
|
180
|
+
admits: (customNode.protection && customNode.protection.allowedRoles) || [],
|
|
181
|
+
}
|
|
182
|
+
: { access: own };
|
|
183
|
+
return reach[customNodeId];
|
|
184
|
+
}
|
|
185
|
+
if (resolving.has(customNodeId)) {
|
|
186
|
+
// A cycle back to itself adds no caller of its own.
|
|
187
|
+
return { access: own };
|
|
188
|
+
}
|
|
189
|
+
resolving.add(customNodeId);
|
|
190
|
+
let result = { access: 'server' };
|
|
191
|
+
for (const caller of callers[customNodeId] || []) {
|
|
192
|
+
const callerReach = caller.reach();
|
|
193
|
+
const access = lessGuarded(result.access, callerReach.access);
|
|
194
|
+
if (access !== result.access) {
|
|
195
|
+
result = Object.assign({ access, via: callerReach.via || caller.name }, (callerReach.admits ? { admits: callerReach.admits } : {}));
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
resolving.delete(customNodeId);
|
|
199
|
+
reach[customNodeId] = result;
|
|
200
|
+
return result;
|
|
201
|
+
};
|
|
202
|
+
for (const [workflowId, workflow] of Object.entries(workflows.workflows || {})) {
|
|
203
|
+
if (!workflow) {
|
|
204
|
+
continue;
|
|
205
|
+
}
|
|
206
|
+
for (const id of calledCustomNodeIds(workflow)) {
|
|
207
|
+
;
|
|
208
|
+
(callers[id] = callers[id] || []).push({
|
|
209
|
+
name: workflow.name || workflowId,
|
|
210
|
+
reach: () => workflowReach(workflow, staffRoles),
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
for (const [callerId, caller] of Object.entries(customNodes)) {
|
|
215
|
+
if (!caller) {
|
|
216
|
+
continue;
|
|
217
|
+
}
|
|
218
|
+
for (const id of calledCustomNodeIds(caller)) {
|
|
219
|
+
;
|
|
220
|
+
(callers[id] = callers[id] || []).push({
|
|
221
|
+
name: caller.name || callerId,
|
|
222
|
+
reach: () => reachOf(callerId),
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
for (const id of Object.keys(customNodes)) {
|
|
227
|
+
reachOf(id);
|
|
228
|
+
}
|
|
229
|
+
return reach;
|
|
230
|
+
};
|
|
231
|
+
const collectFrom = (owners, ownerKind, reachOf, out) => {
|
|
232
|
+
for (const [ownerId, owner] of Object.entries(owners || {})) {
|
|
233
|
+
if (!owner || !Array.isArray(owner.nodes)) {
|
|
234
|
+
continue;
|
|
235
|
+
}
|
|
236
|
+
const restricted = owner.nodes.filter((node) => !!node && typeof node.type === 'string' && node.type in RESTRICTED_STEPS);
|
|
237
|
+
if (restricted.length === 0) {
|
|
238
|
+
continue;
|
|
239
|
+
}
|
|
240
|
+
const reach = reachOf(ownerId, owner);
|
|
241
|
+
for (const node of restricted) {
|
|
242
|
+
if (allows(reach.access, RESTRICTED_STEPS[node.type].gate)) {
|
|
243
|
+
continue;
|
|
244
|
+
}
|
|
245
|
+
out.push(Object.assign(Object.assign({ ownerId, ownerName: owner.name || ownerId, ownerKind, nodeId: node.id || '?', nodeType: node.type, stepName: node.name || node.label || node.type }, (reach.via ? { calledFrom: reach.via } : {})), (reach.access === 'session' ? { admits: reach.admits || [] } : {})));
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
};
|
|
249
|
+
/** Every restricted step on a route that answers callers it should not (custom nodes included). */
|
|
250
|
+
const findPublicRestrictedSteps = (workflows, options = {}) => {
|
|
251
|
+
const refusals = [];
|
|
252
|
+
if (!workflows) {
|
|
253
|
+
return refusals;
|
|
254
|
+
}
|
|
255
|
+
const staffRoles = new Set(options.staffRoles || [teleport_shared_1.TableAccess.ADMIN_ROLE]);
|
|
256
|
+
collectFrom(workflows.workflows, 'workflow', (_id, workflow) => workflowReach(workflow, staffRoles), refusals);
|
|
257
|
+
const reach = customNodeReach(workflows, staffRoles);
|
|
258
|
+
collectFrom(workflows.customNodes, 'custom-node', (id) => reach[id] || { access: 'public' }, refusals);
|
|
259
|
+
return refusals;
|
|
260
|
+
};
|
|
261
|
+
exports.findPublicRestrictedSteps = findPublicRestrictedSteps;
|
|
262
|
+
/**
|
|
263
|
+
* The reach `findPublicRestrictedSteps` judges one custom node's steps by: its
|
|
264
|
+
* own policy, or — when it is server-only — its least-guarded caller's,
|
|
265
|
+
* workflows and custom nodes alike (`customNodeReach`). The editor's workflow
|
|
266
|
+
* agents read it (teleport-gui `workflow-route-access.ts`), so they refuse what
|
|
267
|
+
* the publish refuses.
|
|
268
|
+
*/
|
|
269
|
+
const customNodeStepReach = (workflows, customNodeId, options = {}) => {
|
|
270
|
+
const staffRoles = new Set(options.staffRoles || [teleport_shared_1.TableAccess.ADMIN_ROLE]);
|
|
271
|
+
const reach = customNodeReach(workflows, staffRoles)[customNodeId] || { access: 'public' };
|
|
272
|
+
return Object.assign({ access: reach.access }, (reach.admits ? { admits: reach.admits } : {}));
|
|
273
|
+
};
|
|
274
|
+
exports.customNodeStepReach = customNodeStepReach;
|
|
275
|
+
/**
|
|
276
|
+
* Throws {@link PublicStepRefusalError} when any restricted step sits on a
|
|
277
|
+
* route that answers callers it should not. The staff roles are the project's
|
|
278
|
+
* (`TableAccess.resolveStaffRoles(authentication)`).
|
|
279
|
+
*/
|
|
280
|
+
const assertNoPublicRestrictedSteps = (workflows, authentication) => {
|
|
281
|
+
const staffRoles = teleport_shared_1.TableAccess.resolveStaffRoles(authentication);
|
|
282
|
+
const refusals = (0, exports.findPublicRestrictedSteps)(workflows, { staffRoles });
|
|
283
|
+
if (refusals.length > 0) {
|
|
284
|
+
throw new PublicStepRefusalError(refusals, staffRoles);
|
|
285
|
+
}
|
|
286
|
+
};
|
|
287
|
+
exports.assertNoPublicRestrictedSteps = assertNoPublicRestrictedSteps;
|
|
288
|
+
//# sourceMappingURL=public-step-guards.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public-step-guards.js","sourceRoot":"","sources":["../../src/public-step-guards.ts"],"names":[],"mappings":";;;AAAA,iEAAyD;AAEzD,uEAAsE;AACtE,yCAAmD;AAEnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEU,QAAA,wBAAwB,GAAG,qBAAqB,CAAA;AAI7D,sFAAsF;AACtF,MAAM,gBAAgB,GAAqD;IACzE,wBAAwB,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE,IAAI,EAAE,OAAO,EAAE;IAC9E,qBAAqB,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,OAAO,EAAE;IACvE,mBAAmB,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,OAAO,EAAE;IACtE,0BAA0B,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE,IAAI,EAAE,SAAS,EAAE;CACvF,CAAA;AAEY,QAAA,4BAA4B,GAA0B,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;AAmBhG,6FAA6F;AAC7F,MAAM,mBAAmB,GAAG,GAAG,CAAA;AAC/B,MAAM,YAAY,GAAG,CAAC,CAAA;AAEtB,MAAM,KAAK,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAA;AAEpF,MAAM,SAAS,GAAG,CAAC,MAAgB,EAAU,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;AAE9E,sDAAsD;AACtD,MAAM,WAAW,GAAG,CAAC,OAA0B,EAAU,EAAE,CACzD,OAAO,CAAC,MAAM,KAAK,SAAS;IAC1B,CAAC,CAAC,aAAa;IACf,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;QAC7B,CAAC,CAAC,kBAAkB;QACpB,CAAC,CAAC,wBAAwB,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAA;AAEzD,MAAM,QAAQ,GAAG,CAAC,OAA0B,EAAU,EAAE,CACtD,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,QACpE,OAAO,CAAC,SAAS,KAAK,aAAa,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,cAC5D,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,GAC1B,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,kBAAkB,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EACvE,WAAW,WAAW,CAAC,OAAO,CAAC,YAAY,CAAA;AAE7C;;;GAGG;AACH,MAAM,SAAS,GAAG,CAAC,UAAoB,EAAU,EAAE,CACjD,iEAAiE,SAAS,CACxE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,6BAAW,CAAC,UAAU,CAAC,CAC9D,+JAA+J,CAAA;AAElK,MAAM,YAAY,GAChB,gKAAgK,CAAA;AAElK,0DAA0D;AACnD,MAAM,0BAA0B,GAAG,CACxC,QAA6B,EAC7B,aAAuB,CAAC,6BAAW,CAAC,UAAU,CAAC,EACvC,EAAE;IACV,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC,CAAA;IACpC,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAC5D,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;IAC5C,MAAM,OAAO,GACX,QAAQ,CAAC,MAAM,KAAK,CAAC;QACnB,CAAC,CAAC,yBAAyB,MAAM,CAAC,CAAC,CAAC,GAAG;QACvC,CAAC,CAAC,gBACE,QAAQ,CAAC,MACX,+EAA+E,MAAM,CAAC,IAAI,CACxF,IAAI,CACL,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAA;IACjD,KAAK,MAAM,SAAS,IAAI;QACtB,GAAG,OAAO,IAAI,MAAM,EAAE;QACtB,GAAG,OAAO,IAAI,YAAY,EAAE;QAC5B,yBAAyB,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAC5C,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAC9D,KAAK,YAAY,EAAE;KACpB,EAAE;QACD,IAAI,SAAS,CAAC,MAAM,IAAI,mBAAmB,EAAE;YAC3C,OAAO,SAAS,CAAA;SACjB;KACF;IACD,OAAO,gBACL,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,QACvD,qHAAqH,YAAY,EAAE,CAAA;AACrI,CAAC,CAAA;AA7BY,QAAA,0BAA0B,8BA6BtC;AAED;;;;;;;GAOG;AACH,MAAa,sBAAuB,SAAQ,KAAK;IAI/C,YAAY,QAA6B,EAAE,UAAqB;QAC9D,KAAK,CACH,uBAAuB,IAAI,CAAC,SAAS,CAAC;YACpC,IAAI,EAAE,gCAAwB;YAC9B,OAAO,EAAE,IAAA,kCAA0B,EAAC,QAAQ,EAAE,UAAU,CAAC;YACzD,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;SACrF,CAAC,EAAE,CACL,CAAA;QAVM,SAAI,GAAG,gCAAwB,CAAA;QAWtC,gEAAgE;QAChE,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,sBAAsB,CAAC,SAAS,CAAC,CAAA;QAC7D,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAA;QACpC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;CACF;AAjBD,wDAiBC;AAgCD,MAAM,YAAY,GAAkB,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;AAE5E,MAAM,WAAW,GAAG,CAAC,CAAc,EAAE,CAAc,EAAe,EAAE,CAClE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAE5D,MAAM,MAAM,GAAG,CAAC,MAAmB,EAAE,IAAc,EAAW,EAAE,CAC9D,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,CAAC,CAAA;AAE3F,MAAM,YAAY,GAAG,CACnB,UAAuC,EACvC,UAAuB,EACV,EAAE;IACf,IAAI,CAAC,UAAU,EAAE;QACf,OAAO,QAAQ,CAAA;KAChB;IACD,IAAI,UAAU,CAAC,UAAU,KAAK,IAAI,EAAE;QAClC,OAAO,QAAQ,CAAA;KAChB;IACD,IAAI,UAAU,CAAC,YAAY,KAAK,IAAI,EAAE;QACpC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAA;QACnF,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAA;KAC7F;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AAED,4DAA4D;AAC5D,MAAM,cAAc,GAAG,CAAC,QAAsB,EAAE,UAAuB,EAAe,EAAE;IACtF,+EAA+E;IAC/E,IAAI,IAAA,wCAAoB,EAAC,QAAiB,CAAC,EAAE;QAC3C,OAAO,QAAQ,CAAA;KAChB;IACD,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAA;IAC7D,oEAAoE;IACpE,IAAI,WAAW,KAAK,sBAAsB,EAAE;QAC1C,OAAO,QAAQ,CAAA;KAChB;IACD,iFAAiF;IACjF,IAAI,WAAW,KAAK,wBAAwB,IAAI,QAAQ,CAAC,aAAa,EAAE;QACtE,OAAO,IAAA,iCAAsB,EAAC,QAAQ,CAAC,aAAa,CAAC;YACnD,QAAQ,CAAC,aAAa,CAAC,eAAe,KAAK,IAAI;YAC/C,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,QAAQ,CAAA;KACb;IACD,OAAO,YAAY,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;AACtD,CAAC,CAAA;AAED,MAAM,mBAAmB,GAAG,CAAC,KAAmB,EAAY,EAAE,CAC5D,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;KAChB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,qBAAqB,CAAC;KAC/D,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,oBAAoB,CAAC;KAC3F,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;AAU1E,8FAA8F;AAC9F,MAAM,aAAa,GAAG,CAAC,QAAsB,EAAE,UAAuB,EAAS,EAAE;IAC/E,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;IACnD,OAAO,MAAM,KAAK,SAAS;QACzB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE;QACrF,CAAC,CAAC,EAAE,MAAM,EAAE,CAAA;AAChB,CAAC,CAAA;AAED;;;;;;GAMG;AACH,MAAM,eAAe,GAAG,CACtB,SAAwB,EACxB,UAAuB,EACA,EAAE;IACzB,MAAM,WAAW,GAAG,SAAS,CAAC,WAAW,IAAI,EAAE,CAAA;IAC/C,MAAM,OAAO,GAAgE,EAAE,CAAA;IAC/E,MAAM,KAAK,GAA0B,EAAE,CAAA;IACvC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAA;IAEnC,MAAM,OAAO,GAAG,CAAC,YAAoB,EAAS,EAAE;QAC9C,IAAI,KAAK,CAAC,YAAY,CAAC,EAAE;YACvB,OAAO,KAAK,CAAC,YAAY,CAAC,CAAA;SAC3B;QACD,MAAM,UAAU,GAAG,WAAW,CAAC,YAAY,CAAC,CAAA;QAC5C,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,IAAI,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;QACzE,IAAI,GAAG,KAAK,QAAQ,EAAE;YACpB,KAAK,CAAC,YAAY,CAAC;gBACjB,GAAG,KAAK,SAAS;oBACf,CAAC,CAAC;wBACE,MAAM,EAAE,GAAG;wBACX,MAAM,EAAE,CAAC,UAAU,CAAC,UAAU,IAAI,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE;qBAC5E;oBACH,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAA;YACrB,OAAO,KAAK,CAAC,YAAY,CAAC,CAAA;SAC3B;QACD,IAAI,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;YAC/B,oDAAoD;YACpD,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAA;SACvB;QACD,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;QAC3B,IAAI,MAAM,GAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAA;QACxC,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE;YAChD,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,EAAE,CAAA;YAClC,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;YAC7D,IAAI,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE;gBAC5B,MAAM,mBACJ,MAAM,EACN,GAAG,EAAE,WAAW,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,IAChC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAC9D,CAAA;aACF;SACF;QACD,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;QAC9B,KAAK,CAAC,YAAY,CAAC,GAAG,MAAM,CAAA;QAC5B,OAAO,MAAM,CAAA;IACf,CAAC,CAAA;IAED,KAAK,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE;QAC9E,IAAI,CAAC,QAAQ,EAAE;YACb,SAAQ;SACT;QACD,KAAK,MAAM,EAAE,IAAI,mBAAmB,CAAC,QAAQ,CAAC,EAAE;YAC9C,CAAC;YAAA,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;gBACtC,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,UAAU;gBACjC,KAAK,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,UAAU,CAAC;aACjD,CAAC,CAAA;SACH;KACF;IACD,KAAK,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;QAC5D,IAAI,CAAC,MAAM,EAAE;YACX,SAAQ;SACT;QACD,KAAK,MAAM,EAAE,IAAI,mBAAmB,CAAC,MAAM,CAAC,EAAE;YAC5C,CAAC;YAAA,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;gBACtC,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,QAAQ;gBAC7B,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;aAC/B,CAAC,CAAA;SACH;KACF;IACD,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;QACzC,OAAO,CAAC,EAAE,CAAC,CAAA;KACZ;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED,MAAM,WAAW,GAAG,CAClB,MAAgD,EAChD,SAAyC,EACzC,OAAwD,EACxD,GAAwB,EAClB,EAAE;IACR,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE;QAC3D,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YACzC,SAAQ;SACT;QACD,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CACnC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,IAAI,gBAAgB,CACnF,CAAA;QACD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;YAC3B,SAAQ;SACT;QACD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QACrC,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE;YAC7B,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,gBAAgB,CAAC,IAAI,CAAC,IAAc,CAAC,CAAC,IAAI,CAAC,EAAE;gBACpE,SAAQ;aACT;YACD,GAAG,CAAC,IAAI,+BACN,OAAO,EACP,SAAS,EAAE,KAAK,CAAC,IAAI,IAAI,OAAO,EAChC,SAAS,EACT,MAAM,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EACtB,QAAQ,EAAE,IAAI,CAAC,IAAc,EAC7B,QAAQ,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,IAAK,IAAI,CAAC,IAAe,IACvD,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAC5C,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EACrE,CAAA;SACH;KACF;AACH,CAAC,CAAA;AAOD,mGAAmG;AAC5F,MAAM,yBAAyB,GAAG,CACvC,SAAoC,EACpC,UAAkC,EAAE,EACf,EAAE;IACvB,MAAM,QAAQ,GAAwB,EAAE,CAAA;IACxC,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,QAAQ,CAAA;KAChB;IACD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,6BAAW,CAAC,UAAU,CAAC,CAAC,CAAA;IAC1E,WAAW,CACT,SAAS,CAAC,SAAS,EACnB,UAAU,EACV,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,UAAU,CAAC,EACtD,QAAQ,CACT,CAAA;IACD,MAAM,KAAK,GAAG,eAAe,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;IACpD,WAAW,CACT,SAAS,CAAC,WAAW,EACrB,aAAa,EACb,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,EACzC,QAAQ,CACT,CAAA;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AAvBY,QAAA,yBAAyB,6BAuBrC;AAQD;;;;;;GAMG;AACI,MAAM,mBAAmB,GAAG,CACjC,SAAwB,EACxB,YAAoB,EACpB,UAAkC,EAAE,EACf,EAAE;IACvB,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,6BAAW,CAAC,UAAU,CAAC,CAAC,CAAA;IAC1E,MAAM,KAAK,GAAG,eAAe,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAA;IAC1F,uBAAS,MAAM,EAAE,KAAK,CAAC,MAAM,IAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;AACpF,CAAC,CAAA;AARY,QAAA,mBAAmB,uBAQ/B;AAED;;;;GAIG;AACI,MAAM,6BAA6B,GAAG,CAC3C,SAAoC,EACpC,cAA0C,EACpC,EAAE;IACR,MAAM,UAAU,GAAG,6BAAW,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAA;IAChE,MAAM,QAAQ,GAAG,IAAA,iCAAyB,EAAC,SAAS,EAAE,EAAE,UAAU,EAAE,CAAC,CAAA;IACrE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;QACvB,MAAM,IAAI,sBAAsB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;KACvD;AACH,CAAC,CAAA;AATY,QAAA,6BAA6B,iCASzC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { UIDLAuthentication, UIDLWorkflowNode, UIDLWorkflowProtection, UIDLWorkflows } from '@teleporthq/teleport-types';
|
|
2
|
+
import { SegmentTrust } from './segment-trust';
|
|
3
|
+
import { WorkflowSegment } from './types';
|
|
4
|
+
/**
|
|
5
|
+
* Every refusal this code generator makes over a project's workflows at
|
|
6
|
+
* publish, in ONE place. `workflow-project-plugin` makes them through
|
|
7
|
+
* `assertWorkflowPublishGates` (before any code is emitted) and
|
|
8
|
+
* `assertSegmentRouteGates` (as it emits each server segment route), throwing
|
|
9
|
+
* the first; the editor asks `collectWorkflowPublishRefusals`, which runs the
|
|
10
|
+
* same checks over the same routes and reports every refused step, before an
|
|
11
|
+
* AI write lands and before a publish goes out (teleport-gui
|
|
12
|
+
* `publish-refusal-checks.ts`). A new workflow refusal is added here, to the
|
|
13
|
+
* gates below, so the editor's assistant applies it with no change of its own.
|
|
14
|
+
*
|
|
15
|
+
* Two kinds:
|
|
16
|
+
* - `refused`: the export stops (raw SQL a value cannot be bound into, custom
|
|
17
|
+
* code naming a platform secret, a push or stored-file step on a route
|
|
18
|
+
* callers it should not serve can start, a recorded event fed by a browser
|
|
19
|
+
* value);
|
|
20
|
+
* - `never-sends`: the export goes on, but an email or SMS step that sends only
|
|
21
|
+
* the visitor's input to an address the visitor supplies, or takes its sender
|
|
22
|
+
* from the visitor, is refused at run time (`outbound-message-guard.ts`).
|
|
23
|
+
*/
|
|
24
|
+
export type WorkflowPublishRefusalKind = 'refused' | 'never-sends';
|
|
25
|
+
export interface WorkflowPublishRefusal {
|
|
26
|
+
kind: WorkflowPublishRefusalKind;
|
|
27
|
+
/** Which of the generator's checks refused it. */
|
|
28
|
+
check: string;
|
|
29
|
+
/** The workflow's id, or the custom node's. */
|
|
30
|
+
ownerId: string;
|
|
31
|
+
ownerKind: 'workflow' | 'custom-node';
|
|
32
|
+
/** The refused step; absent when the check names it only in `message`. */
|
|
33
|
+
nodeId?: string;
|
|
34
|
+
/** One sentence for the owner, in the generator's words. */
|
|
35
|
+
message: string;
|
|
36
|
+
}
|
|
37
|
+
type Refusal = Omit<WorkflowPublishRefusal, 'kind' | 'check'>;
|
|
38
|
+
/** R-N23: what the owner is told about a newsletter sign-up step anywhere else. */
|
|
39
|
+
export declare const NEWSLETTER_SIGNUP_REFUSAL_MESSAGE = "The newsletter sign-up step runs only when a visitor submits a form.";
|
|
40
|
+
export declare class NewsletterSignupRefusalError extends Error {
|
|
41
|
+
readonly code = "NEWSLETTER_SIGNUP_REFUSED";
|
|
42
|
+
constructor(refusals: Refusal[]);
|
|
43
|
+
}
|
|
44
|
+
/** The plugin's gates over the workflow block, before any code is emitted: throws the first refusal. */
|
|
45
|
+
export declare const assertWorkflowPublishGates: (workflows: UIDLWorkflows | undefined, authentication?: UIDLAuthentication | null) => void;
|
|
46
|
+
export interface SegmentRouteGateOptions {
|
|
47
|
+
/** The workflow's or custom node's name. */
|
|
48
|
+
owner: string;
|
|
49
|
+
/** Its nodes, for the step names. */
|
|
50
|
+
graphNodes?: UIDLWorkflowNode[];
|
|
51
|
+
protection?: UIDLWorkflowProtection;
|
|
52
|
+
/** The roles only the business's staff hold (`TableAccess.resolveStaffRoles`). */
|
|
53
|
+
staffRoles?: string[];
|
|
54
|
+
}
|
|
55
|
+
/** The checks the plugin makes as it emits one server segment route: throws the first refusal. */
|
|
56
|
+
export declare const assertSegmentRouteGates: (segment: WorkflowSegment, trust: SegmentTrust | undefined, options: SegmentRouteGateOptions) => void;
|
|
57
|
+
/**
|
|
58
|
+
* Every refusal publishing would make over `workflows` (the project's exported
|
|
59
|
+
* UIDL block, or the part of it a change touches): the gates above, run over a
|
|
60
|
+
* copy of the block so `workflows` stays as it is, and the routes' sends,
|
|
61
|
+
* marked without a build-log line. `authentication` is the project's
|
|
62
|
+
* (`uidl.authentication`): it names the staff roles.
|
|
63
|
+
*/
|
|
64
|
+
export declare const collectWorkflowPublishRefusals: (workflows: UIDLWorkflows | undefined, authentication?: UIDLAuthentication | null) => WorkflowPublishRefusal[];
|
|
65
|
+
export {};
|
|
66
|
+
//# sourceMappingURL=publish-refusals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publish-refusals.d.ts","sourceRoot":"","sources":["../../src/publish-refusals.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,EAKlB,gBAAgB,EAChB,sBAAsB,EACtB,aAAa,EACd,MAAM,4BAA4B,CAAA;AAsBnC,OAAO,EAAqB,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAKjE,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAEzC;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,MAAM,0BAA0B,GAAG,SAAS,GAAG,aAAa,CAAA;AAElE,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,0BAA0B,CAAA;IAChC,kDAAkD;IAClD,KAAK,EAAE,MAAM,CAAA;IACb,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,UAAU,GAAG,aAAa,CAAA;IACrC,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,4DAA4D;IAC5D,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,KAAK,OAAO,GAAG,IAAI,CAAC,sBAAsB,EAAE,MAAM,GAAG,OAAO,CAAC,CAAA;AAmG7D,mFAAmF;AACnF,eAAO,MAAM,iCAAiC,yEAC0B,CAAA;AA2BxE,qBAAa,4BAA6B,SAAQ,KAAK;IACrD,QAAQ,CAAC,IAAI,+BAA8B;gBAE/B,QAAQ,EAAE,OAAO,EAAE;CAMhC;AAyBD,wGAAwG;AACxG,eAAO,MAAM,0BAA0B,cAC1B,aAAa,GAAG,SAAS,mBACnB,kBAAkB,GAAG,IAAI,KACzC,IAOF,CAAA;AAED,MAAM,WAAW,uBAAuB;IACtC,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAA;IACb,qCAAqC;IACrC,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC/B,UAAU,CAAC,EAAE,sBAAsB,CAAA;IACnC,kFAAkF;IAClF,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;CACtB;AA2BD,kGAAkG;AAClG,eAAO,MAAM,uBAAuB,YACzB,eAAe,SACjB,YAAY,GAAG,SAAS,WACtB,uBAAuB,KAC/B,IAIF,CAAA;AA2GD;;;;;;GAMG;AACH,eAAO,MAAM,8BAA8B,cAC9B,aAAa,GAAG,SAAS,mBACnB,kBAAkB,GAAG,IAAI,KACzC,sBAAsB,EA+CxB,CAAA"}
|