@teleporthq/teleport-plugin-next-workflows 0.43.67 → 0.43.69
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/bind-workflow-utils.ts +16 -1
- package/__tests__/_helpers/fake-fetch.ts +96 -0
- package/__tests__/_helpers/fake-stripe.ts +52 -0
- package/__tests__/_helpers/load-handler.ts +22 -3
- package/__tests__/_helpers/load-invoice-route.ts +75 -0
- package/__tests__/_helpers/load-payment-drivers.ts +69 -0
- package/__tests__/_helpers/load-server-runtime.ts +33 -0
- package/__tests__/_helpers/run-generated-middleware.ts +50 -9
- package/__tests__/admin-form-hydration-target.test.ts +39 -0
- package/__tests__/admin-form-row-hydration.test.ts +58 -0
- package/__tests__/ai-select-database-data-handler.test.ts +14 -3
- package/__tests__/api-route-file-name-segments.test.ts +33 -0
- package/__tests__/app-secret-env.test.ts +55 -0
- package/__tests__/auth-env-secret-preservation.test.ts +22 -3
- package/__tests__/auth-nextauth-url.test.ts +134 -50
- package/__tests__/cart-add-item-kinds.test.ts +259 -0
- package/__tests__/cart-add-item-line-fields.test.ts +328 -0
- package/__tests__/cart-availability-add-to-cart.test.ts +108 -0
- package/__tests__/cart-get-total-discounts.test.ts +499 -0
- package/__tests__/cart-get-total-product-options.test.ts +195 -0
- package/__tests__/cart-get-total-subscriptions.test.ts +221 -0
- package/__tests__/cart-price-order.test.ts +283 -0
- package/__tests__/cart-update-item-quantity-recurring.test.ts +75 -0
- package/__tests__/client-loop-current-item.test.ts +164 -0
- package/__tests__/cron-route-loop-custom-node.test.ts +123 -0
- package/__tests__/cron-route-loop-templateparams.test.ts +7 -0
- package/__tests__/cron-route-verification.test.ts +252 -0
- package/__tests__/custom-js-runtime-base-url.test.ts +64 -0
- package/__tests__/custom-nodes-admin-module.test.ts +310 -0
- package/__tests__/data-api-browser-reads.test.ts +341 -0
- package/__tests__/data-api-low-stock-autofire.test.ts +67 -17
- package/__tests__/data-api-optional-feature-columns.test.ts +240 -0
- package/__tests__/data-api-protected-tables.test.ts +948 -0
- package/__tests__/data-node-not-awaited.test.ts +7 -3
- package/__tests__/data-write-missing-filter.test.ts +119 -0
- package/__tests__/ecommerce-rewriter-product-options.test.ts +143 -0
- package/__tests__/email-locale-senders.test.ts +1 -1
- package/__tests__/file-storage-upload-picked-files.test.ts +20 -0
- package/__tests__/input-debounce-per-field.test.ts +141 -0
- package/__tests__/internal-request-headers.test.ts +7 -3
- package/__tests__/invoice-data-access-replace.test.ts +340 -0
- package/__tests__/invoice-delivery-fee.test.ts +3 -2
- package/__tests__/invoice-generate-hydration.test.ts +20 -12
- package/__tests__/invoice-order-items-settle.test.ts +51 -46
- package/__tests__/invoice-product-options.test.ts +177 -0
- package/__tests__/invoice-regenerate-route.test.ts +488 -0
- package/__tests__/invoice-regional-tax.test.ts +3 -2
- package/__tests__/invoice-reservation.test.ts +195 -0
- package/__tests__/invoice-route-access.test.ts +275 -0
- package/__tests__/invoice-self-call-origin.test.ts +117 -0
- package/__tests__/invoice-tender.test.ts +550 -0
- package/__tests__/legacy-webhook-self-calls.test.ts +187 -0
- package/__tests__/locale-aware-redirects.test.ts +55 -26
- package/__tests__/loop-collection-unwrap.test.ts +6 -1
- package/__tests__/middleware-subscriber-access.test.ts +269 -0
- package/__tests__/payment-charge-user-earlier-attempt.test.ts +267 -0
- package/__tests__/payment-charge-user-handler-serialization.test.ts +47 -82
- package/__tests__/payment-charge-user-line-descriptions.test.ts +124 -0
- package/__tests__/payment-charge-user-report-refusal.test.ts +105 -0
- package/__tests__/payment-close-checkout-node.test.ts +127 -0
- package/__tests__/payment-driver-close-checkout.test.ts +1163 -0
- package/__tests__/payment-driver-coingate.test.ts +470 -0
- package/__tests__/payment-driver-inspect-checkout.test.ts +648 -0
- package/__tests__/payment-driver-mollie.test.ts +864 -0
- package/__tests__/payment-driver-paddle.test.ts +870 -0
- package/__tests__/payment-driver-paypal-capture.test.ts +158 -0
- package/__tests__/payment-driver-paypal-webhook.test.ts +367 -0
- package/__tests__/payment-driver-razorpay.test.ts +895 -0
- package/__tests__/payment-driver-square.test.ts +977 -0
- package/__tests__/payment-driver-stripe.test.ts +267 -0
- package/__tests__/payment-drivers-module.test.ts +429 -0
- package/__tests__/payment-legacy-webhook-routes.test.ts +588 -0
- package/__tests__/payment-redirect-and-order-notification.test.ts +98 -39
- package/__tests__/payment-refund.test.ts +523 -22
- package/__tests__/payment-subscription-nodes.test.ts +1360 -0
- package/__tests__/payment-webhook-route.test.ts +523 -0
- package/__tests__/paypal-webhook-signature-verification.test.ts +205 -0
- package/__tests__/prune-context-oversized-leaf.test.ts +1 -0
- package/__tests__/prune-context-state-keys.test.ts +89 -0
- package/__tests__/push-node-handlers.test.ts +291 -0
- package/__tests__/route-changed-trigger.test.ts +40 -0
- package/__tests__/runtime-storage-upload-access.test.ts +255 -0
- package/__tests__/security-runtime-shadow.test.ts +103 -1
- package/__tests__/segment-reply-changed-keys.test.ts +146 -0
- package/__tests__/segment-state-keys-emission.test.ts +185 -0
- package/__tests__/segment-state-needs.test.ts +102 -0
- package/__tests__/server-segment-context-integrity.test.ts +210 -0
- package/__tests__/server-step-signing.test.ts +371 -0
- package/__tests__/session-cookie-resolver.test.ts +59 -0
- package/__tests__/stock-decrement-audit.test.ts +17 -0
- package/__tests__/subscriber-access-route.test.ts +406 -0
- package/__tests__/webhook-delivery-lease.test.ts +316 -0
- package/__tests__/workflow-auth-guard.test.ts +253 -2
- package/dist/cjs/admin-form-hydration.d.ts +10 -0
- package/dist/cjs/admin-form-hydration.d.ts.map +1 -0
- package/dist/cjs/admin-form-hydration.js +25 -0
- package/dist/cjs/admin-form-hydration.js.map +1 -0
- package/dist/cjs/api-route-generator.d.ts +19 -3
- package/dist/cjs/api-route-generator.d.ts.map +1 -1
- package/dist/cjs/api-route-generator.js +190 -70
- package/dist/cjs/api-route-generator.js.map +1 -1
- package/dist/cjs/auth-generator.d.ts +4 -1
- package/dist/cjs/auth-generator.d.ts.map +1 -1
- package/dist/cjs/auth-generator.js +241 -62
- package/dist/cjs/auth-generator.js.map +1 -1
- package/dist/cjs/auth-return/signed-in-destination-code.d.ts +17 -0
- package/dist/cjs/auth-return/signed-in-destination-code.d.ts.map +1 -0
- package/dist/cjs/auth-return/signed-in-destination-code.js +37 -0
- package/dist/cjs/auth-return/signed-in-destination-code.js.map +1 -0
- package/dist/cjs/cart-pricing-preamble.d.ts +12 -0
- package/dist/cjs/cart-pricing-preamble.d.ts.map +1 -0
- package/dist/cjs/cart-pricing-preamble.js +23 -0
- package/dist/cjs/cart-pricing-preamble.js.map +1 -0
- package/dist/cjs/cron-request-verification.d.ts +24 -0
- package/dist/cjs/cron-request-verification.d.ts.map +1 -0
- package/dist/cjs/cron-request-verification.js +84 -0
- package/dist/cjs/cron-request-verification.js.map +1 -0
- package/dist/cjs/custom-node-modules.d.ts +30 -0
- package/dist/cjs/custom-node-modules.d.ts.map +1 -0
- package/dist/cjs/custom-node-modules.js +90 -0
- package/dist/cjs/custom-node-modules.js.map +1 -0
- package/dist/cjs/data-api-route-generator.d.ts +27 -0
- package/dist/cjs/data-api-route-generator.d.ts.map +1 -1
- package/dist/cjs/data-api-route-generator.js +366 -29
- package/dist/cjs/data-api-route-generator.js.map +1 -1
- package/dist/cjs/ecommerce/cart-availability.d.ts.map +1 -1
- package/dist/cjs/ecommerce/cart-availability.js +22 -13
- package/dist/cjs/ecommerce/cart-availability.js.map +1 -1
- package/dist/cjs/ecommerce/stock-decrement.d.ts +2 -1
- package/dist/cjs/ecommerce/stock-decrement.d.ts.map +1 -1
- package/dist/cjs/ecommerce/stock-decrement.js +6 -0
- package/dist/cjs/ecommerce/stock-decrement.js.map +1 -1
- package/dist/cjs/executor-generator.d.ts +0 -1
- package/dist/cjs/executor-generator.d.ts.map +1 -1
- package/dist/cjs/executor-generator.js +213 -20
- package/dist/cjs/executor-generator.js.map +1 -1
- package/dist/cjs/index.d.ts +12 -4
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +25 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/invoice/api-routes-code.d.ts +26 -0
- package/dist/cjs/invoice/api-routes-code.d.ts.map +1 -1
- package/dist/cjs/invoice/api-routes-code.js +423 -391
- package/dist/cjs/invoice/api-routes-code.js.map +1 -1
- package/dist/cjs/invoice/data-access-code.d.ts.map +1 -1
- package/dist/cjs/invoice/data-access-code.js +420 -107
- package/dist/cjs/invoice/data-access-code.js.map +1 -1
- package/dist/cjs/invoice/index.d.ts.map +1 -1
- package/dist/cjs/invoice/index.js +24 -0
- package/dist/cjs/invoice/index.js.map +1 -1
- package/dist/cjs/invoice/invoice-assembly-code.d.ts +12 -0
- package/dist/cjs/invoice/invoice-assembly-code.d.ts.map +1 -0
- package/dist/cjs/invoice/invoice-assembly-code.js +517 -0
- package/dist/cjs/invoice/invoice-assembly-code.js.map +1 -0
- package/dist/cjs/invoice/invoice-html-code.d.ts.map +1 -1
- package/dist/cjs/invoice/invoice-html-code.js +111 -9
- package/dist/cjs/invoice/invoice-html-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 +3 -4
- package/dist/cjs/invoice/pdf-service-client-code.js.map +1 -1
- package/dist/cjs/nodes/account/account-login.d.ts.map +1 -1
- package/dist/cjs/nodes/account/account-login.js +4 -3
- package/dist/cjs/nodes/account/account-login.js.map +1 -1
- package/dist/cjs/nodes/account/account-signup.d.ts.map +1 -1
- package/dist/cjs/nodes/account/account-signup.js +7 -4
- package/dist/cjs/nodes/account/account-signup.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 -1
- package/dist/cjs/nodes/ai/ai-select-database-data.js.map +1 -1
- package/dist/cjs/nodes/browser/browser-get-push-subscription.d.ts +9 -0
- package/dist/cjs/nodes/browser/browser-get-push-subscription.d.ts.map +1 -0
- package/dist/cjs/nodes/browser/browser-get-push-subscription.js +25 -0
- package/dist/cjs/nodes/browser/browser-get-push-subscription.js.map +1 -0
- package/dist/cjs/nodes/browser/browser-show-notification.d.ts +10 -0
- package/dist/cjs/nodes/browser/browser-show-notification.d.ts.map +1 -1
- package/dist/cjs/nodes/browser/browser-show-notification.js +65 -40
- package/dist/cjs/nodes/browser/browser-show-notification.js.map +1 -1
- package/dist/cjs/nodes/browser/browser-subscribe-to-push.d.ts +11 -0
- package/dist/cjs/nodes/browser/browser-subscribe-to-push.d.ts.map +1 -1
- package/dist/cjs/nodes/browser/browser-subscribe-to-push.js +21 -31
- package/dist/cjs/nodes/browser/browser-subscribe-to-push.js.map +1 -1
- package/dist/cjs/nodes/browser/browser-unsubscribe-from-push.d.ts +8 -0
- package/dist/cjs/nodes/browser/browser-unsubscribe-from-push.d.ts.map +1 -0
- package/dist/cjs/nodes/browser/browser-unsubscribe-from-push.js +24 -0
- package/dist/cjs/nodes/browser/browser-unsubscribe-from-push.js.map +1 -0
- package/dist/cjs/nodes/browser/push-api-access.d.ts +12 -0
- package/dist/cjs/nodes/browser/push-api-access.d.ts.map +1 -0
- package/dist/cjs/nodes/browser/push-api-access.js +19 -0
- package/dist/cjs/nodes/browser/push-api-access.js.map +1 -0
- package/dist/cjs/nodes/cart/cart-add-item.d.ts.map +1 -1
- package/dist/cjs/nodes/cart/cart-add-item.js +174 -10
- package/dist/cjs/nodes/cart/cart-add-item.js.map +1 -1
- package/dist/cjs/nodes/cart/cart-clear.d.ts.map +1 -1
- package/dist/cjs/nodes/cart/cart-clear.js +11 -0
- package/dist/cjs/nodes/cart/cart-clear.js.map +1 -1
- package/dist/cjs/nodes/cart/cart-get-total.d.ts.map +1 -1
- package/dist/cjs/nodes/cart/cart-get-total.js +260 -3
- package/dist/cjs/nodes/cart/cart-get-total.js.map +1 -1
- package/dist/cjs/nodes/cart/cart-price-order.d.ts +3 -0
- package/dist/cjs/nodes/cart/cart-price-order.d.ts.map +1 -0
- package/dist/cjs/nodes/cart/cart-price-order.js +281 -0
- package/dist/cjs/nodes/cart/cart-price-order.js.map +1 -0
- package/dist/cjs/nodes/cart/cart-update-item-quantity.d.ts.map +1 -1
- package/dist/cjs/nodes/cart/cart-update-item-quantity.js +7 -0
- package/dist/cjs/nodes/cart/cart-update-item-quantity.js.map +1 -1
- package/dist/cjs/nodes/data/data-count.d.ts.map +1 -1
- package/dist/cjs/nodes/data/data-count.js +6 -1
- package/dist/cjs/nodes/data/data-count.js.map +1 -1
- package/dist/cjs/nodes/data/data-create-item.d.ts.map +1 -1
- package/dist/cjs/nodes/data/data-create-item.js +11 -1
- package/dist/cjs/nodes/data/data-create-item.js.map +1 -1
- package/dist/cjs/nodes/data/data-delete-item.d.ts.map +1 -1
- package/dist/cjs/nodes/data/data-delete-item.js +29 -0
- package/dist/cjs/nodes/data/data-delete-item.js.map +1 -1
- package/dist/cjs/nodes/data/data-raw-query.d.ts.map +1 -1
- package/dist/cjs/nodes/data/data-raw-query.js +6 -1
- package/dist/cjs/nodes/data/data-raw-query.js.map +1 -1
- package/dist/cjs/nodes/data/data-select.d.ts.map +1 -1
- package/dist/cjs/nodes/data/data-select.js +6 -1
- package/dist/cjs/nodes/data/data-select.js.map +1 -1
- package/dist/cjs/nodes/data/data-update-item.d.ts.map +1 -1
- package/dist/cjs/nodes/data/data-update-item.js +29 -0
- package/dist/cjs/nodes/data/data-update-item.js.map +1 -1
- package/dist/cjs/nodes/ecommerce/ecommerce-generate-invoice.d.ts.map +1 -1
- package/dist/cjs/nodes/ecommerce/ecommerce-generate-invoice.js +7 -1
- package/dist/cjs/nodes/ecommerce/ecommerce-generate-invoice.js.map +1 -1
- package/dist/cjs/nodes/file-storage/file-storage-upload.d.ts.map +1 -1
- package/dist/cjs/nodes/file-storage/file-storage-upload.js +7 -0
- package/dist/cjs/nodes/file-storage/file-storage-upload.js.map +1 -1
- package/dist/cjs/nodes/general/general-custom-js.d.ts.map +1 -1
- package/dist/cjs/nodes/general/general-custom-js.js +21 -5
- package/dist/cjs/nodes/general/general-custom-js.js.map +1 -1
- package/dist/cjs/nodes/index.d.ts.map +1 -1
- package/dist/cjs/nodes/index.js +9 -4
- package/dist/cjs/nodes/index.js.map +1 -1
- package/dist/cjs/nodes/payment/payment-billing-portal.d.ts +3 -0
- package/dist/cjs/nodes/payment/payment-billing-portal.d.ts.map +1 -0
- package/dist/cjs/nodes/payment/payment-billing-portal.js +52 -0
- package/dist/cjs/nodes/payment/payment-billing-portal.js.map +1 -0
- package/dist/cjs/nodes/payment/payment-charge-user.d.ts.map +1 -1
- package/dist/cjs/nodes/payment/payment-charge-user.js +227 -360
- package/dist/cjs/nodes/payment/payment-charge-user.js.map +1 -1
- package/dist/cjs/nodes/payment/payment-close-checkout.d.ts +3 -0
- package/dist/cjs/nodes/payment/payment-close-checkout.d.ts.map +1 -0
- package/dist/cjs/nodes/payment/payment-close-checkout.js +141 -0
- package/dist/cjs/nodes/payment/payment-close-checkout.js.map +1 -0
- package/dist/cjs/nodes/payment/payment-ensure-subscription-plan.d.ts +3 -0
- package/dist/cjs/nodes/payment/payment-ensure-subscription-plan.d.ts.map +1 -0
- package/dist/cjs/nodes/payment/payment-ensure-subscription-plan.js +67 -0
- package/dist/cjs/nodes/payment/payment-ensure-subscription-plan.js.map +1 -0
- package/dist/cjs/nodes/payment/payment-manage-subscription.d.ts +3 -0
- package/dist/cjs/nodes/payment/payment-manage-subscription.d.ts.map +1 -0
- package/dist/cjs/nodes/payment/payment-manage-subscription.js +89 -0
- package/dist/cjs/nodes/payment/payment-manage-subscription.js.map +1 -0
- package/dist/cjs/nodes/payment/payment-refund.d.ts.map +1 -1
- package/dist/cjs/nodes/payment/payment-refund.js +50 -404
- package/dist/cjs/nodes/payment/payment-refund.js.map +1 -1
- package/dist/cjs/nodes/push/push-send-notification.d.ts +14 -0
- package/dist/cjs/nodes/push/push-send-notification.d.ts.map +1 -0
- package/dist/cjs/nodes/push/push-send-notification.js +83 -0
- package/dist/cjs/nodes/push/push-send-notification.js.map +1 -0
- package/dist/cjs/payments/drivers/coingate-driver-code.d.ts +16 -0
- package/dist/cjs/payments/drivers/coingate-driver-code.d.ts.map +1 -0
- package/dist/cjs/payments/drivers/coingate-driver-code.js +471 -0
- package/dist/cjs/payments/drivers/coingate-driver-code.js.map +1 -0
- package/dist/cjs/payments/drivers/mollie-driver-code.d.ts +16 -0
- package/dist/cjs/payments/drivers/mollie-driver-code.d.ts.map +1 -0
- package/dist/cjs/payments/drivers/mollie-driver-code.js +623 -0
- package/dist/cjs/payments/drivers/mollie-driver-code.js.map +1 -0
- package/dist/cjs/payments/drivers/paddle-driver-code.d.ts +12 -0
- package/dist/cjs/payments/drivers/paddle-driver-code.d.ts.map +1 -0
- package/dist/cjs/payments/drivers/paddle-driver-code.js +683 -0
- package/dist/cjs/payments/drivers/paddle-driver-code.js.map +1 -0
- package/dist/cjs/payments/drivers/paypal-driver-code.d.ts +12 -0
- package/dist/cjs/payments/drivers/paypal-driver-code.d.ts.map +1 -0
- package/dist/cjs/payments/drivers/paypal-driver-code.js +1261 -0
- package/dist/cjs/payments/drivers/paypal-driver-code.js.map +1 -0
- package/dist/cjs/payments/drivers/razorpay-driver-code.d.ts +12 -0
- package/dist/cjs/payments/drivers/razorpay-driver-code.d.ts.map +1 -0
- package/dist/cjs/payments/drivers/razorpay-driver-code.js +732 -0
- package/dist/cjs/payments/drivers/razorpay-driver-code.js.map +1 -0
- package/dist/cjs/payments/drivers/square-driver-code.d.ts +14 -0
- package/dist/cjs/payments/drivers/square-driver-code.d.ts.map +1 -0
- package/dist/cjs/payments/drivers/square-driver-code.js +931 -0
- package/dist/cjs/payments/drivers/square-driver-code.js.map +1 -0
- package/dist/cjs/payments/drivers/stripe-driver-code.d.ts +12 -0
- package/dist/cjs/payments/drivers/stripe-driver-code.d.ts.map +1 -0
- package/dist/cjs/payments/drivers/stripe-driver-code.js +778 -0
- package/dist/cjs/payments/drivers/stripe-driver-code.js.map +1 -0
- package/dist/cjs/payments/index.d.ts +66 -0
- package/dist/cjs/payments/index.d.ts.map +1 -0
- package/dist/cjs/payments/index.js +175 -0
- package/dist/cjs/payments/index.js.map +1 -0
- package/dist/cjs/payments/payment-core-code.d.ts +19 -0
- package/dist/cjs/payments/payment-core-code.d.ts.map +1 -0
- package/dist/cjs/payments/payment-core-code.js +422 -0
- package/dist/cjs/payments/payment-core-code.js.map +1 -0
- package/dist/cjs/payments/payment-driver-code-map.d.ts +4 -0
- package/dist/cjs/payments/payment-driver-code-map.d.ts.map +1 -0
- package/dist/cjs/payments/payment-driver-code-map.js +21 -0
- package/dist/cjs/payments/payment-driver-code-map.js.map +1 -0
- package/dist/cjs/payments/payment-drivers-scope.d.ts +35 -0
- package/dist/cjs/payments/payment-drivers-scope.d.ts.map +1 -0
- package/dist/cjs/payments/payment-drivers-scope.js +56 -0
- package/dist/cjs/payments/payment-drivers-scope.js.map +1 -0
- package/dist/cjs/payments/payment-registry-code.d.ts +8 -0
- package/dist/cjs/payments/payment-registry-code.d.ts.map +1 -0
- package/dist/cjs/payments/payment-registry-code.js +41 -0
- package/dist/cjs/payments/payment-registry-code.js.map +1 -0
- package/dist/cjs/pg-client-code.d.ts +10 -0
- package/dist/cjs/pg-client-code.d.ts.map +1 -1
- package/dist/cjs/pg-client-code.js +27 -1
- package/dist/cjs/pg-client-code.js.map +1 -1
- package/dist/cjs/runtime-storage-generator.d.ts +28 -0
- package/dist/cjs/runtime-storage-generator.d.ts.map +1 -1
- package/dist/cjs/runtime-storage-generator.js +240 -5
- package/dist/cjs/runtime-storage-generator.js.map +1 -1
- package/dist/cjs/secret-collector.d.ts.map +1 -1
- package/dist/cjs/secret-collector.js +8 -3
- package/dist/cjs/secret-collector.js.map +1 -1
- package/dist/cjs/security-scanner.d.ts +10 -1
- package/dist/cjs/security-scanner.d.ts.map +1 -1
- package/dist/cjs/security-scanner.js +19 -1
- package/dist/cjs/security-scanner.js.map +1 -1
- package/dist/cjs/segment-context-needs.d.ts +38 -0
- package/dist/cjs/segment-context-needs.d.ts.map +1 -0
- package/dist/cjs/segment-context-needs.js +129 -0
- package/dist/cjs/segment-context-needs.js.map +1 -0
- package/dist/cjs/segment-splitter.d.ts.map +1 -1
- package/dist/cjs/segment-splitter.js +6 -1
- package/dist/cjs/segment-splitter.js.map +1 -1
- package/dist/cjs/segment-trust.d.ts +50 -0
- package/dist/cjs/segment-trust.d.ts.map +1 -0
- package/dist/cjs/segment-trust.js +115 -0
- package/dist/cjs/segment-trust.js.map +1 -0
- package/dist/cjs/sent-email-log/sent-email-log-code.d.ts +19 -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 +1 -24
- package/dist/cjs/sent-email-log/sent-email-log-code.js.map +1 -1
- package/dist/cjs/server-runtime-code.d.ts +34 -0
- package/dist/cjs/server-runtime-code.d.ts.map +1 -0
- package/dist/cjs/server-runtime-code.js +303 -0
- package/dist/cjs/server-runtime-code.js.map +1 -0
- package/dist/cjs/session-cookie-resolver.d.ts +3 -78
- package/dist/cjs/session-cookie-resolver.d.ts.map +1 -1
- package/dist/cjs/session-cookie-resolver.js +7 -276
- package/dist/cjs/session-cookie-resolver.js.map +1 -1
- package/dist/cjs/subscriber-access-route-generator.d.ts +71 -0
- package/dist/cjs/subscriber-access-route-generator.d.ts.map +1 -0
- package/dist/cjs/subscriber-access-route-generator.js +301 -0
- package/dist/cjs/subscriber-access-route-generator.js.map +1 -0
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/cjs/types.d.ts +6 -0
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/cjs/webhook-delivery-lease/index.d.ts +8 -0
- package/dist/cjs/webhook-delivery-lease/index.d.ts.map +1 -0
- package/dist/cjs/webhook-delivery-lease/index.js +41 -0
- package/dist/cjs/webhook-delivery-lease/index.js.map +1 -0
- package/dist/cjs/webhook-delivery-lease/webhook-delivery-lease-code.d.ts +26 -0
- package/dist/cjs/webhook-delivery-lease/webhook-delivery-lease-code.d.ts.map +1 -0
- package/dist/cjs/webhook-delivery-lease/webhook-delivery-lease-code.js +151 -0
- package/dist/cjs/webhook-delivery-lease/webhook-delivery-lease-code.js.map +1 -0
- package/dist/cjs/webhook-delivery-lease/webhook-delivery-lease-scope.d.ts +16 -0
- package/dist/cjs/webhook-delivery-lease/webhook-delivery-lease-scope.d.ts.map +1 -0
- package/dist/cjs/webhook-delivery-lease/webhook-delivery-lease-scope.js +19 -0
- package/dist/cjs/webhook-delivery-lease/webhook-delivery-lease-scope.js.map +1 -0
- package/dist/cjs/webhook-generator.d.ts +1 -1
- package/dist/cjs/webhook-generator.d.ts.map +1 -1
- package/dist/cjs/webhook-generator.js +342 -254
- package/dist/cjs/webhook-generator.js.map +1 -1
- package/dist/cjs/webhook-signature-verification.d.ts +17 -1
- package/dist/cjs/webhook-signature-verification.d.ts.map +1 -1
- package/dist/cjs/webhook-signature-verification.js +182 -27
- package/dist/cjs/webhook-signature-verification.js.map +1 -1
- package/dist/cjs/workflow-auth-generator.d.ts +9 -6
- package/dist/cjs/workflow-auth-generator.d.ts.map +1 -1
- package/dist/cjs/workflow-auth-generator.js +133 -29
- package/dist/cjs/workflow-auth-generator.js.map +1 -1
- package/dist/cjs/workflow-component-plugin.d.ts.map +1 -1
- package/dist/cjs/workflow-component-plugin.js +65 -28
- package/dist/cjs/workflow-component-plugin.js.map +1 -1
- package/dist/cjs/workflow-project-plugin.d.ts +13 -0
- package/dist/cjs/workflow-project-plugin.d.ts.map +1 -1
- package/dist/cjs/workflow-project-plugin.js +215 -65
- package/dist/cjs/workflow-project-plugin.js.map +1 -1
- package/dist/esm/admin-form-hydration.d.ts +10 -0
- package/dist/esm/admin-form-hydration.d.ts.map +1 -0
- package/dist/esm/admin-form-hydration.js +21 -0
- package/dist/esm/admin-form-hydration.js.map +1 -0
- package/dist/esm/api-route-generator.d.ts +19 -3
- package/dist/esm/api-route-generator.d.ts.map +1 -1
- package/dist/esm/api-route-generator.js +189 -70
- package/dist/esm/api-route-generator.js.map +1 -1
- package/dist/esm/auth-generator.d.ts +4 -1
- package/dist/esm/auth-generator.d.ts.map +1 -1
- package/dist/esm/auth-generator.js +241 -62
- package/dist/esm/auth-generator.js.map +1 -1
- package/dist/esm/auth-return/signed-in-destination-code.d.ts +17 -0
- package/dist/esm/auth-return/signed-in-destination-code.d.ts.map +1 -0
- package/dist/esm/auth-return/signed-in-destination-code.js +33 -0
- package/dist/esm/auth-return/signed-in-destination-code.js.map +1 -0
- package/dist/esm/cart-pricing-preamble.d.ts +12 -0
- package/dist/esm/cart-pricing-preamble.d.ts.map +1 -0
- package/dist/esm/cart-pricing-preamble.js +19 -0
- package/dist/esm/cart-pricing-preamble.js.map +1 -0
- package/dist/esm/cron-request-verification.d.ts +24 -0
- package/dist/esm/cron-request-verification.d.ts.map +1 -0
- package/dist/esm/cron-request-verification.js +80 -0
- package/dist/esm/cron-request-verification.js.map +1 -0
- package/dist/esm/custom-node-modules.d.ts +30 -0
- package/dist/esm/custom-node-modules.d.ts.map +1 -0
- package/dist/esm/custom-node-modules.js +84 -0
- package/dist/esm/custom-node-modules.js.map +1 -0
- package/dist/esm/data-api-route-generator.d.ts +27 -0
- package/dist/esm/data-api-route-generator.d.ts.map +1 -1
- package/dist/esm/data-api-route-generator.js +365 -28
- package/dist/esm/data-api-route-generator.js.map +1 -1
- package/dist/esm/ecommerce/cart-availability.d.ts.map +1 -1
- package/dist/esm/ecommerce/cart-availability.js +22 -13
- package/dist/esm/ecommerce/cart-availability.js.map +1 -1
- package/dist/esm/ecommerce/stock-decrement.d.ts +2 -1
- package/dist/esm/ecommerce/stock-decrement.d.ts.map +1 -1
- package/dist/esm/ecommerce/stock-decrement.js +6 -0
- package/dist/esm/ecommerce/stock-decrement.js.map +1 -1
- package/dist/esm/executor-generator.d.ts +0 -1
- package/dist/esm/executor-generator.d.ts.map +1 -1
- package/dist/esm/executor-generator.js +212 -18
- package/dist/esm/executor-generator.js.map +1 -1
- package/dist/esm/index.d.ts +12 -4
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +10 -4
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/invoice/api-routes-code.d.ts +26 -0
- package/dist/esm/invoice/api-routes-code.d.ts.map +1 -1
- package/dist/esm/invoice/api-routes-code.js +421 -390
- package/dist/esm/invoice/api-routes-code.js.map +1 -1
- package/dist/esm/invoice/data-access-code.d.ts.map +1 -1
- package/dist/esm/invoice/data-access-code.js +420 -107
- package/dist/esm/invoice/data-access-code.js.map +1 -1
- package/dist/esm/invoice/index.d.ts.map +1 -1
- package/dist/esm/invoice/index.js +25 -1
- package/dist/esm/invoice/index.js.map +1 -1
- package/dist/esm/invoice/invoice-assembly-code.d.ts +12 -0
- package/dist/esm/invoice/invoice-assembly-code.d.ts.map +1 -0
- package/dist/esm/invoice/invoice-assembly-code.js +513 -0
- package/dist/esm/invoice/invoice-assembly-code.js.map +1 -0
- package/dist/esm/invoice/invoice-html-code.d.ts.map +1 -1
- package/dist/esm/invoice/invoice-html-code.js +111 -9
- package/dist/esm/invoice/invoice-html-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 +3 -4
- package/dist/esm/invoice/pdf-service-client-code.js.map +1 -1
- package/dist/esm/nodes/account/account-login.d.ts.map +1 -1
- package/dist/esm/nodes/account/account-login.js +4 -3
- package/dist/esm/nodes/account/account-login.js.map +1 -1
- package/dist/esm/nodes/account/account-signup.d.ts.map +1 -1
- package/dist/esm/nodes/account/account-signup.js +7 -4
- package/dist/esm/nodes/account/account-signup.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 -1
- package/dist/esm/nodes/ai/ai-select-database-data.js.map +1 -1
- package/dist/esm/nodes/browser/browser-get-push-subscription.d.ts +9 -0
- package/dist/esm/nodes/browser/browser-get-push-subscription.d.ts.map +1 -0
- package/dist/esm/nodes/browser/browser-get-push-subscription.js +22 -0
- package/dist/esm/nodes/browser/browser-get-push-subscription.js.map +1 -0
- package/dist/esm/nodes/browser/browser-show-notification.d.ts +10 -0
- package/dist/esm/nodes/browser/browser-show-notification.d.ts.map +1 -1
- package/dist/esm/nodes/browser/browser-show-notification.js +65 -40
- package/dist/esm/nodes/browser/browser-show-notification.js.map +1 -1
- package/dist/esm/nodes/browser/browser-subscribe-to-push.d.ts +11 -0
- package/dist/esm/nodes/browser/browser-subscribe-to-push.d.ts.map +1 -1
- package/dist/esm/nodes/browser/browser-subscribe-to-push.js +21 -31
- package/dist/esm/nodes/browser/browser-subscribe-to-push.js.map +1 -1
- package/dist/esm/nodes/browser/browser-unsubscribe-from-push.d.ts +8 -0
- package/dist/esm/nodes/browser/browser-unsubscribe-from-push.d.ts.map +1 -0
- package/dist/esm/nodes/browser/browser-unsubscribe-from-push.js +21 -0
- package/dist/esm/nodes/browser/browser-unsubscribe-from-push.js.map +1 -0
- package/dist/esm/nodes/browser/push-api-access.d.ts +12 -0
- package/dist/esm/nodes/browser/push-api-access.d.ts.map +1 -0
- package/dist/esm/nodes/browser/push-api-access.js +13 -0
- package/dist/esm/nodes/browser/push-api-access.js.map +1 -0
- package/dist/esm/nodes/cart/cart-add-item.d.ts.map +1 -1
- package/dist/esm/nodes/cart/cart-add-item.js +174 -10
- package/dist/esm/nodes/cart/cart-add-item.js.map +1 -1
- package/dist/esm/nodes/cart/cart-clear.d.ts.map +1 -1
- package/dist/esm/nodes/cart/cart-clear.js +11 -0
- package/dist/esm/nodes/cart/cart-clear.js.map +1 -1
- package/dist/esm/nodes/cart/cart-get-total.d.ts.map +1 -1
- package/dist/esm/nodes/cart/cart-get-total.js +261 -4
- package/dist/esm/nodes/cart/cart-get-total.js.map +1 -1
- package/dist/esm/nodes/cart/cart-price-order.d.ts +3 -0
- package/dist/esm/nodes/cart/cart-price-order.d.ts.map +1 -0
- package/dist/esm/nodes/cart/cart-price-order.js +278 -0
- package/dist/esm/nodes/cart/cart-price-order.js.map +1 -0
- package/dist/esm/nodes/cart/cart-update-item-quantity.d.ts.map +1 -1
- package/dist/esm/nodes/cart/cart-update-item-quantity.js +7 -0
- package/dist/esm/nodes/cart/cart-update-item-quantity.js.map +1 -1
- package/dist/esm/nodes/data/data-count.d.ts.map +1 -1
- package/dist/esm/nodes/data/data-count.js +6 -1
- package/dist/esm/nodes/data/data-count.js.map +1 -1
- package/dist/esm/nodes/data/data-create-item.d.ts.map +1 -1
- package/dist/esm/nodes/data/data-create-item.js +11 -1
- package/dist/esm/nodes/data/data-create-item.js.map +1 -1
- package/dist/esm/nodes/data/data-delete-item.d.ts.map +1 -1
- package/dist/esm/nodes/data/data-delete-item.js +29 -0
- package/dist/esm/nodes/data/data-delete-item.js.map +1 -1
- package/dist/esm/nodes/data/data-raw-query.d.ts.map +1 -1
- package/dist/esm/nodes/data/data-raw-query.js +6 -1
- package/dist/esm/nodes/data/data-raw-query.js.map +1 -1
- package/dist/esm/nodes/data/data-select.d.ts.map +1 -1
- package/dist/esm/nodes/data/data-select.js +6 -1
- package/dist/esm/nodes/data/data-select.js.map +1 -1
- package/dist/esm/nodes/data/data-update-item.d.ts.map +1 -1
- package/dist/esm/nodes/data/data-update-item.js +29 -0
- package/dist/esm/nodes/data/data-update-item.js.map +1 -1
- package/dist/esm/nodes/ecommerce/ecommerce-generate-invoice.d.ts.map +1 -1
- package/dist/esm/nodes/ecommerce/ecommerce-generate-invoice.js +7 -1
- package/dist/esm/nodes/ecommerce/ecommerce-generate-invoice.js.map +1 -1
- package/dist/esm/nodes/file-storage/file-storage-upload.d.ts.map +1 -1
- package/dist/esm/nodes/file-storage/file-storage-upload.js +7 -0
- package/dist/esm/nodes/file-storage/file-storage-upload.js.map +1 -1
- package/dist/esm/nodes/general/general-custom-js.d.ts.map +1 -1
- package/dist/esm/nodes/general/general-custom-js.js +21 -5
- package/dist/esm/nodes/general/general-custom-js.js.map +1 -1
- package/dist/esm/nodes/index.d.ts.map +1 -1
- package/dist/esm/nodes/index.js +9 -4
- package/dist/esm/nodes/index.js.map +1 -1
- package/dist/esm/nodes/payment/payment-billing-portal.d.ts +3 -0
- package/dist/esm/nodes/payment/payment-billing-portal.d.ts.map +1 -0
- package/dist/esm/nodes/payment/payment-billing-portal.js +49 -0
- package/dist/esm/nodes/payment/payment-billing-portal.js.map +1 -0
- package/dist/esm/nodes/payment/payment-charge-user.d.ts.map +1 -1
- package/dist/esm/nodes/payment/payment-charge-user.js +227 -360
- package/dist/esm/nodes/payment/payment-charge-user.js.map +1 -1
- package/dist/esm/nodes/payment/payment-close-checkout.d.ts +3 -0
- package/dist/esm/nodes/payment/payment-close-checkout.d.ts.map +1 -0
- package/dist/esm/nodes/payment/payment-close-checkout.js +138 -0
- package/dist/esm/nodes/payment/payment-close-checkout.js.map +1 -0
- package/dist/esm/nodes/payment/payment-ensure-subscription-plan.d.ts +3 -0
- package/dist/esm/nodes/payment/payment-ensure-subscription-plan.d.ts.map +1 -0
- package/dist/esm/nodes/payment/payment-ensure-subscription-plan.js +64 -0
- package/dist/esm/nodes/payment/payment-ensure-subscription-plan.js.map +1 -0
- package/dist/esm/nodes/payment/payment-manage-subscription.d.ts +3 -0
- package/dist/esm/nodes/payment/payment-manage-subscription.d.ts.map +1 -0
- package/dist/esm/nodes/payment/payment-manage-subscription.js +86 -0
- package/dist/esm/nodes/payment/payment-manage-subscription.js.map +1 -0
- package/dist/esm/nodes/payment/payment-refund.d.ts.map +1 -1
- package/dist/esm/nodes/payment/payment-refund.js +50 -404
- package/dist/esm/nodes/payment/payment-refund.js.map +1 -1
- package/dist/esm/nodes/push/push-send-notification.d.ts +14 -0
- package/dist/esm/nodes/push/push-send-notification.d.ts.map +1 -0
- package/dist/esm/nodes/push/push-send-notification.js +80 -0
- package/dist/esm/nodes/push/push-send-notification.js.map +1 -0
- package/dist/esm/payments/drivers/coingate-driver-code.d.ts +16 -0
- package/dist/esm/payments/drivers/coingate-driver-code.d.ts.map +1 -0
- package/dist/esm/payments/drivers/coingate-driver-code.js +467 -0
- package/dist/esm/payments/drivers/coingate-driver-code.js.map +1 -0
- package/dist/esm/payments/drivers/mollie-driver-code.d.ts +16 -0
- package/dist/esm/payments/drivers/mollie-driver-code.d.ts.map +1 -0
- package/dist/esm/payments/drivers/mollie-driver-code.js +619 -0
- package/dist/esm/payments/drivers/mollie-driver-code.js.map +1 -0
- package/dist/esm/payments/drivers/paddle-driver-code.d.ts +12 -0
- package/dist/esm/payments/drivers/paddle-driver-code.d.ts.map +1 -0
- package/dist/esm/payments/drivers/paddle-driver-code.js +679 -0
- package/dist/esm/payments/drivers/paddle-driver-code.js.map +1 -0
- package/dist/esm/payments/drivers/paypal-driver-code.d.ts +12 -0
- package/dist/esm/payments/drivers/paypal-driver-code.d.ts.map +1 -0
- package/dist/esm/payments/drivers/paypal-driver-code.js +1257 -0
- package/dist/esm/payments/drivers/paypal-driver-code.js.map +1 -0
- package/dist/esm/payments/drivers/razorpay-driver-code.d.ts +12 -0
- package/dist/esm/payments/drivers/razorpay-driver-code.d.ts.map +1 -0
- package/dist/esm/payments/drivers/razorpay-driver-code.js +728 -0
- package/dist/esm/payments/drivers/razorpay-driver-code.js.map +1 -0
- package/dist/esm/payments/drivers/square-driver-code.d.ts +14 -0
- package/dist/esm/payments/drivers/square-driver-code.d.ts.map +1 -0
- package/dist/esm/payments/drivers/square-driver-code.js +927 -0
- package/dist/esm/payments/drivers/square-driver-code.js.map +1 -0
- package/dist/esm/payments/drivers/stripe-driver-code.d.ts +12 -0
- package/dist/esm/payments/drivers/stripe-driver-code.d.ts.map +1 -0
- package/dist/esm/payments/drivers/stripe-driver-code.js +774 -0
- package/dist/esm/payments/drivers/stripe-driver-code.js.map +1 -0
- package/dist/esm/payments/index.d.ts +66 -0
- package/dist/esm/payments/index.d.ts.map +1 -0
- package/dist/esm/payments/index.js +164 -0
- package/dist/esm/payments/index.js.map +1 -0
- package/dist/esm/payments/payment-core-code.d.ts +19 -0
- package/dist/esm/payments/payment-core-code.d.ts.map +1 -0
- package/dist/esm/payments/payment-core-code.js +418 -0
- package/dist/esm/payments/payment-core-code.js.map +1 -0
- package/dist/esm/payments/payment-driver-code-map.d.ts +4 -0
- package/dist/esm/payments/payment-driver-code-map.d.ts.map +1 -0
- package/dist/esm/payments/payment-driver-code-map.js +18 -0
- package/dist/esm/payments/payment-driver-code-map.js.map +1 -0
- package/dist/esm/payments/payment-drivers-scope.d.ts +35 -0
- package/dist/esm/payments/payment-drivers-scope.d.ts.map +1 -0
- package/dist/esm/payments/payment-drivers-scope.js +51 -0
- package/dist/esm/payments/payment-drivers-scope.js.map +1 -0
- package/dist/esm/payments/payment-registry-code.d.ts +8 -0
- package/dist/esm/payments/payment-registry-code.d.ts.map +1 -0
- package/dist/esm/payments/payment-registry-code.js +37 -0
- package/dist/esm/payments/payment-registry-code.js.map +1 -0
- package/dist/esm/pg-client-code.d.ts +10 -0
- package/dist/esm/pg-client-code.d.ts.map +1 -1
- package/dist/esm/pg-client-code.js +25 -0
- package/dist/esm/pg-client-code.js.map +1 -1
- package/dist/esm/runtime-storage-generator.d.ts +28 -0
- package/dist/esm/runtime-storage-generator.d.ts.map +1 -1
- package/dist/esm/runtime-storage-generator.js +239 -4
- package/dist/esm/runtime-storage-generator.js.map +1 -1
- package/dist/esm/secret-collector.d.ts.map +1 -1
- package/dist/esm/secret-collector.js +8 -3
- package/dist/esm/secret-collector.js.map +1 -1
- package/dist/esm/security-scanner.d.ts +10 -1
- package/dist/esm/security-scanner.d.ts.map +1 -1
- package/dist/esm/security-scanner.js +18 -0
- package/dist/esm/security-scanner.js.map +1 -1
- package/dist/esm/segment-context-needs.d.ts +38 -0
- package/dist/esm/segment-context-needs.d.ts.map +1 -0
- package/dist/esm/segment-context-needs.js +125 -0
- package/dist/esm/segment-context-needs.js.map +1 -0
- package/dist/esm/segment-splitter.d.ts.map +1 -1
- package/dist/esm/segment-splitter.js +6 -1
- package/dist/esm/segment-splitter.js.map +1 -1
- package/dist/esm/segment-trust.d.ts +50 -0
- package/dist/esm/segment-trust.d.ts.map +1 -0
- package/dist/esm/segment-trust.js +111 -0
- package/dist/esm/segment-trust.js.map +1 -0
- package/dist/esm/sent-email-log/sent-email-log-code.d.ts +19 -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 +2 -25
- package/dist/esm/sent-email-log/sent-email-log-code.js.map +1 -1
- package/dist/esm/server-runtime-code.d.ts +34 -0
- package/dist/esm/server-runtime-code.d.ts.map +1 -0
- package/dist/esm/server-runtime-code.js +299 -0
- package/dist/esm/server-runtime-code.js.map +1 -0
- package/dist/esm/session-cookie-resolver.d.ts +3 -78
- package/dist/esm/session-cookie-resolver.d.ts.map +1 -1
- package/dist/esm/session-cookie-resolver.js +7 -274
- package/dist/esm/session-cookie-resolver.js.map +1 -1
- package/dist/esm/subscriber-access-route-generator.d.ts +71 -0
- package/dist/esm/subscriber-access-route-generator.d.ts.map +1 -0
- package/dist/esm/subscriber-access-route-generator.js +292 -0
- package/dist/esm/subscriber-access-route-generator.js.map +1 -0
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/types.d.ts +6 -0
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/webhook-delivery-lease/index.d.ts +8 -0
- package/dist/esm/webhook-delivery-lease/index.d.ts.map +1 -0
- package/dist/esm/webhook-delivery-lease/index.js +37 -0
- package/dist/esm/webhook-delivery-lease/index.js.map +1 -0
- package/dist/esm/webhook-delivery-lease/webhook-delivery-lease-code.d.ts +26 -0
- package/dist/esm/webhook-delivery-lease/webhook-delivery-lease-code.d.ts.map +1 -0
- package/dist/esm/webhook-delivery-lease/webhook-delivery-lease-code.js +147 -0
- package/dist/esm/webhook-delivery-lease/webhook-delivery-lease-code.js.map +1 -0
- package/dist/esm/webhook-delivery-lease/webhook-delivery-lease-scope.d.ts +16 -0
- package/dist/esm/webhook-delivery-lease/webhook-delivery-lease-scope.d.ts.map +1 -0
- package/dist/esm/webhook-delivery-lease/webhook-delivery-lease-scope.js +16 -0
- package/dist/esm/webhook-delivery-lease/webhook-delivery-lease-scope.js.map +1 -0
- package/dist/esm/webhook-generator.d.ts +1 -1
- package/dist/esm/webhook-generator.d.ts.map +1 -1
- package/dist/esm/webhook-generator.js +342 -254
- package/dist/esm/webhook-generator.js.map +1 -1
- package/dist/esm/webhook-signature-verification.d.ts +17 -1
- package/dist/esm/webhook-signature-verification.d.ts.map +1 -1
- package/dist/esm/webhook-signature-verification.js +179 -25
- package/dist/esm/webhook-signature-verification.js.map +1 -1
- package/dist/esm/workflow-auth-generator.d.ts +9 -6
- package/dist/esm/workflow-auth-generator.d.ts.map +1 -1
- package/dist/esm/workflow-auth-generator.js +132 -28
- package/dist/esm/workflow-auth-generator.js.map +1 -1
- package/dist/esm/workflow-component-plugin.d.ts.map +1 -1
- package/dist/esm/workflow-component-plugin.js +65 -28
- package/dist/esm/workflow-component-plugin.js.map +1 -1
- package/dist/esm/workflow-project-plugin.d.ts +13 -0
- package/dist/esm/workflow-project-plugin.d.ts.map +1 -1
- package/dist/esm/workflow-project-plugin.js +212 -63
- package/dist/esm/workflow-project-plugin.js.map +1 -1
- package/package.json +4 -4
- package/src/admin-form-hydration.ts +28 -0
- package/src/api-route-generator.ts +251 -64
- package/src/auth-generator.ts +273 -53
- package/src/auth-return/signed-in-destination-code.ts +32 -0
- package/src/cart-pricing-preamble.ts +22 -0
- package/src/cron-request-verification.ts +79 -0
- package/src/custom-node-modules.ts +102 -0
- package/src/data-api-route-generator.ts +370 -28
- package/src/ecommerce/cart-availability.ts +22 -13
- package/src/ecommerce/stock-decrement.ts +13 -1
- package/src/executor-generator.ts +212 -19
- package/src/index.ts +28 -7
- package/src/invoice/api-routes-code.ts +424 -391
- package/src/invoice/data-access-code.ts +431 -110
- package/src/invoice/index.ts +31 -1
- package/src/invoice/invoice-assembly-code.ts +514 -0
- package/src/invoice/invoice-html-code.ts +111 -9
- package/src/invoice/pdf-service-client-code.ts +3 -4
- package/src/nodes/account/account-login.ts +4 -3
- package/src/nodes/account/account-signup.ts +7 -4
- package/src/nodes/ai/ai-select-database-data.ts +10 -1
- package/src/nodes/browser/browser-get-push-subscription.ts +23 -0
- package/src/nodes/browser/browser-show-notification.ts +61 -38
- package/src/nodes/browser/browser-subscribe-to-push.ts +26 -36
- package/src/nodes/browser/browser-unsubscribe-from-push.ts +22 -0
- package/src/nodes/browser/push-api-access.ts +20 -0
- package/src/nodes/cart/cart-add-item.ts +200 -9
- package/src/nodes/cart/cart-clear.ts +11 -0
- package/src/nodes/cart/cart-get-total.ts +279 -7
- package/src/nodes/cart/cart-price-order.ts +351 -0
- package/src/nodes/cart/cart-update-item-quantity.ts +7 -0
- package/src/nodes/data/data-count.ts +9 -1
- package/src/nodes/data/data-create-item.ts +15 -1
- package/src/nodes/data/data-delete-item.ts +32 -0
- package/src/nodes/data/data-raw-query.ts +9 -1
- package/src/nodes/data/data-select.ts +9 -1
- package/src/nodes/data/data-update-item.ts +32 -0
- package/src/nodes/ecommerce/ecommerce-generate-invoice.ts +11 -1
- package/src/nodes/file-storage/file-storage-upload.ts +8 -0
- package/src/nodes/general/general-custom-js.ts +21 -5
- package/src/nodes/index.ts +16 -6
- package/src/nodes/payment/payment-billing-portal.ts +51 -0
- package/src/nodes/payment/payment-charge-user.ts +236 -442
- package/src/nodes/payment/payment-close-checkout.ts +137 -0
- package/src/nodes/payment/payment-ensure-subscription-plan.ts +66 -0
- package/src/nodes/payment/payment-manage-subscription.ts +89 -0
- package/src/nodes/payment/payment-refund.ts +52 -467
- package/src/nodes/payment-drivers-global.d.ts +13 -0
- package/src/nodes/push/push-send-notification.ts +83 -0
- package/src/nodes/workflow-utils-global.d.ts +5 -0
- package/src/payments/drivers/coingate-driver-code.ts +466 -0
- package/src/payments/drivers/mollie-driver-code.ts +618 -0
- package/src/payments/drivers/paddle-driver-code.ts +678 -0
- package/src/payments/drivers/paypal-driver-code.ts +1256 -0
- package/src/payments/drivers/razorpay-driver-code.ts +727 -0
- package/src/payments/drivers/square-driver-code.ts +926 -0
- package/src/payments/drivers/stripe-driver-code.ts +773 -0
- package/src/payments/index.ts +204 -0
- package/src/payments/payment-core-code.ts +421 -0
- package/src/payments/payment-driver-code-map.ts +19 -0
- package/src/payments/payment-drivers-scope.ts +66 -0
- package/src/payments/payment-registry-code.ts +38 -0
- package/src/pg-client-code.ts +30 -0
- package/src/runtime-storage-generator.ts +241 -4
- package/src/secret-collector.ts +8 -3
- package/src/security-scanner.ts +22 -0
- package/src/segment-context-needs.ts +148 -0
- package/src/segment-splitter.ts +6 -1
- package/src/segment-trust.ts +170 -0
- package/src/sent-email-log/sent-email-log-code.ts +2 -32
- package/src/server-runtime-code.ts +298 -0
- package/src/session-cookie-resolver.ts +9 -277
- package/src/subscriber-access-route-generator.ts +351 -0
- package/src/types.ts +6 -0
- package/src/webhook-delivery-lease/index.ts +44 -0
- package/src/webhook-delivery-lease/webhook-delivery-lease-code.ts +151 -0
- package/src/webhook-delivery-lease/webhook-delivery-lease-scope.ts +18 -0
- package/src/webhook-generator.ts +359 -260
- package/src/webhook-signature-verification.ts +180 -25
- package/src/workflow-auth-generator.ts +137 -28
- package/src/workflow-component-plugin.ts +77 -20
- package/src/workflow-project-plugin.ts +247 -44
- package/dist/cjs/nodes/payment/payment-cancel-plan.d.ts +0 -3
- package/dist/cjs/nodes/payment/payment-cancel-plan.d.ts.map +0 -1
- package/dist/cjs/nodes/payment/payment-cancel-plan.js +0 -33
- package/dist/cjs/nodes/payment/payment-cancel-plan.js.map +0 -1
- package/dist/cjs/nodes/payment/payment-create-subscription.d.ts +0 -3
- package/dist/cjs/nodes/payment/payment-create-subscription.d.ts.map +0 -1
- package/dist/cjs/nodes/payment/payment-create-subscription.js +0 -41
- package/dist/cjs/nodes/payment/payment-create-subscription.js.map +0 -1
- package/dist/cjs/nodes/payment/payment-subscribe-to-plan.d.ts +0 -3
- package/dist/cjs/nodes/payment/payment-subscribe-to-plan.d.ts.map +0 -1
- package/dist/cjs/nodes/payment/payment-subscribe-to-plan.js +0 -45
- package/dist/cjs/nodes/payment/payment-subscribe-to-plan.js.map +0 -1
- package/dist/esm/nodes/payment/payment-cancel-plan.d.ts +0 -3
- package/dist/esm/nodes/payment/payment-cancel-plan.d.ts.map +0 -1
- package/dist/esm/nodes/payment/payment-cancel-plan.js +0 -30
- package/dist/esm/nodes/payment/payment-cancel-plan.js.map +0 -1
- package/dist/esm/nodes/payment/payment-create-subscription.d.ts +0 -3
- package/dist/esm/nodes/payment/payment-create-subscription.d.ts.map +0 -1
- package/dist/esm/nodes/payment/payment-create-subscription.js +0 -38
- package/dist/esm/nodes/payment/payment-create-subscription.js.map +0 -1
- package/dist/esm/nodes/payment/payment-subscribe-to-plan.d.ts +0 -3
- package/dist/esm/nodes/payment/payment-subscribe-to-plan.d.ts.map +0 -1
- package/dist/esm/nodes/payment/payment-subscribe-to-plan.js +0 -42
- package/dist/esm/nodes/payment/payment-subscribe-to-plan.js.map +0 -1
- package/src/nodes/payment/payment-cancel-plan.ts +0 -33
- package/src/nodes/payment/payment-create-subscription.ts +0 -42
- package/src/nodes/payment/payment-subscribe-to-plan.ts +0 -46
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
UIDLWorkflow,
|
|
3
|
+
UIDLWorkflows,
|
|
3
4
|
UIDLWorkflowNode,
|
|
4
5
|
UIDLWorkflowEdge,
|
|
5
6
|
UIDLWebhookConfig,
|
|
@@ -7,12 +8,14 @@ import {
|
|
|
7
8
|
UIDLWorkflowProtection,
|
|
8
9
|
} from '@teleporthq/teleport-types'
|
|
9
10
|
import { WorkflowSegment } from './types'
|
|
11
|
+
import { SegmentTrust } from './segment-trust'
|
|
10
12
|
import { nodeRegistry } from './nodes'
|
|
11
13
|
import { resolveHandlerEntryName } from './nodes/types'
|
|
12
14
|
import { AI_NODE_TYPES } from './graph-utils'
|
|
13
15
|
import {
|
|
14
|
-
|
|
16
|
+
generateWebhookBodyCode,
|
|
15
17
|
generateAllSignatureVerificationCode,
|
|
18
|
+
generatePaymentWebhookVerificationCode,
|
|
16
19
|
} from './webhook-signature-verification'
|
|
17
20
|
import { buildWorkflowAuthInjection } from './workflow-auth-generator'
|
|
18
21
|
import {
|
|
@@ -20,6 +23,20 @@ import {
|
|
|
20
23
|
isEmailSendingNodeType,
|
|
21
24
|
} from './sent-email-log/sent-email-log-scope'
|
|
22
25
|
import { workflowUtilsAliasLine } from './workflow-utils-alias'
|
|
26
|
+
import { adminCustomNodesRequireLine } from './custom-node-modules'
|
|
27
|
+
import {
|
|
28
|
+
generatePaymentDriversPreamble,
|
|
29
|
+
isPaymentWebhookConfig,
|
|
30
|
+
readWebhookPaymentProvider,
|
|
31
|
+
} from './payments'
|
|
32
|
+
import { usesPaymentDriverNode } from './payments/payment-drivers-scope'
|
|
33
|
+
import { generateCartPricingPreamble } from './cart-pricing-preamble'
|
|
34
|
+
import {
|
|
35
|
+
WEBHOOK_DELIVERY_LEASE_FILE_NAME,
|
|
36
|
+
WEBHOOK_DELIVERY_LEASE_PATH,
|
|
37
|
+
WEBHOOK_DELIVERY_RETRY_AFTER_SECONDS,
|
|
38
|
+
} from './webhook-delivery-lease/webhook-delivery-lease-scope'
|
|
39
|
+
import { generateCronRequestVerificationCode } from './cron-request-verification'
|
|
23
40
|
|
|
24
41
|
// Workflow/segment names, cron schedules, and webhook paths are free-form
|
|
25
42
|
// UIDL data — never guaranteed not to contain `*/`. Every generated route
|
|
@@ -32,18 +49,35 @@ import { workflowUtilsAliasLine } from './workflow-utils-alias'
|
|
|
32
49
|
// intact; this is purely cosmetic (header text only, never evaluated).
|
|
33
50
|
const sanitizeForBlockComment = (value: string): string => value.replace(/\*\//g, '* /')
|
|
34
51
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
52
|
+
/**
|
|
53
|
+
* Where a server segment's branches can begin: a node with a predecessor
|
|
54
|
+
* outside the segment, or with none at all. The splitter computes it over the
|
|
55
|
+
* whole workflow; a segment built without it falls back to the nodes nothing
|
|
56
|
+
* inside the segment leads to.
|
|
57
|
+
*/
|
|
58
|
+
const resolveSegmentEntryNodeIds = (segment: WorkflowSegment): string[] => {
|
|
59
|
+
if (segment.entryNodeIds) {
|
|
60
|
+
return segment.entryNodeIds
|
|
61
|
+
}
|
|
62
|
+
const targets = new Set(segment.edges.map((e) => e.target))
|
|
63
|
+
return segment.nodes.filter((n) => !targets.has(n.id)).map((n) => n.id)
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export interface ServerSegmentRouteOptions {
|
|
67
|
+
/** A custom node's inner node ids, in the order its runner lists them. */
|
|
68
|
+
customNodeIds?: string[]
|
|
69
|
+
/**
|
|
70
|
+
* What the route may believe about results earlier segments of the same
|
|
71
|
+
* graph hand it (see segment-trust.ts). Every route the project plugin
|
|
72
|
+
* emits carries it.
|
|
73
|
+
*/
|
|
74
|
+
trust?: SegmentTrust
|
|
75
|
+
}
|
|
44
76
|
|
|
45
|
-
|
|
77
|
+
const buildSegmentConfig = (segment: WorkflowSegment, options: ServerSegmentRouteOptions): string =>
|
|
78
|
+
JSON.stringify(
|
|
46
79
|
{
|
|
80
|
+
...(options.trust || {}),
|
|
47
81
|
nodes: segment.nodes.map((n) => ({
|
|
48
82
|
id: n.id,
|
|
49
83
|
type: n.type,
|
|
@@ -59,11 +93,26 @@ export const generateServerSegmentAPIRoute = (
|
|
|
59
93
|
targetHandle: e.targetHandle,
|
|
60
94
|
data: e.data,
|
|
61
95
|
})),
|
|
96
|
+
entryNodeIds: resolveSegmentEntryNodeIds(segment),
|
|
97
|
+
...(options.customNodeIds ? { customNodeIds: options.customNodeIds } : {}),
|
|
62
98
|
},
|
|
63
99
|
null,
|
|
64
100
|
2
|
|
65
101
|
)
|
|
66
102
|
|
|
103
|
+
export const generateServerSegmentAPIRoute = (
|
|
104
|
+
segment: WorkflowSegment,
|
|
105
|
+
workflowName?: string,
|
|
106
|
+
protection?: UIDLWorkflowProtection,
|
|
107
|
+
options: ServerSegmentRouteOptions = {}
|
|
108
|
+
): string => {
|
|
109
|
+
const usedNodeTypes = new Set(segment.nodes.map((n) => n.type))
|
|
110
|
+
const nodeHandlersEntries = generateNodeHandlersForSegment(usedNodeTypes, true)
|
|
111
|
+
const hasRateLimiter = usedNodeTypes.has('general-rate-limiter')
|
|
112
|
+
const auth = buildWorkflowAuthInjection(protection)
|
|
113
|
+
|
|
114
|
+
const segmentConfig = buildSegmentConfig(segment, options)
|
|
115
|
+
|
|
67
116
|
const header = workflowName
|
|
68
117
|
? `/**
|
|
69
118
|
* Workflow Server Segment API Route
|
|
@@ -85,7 +134,10 @@ export const generateServerSegmentAPIRoute = (
|
|
|
85
134
|
const utils = require('../../../utils/workflows/server-runtime');
|
|
86
135
|
${auth.requireLine}const resolveConfig = utils.resolveConfig;
|
|
87
136
|
${workflowUtilsAliasLine('utils')}
|
|
88
|
-
${
|
|
137
|
+
${generateCartPricingPreamble(usedNodeTypes, '../../..')}${generateSentEmailLogPreamble(
|
|
138
|
+
usedNodeTypes,
|
|
139
|
+
'../../..'
|
|
140
|
+
)}${generatePaymentDriversPreamble(usesPaymentDriverNode(usedNodeTypes), '../../..')}
|
|
89
141
|
const SEGMENT_CONFIG = ${segmentConfig};
|
|
90
142
|
${auth.policyConst}
|
|
91
143
|
const nodeHandlers = {
|
|
@@ -103,15 +155,20 @@ module.exports = async function handler(req, res) {
|
|
|
103
155
|
try {
|
|
104
156
|
const body = typeof req.body === 'string' ? JSON.parse(req.body) : req.body;
|
|
105
157
|
const incomingContext = body.context || {};
|
|
158
|
+
// What the caller already holds, so the reply below carries only what this
|
|
159
|
+
// run produced or changed (see segmentReply in runtime-utils).
|
|
160
|
+
const __incomingSnapshot = utils.snapshotIncomingContext(incomingContext);
|
|
106
161
|
|
|
107
162
|
const context = Object.assign({}, incomingContext);
|
|
163
|
+
utils.claimSegmentContext(SEGMENT_CONFIG, context);
|
|
108
164
|
__wfContext = context;
|
|
109
165
|
// Created eagerly so a custom node invoked from here shares the SAME
|
|
110
166
|
// fire-and-forget queue (it shallow-copies this context) and its queries
|
|
111
167
|
// are drained by the settle below rather than being lost when we reply.
|
|
112
168
|
context.__pendingNodePromises = [];${requestInjection}
|
|
113
|
-
|
|
114
|
-
|
|
169
|
+
// Where this deployment calls its own routes — never a host the request
|
|
170
|
+
// named (see trustedBaseUrl in the server runtime).
|
|
171
|
+
context.__baseUrl = utils.trustedBaseUrl(req);
|
|
115
172
|
// Credentials for this deployment's calls to its own /api/data routes —
|
|
116
173
|
// without them a protected deployment 401s itself and every data node
|
|
117
174
|
// returns no rows. See internalRequestHeaders in runtime-utils.
|
|
@@ -216,7 +273,7 @@ module.exports = async function handler(req, res) {
|
|
|
216
273
|
context.__loopNodeIds[node.id] = true;
|
|
217
274
|
|
|
218
275
|
for (var li = 0; li < collection.length; li++) {
|
|
219
|
-
context[node.id] =
|
|
276
|
+
context[node.id] = utils.loopIterationContext(collection, li);
|
|
220
277
|
for (var bi = 0; bi < bodyNodes.length; bi++) {
|
|
221
278
|
var bNode = bodyNodes[bi];
|
|
222
279
|
var bResolved = resolveConfig(bNode.config, context);
|
|
@@ -407,7 +464,7 @@ module.exports = async function handler(req, res) {
|
|
|
407
464
|
// response body would hand the session token to any script on the page,
|
|
408
465
|
// undoing the httpOnly flag it was set with.
|
|
409
466
|
delete context.__internalHeaders;
|
|
410
|
-
res.status(200).json({ success: true, results: context });
|
|
467
|
+
res.status(200).json({ success: true, results: utils.segmentReply(SEGMENT_CONFIG, context, __incomingSnapshot) });
|
|
411
468
|
} catch (error) {
|
|
412
469
|
console.error('Workflow segment error:', error);
|
|
413
470
|
if (__wfContext) { await utils.settlePendingNodePromises(__wfContext); }
|
|
@@ -424,34 +481,15 @@ export const hasStreamingAINode = (segment: WorkflowSegment): boolean => {
|
|
|
424
481
|
export const generateStreamingServerSegmentAPIRoute = (
|
|
425
482
|
segment: WorkflowSegment,
|
|
426
483
|
workflowName?: string,
|
|
427
|
-
protection?: UIDLWorkflowProtection
|
|
484
|
+
protection?: UIDLWorkflowProtection,
|
|
485
|
+
options: ServerSegmentRouteOptions = {}
|
|
428
486
|
): string => {
|
|
429
487
|
const usedNodeTypes = new Set(segment.nodes.map((n) => n.type))
|
|
430
488
|
const nodeHandlersEntries = generateNodeHandlersForSegment(usedNodeTypes, true)
|
|
431
489
|
const hasRateLimiter = usedNodeTypes.has('general-rate-limiter')
|
|
432
490
|
const auth = buildWorkflowAuthInjection(protection)
|
|
433
491
|
|
|
434
|
-
const segmentConfig =
|
|
435
|
-
{
|
|
436
|
-
nodes: segment.nodes.map((n) => ({
|
|
437
|
-
id: n.id,
|
|
438
|
-
type: n.type,
|
|
439
|
-
config: n.config,
|
|
440
|
-
stepNumber: n.stepNumber,
|
|
441
|
-
label: n.label,
|
|
442
|
-
})),
|
|
443
|
-
edges: segment.edges.map((e) => ({
|
|
444
|
-
id: e.id,
|
|
445
|
-
source: e.source,
|
|
446
|
-
target: e.target,
|
|
447
|
-
sourceHandle: e.sourceHandle,
|
|
448
|
-
targetHandle: e.targetHandle,
|
|
449
|
-
data: e.data,
|
|
450
|
-
})),
|
|
451
|
-
},
|
|
452
|
-
null,
|
|
453
|
-
2
|
|
454
|
-
)
|
|
492
|
+
const segmentConfig = buildSegmentConfig(segment, options)
|
|
455
493
|
|
|
456
494
|
const aiNodeTypes = JSON.stringify(Array.from(AI_NODE_TYPES))
|
|
457
495
|
|
|
@@ -471,7 +509,10 @@ export const generateStreamingServerSegmentAPIRoute = (
|
|
|
471
509
|
const utils = require('../../../utils/workflows/server-runtime');
|
|
472
510
|
${auth.requireLine}const resolveConfig = utils.resolveConfig;
|
|
473
511
|
${workflowUtilsAliasLine('utils')}
|
|
474
|
-
${
|
|
512
|
+
${generateCartPricingPreamble(usedNodeTypes, '../../..')}${generateSentEmailLogPreamble(
|
|
513
|
+
usedNodeTypes,
|
|
514
|
+
'../../..'
|
|
515
|
+
)}${generatePaymentDriversPreamble(usesPaymentDriverNode(usedNodeTypes), '../../..')}
|
|
475
516
|
const SEGMENT_CONFIG = ${segmentConfig};
|
|
476
517
|
${auth.policyConst}
|
|
477
518
|
const nodeHandlers = {
|
|
@@ -525,11 +566,15 @@ module.exports = async function handler(req, res) {
|
|
|
525
566
|
try {
|
|
526
567
|
const body = typeof req.body === 'string' ? JSON.parse(req.body) : req.body;
|
|
527
568
|
const context = Object.assign({}, body.context || {});
|
|
569
|
+
// See the non-streaming segment route: the reply carries only what changed.
|
|
570
|
+
const __incomingSnapshot = utils.snapshotIncomingContext(body.context || {});
|
|
571
|
+
utils.claimSegmentContext(SEGMENT_CONFIG, context);
|
|
528
572
|
__wfContext = context;
|
|
529
573
|
// See the non-streaming segment route — shared queue for nested custom nodes.
|
|
530
574
|
context.__pendingNodePromises = [];${requestInjection}
|
|
531
|
-
|
|
532
|
-
|
|
575
|
+
// Where this deployment calls its own routes — never a host the request
|
|
576
|
+
// named (see trustedBaseUrl in the server runtime).
|
|
577
|
+
context.__baseUrl = utils.trustedBaseUrl(req);
|
|
533
578
|
// Credentials for this deployment's calls to its own /api/data routes —
|
|
534
579
|
// without them a protected deployment 401s itself and every data node
|
|
535
580
|
// returns no rows. See internalRequestHeaders in runtime-utils.
|
|
@@ -594,7 +639,7 @@ module.exports = async function handler(req, res) {
|
|
|
594
639
|
if (!context.__loopNodeIds) context.__loopNodeIds = {};
|
|
595
640
|
context.__loopNodeIds[node.id] = true;
|
|
596
641
|
for (var ssli = 0; ssli < ssLoopCollection.length; ssli++) {
|
|
597
|
-
context[node.id] =
|
|
642
|
+
context[node.id] = utils.loopIterationContext(ssLoopCollection, ssli);
|
|
598
643
|
for (var ssbi = 0; ssbi < ssBodyNodes.length; ssbi++) {
|
|
599
644
|
var ssbNode = ssBodyNodes[ssbi];
|
|
600
645
|
var ssbRes = resolveConfig(ssbNode.config, context);
|
|
@@ -855,11 +900,12 @@ module.exports = async function handler(req, res) {
|
|
|
855
900
|
// response body would hand the session token to any script on the page,
|
|
856
901
|
// undoing the httpOnly flag it was set with.
|
|
857
902
|
delete context.__internalHeaders;
|
|
903
|
+
const __reply = utils.segmentReply(SEGMENT_CONFIG, context, __incomingSnapshot);
|
|
858
904
|
if (streamStarted) {
|
|
859
|
-
res.write('data: ' + JSON.stringify({ type: 'done', success: true, results:
|
|
905
|
+
res.write('data: ' + JSON.stringify({ type: 'done', success: true, results: __reply }) + '\\n\\n');
|
|
860
906
|
res.end();
|
|
861
907
|
} else {
|
|
862
|
-
res.status(200).json({ success: true, results:
|
|
908
|
+
res.status(200).json({ success: true, results: __reply });
|
|
863
909
|
}
|
|
864
910
|
} catch (error) {
|
|
865
911
|
console.error('Streaming workflow segment error:', error);
|
|
@@ -905,7 +951,7 @@ const generateClientOnlyServerStub = (nodeType: string): string => {
|
|
|
905
951
|
// ACTUALLY declares instead.
|
|
906
952
|
// 2. Two DIFFERENT node types are minified independently (each in its own
|
|
907
953
|
// source file), so their real declared names can coincidentally
|
|
908
|
-
// collide — e.g. state-update-local-state and payment-
|
|
954
|
+
// collide — e.g. state-update-local-state and payment-refund can
|
|
909
955
|
// both legitimately mangle down to the same short name. Declared as
|
|
910
956
|
// bare siblings in one shared scope, the second declaration would
|
|
911
957
|
// silently shadow the first, so BOTH map entries end up pointing at the
|
|
@@ -1010,6 +1056,8 @@ const CLIENT_ONLY_NODES = new Set([
|
|
|
1010
1056
|
'browser-write-clipboard',
|
|
1011
1057
|
'browser-show-notification',
|
|
1012
1058
|
'browser-subscribe-to-push',
|
|
1059
|
+
'browser-unsubscribe-from-push',
|
|
1060
|
+
'browser-get-push-subscription',
|
|
1013
1061
|
'browser-share',
|
|
1014
1062
|
'browser-get-device-info',
|
|
1015
1063
|
'browser-get-network-status',
|
|
@@ -1068,7 +1116,11 @@ export const generateCronAPIRoute = (
|
|
|
1068
1116
|
|
|
1069
1117
|
// Cron routes live at pages/api/workflows/<file>.js → three levels up to root.
|
|
1070
1118
|
const customNodesImport = useCustomNodes
|
|
1071
|
-
? `var __customNodes;\ntry { __customNodes = require('../../../utils/workflows/custom-nodes'); } catch (_e) { __customNodes = {}; }\n
|
|
1119
|
+
? `var __customNodes;\ntry { __customNodes = require('../../../utils/workflows/custom-nodes'); } catch (_e) { __customNodes = {}; }\n${adminCustomNodesRequireLine(
|
|
1120
|
+
serverNodes,
|
|
1121
|
+
customNodes,
|
|
1122
|
+
'../../..'
|
|
1123
|
+
)}`
|
|
1072
1124
|
: ''
|
|
1073
1125
|
|
|
1074
1126
|
// Reuse the shared execution loop (the same one webhook routes use) so cron
|
|
@@ -1088,7 +1140,15 @@ export const generateCronAPIRoute = (
|
|
|
1088
1140
|
const utils = require('../../../utils/workflows/server-runtime');
|
|
1089
1141
|
const resolveConfig = utils.resolveConfig;
|
|
1090
1142
|
${workflowUtilsAliasLine('utils')}
|
|
1091
|
-
${customNodesImport}${
|
|
1143
|
+
${customNodesImport}${generateCartPricingPreamble(
|
|
1144
|
+
allNodeTypes,
|
|
1145
|
+
'../../..'
|
|
1146
|
+
)}${generateSentEmailLogPreamble(allNodeTypes, '../../..')}${generatePaymentDriversPreamble(
|
|
1147
|
+
usesPaymentDriverNode(allNodeTypes),
|
|
1148
|
+
'../../..'
|
|
1149
|
+
)}
|
|
1150
|
+
${generateCronRequestVerificationCode()}
|
|
1151
|
+
|
|
1092
1152
|
const WORKFLOW_CONFIG = ${workflowConfig};
|
|
1093
1153
|
|
|
1094
1154
|
const nodeHandlers = {
|
|
@@ -1100,6 +1160,10 @@ module.exports = async function handler(req, res) {
|
|
|
1100
1160
|
res.status(405).json({ error: 'Method not allowed' });
|
|
1101
1161
|
return;
|
|
1102
1162
|
}
|
|
1163
|
+
if (!verifyCronRequest(req)) {
|
|
1164
|
+
res.status(401).json({ error: 'Unauthorized' });
|
|
1165
|
+
return;
|
|
1166
|
+
}
|
|
1103
1167
|
// Kept outside the try so the catch below can still drain any fire-and-forget
|
|
1104
1168
|
// work this run started before it failed.
|
|
1105
1169
|
var __wfContext = null;
|
|
@@ -1112,6 +1176,15 @@ module.exports = async function handler(req, res) {
|
|
|
1112
1176
|
// Shared fire-and-forget queue (see the segment routes) — drained by the
|
|
1113
1177
|
// execution loop before this route responds.
|
|
1114
1178
|
context.__pendingNodePromises = [];
|
|
1179
|
+
// The store's origin, as crons-worker requested it — custom scripts read
|
|
1180
|
+
// it as \`runtime.baseUrl\` instead of touching the environment themselves.
|
|
1181
|
+
// Where this deployment calls its own routes — never a host the request
|
|
1182
|
+
// named (see trustedBaseUrl in the server runtime).
|
|
1183
|
+
context.__baseUrl = utils.trustedBaseUrl(req);
|
|
1184
|
+
// Credentials for this deployment's calls to its own /api/data routes —
|
|
1185
|
+
// without them a protected deployment 401s itself and every data node
|
|
1186
|
+
// returns no rows. See internalRequestHeaders in runtime-utils.
|
|
1187
|
+
context.__internalHeaders = utils.internalRequestHeaders(req);
|
|
1115
1188
|
context[WORKFLOW_CONFIG.triggerNodeId] = triggerContext;${requestInjection}
|
|
1116
1189
|
|
|
1117
1190
|
${executionLoop}
|
|
@@ -1150,7 +1223,12 @@ export const getAPIRouteFileName = (
|
|
|
1150
1223
|
// producing an empty detail panel because the merged context never
|
|
1151
1224
|
// contains the expected node id.
|
|
1152
1225
|
const idSuffix = sanitizeFileName(workflowId).toLowerCase().slice(0, 8)
|
|
1153
|
-
|
|
1226
|
+
// The segment id is short (`server-N`) and must stay whole: an 8-char cap
|
|
1227
|
+
// spelled `server-10`, `server-11` and `server-12` as `server-1`, so a
|
|
1228
|
+
// workflow with ten or more server segments wrote its last segment over
|
|
1229
|
+
// its first and the client's URL map sent the first call to the wrong
|
|
1230
|
+
// route — a checkout that charged the buyer before validating the cart.
|
|
1231
|
+
return `${safeName}-${idSuffix}-seg-${sanitizeFileName(segmentId)}`
|
|
1154
1232
|
}
|
|
1155
1233
|
return `wf-${sanitizeFileName(workflowId)}-${sanitizeFileName(segmentId)}`
|
|
1156
1234
|
}
|
|
@@ -1189,6 +1267,16 @@ const generateNodeExecutionLoop = (
|
|
|
1189
1267
|
continue;
|
|
1190
1268
|
}`
|
|
1191
1269
|
: ''
|
|
1270
|
+
// A custom node inside a loop body runs once per item, exactly as a
|
|
1271
|
+
// top-level one does: its handler only hands back the marker.
|
|
1272
|
+
const loopBodyCustomNodeBlock = options?.hasCustomNodes
|
|
1273
|
+
? `
|
|
1274
|
+
if (bResult && bResult.__customNode) {
|
|
1275
|
+
var bcnFn = typeof __customNodes !== 'undefined' ? __customNodes[bResult.customNodeId] : null;
|
|
1276
|
+
context[bNode.id] = bcnFn ? await bcnFn(context, bResult.parameters, nodeHandlers) : null;
|
|
1277
|
+
continue;
|
|
1278
|
+
}`
|
|
1279
|
+
: ''
|
|
1192
1280
|
|
|
1193
1281
|
return ` var sortedNodes = ${configVar}.nodes.slice().sort(function(a, b) { return a.stepNumber - b.stepNumber; });
|
|
1194
1282
|
|
|
@@ -1265,7 +1353,7 @@ const generateNodeExecutionLoop = (
|
|
|
1265
1353
|
context.__loopNodeIds[node.id] = true;
|
|
1266
1354
|
|
|
1267
1355
|
for (var li = 0; li < collection.length; li++) {
|
|
1268
|
-
context[node.id] =
|
|
1356
|
+
context[node.id] = utils.loopIterationContext(collection, li);
|
|
1269
1357
|
for (var bi = 0; bi < bodyNodes.length; bi++) {
|
|
1270
1358
|
var bNode = bodyNodes[bi];
|
|
1271
1359
|
var bResolved = resolveConfig(bNode.config, context);
|
|
@@ -1281,7 +1369,7 @@ const generateNodeExecutionLoop = (
|
|
|
1281
1369
|
context[bNode.id] = null;
|
|
1282
1370
|
continue;
|
|
1283
1371
|
}
|
|
1284
|
-
var bResult = await bHandler(bResolved, context)
|
|
1372
|
+
var bResult = await bHandler(bResolved, context);${loopBodyCustomNodeBlock}
|
|
1285
1373
|
if (bResult && (bResult.success === false || (typeof bResult.error === 'string' && bResult.error))) {
|
|
1286
1374
|
throw new Error(bResult.error || 'Loop body node execution failed');
|
|
1287
1375
|
}
|
|
@@ -1517,12 +1605,27 @@ export const generateWebhookWorkflowAPIRoute = (
|
|
|
1517
1605
|
),
|
|
1518
1606
|
}
|
|
1519
1607
|
|
|
1608
|
+
// A payment webhook ALWAYS verifies, through the store's driver for its
|
|
1609
|
+
// provider, whatever an older stored trigger said (see
|
|
1610
|
+
// readWebhookPaymentProvider): unverified, it would mark orders paid on
|
|
1611
|
+
// any request.
|
|
1612
|
+
// A trigger set to verify through a payment driver is a payment webhook
|
|
1613
|
+
// even when no known provider can be read from it: it still verifies, and
|
|
1614
|
+
// with no driver to verify through it refuses every request.
|
|
1615
|
+
const paymentProvider = readWebhookPaymentProvider(webhookConfig)
|
|
1616
|
+
const isPaymentWebhook = isPaymentWebhookConfig(webhookConfig)
|
|
1617
|
+
if (isPaymentWebhook) {
|
|
1618
|
+
normalisedWebhookConfig.verifySignature = true
|
|
1619
|
+
normalisedWebhookConfig.signatureAlgorithm = 'payment-driver'
|
|
1620
|
+
normalisedWebhookConfig.paymentProvider = paymentProvider || ''
|
|
1621
|
+
}
|
|
1520
1622
|
const webhookConfigJson = JSON.stringify(normalisedWebhookConfig, null, 2)
|
|
1521
|
-
const
|
|
1522
|
-
|
|
1623
|
+
const signatureVerificationCode = isPaymentWebhook
|
|
1624
|
+
? generatePaymentWebhookVerificationCode()
|
|
1625
|
+
: normalisedWebhookConfig.verifySignature
|
|
1523
1626
|
? generateAllSignatureVerificationCode()
|
|
1524
1627
|
: ''
|
|
1525
|
-
const
|
|
1628
|
+
const webhookBodyCode = generateWebhookBodyCode()
|
|
1526
1629
|
|
|
1527
1630
|
const errorHandlerNodes = workflow.errorHandler ? getErrorHandlerNodes(workflow) : null
|
|
1528
1631
|
const errorHandlerNodesJson = errorHandlerNodes
|
|
@@ -1531,10 +1634,15 @@ export const generateWebhookWorkflowAPIRoute = (
|
|
|
1531
1634
|
|
|
1532
1635
|
const routePath = getWebhookRoutePath(workflow)
|
|
1533
1636
|
const relativePrefix = routePath.map(() => '..').join('/')
|
|
1637
|
+
const deliveryLease = generateWebhookDeliveryLeaseBlocks(isPaymentWebhook, relativePrefix)
|
|
1534
1638
|
|
|
1535
1639
|
const customNodesImport =
|
|
1536
1640
|
hasCustomNodeUsage && hasCustomNodeDefs
|
|
1537
|
-
? `var __customNodes;\ntry { __customNodes = require('${relativePrefix}/utils/workflows/custom-nodes'); } catch (_e) { __customNodes = {}; }\n
|
|
1641
|
+
? `var __customNodes;\ntry { __customNodes = require('${relativePrefix}/utils/workflows/custom-nodes'); } catch (_e) { __customNodes = {}; }\n${adminCustomNodesRequireLine(
|
|
1642
|
+
serverNodes,
|
|
1643
|
+
customNodes,
|
|
1644
|
+
relativePrefix
|
|
1645
|
+
)}`
|
|
1538
1646
|
: ''
|
|
1539
1647
|
|
|
1540
1648
|
const requestInjection = hasRateLimiter
|
|
@@ -1558,8 +1666,14 @@ if (typeof globalThis.fetch === 'undefined') {
|
|
|
1558
1666
|
const utils = require('${relativePrefix}/utils/workflows/server-runtime');
|
|
1559
1667
|
const resolveConfig = utils.resolveConfig;
|
|
1560
1668
|
${workflowUtilsAliasLine('utils')}
|
|
1561
|
-
${customNodesImport}${
|
|
1562
|
-
|
|
1669
|
+
${customNodesImport}${generateCartPricingPreamble(
|
|
1670
|
+
allNodeTypes,
|
|
1671
|
+
relativePrefix
|
|
1672
|
+
)}${generateSentEmailLogPreamble(allNodeTypes, relativePrefix)}${generatePaymentDriversPreamble(
|
|
1673
|
+
usesPaymentDriverNode(allNodeTypes) || isPaymentWebhook,
|
|
1674
|
+
relativePrefix
|
|
1675
|
+
)}${deliveryLease.preamble}
|
|
1676
|
+
${webhookBodyCode}
|
|
1563
1677
|
|
|
1564
1678
|
${signatureVerificationCode}
|
|
1565
1679
|
|
|
@@ -1580,14 +1694,13 @@ module.exports = async function handler(req, res) {
|
|
|
1580
1694
|
}
|
|
1581
1695
|
|
|
1582
1696
|
${generateExpectedHeadersCheck(webhookConfig)}
|
|
1583
|
-
|
|
1697
|
+
${deliveryLease.declare}
|
|
1584
1698
|
try {
|
|
1585
1699
|
var rawBody = await getRawBody(req);
|
|
1586
|
-
var body;
|
|
1587
|
-
try { body = JSON.parse(rawBody.toString('utf-8')); } catch (_e) { body = {}; }
|
|
1700
|
+
var body = parseWebhookBody(req, rawBody);
|
|
1588
1701
|
|
|
1589
1702
|
var isSignatureValid = true;
|
|
1590
|
-
${generateSignatureVerificationBlock(
|
|
1703
|
+
${generateSignatureVerificationBlock(normalisedWebhookConfig)}${deliveryLease.claim}
|
|
1591
1704
|
|
|
1592
1705
|
var triggerContext = {
|
|
1593
1706
|
headers: req.headers,
|
|
@@ -1603,15 +1716,16 @@ ${generateSignatureVerificationBlock(webhookConfig)}
|
|
|
1603
1716
|
// execution loop before this route responds.
|
|
1604
1717
|
context.__pendingNodePromises = [];
|
|
1605
1718
|
context[WORKFLOW_CONFIG.triggerNodeId] = triggerContext;
|
|
1606
|
-
|
|
1607
|
-
|
|
1719
|
+
// Where this deployment calls its own routes — never a host the request
|
|
1720
|
+
// named (see trustedBaseUrl in the server runtime).
|
|
1721
|
+
context.__baseUrl = utils.trustedBaseUrl(req);
|
|
1608
1722
|
// Credentials for this deployment's calls to its own /api/data routes —
|
|
1609
1723
|
// without them a protected deployment 401s itself and every data node
|
|
1610
1724
|
// returns no rows. See internalRequestHeaders in runtime-utils.
|
|
1611
1725
|
context.__internalHeaders = utils.internalRequestHeaders(req);${requestInjection}
|
|
1612
1726
|
|
|
1613
1727
|
${executionLoop}
|
|
1614
|
-
|
|
1728
|
+
${deliveryLease.release}
|
|
1615
1729
|
res.status(200).json({ received: true });
|
|
1616
1730
|
} catch (error) {
|
|
1617
1731
|
console.error('Webhook workflow error:', error);
|
|
@@ -1646,7 +1760,9 @@ ${executionLoop}
|
|
|
1646
1760
|
}
|
|
1647
1761
|
// Land whatever the main run started (an email's ledger row, a
|
|
1648
1762
|
// fire-and-forget write) before replying — see the segment routes.
|
|
1649
|
-
if (typeof context !== 'undefined' && context) { await utils.settlePendingNodePromises(context); }
|
|
1763
|
+
if (typeof context !== 'undefined' && context) { await utils.settlePendingNodePromises(context); }${
|
|
1764
|
+
deliveryLease.release
|
|
1765
|
+
}
|
|
1650
1766
|
res.status(500).json({ error: 'Webhook processing failed' });
|
|
1651
1767
|
}
|
|
1652
1768
|
};
|
|
@@ -1674,6 +1790,27 @@ export const getWebhookRouteFileName = (workflow: UIDLWorkflow): string => {
|
|
|
1674
1790
|
return `webhook-${sanitizeFileName(workflow.id)}`
|
|
1675
1791
|
}
|
|
1676
1792
|
|
|
1793
|
+
/**
|
|
1794
|
+
* The address the store serves a provider's payment webhook at
|
|
1795
|
+
* (`/api/webhooks/paypal-payment`), or null when no workflow receives it.
|
|
1796
|
+
*/
|
|
1797
|
+
export const findPaymentWebhookRouteUrl = (
|
|
1798
|
+
workflows: UIDLWorkflows | undefined,
|
|
1799
|
+
providerId: string
|
|
1800
|
+
): string | null => {
|
|
1801
|
+
for (const workflow of Object.values(workflows?.workflows || {})) {
|
|
1802
|
+
if (
|
|
1803
|
+
workflow?.trigger?.type === 'event-webhook-received' &&
|
|
1804
|
+
workflow.webhookConfig &&
|
|
1805
|
+
readWebhookPaymentProvider(workflow.webhookConfig) === providerId
|
|
1806
|
+
) {
|
|
1807
|
+
const directory = getWebhookRoutePath(workflow).slice(1)
|
|
1808
|
+
return `/${[...directory, getWebhookRouteFileName(workflow)].join('/')}`
|
|
1809
|
+
}
|
|
1810
|
+
}
|
|
1811
|
+
return null
|
|
1812
|
+
}
|
|
1813
|
+
|
|
1677
1814
|
export const getWebhookRoutePath = (workflow: UIDLWorkflow): string[] => {
|
|
1678
1815
|
const DEFAULT_PATH = ['pages', 'api', 'webhooks']
|
|
1679
1816
|
const webhookConfig = workflow.webhookConfig
|
|
@@ -1757,10 +1894,60 @@ function generateExpectedHeadersCheck(webhookConfig: UIDLWebhookConfig): string
|
|
|
1757
1894
|
return checks.join('\n')
|
|
1758
1895
|
}
|
|
1759
1896
|
|
|
1897
|
+
/**
|
|
1898
|
+
* The payment webhook route's delivery lease (see webhook-delivery-lease):
|
|
1899
|
+
* the verified delivery claims its body, a twin that arrives while it runs is
|
|
1900
|
+
* told to come back (503 + Retry-After), and the claim is released before the
|
|
1901
|
+
* route replies. Every block is empty on any other webhook, which keeps those
|
|
1902
|
+
* routes byte-identical.
|
|
1903
|
+
*/
|
|
1904
|
+
function generateWebhookDeliveryLeaseBlocks(
|
|
1905
|
+
isPaymentWebhook: boolean,
|
|
1906
|
+
relativePrefix: string
|
|
1907
|
+
): { preamble: string; declare: string; claim: string; release: string } {
|
|
1908
|
+
if (!isPaymentWebhook) {
|
|
1909
|
+
return { preamble: '', declare: '', claim: '', release: '' }
|
|
1910
|
+
}
|
|
1911
|
+
return {
|
|
1912
|
+
preamble: `
|
|
1913
|
+
var __webhookDeliveryLease = null;
|
|
1914
|
+
try { __webhookDeliveryLease = require('${relativePrefix}/${WEBHOOK_DELIVERY_LEASE_PATH.join(
|
|
1915
|
+
'/'
|
|
1916
|
+
)}/${WEBHOOK_DELIVERY_LEASE_FILE_NAME}'); } catch (_e) { __webhookDeliveryLease = null; }`,
|
|
1917
|
+
declare: ` // Released before every reply below, so a twin delivery is never turned away for long.
|
|
1918
|
+
var __delivery = null;
|
|
1919
|
+
`,
|
|
1920
|
+
claim: `
|
|
1921
|
+
// One run per delivery at a time: a provider re-delivers what it did not
|
|
1922
|
+
// see answered in time, and two runs side by side can both pass a check.
|
|
1923
|
+
__delivery = __webhookDeliveryLease
|
|
1924
|
+
? await __webhookDeliveryLease.claimWebhookDelivery(WEBHOOK_CONFIG.urlPath, rawBody, body)
|
|
1925
|
+
: null;
|
|
1926
|
+
if (__delivery && !__delivery.claimed) {
|
|
1927
|
+
__delivery = null;
|
|
1928
|
+
res.setHeader('Retry-After', '${WEBHOOK_DELIVERY_RETRY_AFTER_SECONDS}');
|
|
1929
|
+
res.status(503).json({ error: 'This delivery is already being processed' });
|
|
1930
|
+
return;
|
|
1931
|
+
}`,
|
|
1932
|
+
release: `
|
|
1933
|
+
if (__delivery) { await __delivery.release(); __delivery = null; }`,
|
|
1934
|
+
}
|
|
1935
|
+
}
|
|
1936
|
+
|
|
1760
1937
|
function generateSignatureVerificationBlock(webhookConfig: UIDLWebhookConfig): string {
|
|
1761
1938
|
if (!webhookConfig.verifySignature) {
|
|
1762
1939
|
return ''
|
|
1763
1940
|
}
|
|
1941
|
+
if (webhookConfig.signatureAlgorithm === 'payment-driver') {
|
|
1942
|
+
// A provider outage asks the provider to deliver again (503); anything
|
|
1943
|
+
// else is a refusal it should not retry.
|
|
1944
|
+
return ` var paymentVerification = await verifyPaymentWebhook(req, rawBody, body, WEBHOOK_CONFIG);
|
|
1945
|
+
if (!paymentVerification.ok) {
|
|
1946
|
+
res.status(paymentVerification.retry ? 503 : 401).json({ error: paymentVerification.retry ? 'The payment could not be verified yet' : 'Invalid signature' });
|
|
1947
|
+
return;
|
|
1948
|
+
}
|
|
1949
|
+
body = paymentVerification.body;`
|
|
1950
|
+
}
|
|
1764
1951
|
return ` isSignatureValid = await verifyWebhookSignature(req, rawBody, WEBHOOK_CONFIG);
|
|
1765
1952
|
if (!isSignatureValid) {
|
|
1766
1953
|
res.status(401).json({ error: 'Invalid signature' });
|