@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
|
@@ -1,12 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.generateServerRuntimeCode = void 0;
|
|
3
|
+
exports.generateServerRuntimeCode = exports.STEP_EXPIRED_MESSAGE = exports.SIGNED_RESULT_CLOCK_SKEW_MS = exports.SIGNED_RESULT_MAX_AGE_MS = void 0;
|
|
4
|
+
const configured_nextauth_url_1 = require("./configured-nextauth-url");
|
|
5
|
+
const session_cookie_resolver_1 = require("./session-cookie-resolver");
|
|
6
|
+
const workflow_auth_generator_1 = require("./workflow-auth-generator");
|
|
7
|
+
const session_revocation_generator_1 = require("./session-revocation-generator");
|
|
4
8
|
const vercel_functions_1 = require("./vercel-functions");
|
|
9
|
+
/** How long a signed step result stays good: older ones are refused. */
|
|
10
|
+
exports.SIGNED_RESULT_MAX_AGE_MS = 10 * 60 * 1000;
|
|
11
|
+
/** How far ahead of a route's clock another instance's signature may be dated. */
|
|
12
|
+
exports.SIGNED_RESULT_CLOCK_SKEW_MS = 60 * 1000;
|
|
13
|
+
/** What a visitor is told when the run a step continues has expired (409). */
|
|
14
|
+
exports.STEP_EXPIRED_MESSAGE = 'This took too long. Please start again.';
|
|
5
15
|
/**
|
|
6
16
|
* `utils/workflows/server-runtime.js`: what every server route loads. It is the
|
|
7
17
|
* shared runtime utilities plus the parts only a server may run — the signed
|
|
8
|
-
* hand-off between server segments
|
|
9
|
-
* of it reaches the browser bundle.
|
|
18
|
+
* hand-off between server segments, the visitor's session identity and the
|
|
19
|
+
* internal-call credential — so none of it reaches the browser bundle.
|
|
10
20
|
*
|
|
11
21
|
* WHY THE HAND-OFF IS SIGNED. A workflow runs as a chain of segments, and the
|
|
12
22
|
* result of every server segment reaches the next one THROUGH the caller: the
|
|
@@ -15,17 +25,36 @@ const vercel_functions_1 = require("./vercel-functions");
|
|
|
15
25
|
* earlier one — an order marked valid, a password-reset token marked checked
|
|
16
26
|
* — and the later segment acted on it. So:
|
|
17
27
|
*
|
|
28
|
+
* - Every result belongs to a RUN (`__sigRun`): one execution of the workflow.
|
|
29
|
+
* The first server segment of the graph opens it with a random id signed for
|
|
30
|
+
* this workflow; every later segment continues the run its request carries.
|
|
18
31
|
* - `segmentReply` signs every result its segment produced (`__sig`, an HMAC
|
|
19
|
-
* keyed from NEXTAUTH_SECRET over the
|
|
20
|
-
*
|
|
21
|
-
*
|
|
32
|
+
* keyed from NEXTAUTH_SECRET over the workflow, the producing segment, the
|
|
33
|
+
* run, the time of signing, the node id and the JSON value), and one link of
|
|
34
|
+
* the run's chain (`__sigOrder`): the order of the context's keys as the
|
|
35
|
+
* caller will hold them (`params` in custom JavaScript are read by
|
|
36
|
+
* position), the call's number in the run, and the signature of every result
|
|
37
|
+
* the caller may hand on, bound to the same workflow, run and time.
|
|
22
38
|
* - `claimSegmentContext` puts the keys back in that signed order (a key the
|
|
23
|
-
* request left out keeps its slot, empty), empties every server result
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
39
|
+
* request left out keeps its slot, empty), empties every server result whose
|
|
40
|
+
* signature does not hold — another workflow's, another run's, one older
|
|
41
|
+
* than ten minutes, one the link does not list with that very signature (a
|
|
42
|
+
* result of another call of the same segment: a run is one chain) — drops
|
|
43
|
+
* custom-node and loop bookkeeping a request cannot legitimately carry,
|
|
44
|
+
* skips every node a server if / switch upstream did not choose (or whose
|
|
45
|
+
* decision is missing), and takes `__previousNodeResult` from the signed
|
|
46
|
+
* result of the server node that ran just before.
|
|
47
|
+
*
|
|
48
|
+
* WHO THE VISITOR IS comes from the session cookie, never from the request
|
|
49
|
+
* body. `claimSegmentContext` drops whatever the request says about it and
|
|
50
|
+
* leaves the reserved keys `__sessionUserId`, `__sessionRole` and
|
|
51
|
+
* `__sessionUser` empty (and the page state's `currentUser` with them); a route
|
|
52
|
+
* whose segment reads the visitor (SEGMENT_CONFIG.session) fills them from the
|
|
53
|
+
* session with `bindSessionIdentity`, rebuilds the result of the graph's
|
|
54
|
+
* current-user readers from them, binds the route's `userScoped` identity
|
|
55
|
+
* columns, and — through `bindSessionHandlers` — binds those columns again
|
|
56
|
+
* after the node that produces them runs inside the segment, and answers an
|
|
57
|
+
* identity-filtered read with no rows when there is no identity to filter by.
|
|
29
58
|
*
|
|
30
59
|
* What the BROWSER itself computes stays untrusted by design; a server segment
|
|
31
60
|
* that needs a trustworthy figure (a price, an owner) reads it from the
|
|
@@ -42,7 +71,7 @@ const vercel_functions_1 = require("./vercel-functions");
|
|
|
42
71
|
* The facts about the graph each route needs are baked into its
|
|
43
72
|
* SEGMENT_CONFIG at generation time (see segment-trust.ts).
|
|
44
73
|
*/
|
|
45
|
-
const generateServerRuntimeCode = () => `'use strict';
|
|
74
|
+
const generateServerRuntimeCode = (options = {}) => `'use strict';
|
|
46
75
|
var crypto = require('crypto');
|
|
47
76
|
var utils = require('./runtime-utils');
|
|
48
77
|
|
|
@@ -140,26 +169,109 @@ function isControlKey(key) {
|
|
|
140
169
|
return key.indexOf('__') === 0;
|
|
141
170
|
}
|
|
142
171
|
|
|
143
|
-
|
|
172
|
+
// ---------------------------------------------------------------------------
|
|
173
|
+
// The signed hand-off
|
|
174
|
+
// ---------------------------------------------------------------------------
|
|
175
|
+
|
|
176
|
+
// A signed result is good for this long, and may be dated this far ahead of
|
|
177
|
+
// this instance's clock (another instance signed it).
|
|
178
|
+
var SIGNED_MAX_AGE_MS = ${exports.SIGNED_RESULT_MAX_AGE_MS};
|
|
179
|
+
var SIGNED_CLOCK_SKEW_MS = ${exports.SIGNED_RESULT_CLOCK_SKEW_MS};
|
|
180
|
+
|
|
181
|
+
function workflowIdOf(segmentConfig) {
|
|
182
|
+
return segmentConfig && typeof segmentConfig.workflowId === 'string' ? segmentConfig.workflowId : '';
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
function segmentIdOf(segmentConfig) {
|
|
186
|
+
return segmentConfig && typeof segmentConfig.segmentId === 'string' ? segmentConfig.segmentId : '';
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
// The segment of this graph that produces a node's result.
|
|
190
|
+
function producerOf(segmentConfig, nodeId) {
|
|
191
|
+
var by = segmentConfig && segmentConfig.signedBy;
|
|
192
|
+
return by && typeof by === 'object' && typeof by[nodeId] === 'string' ? by[nodeId] : '';
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
function runMac(workflowId, runId) {
|
|
196
|
+
return mac(JSON.stringify(['run', 2, workflowId, runId]));
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
function openRun(workflowId) {
|
|
200
|
+
var id = crypto.randomBytes(16).toString('hex');
|
|
201
|
+
return { id: id, mac: runMac(workflowId, id) };
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
// The run the request continues, or null when it names none this workflow opened.
|
|
205
|
+
function readRun(workflowId, context) {
|
|
206
|
+
var run = context.__sigRun;
|
|
207
|
+
if (!run || typeof run !== 'object' || typeof run.id !== 'string' || !/^[0-9a-f]{32}$/.test(run.id)) {
|
|
208
|
+
return null;
|
|
209
|
+
}
|
|
210
|
+
return sameMac(run.mac, runMac(workflowId, run.id)) ? { id: run.id, mac: run.mac } : null;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
function isFresh(at, now) {
|
|
214
|
+
return typeof at === 'number' && isFinite(at) && at <= now + SIGNED_CLOCK_SKEW_MS && now - at <= SIGNED_MAX_AGE_MS;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
function resultMac(workflowId, segmentId, runId, at, nodeId, value) {
|
|
144
218
|
var serialized;
|
|
145
219
|
try { serialized = JSON.stringify(value); } catch (e) { return null; }
|
|
146
220
|
if (serialized === undefined) return null;
|
|
147
|
-
return mac('result
|
|
221
|
+
return mac(JSON.stringify(['result', 2, workflowId, segmentId, runId, at, nodeId, serialized]));
|
|
148
222
|
}
|
|
149
223
|
|
|
150
|
-
|
|
151
|
-
|
|
224
|
+
// A result's signature: '<when it was signed, ms>.<mac>'.
|
|
225
|
+
function signResult(workflowId, segmentId, run, at, nodeId, value) {
|
|
226
|
+
var signature = resultMac(workflowId, segmentId, run.id, at, nodeId, value);
|
|
227
|
+
return signature ? at + '.' + signature : null;
|
|
152
228
|
}
|
|
153
229
|
|
|
154
|
-
//
|
|
155
|
-
//
|
|
156
|
-
function
|
|
230
|
+
// 'valid', 'expired' (signed in this run, but too long ago or dated too far
|
|
231
|
+
// ahead) or 'invalid'.
|
|
232
|
+
function signatureVerdict(segmentConfig, run, nodeId, value, signature, now) {
|
|
233
|
+
if (typeof signature !== 'string') return 'invalid';
|
|
234
|
+
var dot = signature.indexOf('.');
|
|
235
|
+
var stamp = dot > 0 ? signature.slice(0, dot) : '';
|
|
236
|
+
if (!/^[0-9]{1,16}$/.test(stamp)) return 'invalid';
|
|
237
|
+
var at = Number(stamp);
|
|
238
|
+
var expected = resultMac(workflowIdOf(segmentConfig), producerOf(segmentConfig, nodeId), run.id, at, nodeId, value);
|
|
239
|
+
if (!expected || !sameMac(signature.slice(dot + 1), expected)) return 'invalid';
|
|
240
|
+
return isFresh(at, now) ? 'valid' : 'expired';
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
// The link of the run's chain one segment call signs: the order of the keys
|
|
244
|
+
// the caller will hold, the call's number in the run (\`n\`), and the
|
|
245
|
+
// signature of every result the caller may hand on — the ones this call was
|
|
246
|
+
// given and accepted, and its own. A later call accepts a relayed result only
|
|
247
|
+
// when its signature is the one the link it is given lists, so a run is one
|
|
248
|
+
// chain: a segment called twice in a run forks it, and no request can combine
|
|
249
|
+
// results of the two forks.
|
|
250
|
+
function orderMac(workflowId, runId, at, n, keys, sigs) {
|
|
251
|
+
return mac(JSON.stringify(['order', 3, workflowId, runId, at, n, keys, sigs]));
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
var NO_ORDER = { keys: null, n: 0, sigs: {} };
|
|
255
|
+
|
|
256
|
+
// The link the request continues, as the last server segment of this run
|
|
257
|
+
// signed it; \`keys: null\` when the request carries no valid one (\`expired\`
|
|
258
|
+
// when it is this run's, signed too long ago).
|
|
259
|
+
function readSignedOrder(segmentConfig, run, context, now) {
|
|
157
260
|
var order = context.__sigOrder;
|
|
158
|
-
if (!order || typeof order !== 'object' || !Array.isArray(order.keys)) return
|
|
261
|
+
if (!order || typeof order !== 'object' || !Array.isArray(order.keys) || typeof order.at !== 'number') return NO_ORDER;
|
|
262
|
+
if (typeof order.n !== 'number' || !(order.n >= 1) || Math.floor(order.n) !== order.n || !Array.isArray(order.sigs)) return NO_ORDER;
|
|
159
263
|
for (var i = 0; i < order.keys.length; i++) {
|
|
160
|
-
if (typeof order.keys[i] !== 'string' || isControlKey(order.keys[i])) return
|
|
264
|
+
if (typeof order.keys[i] !== 'string' || isControlKey(order.keys[i])) return NO_ORDER;
|
|
265
|
+
}
|
|
266
|
+
var sigs = {};
|
|
267
|
+
for (var s = 0; s < order.sigs.length; s++) {
|
|
268
|
+
var pair = order.sigs[s];
|
|
269
|
+
if (!Array.isArray(pair) || pair.length !== 2 || typeof pair[0] !== 'string' || typeof pair[1] !== 'string' || has(sigs, pair[0])) return NO_ORDER;
|
|
270
|
+
sigs[pair[0]] = pair[1];
|
|
161
271
|
}
|
|
162
|
-
|
|
272
|
+
if (!sameMac(order.mac, orderMac(workflowIdOf(segmentConfig), run.id, order.at, order.n, order.keys, order.sigs))) return NO_ORDER;
|
|
273
|
+
if (!isFresh(order.at, now)) return { keys: null, n: 0, sigs: {}, expired: true };
|
|
274
|
+
return { keys: order.keys, n: order.n, sigs: sigs };
|
|
163
275
|
}
|
|
164
276
|
|
|
165
277
|
function restoreOrder(context, keys) {
|
|
@@ -186,20 +298,40 @@ function restoreOrder(context, keys) {
|
|
|
186
298
|
}
|
|
187
299
|
}
|
|
188
300
|
|
|
189
|
-
|
|
301
|
+
// Empties every relayed result whose signature does not hold — checked against
|
|
302
|
+
// the signature the link the request continues lists for it, never one the
|
|
303
|
+
// request supplies alongside — and returns { accepted, expired }: the
|
|
304
|
+
// signatures of the results it kept, and whether one of them was signed in this
|
|
305
|
+
// run but has expired.
|
|
306
|
+
function dropUnsignedResults(segmentConfig, run, context, order, now) {
|
|
190
307
|
var ids = segmentConfig.signedNodeIds || [];
|
|
191
|
-
|
|
308
|
+
var accepted = {};
|
|
309
|
+
var expired = false;
|
|
192
310
|
var listed = {};
|
|
193
|
-
for (var o = 0; o < (
|
|
194
|
-
var sigs = context.__sig && typeof context.__sig === 'object' && !Array.isArray(context.__sig) ? context.__sig : {};
|
|
311
|
+
for (var o = 0; o < (order.keys || []).length; o++) listed[order.keys[o]] = true;
|
|
195
312
|
for (var i = 0; i < ids.length; i++) {
|
|
196
313
|
var id = ids[i];
|
|
197
314
|
if (!has(context, id) || context[id] === undefined) continue;
|
|
198
|
-
var
|
|
199
|
-
|
|
315
|
+
var signature = has(order.sigs, id) ? order.sigs[id] : null;
|
|
316
|
+
var verdict = signature ? signatureVerdict(segmentConfig, run, id, context[id], signature, now) : 'invalid';
|
|
317
|
+
if (verdict === 'expired') expired = true;
|
|
318
|
+
if (!listed[id] || verdict !== 'valid') {
|
|
200
319
|
context[id] = undefined;
|
|
320
|
+
} else {
|
|
321
|
+
accepted[id] = signature;
|
|
201
322
|
}
|
|
202
323
|
}
|
|
324
|
+
return { accepted: accepted, expired: expired };
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
// What the visitor is told when the run they are continuing has expired (a
|
|
328
|
+
// step waited longer than a signed result is good for): start again.
|
|
329
|
+
var STEP_EXPIRED_MESSAGE = ${JSON.stringify(exports.STEP_EXPIRED_MESSAGE)};
|
|
330
|
+
|
|
331
|
+
function expiredRunError() {
|
|
332
|
+
var error = new Error('the signed results this request continues are older than ' + SIGNED_MAX_AGE_MS + ' ms');
|
|
333
|
+
error.__tqPublic = { status: 409, message: STEP_EXPIRED_MESSAGE };
|
|
334
|
+
return error;
|
|
203
335
|
}
|
|
204
336
|
|
|
205
337
|
function stripForeignControlKeys(segmentConfig, context) {
|
|
@@ -268,10 +400,255 @@ function resetPreviousResult(segmentConfig, context) {
|
|
|
268
400
|
context.__previousNodeResult = value !== undefined ? value : {};
|
|
269
401
|
}
|
|
270
402
|
|
|
403
|
+
// ---------------------------------------------------------------------------
|
|
404
|
+
// The visitor's identity, from the session cookie
|
|
405
|
+
// ---------------------------------------------------------------------------
|
|
406
|
+
|
|
407
|
+
${(0, session_cookie_resolver_1.generateCommonJsSessionTokenResolverCode)('../..', {
|
|
408
|
+
withRevocation: options.withSessionRevocation !== false,
|
|
409
|
+
})}
|
|
410
|
+
${workflow_auth_generator_1.ROLE_OF_TOKEN_CODE}
|
|
411
|
+
|
|
412
|
+
// Reserved context keys: set here from the session, never read from a request.
|
|
413
|
+
var SESSION_KEYS = ['__sessionUserId', '__sessionRole', '__sessionUser'];
|
|
414
|
+
|
|
415
|
+
// What a decoded session token carries besides the user (see the session
|
|
416
|
+
// callback of the auth route, which leaves the same keys off session.user).
|
|
417
|
+
var SESSION_TOKEN_BOOKKEEPING = { iat: true, exp: true, jti: true, sub: true, __userRefreshedAt: true, ${session_revocation_generator_1.SESSION_STAMP_KEY}: true };
|
|
418
|
+
|
|
419
|
+
// A session whose account changed its password (or session_version) since it
|
|
420
|
+
// was issued is no session: the shared reader runs that check for every server
|
|
421
|
+
// file (utils/auth/session-revocation.js).
|
|
422
|
+
function liveSessionToken(req) {
|
|
423
|
+
return __tqSessionToken(req);
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
// The signed-in user as /api/auth/session describes it, or null for a guest.
|
|
427
|
+
function sessionUserOf(token) {
|
|
428
|
+
if (!token || typeof token !== 'object') return null;
|
|
429
|
+
var id = token.id != null ? token.id : (token.sub != null ? token.sub : null);
|
|
430
|
+
if (id == null || String(id) === '') return null;
|
|
431
|
+
var user = {
|
|
432
|
+
name: token.name != null ? token.name : null,
|
|
433
|
+
email: token.email != null ? token.email : null,
|
|
434
|
+
image: token.picture != null ? token.picture : null
|
|
435
|
+
};
|
|
436
|
+
Object.keys(token).forEach(function(key) {
|
|
437
|
+
if (!SESSION_TOKEN_BOOKKEEPING[key]) user[key] = token[key];
|
|
438
|
+
});
|
|
439
|
+
user.id = id;
|
|
440
|
+
return user;
|
|
441
|
+
}
|
|
442
|
+
|
|
443
|
+
// The page state's \`currentUser\`, shaped as the app's global context keeps it.
|
|
444
|
+
function currentUserState(user) {
|
|
445
|
+
var state = { id: null, name: null, email: null, emailVerified: null, image: null, role: null };
|
|
446
|
+
Object.keys(user).forEach(function(key) { state[key] = user[key] != null ? user[key] : null; });
|
|
447
|
+
return state;
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
// Every copy of the page state the request carries: the context's own and the
|
|
451
|
+
// trigger's (see pruneContext in the client runtime).
|
|
452
|
+
function eachStateBag(context, visit) {
|
|
453
|
+
Object.keys(context).forEach(function(key) {
|
|
454
|
+
var value = context[key];
|
|
455
|
+
if (!value || typeof value !== 'object' || Array.isArray(value)) return;
|
|
456
|
+
if (key === '__stateValues') {
|
|
457
|
+
visit(value);
|
|
458
|
+
} else if (value.__stateValues && typeof value.__stateValues === 'object' && !Array.isArray(value.__stateValues)) {
|
|
459
|
+
visit(value.__stateValues);
|
|
460
|
+
}
|
|
461
|
+
});
|
|
462
|
+
}
|
|
463
|
+
|
|
464
|
+
// The \`currentUser\` the request's own copies of the page state held, put back
|
|
465
|
+
// before replying: the run reads the session's user, the reply never carries
|
|
466
|
+
// a rewritten copy of the trigger's page state back to the browser.
|
|
467
|
+
var __rewrittenStateBags = new WeakMap();
|
|
468
|
+
|
|
469
|
+
function setSessionIdentity(context, user, role) {
|
|
470
|
+
context.__sessionUserId = user ? user.id : null;
|
|
471
|
+
context.__sessionRole = user && typeof role === 'string' && role ? role : null;
|
|
472
|
+
context.__sessionUser = user || null;
|
|
473
|
+
var rewritten = __rewrittenStateBags.get(context) || [];
|
|
474
|
+
eachStateBag(context, function(bag) {
|
|
475
|
+
if (!has(bag, 'currentUser')) return;
|
|
476
|
+
if (!rewritten.some(function(entry) { return entry.bag === bag; })) {
|
|
477
|
+
rewritten.push({ bag: bag, original: bag.currentUser });
|
|
478
|
+
}
|
|
479
|
+
bag.currentUser = user ? currentUserState(user) : null;
|
|
480
|
+
});
|
|
481
|
+
__rewrittenStateBags.set(context, rewritten);
|
|
482
|
+
}
|
|
483
|
+
|
|
484
|
+
function restoreStateBags(context) {
|
|
485
|
+
var rewritten = __rewrittenStateBags.get(context) || [];
|
|
486
|
+
for (var i = 0; i < rewritten.length; i++) rewritten[i].bag.currentUser = rewritten[i].original;
|
|
487
|
+
}
|
|
488
|
+
|
|
489
|
+
function clearSessionIdentity(context) {
|
|
490
|
+
for (var i = 0; i < SESSION_KEYS.length; i++) delete context[SESSION_KEYS[i]];
|
|
491
|
+
setSessionIdentity(context, null, null);
|
|
492
|
+
}
|
|
493
|
+
|
|
494
|
+
// What a current-user reader answers for this session: the user's fields flat
|
|
495
|
+
// plus \`user\` (see account-get-current, account-refresh-session, account-login).
|
|
496
|
+
function identityResult(type, user, previous) {
|
|
497
|
+
var out = {};
|
|
498
|
+
if (user) Object.keys(user).forEach(function(key) { out[key] = user[key]; });
|
|
499
|
+
out.user = user || null;
|
|
500
|
+
if (type === 'account-refresh-session') {
|
|
501
|
+
out.refreshed = !!(user && previous && previous.refreshed === true);
|
|
502
|
+
}
|
|
503
|
+
if (type === 'account-login') {
|
|
504
|
+
out.success = !!user;
|
|
505
|
+
}
|
|
506
|
+
return out;
|
|
507
|
+
}
|
|
508
|
+
|
|
509
|
+
function bindPath(root, path, value) {
|
|
510
|
+
if (!root || !path || path.length === 0) return;
|
|
511
|
+
var obj = root;
|
|
512
|
+
for (var i = 0; i < path.length - 1; i++) {
|
|
513
|
+
var key = path[i];
|
|
514
|
+
if (obj[key] == null || typeof obj[key] !== 'object') obj[key] = {};
|
|
515
|
+
obj = obj[key];
|
|
516
|
+
}
|
|
517
|
+
obj[path[path.length - 1]] = value;
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
// The value a \`userScoped\` binding takes: the session's role for a role
|
|
521
|
+
// claim, the session user for every other one — and, for a signed-out visitor,
|
|
522
|
+
// '' whatever the claim. An identity value never comes from the request: a
|
|
523
|
+
// guest's own rows are still written under the anonymous id the data API takes
|
|
524
|
+
// from the run (\`__anonymousUserId\`, see data-create-item).
|
|
525
|
+
function sessionClaim(binding, context) {
|
|
526
|
+
if (binding.claim === 'role') return { value: context.__sessionRole || '' };
|
|
527
|
+
return { value: context.__sessionUserId != null ? context.__sessionUserId : '' };
|
|
528
|
+
}
|
|
529
|
+
|
|
530
|
+
function bindingsOf(segmentConfig) {
|
|
531
|
+
var needs = segmentConfig && segmentConfig.session;
|
|
532
|
+
return needs && Array.isArray(needs.bindings) ? needs.bindings : [];
|
|
533
|
+
}
|
|
534
|
+
|
|
535
|
+
function bindResult(bindings, nodeId, context, result) {
|
|
536
|
+
var bound = result;
|
|
537
|
+
for (var i = 0; i < bindings.length; i++) {
|
|
538
|
+
var binding = bindings[i];
|
|
539
|
+
if (!binding || binding.nodeId !== nodeId) continue;
|
|
540
|
+
var claim = sessionClaim(binding, context);
|
|
541
|
+
if (!claim) continue;
|
|
542
|
+
if (bound == null || typeof bound !== 'object') bound = {};
|
|
543
|
+
bindPath(bound, binding.path || [], claim.value);
|
|
544
|
+
}
|
|
545
|
+
return bound;
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
/**
|
|
549
|
+
* Fills the reserved session keys from the request's session cookie, then
|
|
550
|
+
* rebuilds what the segment reads about the visitor from them: the result of
|
|
551
|
+
* every current-user reader the request carries, and every \`userScoped\`
|
|
552
|
+
* identity column of a node outside this segment (a node of the segment is
|
|
553
|
+
* bound when it has run — see bindSessionHandlers). Without a session the
|
|
554
|
+
* identity is absent: nothing the request says stands in for it.
|
|
555
|
+
*/
|
|
556
|
+
async function bindSessionIdentity(req, segmentConfig, context) {
|
|
557
|
+
var needs = segmentConfig && segmentConfig.session;
|
|
558
|
+
if (!needs) return;
|
|
559
|
+
var token = null;
|
|
560
|
+
try { token = await liveSessionToken(req); } catch (e) { token = null; }
|
|
561
|
+
var user = sessionUserOf(token);
|
|
562
|
+
setSessionIdentity(context, user, user ? roleOf(token) : null);
|
|
563
|
+
var readers = needs.identityNodes || {};
|
|
564
|
+
Object.keys(readers).forEach(function(id) {
|
|
565
|
+
if (has(context, id) && context[id] !== undefined && context[id] !== null) {
|
|
566
|
+
context[id] = identityResult(readers[id], user, context[id]);
|
|
567
|
+
}
|
|
568
|
+
});
|
|
569
|
+
var own = {};
|
|
570
|
+
(segmentConfig.nodes || []).forEach(function(node) { own[node.id] = true; });
|
|
571
|
+
var bindings = bindingsOf(segmentConfig);
|
|
572
|
+
for (var i = 0; i < bindings.length; i++) {
|
|
573
|
+
var nodeId = bindings[i] && bindings[i].nodeId;
|
|
574
|
+
if (!nodeId || own[nodeId]) continue;
|
|
575
|
+
context[nodeId] = bindResult([bindings[i]], nodeId, context, context[nodeId]);
|
|
576
|
+
}
|
|
577
|
+
}
|
|
578
|
+
|
|
579
|
+
// What a filter value must be to scope a read to the visitor: present, and
|
|
580
|
+
// nothing the data node would read as "no filter" (empty, an all-sentinel, an
|
|
581
|
+
// unresolved template).
|
|
582
|
+
var NOT_AN_IDENTITY = { all: true, any: true, everything: true, __all__: true };
|
|
583
|
+
|
|
584
|
+
function isIdentityFilterValue(filter, value) {
|
|
585
|
+
if (value === undefined || value === null) return false;
|
|
586
|
+
if (Array.isArray(value)) return value.length > 0;
|
|
587
|
+
if (typeof value !== 'string') return true;
|
|
588
|
+
var text = value.trim().toLowerCase();
|
|
589
|
+
if (!text || NOT_AN_IDENTITY[text] || text.indexOf('{{') !== -1) return false;
|
|
590
|
+
if (typeof filter.treatAsAll === 'string' && filter.treatAsAll.trim().toLowerCase() === text) return false;
|
|
591
|
+
if (Array.isArray(filter.skipIfValue) && filter.skipIfValue.indexOf(value) !== -1) return false;
|
|
592
|
+
return true;
|
|
593
|
+
}
|
|
594
|
+
|
|
595
|
+
function scopedToIdentity(columns, config) {
|
|
596
|
+
var filters = config && Array.isArray(config.filters) ? config.filters : [];
|
|
597
|
+
for (var c = 0; c < columns.length; c++) {
|
|
598
|
+
var scoped = false;
|
|
599
|
+
for (var f = 0; f < filters.length && !scoped; f++) {
|
|
600
|
+
var filter = filters[f] && typeof filters[f] === 'object' ? filters[f] : {};
|
|
601
|
+
// Read as data-select reads it: \`destination\` before \`value\`.
|
|
602
|
+
var column = filter.column || filter.source || filter.field;
|
|
603
|
+
var value = filter.destination !== undefined ? filter.destination : filter.value;
|
|
604
|
+
scoped = column === columns[c] && isIdentityFilterValue(filter, value);
|
|
605
|
+
}
|
|
606
|
+
if (!scoped) return false;
|
|
607
|
+
}
|
|
608
|
+
return true;
|
|
609
|
+
}
|
|
610
|
+
|
|
611
|
+
/**
|
|
612
|
+
* Wraps the route's node handlers so that a read the segment filters by the
|
|
613
|
+
* visitor's identity answers no rows when there is no identity to filter by
|
|
614
|
+
* (it never widens to the whole table), and the \`userScoped\` identity columns
|
|
615
|
+
* of a node this segment runs take the session's value once it has run — a
|
|
616
|
+
* step that recomputes them from what the request carries (a custom node's
|
|
617
|
+
* parameters) cannot undo the binding.
|
|
618
|
+
*/
|
|
619
|
+
function bindSessionHandlers(segmentConfig, nodeHandlers) {
|
|
620
|
+
var needs = segmentConfig && segmentConfig.session;
|
|
621
|
+
if (!needs || !nodeHandlers) return nodeHandlers;
|
|
622
|
+
var reads = needs.identityReads || {};
|
|
623
|
+
var bindings = bindingsOf(segmentConfig);
|
|
624
|
+
Object.keys(nodeHandlers).forEach(function(type) {
|
|
625
|
+
var handler = nodeHandlers[type];
|
|
626
|
+
var isRead = type === 'data-select' || type === 'data-count';
|
|
627
|
+
if (typeof handler !== 'function' || (!isRead && bindings.length === 0)) return;
|
|
628
|
+
nodeHandlers[type] = async function(config, context) {
|
|
629
|
+
var nodeId = config && config.__nodeId;
|
|
630
|
+
if (isRead && nodeId && has(reads, nodeId) && !scopedToIdentity(reads[nodeId], config)) {
|
|
631
|
+
return type === 'data-count' ? { count: 0 } : { rows: [], count: 0 };
|
|
632
|
+
}
|
|
633
|
+
var result = await handler.apply(this, arguments);
|
|
634
|
+
return nodeId && bindings.length > 0 ? bindResult(bindings, nodeId, context, result) : result;
|
|
635
|
+
};
|
|
636
|
+
});
|
|
637
|
+
return nodeHandlers;
|
|
638
|
+
}
|
|
639
|
+
|
|
640
|
+
// ---------------------------------------------------------------------------
|
|
641
|
+
// Claiming a request, replying to it
|
|
642
|
+
// ---------------------------------------------------------------------------
|
|
643
|
+
|
|
271
644
|
// The keys the caller holds, in order, before this segment's own results were
|
|
272
645
|
// dropped — segmentReply appends what the run adds, exactly as the caller's
|
|
273
|
-
// merge will.
|
|
646
|
+
// merge will. And the run each claimed context belongs to.
|
|
274
647
|
var __incomingOrders = new WeakMap();
|
|
648
|
+
var __claimedRuns = new WeakMap();
|
|
649
|
+
// The link each claimed context continues: its call number and the relayed
|
|
650
|
+
// signatures it accepted.
|
|
651
|
+
var __claimedLinks = new WeakMap();
|
|
275
652
|
|
|
276
653
|
// The sealed results this segment opened, so its reply hands the caller back
|
|
277
654
|
// the sealed form it relayed (see resealRelayedResults).
|
|
@@ -311,19 +688,72 @@ function resealRelayedResults(context, reply) {
|
|
|
311
688
|
}
|
|
312
689
|
|
|
313
690
|
function claimSegmentContext(segmentConfig, context) {
|
|
314
|
-
var
|
|
315
|
-
|
|
316
|
-
|
|
691
|
+
var now = Date.now();
|
|
692
|
+
var workflowId = workflowIdOf(segmentConfig);
|
|
693
|
+
var run = (!segmentConfig.opensRun && readRun(workflowId, context)) || openRun(workflowId);
|
|
694
|
+
__claimedRuns.set(context, run);
|
|
695
|
+
var order = readSignedOrder(segmentConfig, run, context, now);
|
|
696
|
+
if (order.keys) restoreOrder(context, order.keys);
|
|
697
|
+
var verdict = dropUnsignedResults(segmentConfig, run, context, order, now);
|
|
698
|
+
if (verdict.expired || order.expired) throw expiredRunError();
|
|
699
|
+
__claimedLinks.set(context, { n: order.keys ? order.n : 0, accepted: verdict.accepted });
|
|
700
|
+
context.__sigRun = { id: run.id, mac: run.mac };
|
|
701
|
+
// The route's own (see VISITOR_REQUEST_INJECTION); a request never sets it.
|
|
702
|
+
delete context.__request;
|
|
703
|
+
// Sealed credentials open only after their signature held.
|
|
317
704
|
openSealedResults(context);
|
|
318
705
|
stripForeignControlKeys(segmentConfig, context);
|
|
706
|
+
clearSessionIdentity(context);
|
|
319
707
|
__incomingOrders.set(context, Object.keys(context).filter(function(k) { return !isControlKey(k); }));
|
|
320
708
|
utils.claimSegmentContext(segmentConfig, context);
|
|
321
709
|
enforceBranchGates(segmentConfig, context);
|
|
322
710
|
resetPreviousResult(segmentConfig, context);
|
|
323
711
|
}
|
|
324
712
|
|
|
713
|
+
// A reply never names an env var the segment's configs reference
|
|
714
|
+
// (SEGMENT_CONFIG.secretNames) — a node's error result may quote one. Returns
|
|
715
|
+
// \`value\` itself when nothing in it changes.
|
|
716
|
+
// Only a name shaped like an env var, as a whole word: a secret named \`KEY\`
|
|
717
|
+
// never rewrites "MONKEY".
|
|
718
|
+
var ENV_NAME_SHAPE = /^[A-Za-z_][A-Za-z0-9_]{3,}$/;
|
|
719
|
+
|
|
720
|
+
function scrubSecretNames(segmentConfig, value) {
|
|
721
|
+
var names = segmentConfig && Array.isArray(segmentConfig.secretNames) ? segmentConfig.secretNames : [];
|
|
722
|
+
var patterns = [];
|
|
723
|
+
for (var i = 0; i < names.length; i++) {
|
|
724
|
+
if (typeof names[i] === 'string' && ENV_NAME_SHAPE.test(names[i])) {
|
|
725
|
+
patterns.push(new RegExp('(^|[^A-Za-z0-9_])' + names[i] + '(?![A-Za-z0-9_])', 'g'));
|
|
726
|
+
}
|
|
727
|
+
}
|
|
728
|
+
return patterns.length === 0 ? value : scrubValue(value, patterns, 0);
|
|
729
|
+
}
|
|
730
|
+
|
|
731
|
+
function scrubValue(value, patterns, depth) {
|
|
732
|
+
if (typeof value === 'string') {
|
|
733
|
+
var text = value;
|
|
734
|
+
for (var i = 0; i < patterns.length; i++) {
|
|
735
|
+
patterns[i].lastIndex = 0;
|
|
736
|
+
text = text.replace(patterns[i], '$1[secret]');
|
|
737
|
+
}
|
|
738
|
+
return text;
|
|
739
|
+
}
|
|
740
|
+
if (!value || typeof value !== 'object' || depth > 32) return value;
|
|
741
|
+
var copy = null;
|
|
742
|
+
var keys = Object.keys(value);
|
|
743
|
+
for (var k = 0; k < keys.length; k++) {
|
|
744
|
+
var before = value[keys[k]];
|
|
745
|
+
var after = scrubValue(before, patterns, depth + 1);
|
|
746
|
+
if (after !== before) {
|
|
747
|
+
if (!copy) copy = Array.isArray(value) ? value.slice() : Object.assign({}, value);
|
|
748
|
+
copy[keys[k]] = after;
|
|
749
|
+
}
|
|
750
|
+
}
|
|
751
|
+
return copy || value;
|
|
752
|
+
}
|
|
753
|
+
|
|
325
754
|
function segmentReply(segmentConfig, context, snapshot) {
|
|
326
|
-
|
|
755
|
+
restoreStateBags(context);
|
|
756
|
+
var reply = scrubSecretNames(segmentConfig, utils.segmentReply(segmentConfig, context, snapshot));
|
|
327
757
|
resealRelayedResults(context, reply);
|
|
328
758
|
var credentialIds = utils.credentialResultNodeIds(segmentConfig);
|
|
329
759
|
Object.keys(credentialIds).forEach(function(id) {
|
|
@@ -331,19 +761,25 @@ function segmentReply(segmentConfig, context, snapshot) {
|
|
|
331
761
|
var sealed = sealResult(context[id]);
|
|
332
762
|
if (sealed) reply[id] = sealed;
|
|
333
763
|
});
|
|
764
|
+
var workflowId = workflowIdOf(segmentConfig);
|
|
765
|
+
var segmentId = segmentIdOf(segmentConfig);
|
|
766
|
+
var run = __claimedRuns.get(context) || openRun(workflowId);
|
|
767
|
+
var link = __claimedLinks.get(context) || { n: 0, accepted: {} };
|
|
768
|
+
var at = Date.now();
|
|
769
|
+
// What the next call may accept: the results this one accepted, and its own.
|
|
334
770
|
var sigs = {};
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
if (typeof incoming[id] === 'string') sigs[id] = incoming[id];
|
|
771
|
+
Object.keys(link.accepted).forEach(function(id) {
|
|
772
|
+
if (has(reply, id) || has(context, id)) sigs[id] = link.accepted[id];
|
|
338
773
|
});
|
|
339
774
|
var nodes = segmentConfig.nodes || [];
|
|
340
775
|
for (var i = 0; i < nodes.length; i++) {
|
|
341
776
|
var id = nodes[i].id;
|
|
342
777
|
if (!has(reply, id) || reply[id] === undefined) continue;
|
|
343
|
-
var signature =
|
|
778
|
+
var signature = signResult(workflowId, segmentId, run, at, id, reply[id]);
|
|
344
779
|
if (signature) sigs[id] = signature; else delete sigs[id];
|
|
345
780
|
}
|
|
346
781
|
reply.__sig = sigs;
|
|
782
|
+
reply.__sigRun = { id: run.id, mac: run.mac };
|
|
347
783
|
var keys = (__incomingOrders.get(context) || []).slice();
|
|
348
784
|
var listed = {};
|
|
349
785
|
keys.forEach(function(k) { listed[k] = true; });
|
|
@@ -353,7 +789,9 @@ function segmentReply(segmentConfig, context, snapshot) {
|
|
|
353
789
|
listed[k] = true;
|
|
354
790
|
}
|
|
355
791
|
});
|
|
356
|
-
|
|
792
|
+
var n = link.n + 1;
|
|
793
|
+
var pairs = Object.keys(sigs).sort().map(function(id) { return [id, sigs[id]]; });
|
|
794
|
+
reply.__sigOrder = { keys: keys, at: at, n: n, sigs: pairs, mac: orderMac(workflowId, run.id, at, n, keys, pairs) };
|
|
357
795
|
return reply;
|
|
358
796
|
}
|
|
359
797
|
|
|
@@ -385,14 +823,16 @@ function isLoopbackHost(host) {
|
|
|
385
823
|
// else the Host header is whatever the caller sent, so the canonical
|
|
386
824
|
// NEXTAUTH_URL wins when it is set — internal calls carry credentials, and
|
|
387
825
|
// they must never go to a host a request named. (A local development server
|
|
388
|
-
// on another port than NEXTAUTH_URL's keeps its own loopback address.)
|
|
826
|
+
// on another port than NEXTAUTH_URL's keeps its own loopback address.) The
|
|
827
|
+
// value read is the configured one, kept before the auth route rewrites
|
|
828
|
+
// process.env.NEXTAUTH_URL from a request's headers (globalThis.__tqConfiguredNextAuthUrl).
|
|
389
829
|
function trustedBaseUrl(req) {
|
|
390
830
|
var headers = (req && req.headers) || {};
|
|
391
831
|
var host = headers.host || '';
|
|
392
832
|
var proto = headers['x-forwarded-proto'] || (isLoopbackHost(host) ? 'http' : 'https');
|
|
393
833
|
var requestOrigin = String(proto).split(',')[0].trim() + '://' + host;
|
|
394
834
|
if (process.env.VERCEL) return requestOrigin;
|
|
395
|
-
var configured = String(
|
|
835
|
+
var configured = String(${configured_nextauth_url_1.CONFIGURED_NEXTAUTH_URL_EXPRESSION} || '').trim();
|
|
396
836
|
if (!configured) return requestOrigin;
|
|
397
837
|
var origin;
|
|
398
838
|
try { origin = new URL(configured).origin; } catch (e) { return requestOrigin; }
|
|
@@ -421,6 +861,9 @@ module.exports = Object.assign({}, utils, {
|
|
|
421
861
|
handOffPendingNodePromises: handOffPendingNodePromises,
|
|
422
862
|
claimSegmentContext: claimSegmentContext,
|
|
423
863
|
segmentReply: segmentReply,
|
|
864
|
+
bindSessionIdentity: bindSessionIdentity,
|
|
865
|
+
bindSessionHandlers: bindSessionHandlers,
|
|
866
|
+
scrubSecretNames: scrubSecretNames,
|
|
424
867
|
internalRequestHeaders: internalRequestHeaders,
|
|
425
868
|
isInternalCall: isInternalCall,
|
|
426
869
|
trustedBaseUrl: trustedBaseUrl
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-runtime-code.js","sourceRoot":"","sources":["../../src/server-runtime-code.ts"],"names":[],"mappings":";;;AAAA,yDAAsE;AAEtE
|
|
1
|
+
{"version":3,"file":"server-runtime-code.js","sourceRoot":"","sources":["../../src/server-runtime-code.ts"],"names":[],"mappings":";;;AAAA,uEAA8E;AAC9E,uEAAoF;AACpF,uEAA8D;AAC9D,iFAAkE;AAClE,yDAAsE;AAEtE,wEAAwE;AAC3D,QAAA,wBAAwB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;AAEtD,kFAAkF;AACrE,QAAA,2BAA2B,GAAG,EAAE,GAAG,IAAI,CAAA;AAEpD,8EAA8E;AACjE,QAAA,oBAAoB,GAAG,yCAAyC,CAAA;AAE7E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACI,MAAM,yBAAyB,GAAG,CACvC,UAA+C,EAAE,EACzC,EAAE,CAAC;;;;EAIX,IAAA,oDAAiC,GAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAoGX,gCAAwB;6BACrB,mCAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAsJ3B,IAAI,CAAC,SAAS,CAAC,4BAAoB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8E/D,IAAA,kEAAwC,EAAC,OAAO,EAAE;IAClD,cAAc,EAAE,OAAO,CAAC,qBAAqB,KAAK,KAAK;CACxD,CAAC;EACA,4CAAkB;;;;;;;yGAOqF,gDAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAka9F,4DAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoC7D,CAAA;AA/xBY,QAAA,yBAAyB,6BA+xBrC"}
|
|
@@ -5,5 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
export declare const SESSION_TOKEN_RESOLVER_FN = "__tqResolveSessionToken";
|
|
7
7
|
export declare const generateSessionTokenResolverCode: () => string;
|
|
8
|
-
export declare const generateCommonJsSessionTokenResolverCode: (
|
|
8
|
+
export declare const generateCommonJsSessionTokenResolverCode: (projectRoot?: string, options?: {
|
|
9
|
+
withRevocation?: boolean;
|
|
10
|
+
}) => string;
|
|
9
11
|
//# sourceMappingURL=session-cookie-resolver.d.ts.map
|