@teleporthq/teleport-plugin-next-workflows 0.44.11 → 0.45.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/__tests__/_helpers/fake-fetch.ts +75 -0
- package/__tests__/_helpers/gui-place-order-statements.ts +17 -0
- package/__tests__/_helpers/inserted-lines.ts +22 -0
- package/__tests__/_helpers/invoice-store.ts +10 -1
- package/__tests__/_helpers/load-security-runtime.ts +45 -0
- package/__tests__/_helpers/load-server-runtime.ts +26 -3
- package/__tests__/_helpers/run-account-delete-route.ts +3 -1
- package/__tests__/_helpers/run-generated-middleware.ts +7 -2
- package/__tests__/account-delete-owned-rows.test.ts +3 -1
- package/__tests__/adopted-element-trigger-code.test.ts +128 -0
- package/__tests__/analytics-track-outcome.test.ts +145 -0
- package/__tests__/auth-password-change-ends-sessions.test.ts +8 -1
- package/__tests__/auth-password-security.test.ts +2275 -0
- package/__tests__/auth-session-cost.test.ts +31 -0
- package/__tests__/auth-signup-route.test.ts +960 -0
- package/__tests__/authored-code-every-path.test.ts +247 -0
- package/__tests__/automations-bus.test.ts +3820 -0
- package/__tests__/automations-catalog-drift.test.ts +97 -0
- package/__tests__/booking-calendar-feed-route.test.ts +20 -3
- package/__tests__/cart-price-order.test.ts +336 -1
- package/__tests__/code-lookup-rate-limit-route.test.ts +189 -0
- package/__tests__/cost-bearing-node-types.test.ts +119 -0
- package/__tests__/credential-columns-reply.test.ts +9 -0
- package/__tests__/credential-result-reply.test.ts +19 -5
- package/__tests__/cron-route-loop-templateparams.test.ts +6 -3
- package/__tests__/custom-js-authored-code.test.ts +304 -0
- package/__tests__/custom-node-custom-code-gate.test.ts +136 -0
- package/__tests__/custom-node-step-handlers.test.ts +251 -0
- package/__tests__/custom-node-step-reach.test.ts +63 -0
- package/__tests__/data-api-anon-user-id-fallback.test.ts +7 -2
- package/__tests__/data-api-browser-reads.test.ts +7 -0
- package/__tests__/data-api-business-events.test.ts +403 -0
- package/__tests__/data-api-invalid-body.test.ts +7 -0
- package/__tests__/data-api-low-stock-autofire.test.ts +30 -4
- package/__tests__/data-api-optional-feature-columns.test.ts +44 -0
- package/__tests__/data-api-owner-scope-credentials.test.ts +1324 -0
- package/__tests__/data-api-protected-tables.test.ts +48 -15
- package/__tests__/data-api-retired-table-and-account-fields.test.ts +208 -0
- package/__tests__/email-locale-senders.test.ts +5 -3
- package/__tests__/expression-injection.test.ts +343 -0
- package/__tests__/fixtures/admin-file-workflows.json +242 -0
- package/__tests__/form-confirmation-email-template.test.ts +44 -0
- package/__tests__/internal-request-headers.test.ts +25 -0
- package/__tests__/invoice-pdf-service-project-header.test.ts +120 -0
- package/__tests__/invoice-self-call-origin.test.ts +57 -1
- package/__tests__/legacy-webhook-self-calls.test.ts +86 -1
- package/__tests__/middleware-home-route-protection.test.ts +3 -1
- package/__tests__/middleware-subscriber-access.test.ts +1 -1
- package/__tests__/newsletter-admin-route.test.ts +649 -0
- package/__tests__/newsletter-plugin.test.ts +1248 -0
- package/__tests__/outbound-nodes-security.test.ts +1929 -0
- package/__tests__/page-access-guard.test.ts +217 -0
- package/__tests__/page-access-route-table.test.ts +231 -0
- package/__tests__/payment-drivers-module.test.ts +23 -0
- package/__tests__/payment-legacy-webhook-routes.test.ts +100 -5
- package/__tests__/payment-webhook-route.test.ts +4 -1
- package/__tests__/paypal-webhook-signature-verification.test.ts +44 -0
- package/__tests__/place-order-guards.test.ts +506 -0
- package/__tests__/public-step-guards.test.ts +310 -0
- package/__tests__/publish-refusals.test.ts +505 -0
- package/__tests__/realtime-identity-routes.test.ts +492 -0
- package/__tests__/record-event-writer-server-only.test.ts +975 -0
- package/__tests__/resolve-config-template-params.test.ts +3 -3
- package/__tests__/runtime-storage-upload-access.test.ts +280 -17
- package/__tests__/security-integration-env-names.test.ts +74 -0
- package/__tests__/security-lists-parity.test.ts +245 -0
- package/__tests__/security-runtime-shadow.test.ts +224 -1
- package/__tests__/security-runtime.test.ts +893 -0
- package/__tests__/segment-rate-limit-error-branch.test.ts +284 -0
- package/__tests__/segment-route-abuse-gate.test.ts +309 -0
- package/__tests__/server-job-hops-real-data-api.test.ts +669 -0
- package/__tests__/server-session-identity.test.ts +522 -0
- package/__tests__/server-step-chain.test.ts +222 -0
- package/__tests__/server-step-signing.test.ts +107 -2
- package/__tests__/session-cookie-resolver.test.ts +62 -106
- package/__tests__/signup-event.test.ts +649 -0
- package/__tests__/signup-reply-identical.test.ts +144 -0
- package/__tests__/slack-message-escaping.test.ts +123 -0
- package/__tests__/visitor-step-limits.test.ts +318 -0
- package/__tests__/webhook-delivery-lease.test.ts +4 -1
- package/__tests__/webpack-safe-handlers.test.ts +57 -8
- package/__tests__/workflow-auth-guard.test.ts +9 -1
- package/dist/cjs/account-delete-route-generator.d.ts +1 -0
- package/dist/cjs/account-delete-route-generator.d.ts.map +1 -1
- package/dist/cjs/account-delete-route-generator.js +18 -3
- package/dist/cjs/account-delete-route-generator.js.map +1 -1
- package/dist/cjs/api-route-generator.d.ts +52 -3
- package/dist/cjs/api-route-generator.d.ts.map +1 -1
- package/dist/cjs/api-route-generator.js +600 -145
- package/dist/cjs/api-route-generator.js.map +1 -1
- package/dist/cjs/auth-generator.d.ts +126 -3
- package/dist/cjs/auth-generator.d.ts.map +1 -1
- package/dist/cjs/auth-generator.js +1353 -139
- package/dist/cjs/auth-generator.js.map +1 -1
- package/dist/cjs/automations/activity-kicks.d.ts +12 -0
- package/dist/cjs/automations/activity-kicks.d.ts.map +1 -0
- package/dist/cjs/automations/activity-kicks.js +123 -0
- package/dist/cjs/automations/activity-kicks.js.map +1 -0
- package/dist/cjs/automations/app-events-source.d.ts +33 -0
- package/dist/cjs/automations/app-events-source.d.ts.map +1 -0
- package/dist/cjs/automations/app-events-source.js +109 -0
- package/dist/cjs/automations/app-events-source.js.map +1 -0
- package/dist/cjs/automations/automations-project-plugin.d.ts +21 -0
- package/dist/cjs/automations/automations-project-plugin.d.ts.map +1 -0
- package/dist/cjs/automations/automations-project-plugin.js +102 -0
- package/dist/cjs/automations/automations-project-plugin.js.map +1 -0
- package/dist/cjs/automations/automations-scope.d.ts +104 -0
- package/dist/cjs/automations/automations-scope.d.ts.map +1 -0
- package/dist/cjs/automations/automations-scope.js +176 -0
- package/dist/cjs/automations/automations-scope.js.map +1 -0
- package/dist/cjs/automations/dispatcher-source.d.ts +72 -0
- package/dist/cjs/automations/dispatcher-source.d.ts.map +1 -0
- package/dist/cjs/automations/dispatcher-source.js +1008 -0
- package/dist/cjs/automations/dispatcher-source.js.map +1 -0
- package/dist/cjs/automations/event-bus-source.d.ts +44 -0
- package/dist/cjs/automations/event-bus-source.d.ts.map +1 -0
- package/dist/cjs/automations/event-bus-source.js +427 -0
- package/dist/cjs/automations/event-bus-source.js.map +1 -0
- package/dist/cjs/automations/handler-module-generator.d.ts +25 -0
- package/dist/cjs/automations/handler-module-generator.d.ts.map +1 -0
- package/dist/cjs/automations/handler-module-generator.js +78 -0
- package/dist/cjs/automations/handler-module-generator.js.map +1 -0
- package/dist/cjs/automations/hydrators-source.d.ts +33 -0
- package/dist/cjs/automations/hydrators-source.d.ts.map +1 -0
- package/dist/cjs/automations/hydrators-source.js +571 -0
- package/dist/cjs/automations/hydrators-source.js.map +1 -0
- package/dist/cjs/booking-calendar-feed-route-generator.d.ts.map +1 -1
- package/dist/cjs/booking-calendar-feed-route-generator.js +8 -0
- package/dist/cjs/booking-calendar-feed-route-generator.js.map +1 -1
- package/dist/cjs/configured-nextauth-url.d.ts +17 -0
- package/dist/cjs/configured-nextauth-url.d.ts.map +1 -0
- package/dist/cjs/configured-nextauth-url.js +20 -0
- package/dist/cjs/configured-nextauth-url.js.map +1 -0
- package/dist/cjs/cron-request-verification.d.ts +22 -1
- package/dist/cjs/cron-request-verification.d.ts.map +1 -1
- package/dist/cjs/cron-request-verification.js +50 -6
- package/dist/cjs/cron-request-verification.js.map +1 -1
- package/dist/cjs/data-api-route-generator.d.ts +19 -0
- package/dist/cjs/data-api-route-generator.d.ts.map +1 -1
- package/dist/cjs/data-api-route-generator.js +711 -43
- package/dist/cjs/data-api-route-generator.js.map +1 -1
- package/dist/cjs/ecommerce/parameterized-stock-chain.d.ts +3 -1
- package/dist/cjs/ecommerce/parameterized-stock-chain.d.ts.map +1 -1
- package/dist/cjs/ecommerce/parameterized-stock-chain.js +45 -5
- package/dist/cjs/ecommerce/parameterized-stock-chain.js.map +1 -1
- package/dist/cjs/ecommerce/place-order-guards.d.ts +126 -0
- package/dist/cjs/ecommerce/place-order-guards.d.ts.map +1 -0
- package/dist/cjs/ecommerce/place-order-guards.js +670 -0
- package/dist/cjs/ecommerce/place-order-guards.js.map +1 -0
- package/dist/cjs/ecommerce-customhandler-rewriter.d.ts +2 -0
- package/dist/cjs/ecommerce-customhandler-rewriter.d.ts.map +1 -1
- package/dist/cjs/ecommerce-customhandler-rewriter.js +38 -2
- package/dist/cjs/ecommerce-customhandler-rewriter.js.map +1 -1
- package/dist/cjs/executor-generator.d.ts.map +1 -1
- package/dist/cjs/executor-generator.js +368 -60
- package/dist/cjs/executor-generator.js.map +1 -1
- package/dist/cjs/graph-utils.d.ts +9 -0
- package/dist/cjs/graph-utils.d.ts.map +1 -1
- package/dist/cjs/graph-utils.js +32 -1
- package/dist/cjs/graph-utils.js.map +1 -1
- package/dist/cjs/index.d.ts +20 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +72 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/invoice/api-routes-code.d.ts +9 -3
- package/dist/cjs/invoice/api-routes-code.d.ts.map +1 -1
- package/dist/cjs/invoice/api-routes-code.js +9 -7
- package/dist/cjs/invoice/api-routes-code.js.map +1 -1
- package/dist/cjs/invoice/index.d.ts.map +1 -1
- package/dist/cjs/invoice/index.js +12 -7
- package/dist/cjs/invoice/index.js.map +1 -1
- package/dist/cjs/invoice/invoice-assembly-code.d.ts.map +1 -1
- package/dist/cjs/invoice/invoice-assembly-code.js +8 -3
- package/dist/cjs/invoice/invoice-assembly-code.js.map +1 -1
- package/dist/cjs/invoice/pdf-generator-code.d.ts.map +1 -1
- package/dist/cjs/invoice/pdf-generator-code.js +2 -1
- package/dist/cjs/invoice/pdf-generator-code.js.map +1 -1
- package/dist/cjs/invoice/pdf-service-client-code.d.ts.map +1 -1
- package/dist/cjs/invoice/pdf-service-client-code.js +15 -7
- package/dist/cjs/invoice/pdf-service-client-code.js.map +1 -1
- package/dist/cjs/newsletter/admin-route-code.d.ts +60 -0
- package/dist/cjs/newsletter/admin-route-code.d.ts.map +1 -0
- package/dist/cjs/newsletter/admin-route-code.js +300 -0
- package/dist/cjs/newsletter/admin-route-code.js.map +1 -0
- package/dist/cjs/newsletter/helper-code.d.ts +109 -0
- package/dist/cjs/newsletter/helper-code.d.ts.map +1 -0
- package/dist/cjs/newsletter/helper-code.js +662 -0
- package/dist/cjs/newsletter/helper-code.js.map +1 -0
- package/dist/cjs/newsletter/newsletter-scope.d.ts +65 -0
- package/dist/cjs/newsletter/newsletter-scope.d.ts.map +1 -0
- package/dist/cjs/newsletter/newsletter-scope.js +103 -0
- package/dist/cjs/newsletter/newsletter-scope.js.map +1 -0
- package/dist/cjs/newsletter/project-plugin.d.ts +18 -0
- package/dist/cjs/newsletter/project-plugin.d.ts.map +1 -0
- package/dist/cjs/newsletter/project-plugin.js +97 -0
- package/dist/cjs/newsletter/project-plugin.js.map +1 -0
- package/dist/cjs/newsletter/routes-code.d.ts +6 -0
- package/dist/cjs/newsletter/routes-code.d.ts.map +1 -0
- package/dist/cjs/newsletter/routes-code.js +181 -0
- package/dist/cjs/newsletter/routes-code.js.map +1 -0
- package/dist/cjs/nodes/account/account-compare-passwords.d.ts.map +1 -1
- package/dist/cjs/nodes/account/account-compare-passwords.js +16 -6
- package/dist/cjs/nodes/account/account-compare-passwords.js.map +1 -1
- package/dist/cjs/nodes/account/account-delete-current.js +1 -1
- package/dist/cjs/nodes/account/account-get-current.js +1 -1
- package/dist/cjs/nodes/account/account-hash-password.d.ts.map +1 -1
- package/dist/cjs/nodes/account/account-hash-password.js +15 -3
- package/dist/cjs/nodes/account/account-hash-password.js.map +1 -1
- package/dist/cjs/nodes/account/account-login.d.ts.map +1 -1
- package/dist/cjs/nodes/account/account-login.js +23 -6
- package/dist/cjs/nodes/account/account-login.js.map +1 -1
- package/dist/cjs/nodes/account/account-logout.js +1 -1
- package/dist/cjs/nodes/account/account-refresh-session.js +1 -1
- package/dist/cjs/nodes/account/account-request-password-reset.d.ts +3 -0
- package/dist/cjs/nodes/account/account-request-password-reset.d.ts.map +1 -0
- package/dist/cjs/nodes/account/account-request-password-reset.js +46 -0
- package/dist/cjs/nodes/account/account-request-password-reset.js.map +1 -0
- package/dist/cjs/nodes/account/account-reset-password.d.ts +3 -0
- package/dist/cjs/nodes/account/account-reset-password.d.ts.map +1 -0
- package/dist/cjs/nodes/account/account-reset-password.js +44 -0
- package/dist/cjs/nodes/account/account-reset-password.js.map +1 -0
- package/dist/cjs/nodes/account/account-signup.d.ts.map +1 -1
- package/dist/cjs/nodes/account/account-signup.js +82 -19
- package/dist/cjs/nodes/account/account-signup.js.map +1 -1
- package/dist/cjs/nodes/account/account-social-login.js +1 -1
- package/dist/cjs/nodes/ai/ai-custom-prompt.d.ts.map +1 -1
- package/dist/cjs/nodes/ai/ai-custom-prompt.js +20 -5
- package/dist/cjs/nodes/ai/ai-custom-prompt.js.map +1 -1
- package/dist/cjs/nodes/ai/ai-detect-language.d.ts.map +1 -1
- package/dist/cjs/nodes/ai/ai-detect-language.js +20 -5
- package/dist/cjs/nodes/ai/ai-detect-language.js.map +1 -1
- package/dist/cjs/nodes/ai/ai-generate-text-embedding.d.ts.map +1 -1
- package/dist/cjs/nodes/ai/ai-generate-text-embedding.js +10 -2
- package/dist/cjs/nodes/ai/ai-generate-text-embedding.js.map +1 -1
- package/dist/cjs/nodes/ai/ai-provider-utils-sources.generated.js +2 -2
- package/dist/cjs/nodes/ai/ai-provider-utils-sources.generated.js.map +1 -1
- package/dist/cjs/nodes/ai/ai-provider-utils.d.ts +31 -2
- package/dist/cjs/nodes/ai/ai-provider-utils.d.ts.map +1 -1
- package/dist/cjs/nodes/ai/ai-provider-utils.js +125 -11
- package/dist/cjs/nodes/ai/ai-provider-utils.js.map +1 -1
- package/dist/cjs/nodes/ai/ai-select-database-data.d.ts.map +1 -1
- package/dist/cjs/nodes/ai/ai-select-database-data.js +6 -2
- package/dist/cjs/nodes/ai/ai-select-database-data.js.map +1 -1
- package/dist/cjs/nodes/ai/ai-sentiment-analysis.d.ts.map +1 -1
- package/dist/cjs/nodes/ai/ai-sentiment-analysis.js +20 -5
- package/dist/cjs/nodes/ai/ai-sentiment-analysis.js.map +1 -1
- package/dist/cjs/nodes/ai/ai-summarization.d.ts.map +1 -1
- package/dist/cjs/nodes/ai/ai-summarization.js +20 -5
- package/dist/cjs/nodes/ai/ai-summarization.js.map +1 -1
- package/dist/cjs/nodes/ai/ai-text-classifier.d.ts.map +1 -1
- package/dist/cjs/nodes/ai/ai-text-classifier.js +20 -5
- package/dist/cjs/nodes/ai/ai-text-classifier.js.map +1 -1
- package/dist/cjs/nodes/ai/ai-text-transform.d.ts.map +1 -1
- package/dist/cjs/nodes/ai/ai-text-transform.js +20 -5
- package/dist/cjs/nodes/ai/ai-text-transform.js.map +1 -1
- package/dist/cjs/nodes/analytics/analytics-track-outcome.d.ts +3 -0
- package/dist/cjs/nodes/analytics/analytics-track-outcome.d.ts.map +1 -0
- package/dist/cjs/nodes/analytics/analytics-track-outcome.js +110 -0
- package/dist/cjs/nodes/analytics/analytics-track-outcome.js.map +1 -0
- package/dist/cjs/nodes/cart/cart-price-order.d.ts.map +1 -1
- package/dist/cjs/nodes/cart/cart-price-order.js +161 -2
- package/dist/cjs/nodes/cart/cart-price-order.js.map +1 -1
- package/dist/cjs/nodes/cost-bearing-node-types.d.ts +4 -0
- package/dist/cjs/nodes/cost-bearing-node-types.d.ts.map +1 -0
- package/dist/cjs/nodes/cost-bearing-node-types.js +43 -0
- package/dist/cjs/nodes/cost-bearing-node-types.js.map +1 -0
- package/dist/cjs/nodes/data/data-select.d.ts.map +1 -1
- package/dist/cjs/nodes/data/data-select.js +12 -2
- package/dist/cjs/nodes/data/data-select.js.map +1 -1
- package/dist/cjs/nodes/email/email-mailersend.d.ts.map +1 -1
- package/dist/cjs/nodes/email/email-mailersend.js +15 -11
- package/dist/cjs/nodes/email/email-mailersend.js.map +1 -1
- package/dist/cjs/nodes/email/email-mailgun.d.ts.map +1 -1
- package/dist/cjs/nodes/email/email-mailgun.js +15 -15
- package/dist/cjs/nodes/email/email-mailgun.js.map +1 -1
- package/dist/cjs/nodes/email/email-postmark.d.ts.map +1 -1
- package/dist/cjs/nodes/email/email-postmark.js +15 -15
- package/dist/cjs/nodes/email/email-postmark.js.map +1 -1
- package/dist/cjs/nodes/email/email-resend.d.ts.map +1 -1
- package/dist/cjs/nodes/email/email-resend.js +15 -15
- package/dist/cjs/nodes/email/email-resend.js.map +1 -1
- package/dist/cjs/nodes/email/email-sendgrid.d.ts.map +1 -1
- package/dist/cjs/nodes/email/email-sendgrid.js +15 -15
- package/dist/cjs/nodes/email/email-sendgrid.js.map +1 -1
- package/dist/cjs/nodes/email/html-escape-code.d.ts +3 -0
- package/dist/cjs/nodes/email/html-escape-code.d.ts.map +1 -0
- package/dist/cjs/nodes/email/html-escape-code.js +23 -0
- package/dist/cjs/nodes/email/html-escape-code.js.map +1 -0
- package/dist/cjs/nodes/email/message-trust.d.ts +40 -0
- package/dist/cjs/nodes/email/message-trust.d.ts.map +1 -0
- package/dist/cjs/nodes/email/message-trust.js +167 -0
- package/dist/cjs/nodes/email/message-trust.js.map +1 -0
- package/dist/cjs/nodes/email/outbound-message-guard.d.ts +113 -0
- package/dist/cjs/nodes/email/outbound-message-guard.d.ts.map +1 -0
- package/dist/cjs/nodes/email/outbound-message-guard.js +460 -0
- package/dist/cjs/nodes/email/outbound-message-guard.js.map +1 -0
- package/dist/cjs/nodes/email/trusted-html-code.d.ts +22 -0
- package/dist/cjs/nodes/email/trusted-html-code.d.ts.map +1 -0
- package/dist/cjs/nodes/email/trusted-html-code.js +52 -0
- package/dist/cjs/nodes/email/trusted-html-code.js.map +1 -0
- package/dist/cjs/nodes/general/general-custom-js.d.ts.map +1 -1
- package/dist/cjs/nodes/general/general-custom-js.js +44 -7
- package/dist/cjs/nodes/general/general-custom-js.js.map +1 -1
- package/dist/cjs/nodes/general/general-http-request.d.ts.map +1 -1
- package/dist/cjs/nodes/general/general-http-request.js +431 -45
- package/dist/cjs/nodes/general/general-http-request.js.map +1 -1
- package/dist/cjs/nodes/general/general-rate-limiter.d.ts.map +1 -1
- package/dist/cjs/nodes/general/general-rate-limiter.js +46 -78
- package/dist/cjs/nodes/general/general-rate-limiter.js.map +1 -1
- package/dist/cjs/nodes/general/general-wait.d.ts +3 -0
- package/dist/cjs/nodes/general/general-wait.d.ts.map +1 -0
- package/dist/cjs/nodes/general/general-wait.js +81 -0
- package/dist/cjs/nodes/general/general-wait.js.map +1 -0
- package/dist/cjs/nodes/general/visitor-request.d.ts +44 -0
- package/dist/cjs/nodes/general/visitor-request.d.ts.map +1 -0
- package/dist/cjs/nodes/general/visitor-request.js +72 -0
- package/dist/cjs/nodes/general/visitor-request.js.map +1 -0
- package/dist/cjs/nodes/index.d.ts.map +1 -1
- package/dist/cjs/nodes/index.js +7 -1
- package/dist/cjs/nodes/index.js.map +1 -1
- package/dist/cjs/nodes/integrations/integration-slack.d.ts.map +1 -1
- package/dist/cjs/nodes/integrations/integration-slack.js +17 -6
- package/dist/cjs/nodes/integrations/integration-slack.js.map +1 -1
- package/dist/cjs/nodes/newsletter/newsletter-confirm.d.ts +3 -0
- package/dist/cjs/nodes/newsletter/newsletter-confirm.d.ts.map +1 -0
- package/dist/cjs/nodes/newsletter/newsletter-confirm.js +41 -0
- package/dist/cjs/nodes/newsletter/newsletter-confirm.js.map +1 -0
- package/dist/cjs/nodes/newsletter/newsletter-subscribe.d.ts +7 -0
- package/dist/cjs/nodes/newsletter/newsletter-subscribe.d.ts.map +1 -0
- package/dist/cjs/nodes/newsletter/newsletter-subscribe.js +69 -0
- package/dist/cjs/nodes/newsletter/newsletter-subscribe.js.map +1 -0
- package/dist/cjs/nodes/newsletter/newsletter-unsubscribe.d.ts +3 -0
- package/dist/cjs/nodes/newsletter/newsletter-unsubscribe.d.ts.map +1 -0
- package/dist/cjs/nodes/newsletter/newsletter-unsubscribe.js +42 -0
- package/dist/cjs/nodes/newsletter/newsletter-unsubscribe.js.map +1 -0
- package/dist/cjs/nodes/realtime/realtime-join-channel.d.ts.map +1 -1
- package/dist/cjs/nodes/realtime/realtime-join-channel.js +5 -4
- package/dist/cjs/nodes/realtime/realtime-join-channel.js.map +1 -1
- package/dist/cjs/nodes/realtime/realtime-send-channel-event.d.ts.map +1 -1
- package/dist/cjs/nodes/realtime/realtime-send-channel-event.js +11 -2
- package/dist/cjs/nodes/realtime/realtime-send-channel-event.js.map +1 -1
- package/dist/cjs/nodes/realtime/realtime-send-channel-message.d.ts.map +1 -1
- package/dist/cjs/nodes/realtime/realtime-send-channel-message.js +11 -2
- package/dist/cjs/nodes/realtime/realtime-send-channel-message.js.map +1 -1
- package/dist/cjs/nodes/sms/sms-infobip.d.ts.map +1 -1
- package/dist/cjs/nodes/sms/sms-infobip.js +11 -8
- package/dist/cjs/nodes/sms/sms-infobip.js.map +1 -1
- package/dist/cjs/nodes/sms/sms-smsapi.d.ts.map +1 -1
- package/dist/cjs/nodes/sms/sms-smsapi.js +11 -8
- package/dist/cjs/nodes/sms/sms-smsapi.js.map +1 -1
- package/dist/cjs/nodes/sms/sms-textmagic.d.ts.map +1 -1
- package/dist/cjs/nodes/sms/sms-textmagic.js +11 -8
- package/dist/cjs/nodes/sms/sms-textmagic.js.map +1 -1
- package/dist/cjs/nodes/sms/sms-twilio.d.ts.map +1 -1
- package/dist/cjs/nodes/sms/sms-twilio.js +12 -10
- package/dist/cjs/nodes/sms/sms-twilio.js.map +1 -1
- package/dist/cjs/nodes/types.d.ts +8 -1
- package/dist/cjs/nodes/types.d.ts.map +1 -1
- package/dist/cjs/nodes/utility/utility-similarity-scoring.d.ts.map +1 -1
- package/dist/cjs/nodes/utility/utility-similarity-scoring.js +29 -10
- package/dist/cjs/nodes/utility/utility-similarity-scoring.js.map +1 -1
- package/dist/cjs/page-access-guard-generator.d.ts +23 -0
- package/dist/cjs/page-access-guard-generator.d.ts.map +1 -0
- package/dist/cjs/page-access-guard-generator.js +135 -0
- package/dist/cjs/page-access-guard-generator.js.map +1 -0
- package/dist/cjs/password-reset-route-generator.d.ts +119 -0
- package/dist/cjs/password-reset-route-generator.d.ts.map +1 -0
- package/dist/cjs/password-reset-route-generator.js +460 -0
- package/dist/cjs/password-reset-route-generator.js.map +1 -0
- package/dist/cjs/payments/payment-core-code.d.ts.map +1 -1
- package/dist/cjs/payments/payment-core-code.js +12 -7
- package/dist/cjs/payments/payment-core-code.js.map +1 -1
- package/dist/cjs/project-code-scanner.d.ts +11 -0
- package/dist/cjs/project-code-scanner.d.ts.map +1 -0
- package/dist/cjs/project-code-scanner.js +80 -0
- package/dist/cjs/project-code-scanner.js.map +1 -0
- package/dist/cjs/public-step-guards.d.ts +122 -0
- package/dist/cjs/public-step-guards.d.ts.map +1 -0
- package/dist/cjs/public-step-guards.js +288 -0
- package/dist/cjs/public-step-guards.js.map +1 -0
- package/dist/cjs/publish-refusals.d.ts +66 -0
- package/dist/cjs/publish-refusals.d.ts.map +1 -0
- package/dist/cjs/publish-refusals.js +278 -0
- package/dist/cjs/publish-refusals.js.map +1 -0
- package/dist/cjs/realtime-generator.d.ts +63 -1
- package/dist/cjs/realtime-generator.d.ts.map +1 -1
- package/dist/cjs/realtime-generator.js +404 -230
- package/dist/cjs/realtime-generator.js.map +1 -1
- package/dist/cjs/runtime-storage-generator.d.ts +32 -1
- package/dist/cjs/runtime-storage-generator.d.ts.map +1 -1
- package/dist/cjs/runtime-storage-generator.js +265 -12
- package/dist/cjs/runtime-storage-generator.js.map +1 -1
- package/dist/cjs/security-runtime/index.d.ts +14 -0
- package/dist/cjs/security-runtime/index.d.ts.map +1 -0
- package/dist/cjs/security-runtime/index.js +48 -0
- package/dist/cjs/security-runtime/index.js.map +1 -0
- package/dist/cjs/security-runtime/security-runtime-code.d.ts +53 -0
- package/dist/cjs/security-runtime/security-runtime-code.d.ts.map +1 -0
- package/dist/cjs/security-runtime/security-runtime-code.js +580 -0
- package/dist/cjs/security-runtime/security-runtime-code.js.map +1 -0
- package/dist/cjs/security-scanner.d.ts +72 -3
- package/dist/cjs/security-scanner.d.ts.map +1 -1
- package/dist/cjs/security-scanner.js +220 -8
- package/dist/cjs/security-scanner.js.map +1 -1
- package/dist/cjs/segment-splitter.d.ts.map +1 -1
- package/dist/cjs/segment-splitter.js +10 -2
- package/dist/cjs/segment-splitter.js.map +1 -1
- package/dist/cjs/segment-trust.d.ts +36 -0
- package/dist/cjs/segment-trust.d.ts.map +1 -1
- package/dist/cjs/segment-trust.js +147 -3
- package/dist/cjs/segment-trust.js.map +1 -1
- package/dist/cjs/self-call-headers.d.ts +31 -0
- package/dist/cjs/self-call-headers.d.ts.map +1 -0
- package/dist/cjs/self-call-headers.js +48 -0
- package/dist/cjs/self-call-headers.js.map +1 -0
- package/dist/cjs/sent-email-log/index.d.ts +7 -0
- package/dist/cjs/sent-email-log/index.d.ts.map +1 -1
- package/dist/cjs/sent-email-log/index.js +17 -1
- package/dist/cjs/sent-email-log/index.js.map +1 -1
- package/dist/cjs/sent-email-log/sent-email-log-code.d.ts +7 -0
- package/dist/cjs/sent-email-log/sent-email-log-code.d.ts.map +1 -1
- package/dist/cjs/sent-email-log/sent-email-log-code.js +17 -3
- package/dist/cjs/sent-email-log/sent-email-log-code.js.map +1 -1
- package/dist/cjs/server-custom-node-call.d.ts +79 -0
- package/dist/cjs/server-custom-node-call.d.ts.map +1 -0
- package/dist/cjs/server-custom-node-call.js +285 -0
- package/dist/cjs/server-custom-node-call.js.map +1 -0
- package/dist/cjs/server-runtime-code.d.ts +39 -12
- package/dist/cjs/server-runtime-code.d.ts.map +1 -1
- package/dist/cjs/server-runtime-code.js +484 -41
- package/dist/cjs/server-runtime-code.js.map +1 -1
- package/dist/cjs/session-cookie-resolver.d.ts +3 -1
- package/dist/cjs/session-cookie-resolver.d.ts.map +1 -1
- package/dist/cjs/session-revocation-generator.d.ts +39 -0
- package/dist/cjs/session-revocation-generator.d.ts.map +1 -0
- package/dist/cjs/session-revocation-generator.js +177 -0
- package/dist/cjs/session-revocation-generator.js.map +1 -0
- package/dist/cjs/slack-message-values.d.ts +6 -0
- package/dist/cjs/slack-message-values.d.ts.map +1 -0
- package/dist/cjs/slack-message-values.js +73 -0
- package/dist/cjs/slack-message-values.js.map +1 -0
- package/dist/cjs/transactional-email-code.d.ts +11 -0
- package/dist/cjs/transactional-email-code.d.ts.map +1 -1
- package/dist/cjs/transactional-email-code.js +29 -5
- package/dist/cjs/transactional-email-code.js.map +1 -1
- package/dist/cjs/trigger-generator.d.ts +2 -0
- package/dist/cjs/trigger-generator.d.ts.map +1 -1
- package/dist/cjs/trigger-generator.js +17 -4
- package/dist/cjs/trigger-generator.js.map +1 -1
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/cjs/visitor-step-limits.d.ts +66 -0
- package/dist/cjs/visitor-step-limits.d.ts.map +1 -0
- package/dist/cjs/visitor-step-limits.js +187 -0
- package/dist/cjs/visitor-step-limits.js.map +1 -0
- package/dist/cjs/webhook-generator.d.ts.map +1 -1
- package/dist/cjs/webhook-generator.js +93 -15
- package/dist/cjs/webhook-generator.js.map +1 -1
- package/dist/cjs/webhook-signature-verification.d.ts.map +1 -1
- package/dist/cjs/webhook-signature-verification.js +13 -3
- package/dist/cjs/webhook-signature-verification.js.map +1 -1
- package/dist/cjs/workflow-auth-generator.d.ts +4 -1
- package/dist/cjs/workflow-auth-generator.d.ts.map +1 -1
- package/dist/cjs/workflow-auth-generator.js +8 -3
- package/dist/cjs/workflow-auth-generator.js.map +1 -1
- package/dist/cjs/workflow-component-plugin.js +11 -3
- package/dist/cjs/workflow-component-plugin.js.map +1 -1
- package/dist/cjs/workflow-project-plugin.d.ts.map +1 -1
- package/dist/cjs/workflow-project-plugin.js +302 -56
- package/dist/cjs/workflow-project-plugin.js.map +1 -1
- package/dist/cjs/workflow-scope.d.ts.map +1 -1
- package/dist/cjs/workflow-scope.js +5 -0
- package/dist/cjs/workflow-scope.js.map +1 -1
- package/dist/esm/account-delete-route-generator.d.ts +1 -0
- package/dist/esm/account-delete-route-generator.d.ts.map +1 -1
- package/dist/esm/account-delete-route-generator.js +18 -3
- package/dist/esm/account-delete-route-generator.js.map +1 -1
- package/dist/esm/api-route-generator.d.ts +52 -3
- package/dist/esm/api-route-generator.d.ts.map +1 -1
- package/dist/esm/api-route-generator.js +595 -142
- package/dist/esm/api-route-generator.js.map +1 -1
- package/dist/esm/auth-generator.d.ts +126 -3
- package/dist/esm/auth-generator.d.ts.map +1 -1
- package/dist/esm/auth-generator.js +1350 -140
- package/dist/esm/auth-generator.js.map +1 -1
- package/dist/esm/automations/activity-kicks.d.ts +12 -0
- package/dist/esm/automations/activity-kicks.d.ts.map +1 -0
- package/dist/esm/automations/activity-kicks.js +118 -0
- package/dist/esm/automations/activity-kicks.js.map +1 -0
- package/dist/esm/automations/app-events-source.d.ts +33 -0
- package/dist/esm/automations/app-events-source.d.ts.map +1 -0
- package/dist/esm/automations/app-events-source.js +104 -0
- package/dist/esm/automations/app-events-source.js.map +1 -0
- package/dist/esm/automations/automations-project-plugin.d.ts +21 -0
- package/dist/esm/automations/automations-project-plugin.d.ts.map +1 -0
- package/dist/esm/automations/automations-project-plugin.js +98 -0
- package/dist/esm/automations/automations-project-plugin.js.map +1 -0
- package/dist/esm/automations/automations-scope.d.ts +104 -0
- package/dist/esm/automations/automations-scope.d.ts.map +1 -0
- package/dist/esm/automations/automations-scope.js +165 -0
- package/dist/esm/automations/automations-scope.js.map +1 -0
- package/dist/esm/automations/dispatcher-source.d.ts +72 -0
- package/dist/esm/automations/dispatcher-source.d.ts.map +1 -0
- package/dist/esm/automations/dispatcher-source.js +999 -0
- package/dist/esm/automations/dispatcher-source.js.map +1 -0
- package/dist/esm/automations/event-bus-source.d.ts +44 -0
- package/dist/esm/automations/event-bus-source.d.ts.map +1 -0
- package/dist/esm/automations/event-bus-source.js +421 -0
- package/dist/esm/automations/event-bus-source.js.map +1 -0
- package/dist/esm/automations/handler-module-generator.d.ts +25 -0
- package/dist/esm/automations/handler-module-generator.d.ts.map +1 -0
- package/dist/esm/automations/handler-module-generator.js +71 -0
- package/dist/esm/automations/handler-module-generator.js.map +1 -0
- package/dist/esm/automations/hydrators-source.d.ts +33 -0
- package/dist/esm/automations/hydrators-source.d.ts.map +1 -0
- package/dist/esm/automations/hydrators-source.js +567 -0
- package/dist/esm/automations/hydrators-source.js.map +1 -0
- package/dist/esm/booking-calendar-feed-route-generator.d.ts.map +1 -1
- package/dist/esm/booking-calendar-feed-route-generator.js +8 -0
- package/dist/esm/booking-calendar-feed-route-generator.js.map +1 -1
- package/dist/esm/configured-nextauth-url.d.ts +17 -0
- package/dist/esm/configured-nextauth-url.d.ts.map +1 -0
- package/dist/esm/configured-nextauth-url.js +17 -0
- package/dist/esm/configured-nextauth-url.js.map +1 -0
- package/dist/esm/cron-request-verification.d.ts +22 -1
- package/dist/esm/cron-request-verification.d.ts.map +1 -1
- package/dist/esm/cron-request-verification.js +48 -5
- package/dist/esm/cron-request-verification.js.map +1 -1
- package/dist/esm/data-api-route-generator.d.ts +19 -0
- package/dist/esm/data-api-route-generator.d.ts.map +1 -1
- package/dist/esm/data-api-route-generator.js +710 -43
- package/dist/esm/data-api-route-generator.js.map +1 -1
- package/dist/esm/ecommerce/parameterized-stock-chain.d.ts +3 -1
- package/dist/esm/ecommerce/parameterized-stock-chain.d.ts.map +1 -1
- package/dist/esm/ecommerce/parameterized-stock-chain.js +43 -4
- package/dist/esm/ecommerce/parameterized-stock-chain.js.map +1 -1
- package/dist/esm/ecommerce/place-order-guards.d.ts +126 -0
- package/dist/esm/ecommerce/place-order-guards.d.ts.map +1 -0
- package/dist/esm/ecommerce/place-order-guards.js +655 -0
- package/dist/esm/ecommerce/place-order-guards.js.map +1 -0
- package/dist/esm/ecommerce-customhandler-rewriter.d.ts +2 -0
- package/dist/esm/ecommerce-customhandler-rewriter.d.ts.map +1 -1
- package/dist/esm/ecommerce-customhandler-rewriter.js +38 -2
- package/dist/esm/ecommerce-customhandler-rewriter.js.map +1 -1
- package/dist/esm/executor-generator.d.ts.map +1 -1
- package/dist/esm/executor-generator.js +368 -60
- package/dist/esm/executor-generator.js.map +1 -1
- package/dist/esm/graph-utils.d.ts +9 -0
- package/dist/esm/graph-utils.d.ts.map +1 -1
- package/dist/esm/graph-utils.js +30 -0
- package/dist/esm/graph-utils.js.map +1 -1
- package/dist/esm/index.d.ts +20 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +27 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/invoice/api-routes-code.d.ts +9 -3
- package/dist/esm/invoice/api-routes-code.d.ts.map +1 -1
- package/dist/esm/invoice/api-routes-code.js +9 -7
- package/dist/esm/invoice/api-routes-code.js.map +1 -1
- package/dist/esm/invoice/index.d.ts.map +1 -1
- package/dist/esm/invoice/index.js +12 -7
- package/dist/esm/invoice/index.js.map +1 -1
- package/dist/esm/invoice/invoice-assembly-code.d.ts.map +1 -1
- package/dist/esm/invoice/invoice-assembly-code.js +8 -3
- package/dist/esm/invoice/invoice-assembly-code.js.map +1 -1
- package/dist/esm/invoice/pdf-generator-code.d.ts.map +1 -1
- package/dist/esm/invoice/pdf-generator-code.js +2 -1
- package/dist/esm/invoice/pdf-generator-code.js.map +1 -1
- package/dist/esm/invoice/pdf-service-client-code.d.ts.map +1 -1
- package/dist/esm/invoice/pdf-service-client-code.js +15 -7
- package/dist/esm/invoice/pdf-service-client-code.js.map +1 -1
- package/dist/esm/newsletter/admin-route-code.d.ts +60 -0
- package/dist/esm/newsletter/admin-route-code.d.ts.map +1 -0
- package/dist/esm/newsletter/admin-route-code.js +295 -0
- package/dist/esm/newsletter/admin-route-code.js.map +1 -0
- package/dist/esm/newsletter/helper-code.d.ts +109 -0
- package/dist/esm/newsletter/helper-code.d.ts.map +1 -0
- package/dist/esm/newsletter/helper-code.js +656 -0
- package/dist/esm/newsletter/helper-code.js.map +1 -0
- package/dist/esm/newsletter/newsletter-scope.d.ts +65 -0
- package/dist/esm/newsletter/newsletter-scope.d.ts.map +1 -0
- package/dist/esm/newsletter/newsletter-scope.js +97 -0
- package/dist/esm/newsletter/newsletter-scope.js.map +1 -0
- package/dist/esm/newsletter/project-plugin.d.ts +18 -0
- package/dist/esm/newsletter/project-plugin.d.ts.map +1 -0
- package/dist/esm/newsletter/project-plugin.js +93 -0
- package/dist/esm/newsletter/project-plugin.js.map +1 -0
- package/dist/esm/newsletter/routes-code.d.ts +6 -0
- package/dist/esm/newsletter/routes-code.d.ts.map +1 -0
- package/dist/esm/newsletter/routes-code.js +175 -0
- package/dist/esm/newsletter/routes-code.js.map +1 -0
- package/dist/esm/nodes/account/account-compare-passwords.d.ts.map +1 -1
- package/dist/esm/nodes/account/account-compare-passwords.js +16 -6
- package/dist/esm/nodes/account/account-compare-passwords.js.map +1 -1
- package/dist/esm/nodes/account/account-delete-current.js +1 -1
- package/dist/esm/nodes/account/account-get-current.js +1 -1
- package/dist/esm/nodes/account/account-hash-password.d.ts.map +1 -1
- package/dist/esm/nodes/account/account-hash-password.js +15 -3
- package/dist/esm/nodes/account/account-hash-password.js.map +1 -1
- package/dist/esm/nodes/account/account-login.d.ts.map +1 -1
- package/dist/esm/nodes/account/account-login.js +23 -6
- package/dist/esm/nodes/account/account-login.js.map +1 -1
- package/dist/esm/nodes/account/account-logout.js +1 -1
- package/dist/esm/nodes/account/account-refresh-session.js +1 -1
- package/dist/esm/nodes/account/account-request-password-reset.d.ts +3 -0
- package/dist/esm/nodes/account/account-request-password-reset.d.ts.map +1 -0
- package/dist/esm/nodes/account/account-request-password-reset.js +43 -0
- package/dist/esm/nodes/account/account-request-password-reset.js.map +1 -0
- package/dist/esm/nodes/account/account-reset-password.d.ts +3 -0
- package/dist/esm/nodes/account/account-reset-password.d.ts.map +1 -0
- package/dist/esm/nodes/account/account-reset-password.js +41 -0
- package/dist/esm/nodes/account/account-reset-password.js.map +1 -0
- package/dist/esm/nodes/account/account-signup.d.ts.map +1 -1
- package/dist/esm/nodes/account/account-signup.js +82 -19
- package/dist/esm/nodes/account/account-signup.js.map +1 -1
- package/dist/esm/nodes/account/account-social-login.js +1 -1
- package/dist/esm/nodes/ai/ai-custom-prompt.d.ts.map +1 -1
- package/dist/esm/nodes/ai/ai-custom-prompt.js +20 -5
- package/dist/esm/nodes/ai/ai-custom-prompt.js.map +1 -1
- package/dist/esm/nodes/ai/ai-detect-language.d.ts.map +1 -1
- package/dist/esm/nodes/ai/ai-detect-language.js +20 -5
- package/dist/esm/nodes/ai/ai-detect-language.js.map +1 -1
- package/dist/esm/nodes/ai/ai-generate-text-embedding.d.ts.map +1 -1
- package/dist/esm/nodes/ai/ai-generate-text-embedding.js +10 -2
- package/dist/esm/nodes/ai/ai-generate-text-embedding.js.map +1 -1
- package/dist/esm/nodes/ai/ai-provider-utils-sources.generated.js +2 -2
- package/dist/esm/nodes/ai/ai-provider-utils-sources.generated.js.map +1 -1
- package/dist/esm/nodes/ai/ai-provider-utils.d.ts +31 -2
- package/dist/esm/nodes/ai/ai-provider-utils.d.ts.map +1 -1
- package/dist/esm/nodes/ai/ai-provider-utils.js +124 -10
- package/dist/esm/nodes/ai/ai-provider-utils.js.map +1 -1
- package/dist/esm/nodes/ai/ai-select-database-data.d.ts.map +1 -1
- package/dist/esm/nodes/ai/ai-select-database-data.js +6 -2
- package/dist/esm/nodes/ai/ai-select-database-data.js.map +1 -1
- package/dist/esm/nodes/ai/ai-sentiment-analysis.d.ts.map +1 -1
- package/dist/esm/nodes/ai/ai-sentiment-analysis.js +20 -5
- package/dist/esm/nodes/ai/ai-sentiment-analysis.js.map +1 -1
- package/dist/esm/nodes/ai/ai-summarization.d.ts.map +1 -1
- package/dist/esm/nodes/ai/ai-summarization.js +20 -5
- package/dist/esm/nodes/ai/ai-summarization.js.map +1 -1
- package/dist/esm/nodes/ai/ai-text-classifier.d.ts.map +1 -1
- package/dist/esm/nodes/ai/ai-text-classifier.js +20 -5
- package/dist/esm/nodes/ai/ai-text-classifier.js.map +1 -1
- package/dist/esm/nodes/ai/ai-text-transform.d.ts.map +1 -1
- package/dist/esm/nodes/ai/ai-text-transform.js +20 -5
- package/dist/esm/nodes/ai/ai-text-transform.js.map +1 -1
- package/dist/esm/nodes/analytics/analytics-track-outcome.d.ts +3 -0
- package/dist/esm/nodes/analytics/analytics-track-outcome.d.ts.map +1 -0
- package/dist/esm/nodes/analytics/analytics-track-outcome.js +107 -0
- package/dist/esm/nodes/analytics/analytics-track-outcome.js.map +1 -0
- package/dist/esm/nodes/cart/cart-price-order.d.ts.map +1 -1
- package/dist/esm/nodes/cart/cart-price-order.js +161 -2
- package/dist/esm/nodes/cart/cart-price-order.js.map +1 -1
- package/dist/esm/nodes/cost-bearing-node-types.d.ts +4 -0
- package/dist/esm/nodes/cost-bearing-node-types.d.ts.map +1 -0
- package/dist/esm/nodes/cost-bearing-node-types.js +39 -0
- package/dist/esm/nodes/cost-bearing-node-types.js.map +1 -0
- package/dist/esm/nodes/data/data-select.d.ts.map +1 -1
- package/dist/esm/nodes/data/data-select.js +12 -2
- package/dist/esm/nodes/data/data-select.js.map +1 -1
- package/dist/esm/nodes/email/email-mailersend.d.ts.map +1 -1
- package/dist/esm/nodes/email/email-mailersend.js +15 -11
- package/dist/esm/nodes/email/email-mailersend.js.map +1 -1
- package/dist/esm/nodes/email/email-mailgun.d.ts.map +1 -1
- package/dist/esm/nodes/email/email-mailgun.js +15 -15
- package/dist/esm/nodes/email/email-mailgun.js.map +1 -1
- package/dist/esm/nodes/email/email-postmark.d.ts.map +1 -1
- package/dist/esm/nodes/email/email-postmark.js +15 -15
- package/dist/esm/nodes/email/email-postmark.js.map +1 -1
- package/dist/esm/nodes/email/email-resend.d.ts.map +1 -1
- package/dist/esm/nodes/email/email-resend.js +15 -15
- package/dist/esm/nodes/email/email-resend.js.map +1 -1
- package/dist/esm/nodes/email/email-sendgrid.d.ts.map +1 -1
- package/dist/esm/nodes/email/email-sendgrid.js +15 -15
- package/dist/esm/nodes/email/email-sendgrid.js.map +1 -1
- package/dist/esm/nodes/email/html-escape-code.d.ts +3 -0
- package/dist/esm/nodes/email/html-escape-code.d.ts.map +1 -0
- package/dist/esm/nodes/email/html-escape-code.js +18 -0
- package/dist/esm/nodes/email/html-escape-code.js.map +1 -0
- package/dist/esm/nodes/email/message-trust.d.ts +40 -0
- package/dist/esm/nodes/email/message-trust.d.ts.map +1 -0
- package/dist/esm/nodes/email/message-trust.js +161 -0
- package/dist/esm/nodes/email/message-trust.js.map +1 -0
- package/dist/esm/nodes/email/outbound-message-guard.d.ts +113 -0
- package/dist/esm/nodes/email/outbound-message-guard.d.ts.map +1 -0
- package/dist/esm/nodes/email/outbound-message-guard.js +452 -0
- package/dist/esm/nodes/email/outbound-message-guard.js.map +1 -0
- package/dist/esm/nodes/email/trusted-html-code.d.ts +22 -0
- package/dist/esm/nodes/email/trusted-html-code.d.ts.map +1 -0
- package/dist/esm/nodes/email/trusted-html-code.js +49 -0
- package/dist/esm/nodes/email/trusted-html-code.js.map +1 -0
- package/dist/esm/nodes/general/general-custom-js.d.ts.map +1 -1
- package/dist/esm/nodes/general/general-custom-js.js +44 -7
- package/dist/esm/nodes/general/general-custom-js.js.map +1 -1
- package/dist/esm/nodes/general/general-http-request.d.ts.map +1 -1
- package/dist/esm/nodes/general/general-http-request.js +431 -45
- package/dist/esm/nodes/general/general-http-request.js.map +1 -1
- package/dist/esm/nodes/general/general-rate-limiter.d.ts.map +1 -1
- package/dist/esm/nodes/general/general-rate-limiter.js +46 -78
- package/dist/esm/nodes/general/general-rate-limiter.js.map +1 -1
- package/dist/esm/nodes/general/general-wait.d.ts +3 -0
- package/dist/esm/nodes/general/general-wait.d.ts.map +1 -0
- package/dist/esm/nodes/general/general-wait.js +78 -0
- package/dist/esm/nodes/general/general-wait.js.map +1 -0
- package/dist/esm/nodes/general/visitor-request.d.ts +44 -0
- package/dist/esm/nodes/general/visitor-request.d.ts.map +1 -0
- package/dist/esm/nodes/general/visitor-request.js +65 -0
- package/dist/esm/nodes/general/visitor-request.js.map +1 -0
- package/dist/esm/nodes/index.d.ts.map +1 -1
- package/dist/esm/nodes/index.js +7 -1
- package/dist/esm/nodes/index.js.map +1 -1
- package/dist/esm/nodes/integrations/integration-slack.d.ts.map +1 -1
- package/dist/esm/nodes/integrations/integration-slack.js +17 -6
- package/dist/esm/nodes/integrations/integration-slack.js.map +1 -1
- package/dist/esm/nodes/newsletter/newsletter-confirm.d.ts +3 -0
- package/dist/esm/nodes/newsletter/newsletter-confirm.d.ts.map +1 -0
- package/dist/esm/nodes/newsletter/newsletter-confirm.js +38 -0
- package/dist/esm/nodes/newsletter/newsletter-confirm.js.map +1 -0
- package/dist/esm/nodes/newsletter/newsletter-subscribe.d.ts +7 -0
- package/dist/esm/nodes/newsletter/newsletter-subscribe.d.ts.map +1 -0
- package/dist/esm/nodes/newsletter/newsletter-subscribe.js +66 -0
- package/dist/esm/nodes/newsletter/newsletter-subscribe.js.map +1 -0
- package/dist/esm/nodes/newsletter/newsletter-unsubscribe.d.ts +3 -0
- package/dist/esm/nodes/newsletter/newsletter-unsubscribe.d.ts.map +1 -0
- package/dist/esm/nodes/newsletter/newsletter-unsubscribe.js +39 -0
- package/dist/esm/nodes/newsletter/newsletter-unsubscribe.js.map +1 -0
- package/dist/esm/nodes/realtime/realtime-join-channel.d.ts.map +1 -1
- package/dist/esm/nodes/realtime/realtime-join-channel.js +5 -4
- package/dist/esm/nodes/realtime/realtime-join-channel.js.map +1 -1
- package/dist/esm/nodes/realtime/realtime-send-channel-event.d.ts.map +1 -1
- package/dist/esm/nodes/realtime/realtime-send-channel-event.js +11 -2
- package/dist/esm/nodes/realtime/realtime-send-channel-event.js.map +1 -1
- package/dist/esm/nodes/realtime/realtime-send-channel-message.d.ts.map +1 -1
- package/dist/esm/nodes/realtime/realtime-send-channel-message.js +11 -2
- package/dist/esm/nodes/realtime/realtime-send-channel-message.js.map +1 -1
- package/dist/esm/nodes/sms/sms-infobip.d.ts.map +1 -1
- package/dist/esm/nodes/sms/sms-infobip.js +11 -8
- package/dist/esm/nodes/sms/sms-infobip.js.map +1 -1
- package/dist/esm/nodes/sms/sms-smsapi.d.ts.map +1 -1
- package/dist/esm/nodes/sms/sms-smsapi.js +11 -8
- package/dist/esm/nodes/sms/sms-smsapi.js.map +1 -1
- package/dist/esm/nodes/sms/sms-textmagic.d.ts.map +1 -1
- package/dist/esm/nodes/sms/sms-textmagic.js +11 -8
- package/dist/esm/nodes/sms/sms-textmagic.js.map +1 -1
- package/dist/esm/nodes/sms/sms-twilio.d.ts.map +1 -1
- package/dist/esm/nodes/sms/sms-twilio.js +12 -10
- package/dist/esm/nodes/sms/sms-twilio.js.map +1 -1
- package/dist/esm/nodes/types.d.ts +8 -1
- package/dist/esm/nodes/types.d.ts.map +1 -1
- package/dist/esm/nodes/utility/utility-similarity-scoring.d.ts.map +1 -1
- package/dist/esm/nodes/utility/utility-similarity-scoring.js +29 -10
- package/dist/esm/nodes/utility/utility-similarity-scoring.js.map +1 -1
- package/dist/esm/page-access-guard-generator.d.ts +23 -0
- package/dist/esm/page-access-guard-generator.d.ts.map +1 -0
- package/dist/esm/page-access-guard-generator.js +131 -0
- package/dist/esm/page-access-guard-generator.js.map +1 -0
- package/dist/esm/password-reset-route-generator.d.ts +119 -0
- package/dist/esm/password-reset-route-generator.d.ts.map +1 -0
- package/dist/esm/password-reset-route-generator.js +448 -0
- package/dist/esm/password-reset-route-generator.js.map +1 -0
- package/dist/esm/payments/payment-core-code.d.ts.map +1 -1
- package/dist/esm/payments/payment-core-code.js +12 -7
- package/dist/esm/payments/payment-core-code.js.map +1 -1
- package/dist/esm/project-code-scanner.d.ts +11 -0
- package/dist/esm/project-code-scanner.d.ts.map +1 -0
- package/dist/esm/project-code-scanner.js +75 -0
- package/dist/esm/project-code-scanner.js.map +1 -0
- package/dist/esm/public-step-guards.d.ts +122 -0
- package/dist/esm/public-step-guards.d.ts.map +1 -0
- package/dist/esm/public-step-guards.js +280 -0
- package/dist/esm/public-step-guards.js.map +1 -0
- package/dist/esm/publish-refusals.d.ts +66 -0
- package/dist/esm/publish-refusals.d.ts.map +1 -0
- package/dist/esm/publish-refusals.js +271 -0
- package/dist/esm/publish-refusals.js.map +1 -0
- package/dist/esm/realtime-generator.d.ts +63 -1
- package/dist/esm/realtime-generator.d.ts.map +1 -1
- package/dist/esm/realtime-generator.js +401 -229
- package/dist/esm/realtime-generator.js.map +1 -1
- package/dist/esm/runtime-storage-generator.d.ts +32 -1
- package/dist/esm/runtime-storage-generator.d.ts.map +1 -1
- package/dist/esm/runtime-storage-generator.js +264 -11
- package/dist/esm/runtime-storage-generator.js.map +1 -1
- package/dist/esm/security-runtime/index.d.ts +14 -0
- package/dist/esm/security-runtime/index.d.ts.map +1 -0
- package/dist/esm/security-runtime/index.js +37 -0
- package/dist/esm/security-runtime/index.js.map +1 -0
- package/dist/esm/security-runtime/security-runtime-code.d.ts +53 -0
- package/dist/esm/security-runtime/security-runtime-code.d.ts.map +1 -0
- package/dist/esm/security-runtime/security-runtime-code.js +575 -0
- package/dist/esm/security-runtime/security-runtime-code.js.map +1 -0
- package/dist/esm/security-scanner.d.ts +72 -3
- package/dist/esm/security-scanner.d.ts.map +1 -1
- package/dist/esm/security-scanner.js +217 -8
- package/dist/esm/security-scanner.js.map +1 -1
- package/dist/esm/segment-splitter.d.ts.map +1 -1
- package/dist/esm/segment-splitter.js +10 -2
- package/dist/esm/segment-splitter.js.map +1 -1
- package/dist/esm/segment-trust.d.ts +36 -0
- package/dist/esm/segment-trust.d.ts.map +1 -1
- package/dist/esm/segment-trust.js +146 -2
- package/dist/esm/segment-trust.js.map +1 -1
- package/dist/esm/self-call-headers.d.ts +31 -0
- package/dist/esm/self-call-headers.d.ts.map +1 -0
- package/dist/esm/self-call-headers.js +43 -0
- package/dist/esm/self-call-headers.js.map +1 -0
- package/dist/esm/sent-email-log/index.d.ts +7 -0
- package/dist/esm/sent-email-log/index.d.ts.map +1 -1
- package/dist/esm/sent-email-log/index.js +15 -0
- package/dist/esm/sent-email-log/index.js.map +1 -1
- package/dist/esm/sent-email-log/sent-email-log-code.d.ts +7 -0
- package/dist/esm/sent-email-log/sent-email-log-code.d.ts.map +1 -1
- package/dist/esm/sent-email-log/sent-email-log-code.js +17 -3
- package/dist/esm/sent-email-log/sent-email-log-code.js.map +1 -1
- package/dist/esm/server-custom-node-call.d.ts +79 -0
- package/dist/esm/server-custom-node-call.d.ts.map +1 -0
- package/dist/esm/server-custom-node-call.js +278 -0
- package/dist/esm/server-custom-node-call.js.map +1 -0
- package/dist/esm/server-runtime-code.d.ts +39 -12
- package/dist/esm/server-runtime-code.d.ts.map +1 -1
- package/dist/esm/server-runtime-code.js +483 -40
- package/dist/esm/server-runtime-code.js.map +1 -1
- package/dist/esm/session-cookie-resolver.d.ts +3 -1
- package/dist/esm/session-cookie-resolver.d.ts.map +1 -1
- package/dist/esm/session-revocation-generator.d.ts +39 -0
- package/dist/esm/session-revocation-generator.d.ts.map +1 -0
- package/dist/esm/session-revocation-generator.js +172 -0
- package/dist/esm/session-revocation-generator.js.map +1 -0
- package/dist/esm/slack-message-values.d.ts +6 -0
- package/dist/esm/slack-message-values.d.ts.map +1 -0
- package/dist/esm/slack-message-values.js +68 -0
- package/dist/esm/slack-message-values.js.map +1 -0
- package/dist/esm/transactional-email-code.d.ts +11 -0
- package/dist/esm/transactional-email-code.d.ts.map +1 -1
- package/dist/esm/transactional-email-code.js +28 -4
- package/dist/esm/transactional-email-code.js.map +1 -1
- package/dist/esm/trigger-generator.d.ts +2 -0
- package/dist/esm/trigger-generator.d.ts.map +1 -1
- package/dist/esm/trigger-generator.js +15 -3
- package/dist/esm/trigger-generator.js.map +1 -1
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/visitor-step-limits.d.ts +66 -0
- package/dist/esm/visitor-step-limits.d.ts.map +1 -0
- package/dist/esm/visitor-step-limits.js +181 -0
- package/dist/esm/visitor-step-limits.js.map +1 -0
- package/dist/esm/webhook-generator.d.ts.map +1 -1
- package/dist/esm/webhook-generator.js +93 -15
- package/dist/esm/webhook-generator.js.map +1 -1
- package/dist/esm/webhook-signature-verification.d.ts.map +1 -1
- package/dist/esm/webhook-signature-verification.js +13 -3
- package/dist/esm/webhook-signature-verification.js.map +1 -1
- package/dist/esm/workflow-auth-generator.d.ts +4 -1
- package/dist/esm/workflow-auth-generator.d.ts.map +1 -1
- package/dist/esm/workflow-auth-generator.js +8 -3
- package/dist/esm/workflow-auth-generator.js.map +1 -1
- package/dist/esm/workflow-component-plugin.js +12 -4
- package/dist/esm/workflow-component-plugin.js.map +1 -1
- package/dist/esm/workflow-project-plugin.d.ts.map +1 -1
- package/dist/esm/workflow-project-plugin.js +306 -60
- package/dist/esm/workflow-project-plugin.js.map +1 -1
- package/dist/esm/workflow-scope.d.ts.map +1 -1
- package/dist/esm/workflow-scope.js +5 -0
- package/dist/esm/workflow-scope.js.map +1 -1
- package/package.json +4 -4
- package/src/account-delete-route-generator.ts +28 -4
- package/src/api-route-generator.ts +712 -134
- package/src/auth-generator.ts +1471 -142
- package/src/automations/activity-kicks.ts +139 -0
- package/src/automations/app-events-source.ts +117 -0
- package/src/automations/automations-project-plugin.ts +202 -0
- package/src/automations/automations-scope.ts +196 -0
- package/src/automations/dispatcher-source.ts +1072 -0
- package/src/automations/event-bus-source.ts +428 -0
- package/src/automations/handler-module-generator.ts +107 -0
- package/src/automations/hydrators-source.ts +647 -0
- package/src/booking-calendar-feed-route-generator.ts +8 -0
- package/src/configured-nextauth-url.ts +17 -0
- package/src/cron-request-verification.ts +55 -5
- package/src/data-api-route-generator.ts +780 -43
- package/src/ecommerce/parameterized-stock-chain.ts +52 -5
- package/src/ecommerce/place-order-guards.ts +785 -0
- package/src/ecommerce-customhandler-rewriter.ts +55 -2
- package/src/executor-generator.ts +372 -60
- package/src/graph-utils.ts +33 -0
- package/src/index.ts +70 -0
- package/src/invoice/api-routes-code.ts +20 -7
- package/src/invoice/index.ts +11 -6
- package/src/invoice/invoice-assembly-code.ts +8 -3
- package/src/invoice/pdf-generator-code.ts +2 -1
- package/src/invoice/pdf-service-client-code.ts +15 -7
- package/src/newsletter/admin-route-code.ts +319 -0
- package/src/newsletter/helper-code.ts +748 -0
- package/src/newsletter/newsletter-scope.ts +116 -0
- package/src/newsletter/project-plugin.ts +119 -0
- package/src/newsletter/routes-code.ts +186 -0
- package/src/nodes/account/account-compare-passwords.ts +17 -6
- package/src/nodes/account/account-delete-current.ts +1 -1
- package/src/nodes/account/account-get-current.ts +1 -1
- package/src/nodes/account/account-hash-password.ts +19 -3
- package/src/nodes/account/account-login.ts +24 -7
- package/src/nodes/account/account-logout.ts +1 -1
- package/src/nodes/account/account-refresh-session.ts +1 -1
- package/src/nodes/account/account-request-password-reset.ts +47 -0
- package/src/nodes/account/account-reset-password.ts +45 -0
- package/src/nodes/account/account-signup.ts +86 -20
- package/src/nodes/account/account-social-login.ts +1 -1
- package/src/nodes/ai/ai-custom-prompt.ts +25 -6
- package/src/nodes/ai/ai-detect-language.ts +25 -6
- package/src/nodes/ai/ai-generate-text-embedding.ts +16 -3
- package/src/nodes/ai/ai-provider-utils-sources.generated.ts +2 -2
- package/src/nodes/ai/ai-provider-utils.ts +135 -10
- package/src/nodes/ai/ai-select-database-data.ts +8 -3
- package/src/nodes/ai/ai-sentiment-analysis.ts +25 -6
- package/src/nodes/ai/ai-summarization.ts +25 -6
- package/src/nodes/ai/ai-text-classifier.ts +25 -6
- package/src/nodes/ai/ai-text-transform.ts +25 -6
- package/src/nodes/analytics/analytics-track-outcome.ts +111 -0
- package/src/nodes/cart/cart-price-order.ts +200 -2
- package/src/nodes/cost-bearing-node-types.ts +45 -0
- package/src/nodes/data/data-select.ts +11 -2
- package/src/nodes/email/email-mailersend.ts +16 -8
- package/src/nodes/email/email-mailgun.ts +17 -12
- package/src/nodes/email/email-postmark.ts +17 -12
- package/src/nodes/email/email-resend.ts +17 -12
- package/src/nodes/email/email-sendgrid.ts +17 -12
- package/src/nodes/email/html-escape-code.ts +21 -0
- package/src/nodes/email/message-trust.ts +198 -0
- package/src/nodes/email/outbound-message-guard.ts +572 -0
- package/src/nodes/email/trusted-html-code.ts +49 -0
- package/src/nodes/general/general-custom-js.ts +46 -7
- package/src/nodes/general/general-http-request.ts +449 -46
- package/src/nodes/general/general-rate-limiter.ts +54 -81
- package/src/nodes/general/general-wait.ts +80 -0
- package/src/nodes/general/visitor-request.ts +79 -0
- package/src/nodes/index.ts +12 -0
- package/src/nodes/integrations/integration-slack.ts +21 -6
- package/src/nodes/newsletter/newsletter-confirm.ts +44 -0
- package/src/nodes/newsletter/newsletter-subscribe.ts +78 -0
- package/src/nodes/newsletter/newsletter-unsubscribe.ts +43 -0
- package/src/nodes/realtime/realtime-join-channel.ts +5 -4
- package/src/nodes/realtime/realtime-send-channel-event.ts +13 -2
- package/src/nodes/realtime/realtime-send-channel-message.ts +13 -2
- package/src/nodes/sms/sms-infobip.ts +14 -4
- package/src/nodes/sms/sms-smsapi.ts +14 -4
- package/src/nodes/sms/sms-textmagic.ts +14 -4
- package/src/nodes/sms/sms-twilio.ts +14 -4
- package/src/nodes/types.ts +9 -1
- package/src/nodes/utility/utility-similarity-scoring.ts +33 -12
- package/src/page-access-guard-generator.ts +154 -0
- package/src/password-reset-route-generator.ts +531 -0
- package/src/payments/payment-core-code.ts +12 -7
- package/src/project-code-scanner.ts +98 -0
- package/src/public-step-guards.ts +448 -0
- package/src/publish-refusals.ts +459 -0
- package/src/realtime-generator.ts +457 -234
- package/src/runtime-storage-generator.ts +270 -11
- package/src/security-runtime/index.ts +53 -0
- package/src/security-runtime/security-runtime-code.ts +579 -0
- package/src/security-scanner.ts +253 -10
- package/src/segment-splitter.ts +10 -2
- package/src/segment-trust.ts +205 -2
- package/src/self-call-headers.ts +46 -0
- package/src/sent-email-log/index.ts +16 -0
- package/src/sent-email-log/sent-email-log-code.ts +30 -4
- package/src/server-custom-node-call.ts +331 -0
- package/src/server-runtime-code.ts +488 -40
- package/src/session-revocation-generator.ts +177 -0
- package/src/slack-message-values.ts +84 -0
- package/src/transactional-email-code.ts +30 -4
- package/src/trigger-generator.ts +19 -3
- package/src/visitor-step-limits.ts +228 -0
- package/src/webhook-generator.ts +94 -14
- package/src/webhook-signature-verification.ts +13 -3
- package/src/workflow-auth-generator.ts +9 -4
- package/src/workflow-component-plugin.ts +14 -4
- package/src/workflow-project-plugin.ts +374 -61
- package/src/workflow-scope.ts +6 -0
|
@@ -1,4 +1,113 @@
|
|
|
1
1
|
import { AI_PROVIDER_UTIL_SOURCES } from './ai-provider-utils-sources.generated'
|
|
2
|
+
import { generateSecurityRuntimeVar } from '../general/visitor-request'
|
|
3
|
+
|
|
4
|
+
declare function __ai_enforceCallBudget(prompt?: any): Promise<void>
|
|
5
|
+
declare function __ai_clampMaxTokens(value: any): any
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Every LLM call the site makes counts against ONE per-site daily budget, in
|
|
9
|
+
* the shared durable limiter — the AI chat counts against the same key — so a
|
|
10
|
+
* public AI step looped by a visitor stops at the ceiling instead of billing
|
|
11
|
+
* the owner's key without end. A prompt longer than the cap is refused before
|
|
12
|
+
* it is counted or sent.
|
|
13
|
+
*/
|
|
14
|
+
export const AI_SITE_CALLS_KEY = 'site:ai-calls'
|
|
15
|
+
export const AI_SITE_CALLS_PER_DAY = 2000
|
|
16
|
+
export const AI_MAX_PROMPT_CHARS = 8000
|
|
17
|
+
export const AI_LIMIT_REACHED_MESSAGE =
|
|
18
|
+
'This site has reached its AI usage limit for today. Try again tomorrow.'
|
|
19
|
+
export const AI_PROMPT_TOO_LONG_MESSAGE =
|
|
20
|
+
'The prompt is too long: it can be at most ' + AI_MAX_PROMPT_CHARS + ' characters.'
|
|
21
|
+
export const AI_UNAVAILABLE_MESSAGE = 'AI is not available right now.'
|
|
22
|
+
/** The most output tokens one call may ask for; a larger `maxTokens` is lowered to it (logged). */
|
|
23
|
+
export const AI_MAX_OUTPUT_TOKENS = 4096
|
|
24
|
+
/**
|
|
25
|
+
* The AI refusals that name nothing secret, and the status a route answers
|
|
26
|
+
* them with: a segment route shows these exact messages to the visitor instead
|
|
27
|
+
* of its generic error (see the route's `__publicRefusal`), so a too-long
|
|
28
|
+
* prompt or a spent daily budget reads as what it is.
|
|
29
|
+
*/
|
|
30
|
+
export const AI_PUBLIC_REFUSALS: Record<string, number> = {
|
|
31
|
+
[AI_PROMPT_TOO_LONG_MESSAGE]: 400,
|
|
32
|
+
[AI_LIMIT_REACHED_MESSAGE]: 429,
|
|
33
|
+
[AI_UNAVAILABLE_MESSAGE]: 503,
|
|
34
|
+
}
|
|
35
|
+
/** What every other AI-node error says outside the server (the detail is logged). */
|
|
36
|
+
export const AI_NOT_CONFIGURED_MESSAGE = 'The AI provider is not configured.'
|
|
37
|
+
export const AI_REFUSED_MESSAGE = 'The AI provider refused the request.'
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Emitted ahead of the provider utils: the security runtime (`null` without a
|
|
41
|
+
* route prefix, which refuses every call) and `__ai_enforceCallBudget(prompt)`,
|
|
42
|
+
* which `__ai_callProvider` / `__ai_callProviderStreaming` and the embedding
|
|
43
|
+
* node await before they reach a provider. It throws an Error whose message is
|
|
44
|
+
* safe to show.
|
|
45
|
+
*
|
|
46
|
+
* And `__ai_publicMessage(err, code)`: what a node's `{ error: true, message }`
|
|
47
|
+
* says. An AI node's error can leave the server (the route's reply, a
|
|
48
|
+
* `continueOnError` result in the context), and a provider's message can quote
|
|
49
|
+
* the key it was given — a token set to an env var's name ends up there — or a
|
|
50
|
+
* secret name. The detail goes to the server log; the message is one of two
|
|
51
|
+
* fixed sentences, or a refusal of this module's own.
|
|
52
|
+
*/
|
|
53
|
+
function generateAICallBudgetCode(relativePrefix?: string): string {
|
|
54
|
+
return `${generateSecurityRuntimeVar('__ai_securityRuntime', relativePrefix)}
|
|
55
|
+
|
|
56
|
+
var __ai_enforceCallBudget = typeof __ai_enforceCallBudget !== 'undefined' ? __ai_enforceCallBudget : async function __ai_enforceCallBudget(prompt) {
|
|
57
|
+
// An expression, not a declaration: a named two-parameter function here
|
|
58
|
+
// would be taken for the node's own entry (see resolveHandlerEntryName).
|
|
59
|
+
var refusal = function (message, code) {
|
|
60
|
+
var error = new Error(message);
|
|
61
|
+
error.code = code;
|
|
62
|
+
return error;
|
|
63
|
+
};
|
|
64
|
+
if (typeof prompt === 'string' && prompt.length > ${AI_MAX_PROMPT_CHARS}) {
|
|
65
|
+
throw refusal(${JSON.stringify(AI_PROMPT_TOO_LONG_MESSAGE)}, 'prompt_too_long');
|
|
66
|
+
}
|
|
67
|
+
var security = __ai_securityRuntime;
|
|
68
|
+
if (!security || typeof security.rateLimit !== 'function') {
|
|
69
|
+
console.error('[ai] call refused: the security runtime is not available');
|
|
70
|
+
throw refusal(${JSON.stringify(AI_UNAVAILABLE_MESSAGE)}, 'ai_unavailable');
|
|
71
|
+
}
|
|
72
|
+
var verdict = await security.rateLimit({ key: ${JSON.stringify(
|
|
73
|
+
AI_SITE_CALLS_KEY
|
|
74
|
+
)}, limit: ${AI_SITE_CALLS_PER_DAY}, windowSeconds: 86400 });
|
|
75
|
+
if (!verdict || !verdict.allowed) {
|
|
76
|
+
console.warn('[ai] call refused: the site reached its daily AI call limit');
|
|
77
|
+
throw refusal(${JSON.stringify(AI_LIMIT_REACHED_MESSAGE)}, 'ai_limit_reached');
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
var __ai_publicMessage = typeof __ai_publicMessage !== 'undefined' ? __ai_publicMessage : function __ai_publicMessage(err, code) {
|
|
82
|
+
console.error('[ai] ' + code + ': ' + (err && err.message ? err.message : String(err)));
|
|
83
|
+
if (err && (err.code === 'prompt_too_long' || err.code === 'ai_limit_reached' || err.code === 'ai_unavailable')) {
|
|
84
|
+
return err.message;
|
|
85
|
+
}
|
|
86
|
+
return code === 'authentication_error' ? ${JSON.stringify(
|
|
87
|
+
AI_NOT_CONFIGURED_MESSAGE
|
|
88
|
+
)} : ${JSON.stringify(AI_REFUSED_MESSAGE)};
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
// The code a node answers: one of this module's own refusals keeps its code
|
|
92
|
+
// (a workflow can branch on 'ai_limit_reached' / 'prompt_too_long'), any other
|
|
93
|
+
// error the node's own.
|
|
94
|
+
var __ai_publicCode = typeof __ai_publicCode !== 'undefined' ? __ai_publicCode : function __ai_publicCode(err, code) {
|
|
95
|
+
return err && (err.code === 'prompt_too_long' || err.code === 'ai_limit_reached' || err.code === 'ai_unavailable') ? err.code : code;
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
// The output budget of one call: a node's maxTokens (it may be bound to the
|
|
99
|
+
// request) above the ceiling is lowered to it, and the reason is logged, so a
|
|
100
|
+
// visitor cannot make each of the site's daily calls cost more.
|
|
101
|
+
var __ai_clampMaxTokens = typeof __ai_clampMaxTokens !== 'undefined' ? __ai_clampMaxTokens : function __ai_clampMaxTokens(value) {
|
|
102
|
+
var ceiling = ${AI_MAX_OUTPUT_TOKENS};
|
|
103
|
+
var requested = typeof value === 'string' && value.trim() !== '' ? Number(value) : value;
|
|
104
|
+
if (typeof requested === 'number' && isFinite(requested) && requested > ceiling) {
|
|
105
|
+
console.warn('[ai] maxTokens ' + requested + ' is above the per-call ceiling of ' + ceiling + ' and was lowered to it');
|
|
106
|
+
return ceiling;
|
|
107
|
+
}
|
|
108
|
+
return requested;
|
|
109
|
+
};`
|
|
110
|
+
}
|
|
2
111
|
|
|
3
112
|
export const AI_PROVIDER_DEPENDENCIES: Record<string, string> = {
|
|
4
113
|
openai: '^4.0.0',
|
|
@@ -19,8 +128,13 @@ function wrapWithGuard(globalName: string, source: string): string {
|
|
|
19
128
|
return `var ${globalName} = typeof ${globalName} !== 'undefined' ? ${globalName} : ${source};`
|
|
20
129
|
}
|
|
21
130
|
|
|
22
|
-
|
|
131
|
+
/**
|
|
132
|
+
* `relativePrefix`: from the route the utils are inlined into to the project
|
|
133
|
+
* root. Without it no call reaches a provider (see generateAICallBudgetCode).
|
|
134
|
+
*/
|
|
135
|
+
export function generateAIProviderUtils(relativePrefix?: string): string {
|
|
23
136
|
return [
|
|
137
|
+
generateAICallBudgetCode(relativePrefix),
|
|
24
138
|
wrapWithGuard('__ai_resolveTextField', AI_PROVIDER_UTIL_SOURCES.__ai_resolveTextField),
|
|
25
139
|
wrapWithGuard('__ai_resolveToken', AI_PROVIDER_UTIL_SOURCES.__ai_resolveToken),
|
|
26
140
|
wrapWithGuard('__ai_detectProvider', AI_PROVIDER_UTIL_SOURCES.__ai_detectProvider),
|
|
@@ -34,12 +148,13 @@ export function generateAIProviderUtils(): string {
|
|
|
34
148
|
].join('\n\n')
|
|
35
149
|
}
|
|
36
150
|
|
|
37
|
-
export function generateAIStreamingProviderUtils(): string {
|
|
38
|
-
return generateAIProviderUtils() + '\n\n' + AI_STREAMING_CODE
|
|
151
|
+
export function generateAIStreamingProviderUtils(relativePrefix?: string): string {
|
|
152
|
+
return generateAIProviderUtils(relativePrefix) + '\n\n' + AI_STREAMING_CODE
|
|
39
153
|
}
|
|
40
154
|
|
|
41
155
|
const AI_STREAMING_CODE = `
|
|
42
156
|
var __ai_callProviderStreaming = typeof __ai_callProviderStreaming !== 'undefined' ? __ai_callProviderStreaming : async function __ai_callProviderStreaming(params, onChunk) {
|
|
157
|
+
await __ai_enforceCallBudget(params.userMessage);
|
|
43
158
|
const provider = params.provider;
|
|
44
159
|
const model = params.model;
|
|
45
160
|
const token = params.token;
|
|
@@ -47,7 +162,7 @@ var __ai_callProviderStreaming = typeof __ai_callProviderStreaming !== 'undefine
|
|
|
47
162
|
const userMessage = params.userMessage;
|
|
48
163
|
const temperature = params.temperature;
|
|
49
164
|
const maxTokens = params.maxTokens;
|
|
50
|
-
const caps = __ai_modelCapabilities(provider, model, maxTokens);
|
|
165
|
+
const caps = __ai_modelCapabilities(provider, model, __ai_clampMaxTokens(maxTokens));
|
|
51
166
|
const __nodeRequire = typeof __non_webpack_require__ !== 'undefined' ? __non_webpack_require__ : require;
|
|
52
167
|
|
|
53
168
|
if (provider === 'anthropic') {
|
|
@@ -208,8 +323,15 @@ function __ai_resolveTextField(val: any): string {
|
|
|
208
323
|
}
|
|
209
324
|
|
|
210
325
|
function __ai_resolveToken(token: any): string {
|
|
326
|
+
// The reason (which secret is missing) goes to the server log only: a
|
|
327
|
+
// node's error can reach the browser, and must never name an env var.
|
|
328
|
+
function notConfigured(detail: string) {
|
|
329
|
+
// tslint:disable-next-line:no-console
|
|
330
|
+
console.error('[ai] the AI provider is not configured: ' + detail)
|
|
331
|
+
return new Error('The AI provider is not configured.')
|
|
332
|
+
}
|
|
211
333
|
if (!token) {
|
|
212
|
-
throw
|
|
334
|
+
throw notConfigured('the node has no API token')
|
|
213
335
|
}
|
|
214
336
|
|
|
215
337
|
const __env = (globalThis as any).process && (globalThis as any).process.env
|
|
@@ -218,7 +340,7 @@ function __ai_resolveToken(token: any): string {
|
|
|
218
340
|
if (token.startsWith('WORKFLOW_SECRET_')) {
|
|
219
341
|
const envVal = __env ? __env[token] : undefined
|
|
220
342
|
if (!envVal) {
|
|
221
|
-
throw
|
|
343
|
+
throw notConfigured('secret ' + token + ' is not set')
|
|
222
344
|
}
|
|
223
345
|
return envVal
|
|
224
346
|
}
|
|
@@ -226,7 +348,7 @@ function __ai_resolveToken(token: any): string {
|
|
|
226
348
|
const envKey = token.replace('teleporthq.secrets.', '')
|
|
227
349
|
const envVal2 = __env ? __env[envKey] : undefined
|
|
228
350
|
if (!envVal2) {
|
|
229
|
-
throw
|
|
351
|
+
throw notConfigured('secret ' + envKey + ' is not set')
|
|
230
352
|
}
|
|
231
353
|
return envVal2
|
|
232
354
|
}
|
|
@@ -238,14 +360,14 @@ function __ai_resolveToken(token: any): string {
|
|
|
238
360
|
const secretId = token.content.id
|
|
239
361
|
const secretVal = __env ? __env[secretId] : undefined
|
|
240
362
|
if (!secretVal) {
|
|
241
|
-
throw
|
|
363
|
+
throw notConfigured('secret ' + secretId + ' is not set')
|
|
242
364
|
}
|
|
243
365
|
return secretVal
|
|
244
366
|
}
|
|
245
367
|
}
|
|
246
368
|
|
|
247
369
|
if (typeof token === 'object') {
|
|
248
|
-
throw
|
|
370
|
+
throw notConfigured('the token is not a string or a secret reference')
|
|
249
371
|
}
|
|
250
372
|
|
|
251
373
|
return String(token)
|
|
@@ -470,6 +592,8 @@ function __ai_parseJSON(text: any): any {
|
|
|
470
592
|
}
|
|
471
593
|
|
|
472
594
|
async function __ai_callProvider(params: any): Promise<any> {
|
|
595
|
+
// The site's daily AI budget and the prompt cap, before any provider is reached.
|
|
596
|
+
await __ai_enforceCallBudget(params.userMessage)
|
|
473
597
|
const provider = params.provider
|
|
474
598
|
const model = params.model
|
|
475
599
|
const token = params.token
|
|
@@ -477,7 +601,8 @@ async function __ai_callProvider(params: any): Promise<any> {
|
|
|
477
601
|
const userMessage = params.userMessage
|
|
478
602
|
const temperature = params.temperature
|
|
479
603
|
const jsonMode = params.jsonMode || false
|
|
480
|
-
|
|
604
|
+
// Lowered to the per-call ceiling first (see __ai_clampMaxTokens).
|
|
605
|
+
const caps = __ai_modelCapabilities(provider, model, __ai_clampMaxTokens(params.maxTokens))
|
|
481
606
|
const __nodeRequire =
|
|
482
607
|
typeof __non_webpack_require__ !== 'undefined' ? __non_webpack_require__ : require
|
|
483
608
|
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import { NodeHandlerGenerator } from '../types'
|
|
1
|
+
import { NodeHandlerGenerator, ServerHandlerOptions } from '../types'
|
|
2
|
+
import { serverHandlerPrefix } from '../general/visitor-request'
|
|
2
3
|
import { generateAIProviderUtils, AI_PROVIDER_DEPENDENCIES } from './ai-provider-utils'
|
|
3
4
|
import { generateAiSqlSelectGuard } from './ai-sql-select-guard'
|
|
4
5
|
|
|
5
6
|
declare function __ai_resolveTextField(val: any): string
|
|
6
7
|
declare function __ai_resolveToken(token: any): string
|
|
8
|
+
declare function __ai_publicMessage(err: any, code: string): string
|
|
7
9
|
declare function __ai_resolveProvider(config: any): string
|
|
8
10
|
declare function __ai_callProvider(params: any): Promise<any>
|
|
9
11
|
declare function __ai_parseJSON(text: any): any
|
|
@@ -55,6 +57,8 @@ async function ai_select_database_data(config: any, context: any) {
|
|
|
55
57
|
try {
|
|
56
58
|
token = __ai_resolveToken(config.token)
|
|
57
59
|
} catch (err: any) {
|
|
60
|
+
// The detail to the server log only; the result names just the code.
|
|
61
|
+
__ai_publicMessage(err, 'authentication_error')
|
|
58
62
|
return fail('authentication_error')
|
|
59
63
|
}
|
|
60
64
|
const provider = __ai_resolveProvider(config)
|
|
@@ -80,6 +84,7 @@ async function ai_select_database_data(config: any, context: any) {
|
|
|
80
84
|
jsonMode: true,
|
|
81
85
|
})
|
|
82
86
|
} catch (err: any) {
|
|
87
|
+
__ai_publicMessage(err, 'provider_error')
|
|
83
88
|
providerFailed = true
|
|
84
89
|
break
|
|
85
90
|
}
|
|
@@ -159,9 +164,9 @@ export const aiSelectDatabaseData: NodeHandlerGenerator = {
|
|
|
159
164
|
ai_select_database_data.toString()
|
|
160
165
|
)
|
|
161
166
|
},
|
|
162
|
-
generateServerHandler(): string {
|
|
167
|
+
generateServerHandler(options?: ServerHandlerOptions): string {
|
|
163
168
|
return (
|
|
164
|
-
generateAIProviderUtils() +
|
|
169
|
+
generateAIProviderUtils(serverHandlerPrefix(options)) +
|
|
165
170
|
'\n\n' +
|
|
166
171
|
generateAiSqlSelectGuard() +
|
|
167
172
|
'\n\n' +
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { NodeHandlerGenerator } from '../types'
|
|
1
|
+
import { NodeHandlerGenerator, ServerHandlerOptions } from '../types'
|
|
2
|
+
import { serverHandlerPrefix } from '../general/visitor-request'
|
|
2
3
|
import {
|
|
3
4
|
generateAIProviderUtils,
|
|
4
5
|
generateAIStreamingProviderUtils,
|
|
@@ -7,6 +8,8 @@ import {
|
|
|
7
8
|
|
|
8
9
|
declare function __ai_resolveTextField(val: any): string
|
|
9
10
|
declare function __ai_resolveToken(token: any): string
|
|
11
|
+
declare function __ai_publicMessage(err: any, code: string): string
|
|
12
|
+
declare function __ai_publicCode(err: any, code: string): string
|
|
10
13
|
declare function __ai_resolveProvider(config: any): string
|
|
11
14
|
declare function __ai_clampTemperature(temp: any, provider: string): number
|
|
12
15
|
declare function __ai_callProvider(params: any): Promise<any>
|
|
@@ -44,7 +47,11 @@ async function ai_sentiment_analysis(
|
|
|
44
47
|
try {
|
|
45
48
|
token = __ai_resolveToken(config.token)
|
|
46
49
|
} catch (err: any) {
|
|
47
|
-
return {
|
|
50
|
+
return {
|
|
51
|
+
error: true,
|
|
52
|
+
message: __ai_publicMessage(err, 'authentication_error'),
|
|
53
|
+
code: 'authentication_error',
|
|
54
|
+
}
|
|
48
55
|
}
|
|
49
56
|
|
|
50
57
|
const provider = __ai_resolveProvider(config)
|
|
@@ -76,7 +83,11 @@ async function ai_sentiment_analysis(
|
|
|
76
83
|
try {
|
|
77
84
|
return await __ai_handleStreamingCall(callParams, model, streamCallback)
|
|
78
85
|
} catch (err: any) {
|
|
79
|
-
return {
|
|
86
|
+
return {
|
|
87
|
+
error: true,
|
|
88
|
+
message: __ai_publicMessage(err, 'provider_error'),
|
|
89
|
+
code: __ai_publicCode(err, 'provider_error'),
|
|
90
|
+
}
|
|
80
91
|
}
|
|
81
92
|
}
|
|
82
93
|
|
|
@@ -135,7 +146,11 @@ async function ai_sentiment_analysis(
|
|
|
135
146
|
},
|
|
136
147
|
}
|
|
137
148
|
} catch (err: any) {
|
|
138
|
-
return {
|
|
149
|
+
return {
|
|
150
|
+
error: true,
|
|
151
|
+
message: __ai_publicMessage(err, 'provider_error'),
|
|
152
|
+
code: __ai_publicCode(err, 'provider_error'),
|
|
153
|
+
}
|
|
139
154
|
}
|
|
140
155
|
}
|
|
141
156
|
|
|
@@ -146,7 +161,11 @@ export const aiSentimentAnalysis: NodeHandlerGenerator = {
|
|
|
146
161
|
generateHandler(): string {
|
|
147
162
|
return generateAIProviderUtils() + '\n\n' + ai_sentiment_analysis.toString()
|
|
148
163
|
},
|
|
149
|
-
generateServerHandler(): string {
|
|
150
|
-
return
|
|
164
|
+
generateServerHandler(options?: ServerHandlerOptions): string {
|
|
165
|
+
return (
|
|
166
|
+
generateAIStreamingProviderUtils(serverHandlerPrefix(options)) +
|
|
167
|
+
'\n\n' +
|
|
168
|
+
ai_sentiment_analysis.toString()
|
|
169
|
+
)
|
|
151
170
|
},
|
|
152
171
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { NodeHandlerGenerator } from '../types'
|
|
1
|
+
import { NodeHandlerGenerator, ServerHandlerOptions } from '../types'
|
|
2
|
+
import { serverHandlerPrefix } from '../general/visitor-request'
|
|
2
3
|
import {
|
|
3
4
|
generateAIProviderUtils,
|
|
4
5
|
generateAIStreamingProviderUtils,
|
|
@@ -7,6 +8,8 @@ import {
|
|
|
7
8
|
|
|
8
9
|
declare function __ai_resolveTextField(val: any): string
|
|
9
10
|
declare function __ai_resolveToken(token: any): string
|
|
11
|
+
declare function __ai_publicMessage(err: any, code: string): string
|
|
12
|
+
declare function __ai_publicCode(err: any, code: string): string
|
|
10
13
|
declare function __ai_resolveProvider(config: any): string
|
|
11
14
|
declare function __ai_clampTemperature(temp: any, provider: string): number
|
|
12
15
|
declare function __ai_callProvider(params: any): Promise<any>
|
|
@@ -32,7 +35,11 @@ async function ai_summarization(
|
|
|
32
35
|
try {
|
|
33
36
|
token = __ai_resolveToken(config.token)
|
|
34
37
|
} catch (err: any) {
|
|
35
|
-
return {
|
|
38
|
+
return {
|
|
39
|
+
error: true,
|
|
40
|
+
message: __ai_publicMessage(err, 'authentication_error'),
|
|
41
|
+
code: 'authentication_error',
|
|
42
|
+
}
|
|
36
43
|
}
|
|
37
44
|
|
|
38
45
|
const provider = __ai_resolveProvider(config)
|
|
@@ -83,7 +90,11 @@ async function ai_summarization(
|
|
|
83
90
|
try {
|
|
84
91
|
return await __ai_handleStreamingCall(callParams, model, streamCallback)
|
|
85
92
|
} catch (err: any) {
|
|
86
|
-
return {
|
|
93
|
+
return {
|
|
94
|
+
error: true,
|
|
95
|
+
message: __ai_publicMessage(err, 'provider_error'),
|
|
96
|
+
code: __ai_publicCode(err, 'provider_error'),
|
|
97
|
+
}
|
|
87
98
|
}
|
|
88
99
|
}
|
|
89
100
|
|
|
@@ -95,7 +106,11 @@ async function ai_summarization(
|
|
|
95
106
|
model,
|
|
96
107
|
}
|
|
97
108
|
} catch (err: any) {
|
|
98
|
-
return {
|
|
109
|
+
return {
|
|
110
|
+
error: true,
|
|
111
|
+
message: __ai_publicMessage(err, 'provider_error'),
|
|
112
|
+
code: __ai_publicCode(err, 'provider_error'),
|
|
113
|
+
}
|
|
99
114
|
}
|
|
100
115
|
}
|
|
101
116
|
|
|
@@ -106,7 +121,11 @@ export const aiSummarization: NodeHandlerGenerator = {
|
|
|
106
121
|
generateHandler(): string {
|
|
107
122
|
return generateAIProviderUtils() + '\n\n' + ai_summarization.toString()
|
|
108
123
|
},
|
|
109
|
-
generateServerHandler(): string {
|
|
110
|
-
return
|
|
124
|
+
generateServerHandler(options?: ServerHandlerOptions): string {
|
|
125
|
+
return (
|
|
126
|
+
generateAIStreamingProviderUtils(serverHandlerPrefix(options)) +
|
|
127
|
+
'\n\n' +
|
|
128
|
+
ai_summarization.toString()
|
|
129
|
+
)
|
|
111
130
|
},
|
|
112
131
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { NodeHandlerGenerator } from '../types'
|
|
1
|
+
import { NodeHandlerGenerator, ServerHandlerOptions } from '../types'
|
|
2
|
+
import { serverHandlerPrefix } from '../general/visitor-request'
|
|
2
3
|
import {
|
|
3
4
|
generateAIProviderUtils,
|
|
4
5
|
generateAIStreamingProviderUtils,
|
|
@@ -7,6 +8,8 @@ import {
|
|
|
7
8
|
|
|
8
9
|
declare function __ai_resolveTextField(val: any): string
|
|
9
10
|
declare function __ai_resolveToken(token: any): string
|
|
11
|
+
declare function __ai_publicMessage(err: any, code: string): string
|
|
12
|
+
declare function __ai_publicCode(err: any, code: string): string
|
|
10
13
|
declare function __ai_resolveProvider(config: any): string
|
|
11
14
|
declare function __ai_clampTemperature(temp: any, provider: string): number
|
|
12
15
|
declare function __ai_callProvider(params: any): Promise<any>
|
|
@@ -53,7 +56,11 @@ async function ai_text_classifier(
|
|
|
53
56
|
try {
|
|
54
57
|
token = __ai_resolveToken(config.token)
|
|
55
58
|
} catch (err: any) {
|
|
56
|
-
return {
|
|
59
|
+
return {
|
|
60
|
+
error: true,
|
|
61
|
+
message: __ai_publicMessage(err, 'authentication_error'),
|
|
62
|
+
code: 'authentication_error',
|
|
63
|
+
}
|
|
57
64
|
}
|
|
58
65
|
|
|
59
66
|
const provider = __ai_resolveProvider(config)
|
|
@@ -86,7 +93,11 @@ async function ai_text_classifier(
|
|
|
86
93
|
try {
|
|
87
94
|
return await __ai_handleStreamingCall(callParams, model, streamCallback)
|
|
88
95
|
} catch (err: any) {
|
|
89
|
-
return {
|
|
96
|
+
return {
|
|
97
|
+
error: true,
|
|
98
|
+
message: __ai_publicMessage(err, 'provider_error'),
|
|
99
|
+
code: __ai_publicCode(err, 'provider_error'),
|
|
100
|
+
}
|
|
90
101
|
}
|
|
91
102
|
}
|
|
92
103
|
|
|
@@ -133,7 +144,11 @@ async function ai_text_classifier(
|
|
|
133
144
|
confidence: typeof parsed.confidence === 'number' ? parsed.confidence : 0,
|
|
134
145
|
}
|
|
135
146
|
} catch (err: any) {
|
|
136
|
-
return {
|
|
147
|
+
return {
|
|
148
|
+
error: true,
|
|
149
|
+
message: __ai_publicMessage(err, 'provider_error'),
|
|
150
|
+
code: __ai_publicCode(err, 'provider_error'),
|
|
151
|
+
}
|
|
137
152
|
}
|
|
138
153
|
}
|
|
139
154
|
|
|
@@ -144,7 +159,11 @@ export const aiTextClassifier: NodeHandlerGenerator = {
|
|
|
144
159
|
generateHandler(): string {
|
|
145
160
|
return generateAIProviderUtils() + '\n\n' + ai_text_classifier.toString()
|
|
146
161
|
},
|
|
147
|
-
generateServerHandler(): string {
|
|
148
|
-
return
|
|
162
|
+
generateServerHandler(options?: ServerHandlerOptions): string {
|
|
163
|
+
return (
|
|
164
|
+
generateAIStreamingProviderUtils(serverHandlerPrefix(options)) +
|
|
165
|
+
'\n\n' +
|
|
166
|
+
ai_text_classifier.toString()
|
|
167
|
+
)
|
|
149
168
|
},
|
|
150
169
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { NodeHandlerGenerator } from '../types'
|
|
1
|
+
import { NodeHandlerGenerator, ServerHandlerOptions } from '../types'
|
|
2
|
+
import { serverHandlerPrefix } from '../general/visitor-request'
|
|
2
3
|
import {
|
|
3
4
|
generateAIProviderUtils,
|
|
4
5
|
generateAIStreamingProviderUtils,
|
|
@@ -7,6 +8,8 @@ import {
|
|
|
7
8
|
|
|
8
9
|
declare function __ai_resolveTextField(val: any): string
|
|
9
10
|
declare function __ai_resolveToken(token: any): string
|
|
11
|
+
declare function __ai_publicMessage(err: any, code: string): string
|
|
12
|
+
declare function __ai_publicCode(err: any, code: string): string
|
|
10
13
|
declare function __ai_resolveProvider(config: any): string
|
|
11
14
|
declare function __ai_clampTemperature(temp: any, provider: string): number
|
|
12
15
|
declare function __ai_callProvider(params: any): Promise<any>
|
|
@@ -35,7 +38,11 @@ async function ai_text_transform(
|
|
|
35
38
|
try {
|
|
36
39
|
token = __ai_resolveToken(config.token)
|
|
37
40
|
} catch (err: any) {
|
|
38
|
-
return {
|
|
41
|
+
return {
|
|
42
|
+
error: true,
|
|
43
|
+
message: __ai_publicMessage(err, 'authentication_error'),
|
|
44
|
+
code: 'authentication_error',
|
|
45
|
+
}
|
|
39
46
|
}
|
|
40
47
|
|
|
41
48
|
const provider = __ai_resolveProvider(config)
|
|
@@ -94,7 +101,11 @@ async function ai_text_transform(
|
|
|
94
101
|
try {
|
|
95
102
|
return await __ai_handleStreamingCall(callParams, model, streamCallback)
|
|
96
103
|
} catch (err: any) {
|
|
97
|
-
return {
|
|
104
|
+
return {
|
|
105
|
+
error: true,
|
|
106
|
+
message: __ai_publicMessage(err, 'provider_error'),
|
|
107
|
+
code: __ai_publicCode(err, 'provider_error'),
|
|
108
|
+
}
|
|
98
109
|
}
|
|
99
110
|
}
|
|
100
111
|
|
|
@@ -106,7 +117,11 @@ async function ai_text_transform(
|
|
|
106
117
|
model,
|
|
107
118
|
}
|
|
108
119
|
} catch (err: any) {
|
|
109
|
-
return {
|
|
120
|
+
return {
|
|
121
|
+
error: true,
|
|
122
|
+
message: __ai_publicMessage(err, 'provider_error'),
|
|
123
|
+
code: __ai_publicCode(err, 'provider_error'),
|
|
124
|
+
}
|
|
110
125
|
}
|
|
111
126
|
}
|
|
112
127
|
|
|
@@ -117,7 +132,11 @@ export const aiTextTransform: NodeHandlerGenerator = {
|
|
|
117
132
|
generateHandler(): string {
|
|
118
133
|
return generateAIProviderUtils() + '\n\n' + ai_text_transform.toString()
|
|
119
134
|
},
|
|
120
|
-
generateServerHandler(): string {
|
|
121
|
-
return
|
|
135
|
+
generateServerHandler(options?: ServerHandlerOptions): string {
|
|
136
|
+
return (
|
|
137
|
+
generateAIStreamingProviderUtils(serverHandlerPrefix(options)) +
|
|
138
|
+
'\n\n' +
|
|
139
|
+
ai_text_transform.toString()
|
|
140
|
+
)
|
|
122
141
|
},
|
|
123
142
|
}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { NodeHandlerGenerator } from '../types'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Reports what a visit produced to Growth analytics.
|
|
5
|
+
*
|
|
6
|
+
* Two bodies, one node. In the browser the tracker does the sending (it holds
|
|
7
|
+
* the visitor's identity and queues the beacon); on the server — where the
|
|
8
|
+
* order or booking row has just been written — the segment posts straight to
|
|
9
|
+
* the analytics service with the SERVER key, so a purchase cannot be forged by
|
|
10
|
+
* a visitor's browser nor lost to an ad blocker. The money names are refused
|
|
11
|
+
* on the client for exactly that reason.
|
|
12
|
+
*
|
|
13
|
+
* Attribution: a browser outcome inherits the session's; a server outcome
|
|
14
|
+
* carries the ids the trigger stamped on the context (`__tpa`, set by every
|
|
15
|
+
* generated trigger) plus whatever first-touch snapshot the caller binds in
|
|
16
|
+
* `attribution` (the checkout stamps `utm_*`, `referrer_host`, `landing_path`).
|
|
17
|
+
*
|
|
18
|
+
* Never throws: an outcome that cannot be reported answers `{ sent: false }`
|
|
19
|
+
* and the workflow continues — analytics must never cost a sale.
|
|
20
|
+
*/
|
|
21
|
+
const SERVER_ONLY_OUTCOMES = ['purchase', 'booking_made']
|
|
22
|
+
|
|
23
|
+
const CLIENT_BODY = `async function analytics_track_outcome(config, context) {
|
|
24
|
+
var name = config.name == null ? '' : String(config.name);
|
|
25
|
+
if (!name) {
|
|
26
|
+
return { sent: false, reason: 'no-name' };
|
|
27
|
+
}
|
|
28
|
+
if (${JSON.stringify(SERVER_ONLY_OUTCOMES)}.indexOf(name) !== -1) {
|
|
29
|
+
return { sent: false, reason: 'server-only' };
|
|
30
|
+
}
|
|
31
|
+
try {
|
|
32
|
+
var tracker = typeof window !== 'undefined' ? window.tpAnalytics : null;
|
|
33
|
+
if (tracker && typeof tracker.track === 'function') {
|
|
34
|
+
tracker.track(name, {
|
|
35
|
+
value: config.value,
|
|
36
|
+
currency: config.currency,
|
|
37
|
+
outcomeId: config.outcomeId,
|
|
38
|
+
recordId: config.recordId,
|
|
39
|
+
query: config.query,
|
|
40
|
+
results: config.results
|
|
41
|
+
});
|
|
42
|
+
return { sent: true };
|
|
43
|
+
}
|
|
44
|
+
} catch (err) {
|
|
45
|
+
/* analytics must never break the page */
|
|
46
|
+
}
|
|
47
|
+
return { sent: false, reason: 'tracker-unavailable' };
|
|
48
|
+
}`
|
|
49
|
+
|
|
50
|
+
const SERVER_BODY = `async function analytics_track_outcome(config, context) {
|
|
51
|
+
var name = config.name == null ? '' : String(config.name);
|
|
52
|
+
if (!name) {
|
|
53
|
+
return { sent: false, reason: 'no-name' };
|
|
54
|
+
}
|
|
55
|
+
// \`globalThis.process\` (member access): webpack rewrites a bare \`process\`.
|
|
56
|
+
var env = globalThis.process && globalThis.process.env;
|
|
57
|
+
var baseUrl = (env && env.NEXT_PUBLIC_TELEPORT_ANALYTICS_URL) || '';
|
|
58
|
+
var publicKey = (env && env.NEXT_PUBLIC_TELEPORT_ANALYTICS_KEY) || '';
|
|
59
|
+
var serverKey = (env && env.TELEPORT_ANALYTICS_SERVER_KEY) || '';
|
|
60
|
+
if (baseUrl.indexOf('http') !== 0 || !publicKey || !serverKey) {
|
|
61
|
+
return { sent: false, reason: 'not-configured' };
|
|
62
|
+
}
|
|
63
|
+
var ids = context && context.__tpa && typeof context.__tpa === 'object' ? context.__tpa : {};
|
|
64
|
+
var attribution = config.attribution && typeof config.attribution === 'object' ? config.attribution : {};
|
|
65
|
+
var outcome = {
|
|
66
|
+
name: name,
|
|
67
|
+
value: config.value == null || config.value === '' ? null : Number(config.value),
|
|
68
|
+
currency: config.currency == null ? null : String(config.currency),
|
|
69
|
+
outcomeId: config.outcomeId == null ? null : String(config.outcomeId),
|
|
70
|
+
recordId: config.recordId == null ? null : String(config.recordId),
|
|
71
|
+
sessionId: ids.sessionId || null,
|
|
72
|
+
visitorId: ids.visitorId || attribution.visitor_id || null,
|
|
73
|
+
path: ids.path || null,
|
|
74
|
+
exp: ids.exp || null,
|
|
75
|
+
attribution: {
|
|
76
|
+
utmSource: attribution.utm_source || attribution.utmSource || null,
|
|
77
|
+
utmMedium: attribution.utm_medium || attribution.utmMedium || null,
|
|
78
|
+
utmCampaign: attribution.utm_campaign || attribution.utmCampaign || null,
|
|
79
|
+
referrerHost: attribution.referrer_host || attribution.referrerHost || null,
|
|
80
|
+
landingPath: attribution.landing_path || attribution.landingPath || null
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
var controller = typeof AbortController !== 'undefined' ? new AbortController() : null;
|
|
84
|
+
var timer = controller ? setTimeout(function () { controller.abort(); }, 3000) : null;
|
|
85
|
+
try {
|
|
86
|
+
var response = await fetch(baseUrl.replace(/\\/$/, '') + '/events/' + publicKey + '/server', {
|
|
87
|
+
method: 'POST',
|
|
88
|
+
headers: { 'Content-Type': 'application/json', 'x-tp-server-key': serverKey },
|
|
89
|
+
body: JSON.stringify({ outcomes: [outcome] }),
|
|
90
|
+
signal: controller ? controller.signal : undefined
|
|
91
|
+
});
|
|
92
|
+
return { sent: response.status < 400, status: response.status };
|
|
93
|
+
} catch (err) {
|
|
94
|
+
return { sent: false, reason: 'network' };
|
|
95
|
+
} finally {
|
|
96
|
+
if (timer) {
|
|
97
|
+
clearTimeout(timer);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}`
|
|
101
|
+
|
|
102
|
+
export const analyticsTrackOutcome: NodeHandlerGenerator = {
|
|
103
|
+
nodeType: 'analytics-track-outcome',
|
|
104
|
+
executionEnv: 'universal',
|
|
105
|
+
generateHandler(): string {
|
|
106
|
+
return CLIENT_BODY
|
|
107
|
+
},
|
|
108
|
+
generateServerHandler(): string {
|
|
109
|
+
return SERVER_BODY
|
|
110
|
+
},
|
|
111
|
+
}
|