@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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webhook-generator.js","sourceRoot":"","sources":["../../src/webhook-generator.ts"],"names":[],"mappings":";;;AAAA,+DAKmC;
|
|
1
|
+
{"version":3,"file":"webhook-generator.js","sourceRoot":"","sources":["../../src/webhook-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,23 @@
|
|
|
1
|
-
|
|
1
|
+
/** The raw request body, and the object it stands for (JSON or form-encoded). */
|
|
2
|
+
export declare const generateWebhookBodyCode: () => string;
|
|
2
3
|
export declare const generateStripeSignatureVerificationCode: () => string;
|
|
3
4
|
export declare const generatePaypalSignatureVerificationCode: () => string;
|
|
4
5
|
export declare const generateHmacSignatureVerificationCode: (algorithm?: 'sha256' | 'sha1') => string;
|
|
5
6
|
export declare const generateSignatureDispatcherCode: () => string;
|
|
7
|
+
/**
|
|
8
|
+
* A PAYMENT webhook is verified by the store's driver for its provider (see
|
|
9
|
+
* `src/payments`): a signature, or the event read back from the provider
|
|
10
|
+
* with the store's own key. The answer carries the AUTHORITATIVE body — the
|
|
11
|
+
* copy the provider gave back, where there is one — and whether the provider
|
|
12
|
+
* should try again (an outage) rather than drop the delivery.
|
|
13
|
+
*
|
|
14
|
+
* The store's own server may also ask the route to SETTLE a payment it just
|
|
15
|
+
* confirmed with the provider (a PayPal buyer's return): a body naming
|
|
16
|
+
* `teleportReconcile`, accepted only with the runtime's internal-call token.
|
|
17
|
+
* The driver reads the payment from the provider and answers the event the
|
|
18
|
+
* provider sends for it; nothing but the provider's id is taken from the
|
|
19
|
+
* request, and any other caller is refused outright.
|
|
20
|
+
*/
|
|
21
|
+
export declare const generatePaymentWebhookVerificationCode: () => string;
|
|
6
22
|
export declare const generateAllSignatureVerificationCode: () => string;
|
|
7
23
|
//# sourceMappingURL=webhook-signature-verification.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webhook-signature-verification.d.ts","sourceRoot":"","sources":["../../src/webhook-signature-verification.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"webhook-signature-verification.d.ts","sourceRoot":"","sources":["../../src/webhook-signature-verification.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,eAAO,MAAM,uBAAuB,QAAO,MAqC1C,CAAA;AAED,eAAO,MAAM,uCAAuC,QAAO,MA4C1D,CAAA;AASD,eAAO,MAAM,uCAAuC,QAAO,MAgF1D,CAAA;AAED,eAAO,MAAM,qCAAqC,eACrC,QAAQ,GAAG,MAAM,KAC3B,MA2BF,CAAA;AAOD,eAAO,MAAM,+BAA+B,QAAO,MAuClD,CAAA;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,sCAAsC,QAAO,MA2DzD,CAAA;AAED,eAAO,MAAM,oCAAoC,QAAO,MAQvD,CAAA"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.generateAllSignatureVerificationCode = exports.generateSignatureDispatcherCode = exports.generateHmacSignatureVerificationCode = exports.generatePaypalSignatureVerificationCode = exports.generateStripeSignatureVerificationCode = exports.
|
|
4
|
-
|
|
3
|
+
exports.generateAllSignatureVerificationCode = exports.generatePaymentWebhookVerificationCode = exports.generateSignatureDispatcherCode = exports.generateHmacSignatureVerificationCode = exports.generatePaypalSignatureVerificationCode = exports.generateStripeSignatureVerificationCode = exports.generateWebhookBodyCode = void 0;
|
|
4
|
+
/** The raw request body, and the object it stands for (JSON or form-encoded). */
|
|
5
|
+
const generateWebhookBodyCode = () => {
|
|
5
6
|
return `
|
|
6
7
|
function getRawBody(req) {
|
|
7
8
|
return new Promise(function(resolve, reject) {
|
|
@@ -14,9 +15,32 @@ function getRawBody(req) {
|
|
|
14
15
|
req.on('end', function() { resolve(Buffer.concat(chunks)); });
|
|
15
16
|
req.on('error', function(err) { reject(err); });
|
|
16
17
|
});
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// Some providers (Mollie, CoinGate) post \`application/x-www-form-urlencoded\`.
|
|
21
|
+
function parseWebhookBody(req, rawBody) {
|
|
22
|
+
var text = rawBody.toString('utf-8');
|
|
23
|
+
var contentType = String(req.headers['content-type'] || '').toLowerCase();
|
|
24
|
+
if (contentType.indexOf('application/x-www-form-urlencoded') === -1) {
|
|
25
|
+
try { return JSON.parse(text); } catch (_e) { return {}; }
|
|
26
|
+
}
|
|
27
|
+
var result = {};
|
|
28
|
+
var pairs = text ? text.split('&') : [];
|
|
29
|
+
for (var i = 0; i < pairs.length; i++) {
|
|
30
|
+
if (!pairs[i]) continue;
|
|
31
|
+
var eq = pairs[i].indexOf('=');
|
|
32
|
+
var key = eq >= 0 ? pairs[i].slice(0, eq) : pairs[i];
|
|
33
|
+
var value = eq >= 0 ? pairs[i].slice(eq + 1) : '';
|
|
34
|
+
try {
|
|
35
|
+
result[decodeURIComponent(key.replace(/\\+/g, ' '))] = decodeURIComponent(value.replace(/\\+/g, ' '));
|
|
36
|
+
} catch (_e) {
|
|
37
|
+
result[key] = value;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return result;
|
|
17
41
|
}`;
|
|
18
42
|
};
|
|
19
|
-
exports.
|
|
43
|
+
exports.generateWebhookBodyCode = generateWebhookBodyCode;
|
|
20
44
|
const generateStripeSignatureVerificationCode = () => {
|
|
21
45
|
return `
|
|
22
46
|
function verifyStripeSignature(rawBody, sigHeader, secret) {
|
|
@@ -63,16 +87,47 @@ function verifyStripeSignature(rawBody, sigHeader, secret) {
|
|
|
63
87
|
}`;
|
|
64
88
|
};
|
|
65
89
|
exports.generateStripeSignatureVerificationCode = generateStripeSignatureVerificationCode;
|
|
90
|
+
// The credentials are read through the same fallback chain the payment nodes
|
|
91
|
+
// use: the canonical name the deploy writes, then the CONFIGURATION_* name the
|
|
92
|
+
// provider panel stores locally (a standalone run has only that one). The
|
|
93
|
+
// environment to verify against is the one that signed the event — PayPal
|
|
94
|
+
// names it in the cert URL. Both environments issue client ids starting with
|
|
95
|
+
// "A", so the id says nothing; the earlier "sb-" prefix check sent every
|
|
96
|
+
// sandbox verification to the live API, which rejected it.
|
|
66
97
|
const generatePaypalSignatureVerificationCode = () => {
|
|
67
98
|
return `
|
|
99
|
+
function resolvePaypalEnv(candidates, prefix) {
|
|
100
|
+
var env = process.env;
|
|
101
|
+
for (var i = 0; i < candidates.length; i++) {
|
|
102
|
+
var value = candidates[i] ? env[candidates[i]] : '';
|
|
103
|
+
if (value && String(value).length > 0) return String(value);
|
|
104
|
+
}
|
|
105
|
+
var keys = Object.keys(env);
|
|
106
|
+
for (var k = 0; k < keys.length; k++) {
|
|
107
|
+
if (keys[k].indexOf(prefix) === 0 && env[keys[k]] && String(env[keys[k]]).length > 0) {
|
|
108
|
+
return String(env[keys[k]]);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
return '';
|
|
112
|
+
}
|
|
113
|
+
|
|
68
114
|
async function verifyPaypalSignature(req, rawBody, webhookConfig) {
|
|
69
115
|
try {
|
|
70
|
-
var clientId =
|
|
71
|
-
var clientSecret =
|
|
72
|
-
|
|
116
|
+
var clientId = resolvePaypalEnv(['PAYPAL_CLIENT_ID', 'CONFIGURATION_PAYPAL_CLIENT_ID'], 'CONFIGURATION_PAYPAL_CLIENT_ID');
|
|
117
|
+
var clientSecret = resolvePaypalEnv(['PAYPAL_CLIENT_SECRET', 'CONFIGURATION_PAYPAL_CLIENT_SECRET'], 'CONFIGURATION_PAYPAL_CLIENT_SECRET');
|
|
118
|
+
var webhookId = resolvePaypalEnv([webhookConfig.signatureSecret || '', 'PAYPAL_WEBHOOK_ID', 'CONFIGURATION_PAYPAL_WEBHOOK_ID'], 'CONFIGURATION_PAYPAL_WEBHOOK_ID');
|
|
119
|
+
if (!clientId || !clientSecret) {
|
|
120
|
+
console.error('PayPal webhook rejected: PAYPAL_CLIENT_ID / PAYPAL_CLIENT_SECRET are not configured');
|
|
121
|
+
return false;
|
|
122
|
+
}
|
|
123
|
+
if (!webhookId) {
|
|
124
|
+
console.error('PayPal webhook rejected: the webhook id (PAYPAL_WEBHOOK_ID) is not configured');
|
|
125
|
+
return false;
|
|
126
|
+
}
|
|
73
127
|
|
|
74
|
-
var
|
|
75
|
-
var
|
|
128
|
+
var certUrl = String(req.headers['paypal-cert-url'] || '');
|
|
129
|
+
var isSandbox = certUrl.indexOf('sandbox.paypal.com') !== -1;
|
|
130
|
+
var baseUrl = isSandbox ? 'https://api-m.sandbox.paypal.com' : 'https://api-m.paypal.com';
|
|
76
131
|
|
|
77
132
|
var authResponse = await fetch(baseUrl + '/v1/oauth2/token', {
|
|
78
133
|
method: 'POST',
|
|
@@ -83,29 +138,39 @@ async function verifyPaypalSignature(req, rawBody, webhookConfig) {
|
|
|
83
138
|
body: 'grant_type=client_credentials',
|
|
84
139
|
});
|
|
85
140
|
var authData = await authResponse.json();
|
|
86
|
-
if (!authData.access_token)
|
|
87
|
-
|
|
88
|
-
|
|
141
|
+
if (!authData.access_token) {
|
|
142
|
+
console.error('PayPal webhook rejected: authentication against ' + baseUrl + ' failed — ' + (authData.error_description || authData.error || 'no token'));
|
|
143
|
+
return false;
|
|
144
|
+
}
|
|
89
145
|
|
|
146
|
+
// PayPal checks the signature over the event EXACTLY as it was sent, so
|
|
147
|
+
// the raw text is spliced in by position before the closing brace: parsed
|
|
148
|
+
// and serialised again, a number or a character escape can come back
|
|
149
|
+
// spelled differently and the signature no longer matches.
|
|
150
|
+
var fields = JSON.stringify({
|
|
151
|
+
auth_algo: req.headers['paypal-auth-algo'] || '',
|
|
152
|
+
cert_url: req.headers['paypal-cert-url'] || '',
|
|
153
|
+
transmission_id: req.headers['paypal-transmission-id'] || '',
|
|
154
|
+
transmission_sig: req.headers['paypal-transmission-sig'] || '',
|
|
155
|
+
transmission_time: req.headers['paypal-transmission-time'] || '',
|
|
156
|
+
webhook_id: webhookId,
|
|
157
|
+
});
|
|
90
158
|
var verifyResponse = await fetch(baseUrl + '/v1/notifications/verify-webhook-signature', {
|
|
91
159
|
method: 'POST',
|
|
92
160
|
headers: {
|
|
93
161
|
'Authorization': 'Bearer ' + authData.access_token,
|
|
94
162
|
'Content-Type': 'application/json',
|
|
95
163
|
},
|
|
96
|
-
body:
|
|
97
|
-
auth_algo: req.headers['paypal-auth-algo'] || '',
|
|
98
|
-
cert_url: req.headers['paypal-cert-url'] || '',
|
|
99
|
-
transmission_id: req.headers['paypal-transmission-id'] || '',
|
|
100
|
-
transmission_sig: req.headers['paypal-transmission-sig'] || '',
|
|
101
|
-
transmission_time: req.headers['paypal-transmission-time'] || '',
|
|
102
|
-
webhook_id: webhookId,
|
|
103
|
-
webhook_event: JSON.parse(rawBody.toString('utf-8')),
|
|
104
|
-
}),
|
|
164
|
+
body: fields.slice(0, -1) + ',"webhook_event":' + rawBody.toString('utf-8') + '}',
|
|
105
165
|
});
|
|
106
166
|
var verifyData = await verifyResponse.json();
|
|
107
|
-
|
|
108
|
-
|
|
167
|
+
var ok = verifyData.verification_status === 'SUCCESS';
|
|
168
|
+
if (!ok) {
|
|
169
|
+
console.error('PayPal webhook rejected by ' + baseUrl + ': verification_status=' + (verifyData.verification_status || '(missing)') + ', name=' + (verifyData.name || '(none)') + ', message=' + (verifyData.message || '(none)'));
|
|
170
|
+
}
|
|
171
|
+
return ok;
|
|
172
|
+
} catch (e) {
|
|
173
|
+
console.error('PayPal webhook verification failed:', e && e.message);
|
|
109
174
|
return false;
|
|
110
175
|
}
|
|
111
176
|
}`;
|
|
@@ -138,23 +203,37 @@ function verifyHmac${algorithm === 'sha1' ? 'Sha1' : ''}Signature(rawBody, signa
|
|
|
138
203
|
}`;
|
|
139
204
|
};
|
|
140
205
|
exports.generateHmacSignatureVerificationCode = generateHmacSignatureVerificationCode;
|
|
206
|
+
// Fails CLOSED: a scheme it does not know, or a shared-secret scheme whose
|
|
207
|
+
// secret is not configured, is a refusal — an HMAC keyed with an empty string
|
|
208
|
+
// is one anybody can compute. `custom` is the author verifying the request in
|
|
209
|
+
// the workflow itself (headers and body are on the trigger context); payment
|
|
210
|
+
// webhooks never use it (see `generatePaymentWebhookVerificationCode`).
|
|
141
211
|
const generateSignatureDispatcherCode = () => {
|
|
142
212
|
return `
|
|
143
213
|
async function verifyWebhookSignature(req, rawBody, webhookConfig) {
|
|
144
214
|
var algorithm = webhookConfig.signatureAlgorithm || 'hmac-sha256';
|
|
145
215
|
var sigHeader = webhookConfig.signatureHeader || '';
|
|
146
216
|
var sigSecret = webhookConfig.signatureSecret || '';
|
|
147
|
-
var secret = process.env[sigSecret] || '';
|
|
217
|
+
var secret = sigSecret ? process.env[sigSecret] || '' : '';
|
|
148
218
|
|
|
149
|
-
if (algorithm === '
|
|
150
|
-
|
|
151
|
-
return verifyStripeSignature(rawBody, sig, secret);
|
|
219
|
+
if (algorithm === 'custom') {
|
|
220
|
+
return true;
|
|
152
221
|
}
|
|
153
222
|
|
|
154
223
|
if (algorithm === 'paypal-v1') {
|
|
155
224
|
return await verifyPaypalSignature(req, rawBody, webhookConfig);
|
|
156
225
|
}
|
|
157
226
|
|
|
227
|
+
if (!secret) {
|
|
228
|
+
console.error('Webhook rejected: the signing secret (' + (sigSecret || 'none named') + ') is not configured.');
|
|
229
|
+
return false;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
if (algorithm === 'stripe-v1') {
|
|
233
|
+
var sig = req.headers[sigHeader || 'stripe-signature'] || '';
|
|
234
|
+
return verifyStripeSignature(rawBody, sig, secret);
|
|
235
|
+
}
|
|
236
|
+
|
|
158
237
|
if (algorithm === 'hmac-sha256') {
|
|
159
238
|
var hmacSig = req.headers[(sigHeader || '').toLowerCase()] || '';
|
|
160
239
|
return verifyHmacSignature(rawBody, hmacSig, secret);
|
|
@@ -165,10 +244,86 @@ async function verifyWebhookSignature(req, rawBody, webhookConfig) {
|
|
|
165
244
|
return verifyHmacSha1Signature(rawBody, hmacSha1Sig, secret);
|
|
166
245
|
}
|
|
167
246
|
|
|
168
|
-
|
|
247
|
+
console.error('Webhook rejected: unknown signature algorithm "' + algorithm + '".');
|
|
248
|
+
return false;
|
|
169
249
|
}`;
|
|
170
250
|
};
|
|
171
251
|
exports.generateSignatureDispatcherCode = generateSignatureDispatcherCode;
|
|
252
|
+
/**
|
|
253
|
+
* A PAYMENT webhook is verified by the store's driver for its provider (see
|
|
254
|
+
* `src/payments`): a signature, or the event read back from the provider
|
|
255
|
+
* with the store's own key. The answer carries the AUTHORITATIVE body — the
|
|
256
|
+
* copy the provider gave back, where there is one — and whether the provider
|
|
257
|
+
* should try again (an outage) rather than drop the delivery.
|
|
258
|
+
*
|
|
259
|
+
* The store's own server may also ask the route to SETTLE a payment it just
|
|
260
|
+
* confirmed with the provider (a PayPal buyer's return): a body naming
|
|
261
|
+
* `teleportReconcile`, accepted only with the runtime's internal-call token.
|
|
262
|
+
* The driver reads the payment from the provider and answers the event the
|
|
263
|
+
* provider sends for it; nothing but the provider's id is taken from the
|
|
264
|
+
* request, and any other caller is refused outright.
|
|
265
|
+
*/
|
|
266
|
+
const generatePaymentWebhookVerificationCode = () => {
|
|
267
|
+
return `
|
|
268
|
+
async function settlePaymentFromProvider(req, body, provider, driver) {
|
|
269
|
+
var internal = typeof utils !== 'undefined' && utils && typeof utils.isInternalCall === 'function' && utils.isInternalCall(req);
|
|
270
|
+
if (!internal || typeof driver.reconcile !== 'function') {
|
|
271
|
+
console.error('Payment webhook rejected (' + provider + '): a settlement request that did not come from this store.');
|
|
272
|
+
return { ok: false, retry: false };
|
|
273
|
+
}
|
|
274
|
+
try {
|
|
275
|
+
var settled = await driver.reconcile(body.teleportReconcile);
|
|
276
|
+
if (!settled || !settled.ok) {
|
|
277
|
+
console.error('Payment settlement skipped (' + provider + '): ' + ((settled && settled.reason) || 'not settled'));
|
|
278
|
+
return { ok: false, retry: !!(settled && settled.retry) };
|
|
279
|
+
}
|
|
280
|
+
return { ok: true, body: settled.body };
|
|
281
|
+
} catch (e) {
|
|
282
|
+
console.error('Payment settlement failed (' + provider + '):', e && e.message);
|
|
283
|
+
return { ok: false, retry: true };
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
async function verifyPaymentWebhook(req, rawBody, body, webhookConfig) {
|
|
288
|
+
var provider = webhookConfig.paymentProvider;
|
|
289
|
+
var driver = typeof __paymentDrivers !== 'undefined' && __paymentDrivers ? __paymentDrivers.get(provider) : null;
|
|
290
|
+
if (!driver || typeof driver.verifyWebhook !== 'function') {
|
|
291
|
+
console.error('Payment webhook rejected: this store has no ' + provider + ' payment driver.');
|
|
292
|
+
return { ok: false, retry: false };
|
|
293
|
+
}
|
|
294
|
+
if (body && typeof body === 'object' && body.teleportReconcile) {
|
|
295
|
+
return settlePaymentFromProvider(req, body, provider, driver);
|
|
296
|
+
}
|
|
297
|
+
var host = String(req.headers['x-forwarded-host'] || req.headers.host || '').split(',')[0].trim();
|
|
298
|
+
var proto = String(req.headers['x-forwarded-proto'] || '').split(',')[0].trim() ||
|
|
299
|
+
(host.indexOf('localhost') === 0 || host.indexOf('127.0.0.1') === 0 ? 'http' : 'https');
|
|
300
|
+
var sigSecret = webhookConfig.signatureSecret || '';
|
|
301
|
+
var sigSecretValue = sigSecret ? String(process.env[sigSecret] || '') : '';
|
|
302
|
+
try {
|
|
303
|
+
var result = await driver.verifyWebhook({
|
|
304
|
+
headers: req.headers || {},
|
|
305
|
+
rawBody: rawBody,
|
|
306
|
+
body: body,
|
|
307
|
+
query: req.query || {},
|
|
308
|
+
// The whole URL the provider posted to, query string included: Square
|
|
309
|
+
// signs the notification URL exactly as it was registered.
|
|
310
|
+
url: host ? proto + '://' + host + String(req.url || '') : '',
|
|
311
|
+
// A placeholder the deploy never resolved (a local run) is no secret:
|
|
312
|
+
// the driver then reads the saved credential itself.
|
|
313
|
+
secret: sigSecretValue.indexOf('teleporthq.secrets.') === 0 ? '' : sigSecretValue,
|
|
314
|
+
});
|
|
315
|
+
if (!result || !result.ok) {
|
|
316
|
+
console.error('Payment webhook rejected (' + provider + '): ' + ((result && result.reason) || 'not verified'));
|
|
317
|
+
return { ok: false, retry: !!(result && result.retry) };
|
|
318
|
+
}
|
|
319
|
+
return { ok: true, body: result.body || body };
|
|
320
|
+
} catch (e) {
|
|
321
|
+
console.error('Payment webhook verification failed (' + provider + '):', e && e.message);
|
|
322
|
+
return { ok: false, retry: true };
|
|
323
|
+
}
|
|
324
|
+
}`;
|
|
325
|
+
};
|
|
326
|
+
exports.generatePaymentWebhookVerificationCode = generatePaymentWebhookVerificationCode;
|
|
172
327
|
const generateAllSignatureVerificationCode = () => {
|
|
173
328
|
return [
|
|
174
329
|
(0, exports.generateStripeSignatureVerificationCode)(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webhook-signature-verification.js","sourceRoot":"","sources":["../../src/webhook-signature-verification.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"webhook-signature-verification.js","sourceRoot":"","sources":["../../src/webhook-signature-verification.ts"],"names":[],"mappings":";;;AAAA,iFAAiF;AAC1E,MAAM,uBAAuB,GAAG,GAAW,EAAE;IAClD,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmCP,CAAA;AACF,CAAC,CAAA;AArCY,QAAA,uBAAuB,2BAqCnC;AAEM,MAAM,uCAAuC,GAAG,GAAW,EAAE;IAClE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0CP,CAAA;AACF,CAAC,CAAA;AA5CY,QAAA,uCAAuC,2CA4CnD;AAED,6EAA6E;AAC7E,+EAA+E;AAC/E,0EAA0E;AAC1E,0EAA0E;AAC1E,6EAA6E;AAC7E,yEAAyE;AACzE,2DAA2D;AACpD,MAAM,uCAAuC,GAAG,GAAW,EAAE;IAClE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8EP,CAAA;AACF,CAAC,CAAA;AAhFY,QAAA,uCAAuC,2CAgFnD;AAEM,MAAM,qCAAqC,GAAG,CACnD,YAA+B,QAAQ,EAC/B,EAAE;IACV,MAAM,MAAM,GAAG,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAA;IACvD,OAAO;qBAEL,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAClC;;;;qBAImB,MAAM;;;;+CAIoB,MAAM;;;;;;;;;;;;;EAanD,CAAA;AACF,CAAC,CAAA;AA7BY,QAAA,qCAAqC,yCA6BjD;AAED,2EAA2E;AAC3E,8EAA8E;AAC9E,8EAA8E;AAC9E,6EAA6E;AAC7E,wEAAwE;AACjE,MAAM,+BAA+B,GAAG,GAAW,EAAE;IAC1D,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqCP,CAAA;AACF,CAAC,CAAA;AAvCY,QAAA,+BAA+B,mCAuC3C;AAED;;;;;;;;;;;;;GAaG;AACI,MAAM,sCAAsC,GAAG,GAAW,EAAE;IACjE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyDP,CAAA;AACF,CAAC,CAAA;AA3DY,QAAA,sCAAsC,0CA2DlD;AAEM,MAAM,oCAAoC,GAAG,GAAW,EAAE;IAC/D,OAAO;QACL,IAAA,+CAAuC,GAAE;QACzC,IAAA,+CAAuC,GAAE;QACzC,IAAA,6CAAqC,EAAC,QAAQ,CAAC;QAC/C,IAAA,6CAAqC,EAAC,MAAM,CAAC;QAC7C,IAAA,uCAA+B,GAAE;KAClC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC,CAAA;AARY,QAAA,oCAAoC,wCAQhD"}
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
import { UIDLWorkflowProtection } from '@teleporthq/teleport-types';
|
|
2
|
+
/**
|
|
3
|
+
* `roleOf(token)` — the role a decoded session token carries (`role`,
|
|
4
|
+
* `roleName`, or the first of `roles`), or null. Shared by every generated
|
|
5
|
+
* guard that authorises by role, so they can never read the claim differently.
|
|
6
|
+
*/
|
|
7
|
+
export declare const ROLE_OF_TOKEN_CODE = "function roleOf(token) {\n if (!token || typeof token !== 'object') {\n return null;\n }\n if (typeof token.role === 'string') {\n return token.role;\n }\n if (typeof token.roleName === 'string') {\n return token.roleName;\n }\n if (Array.isArray(token.roles) && token.roles.length > 0 && typeof token.roles[0] === 'string') {\n return token.roles[0];\n }\n return null;\n}";
|
|
2
8
|
/**
|
|
3
9
|
* The shared, stateless auth guard for generated workflow API routes, emitted
|
|
4
10
|
* once at `utils/workflows/workflow-auth.js`.
|
|
@@ -17,12 +23,9 @@ import { UIDLWorkflowProtection } from '@teleporthq/teleport-types';
|
|
|
17
23
|
* serverless instance that had not yet served an auth request was reported
|
|
18
24
|
* anonymous, and the page-load workflow answered 401.
|
|
19
25
|
*/
|
|
20
|
-
export declare const generateWorkflowAuthHelperFile: (
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
* generated API-route handler. Empty strings when the workflow has no policy,
|
|
24
|
-
* so an unprotected route is byte-identical to before.
|
|
25
|
-
*/
|
|
26
|
+
export declare const generateWorkflowAuthHelperFile: (options?: {
|
|
27
|
+
withSubscriberAccess?: boolean;
|
|
28
|
+
}) => string;
|
|
26
29
|
export interface WorkflowAuthInjection {
|
|
27
30
|
requireLine: string;
|
|
28
31
|
policyConst: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-auth-generator.d.ts","sourceRoot":"","sources":["../../src/workflow-auth-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAA;AAGnE;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,8BAA8B,
|
|
1
|
+
{"version":3,"file":"workflow-auth-generator.d.ts","sourceRoot":"","sources":["../../src/workflow-auth-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAA;AAGnE;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,+YAc7B,CAAA;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,8BAA8B,aAChC;IAAE,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAAE,KAC1C,MAgKF,CAAA;AA2BD,MAAM,WAAW,qBAAqB;IAEpC,WAAW,EAAE,MAAM,CAAA;IAEnB,WAAW,EAAE,MAAM,CAAA;IAGnB,SAAS,EAAE,MAAM,CAAA;CAClB;AAID,eAAO,MAAM,0BAA0B,eACzB,sBAAsB,GAAG,SAAS,KAC7C,qBA2CF,CAAA"}
|
|
@@ -1,7 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.buildWorkflowAuthInjection = exports.generateWorkflowAuthHelperFile = void 0;
|
|
3
|
+
exports.buildWorkflowAuthInjection = exports.generateWorkflowAuthHelperFile = exports.ROLE_OF_TOKEN_CODE = void 0;
|
|
4
4
|
const session_cookie_resolver_1 = require("./session-cookie-resolver");
|
|
5
|
+
/**
|
|
6
|
+
* `roleOf(token)` — the role a decoded session token carries (`role`,
|
|
7
|
+
* `roleName`, or the first of `roles`), or null. Shared by every generated
|
|
8
|
+
* guard that authorises by role, so they can never read the claim differently.
|
|
9
|
+
*/
|
|
10
|
+
exports.ROLE_OF_TOKEN_CODE = `function roleOf(token) {
|
|
11
|
+
if (!token || typeof token !== 'object') {
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
if (typeof token.role === 'string') {
|
|
15
|
+
return token.role;
|
|
16
|
+
}
|
|
17
|
+
if (typeof token.roleName === 'string') {
|
|
18
|
+
return token.roleName;
|
|
19
|
+
}
|
|
20
|
+
if (Array.isArray(token.roles) && token.roles.length > 0 && typeof token.roles[0] === 'string') {
|
|
21
|
+
return token.roles[0];
|
|
22
|
+
}
|
|
23
|
+
return null;
|
|
24
|
+
}`;
|
|
5
25
|
/**
|
|
6
26
|
* The shared, stateless auth guard for generated workflow API routes, emitted
|
|
7
27
|
* once at `utils/workflows/workflow-auth.js`.
|
|
@@ -20,7 +40,7 @@ const session_cookie_resolver_1 = require("./session-cookie-resolver");
|
|
|
20
40
|
* serverless instance that had not yet served an auth request was reported
|
|
21
41
|
* anonymous, and the page-load workflow answered 401.
|
|
22
42
|
*/
|
|
23
|
-
const generateWorkflowAuthHelperFile = () => {
|
|
43
|
+
const generateWorkflowAuthHelperFile = (options = {}) => {
|
|
24
44
|
return `'use strict';
|
|
25
45
|
|
|
26
46
|
// GENERATED — see generateWorkflowAuthHelperFile in
|
|
@@ -43,20 +63,22 @@ function sessionUserId(token) {
|
|
|
43
63
|
return token.id != null ? token.id : (token.sub != null ? token.sub : null);
|
|
44
64
|
}
|
|
45
65
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
66
|
+
${exports.ROLE_OF_TOKEN_CODE}
|
|
67
|
+
|
|
68
|
+
${generateSubscriberAccessLoader(options.withSubscriberAccess === true)}
|
|
69
|
+
|
|
70
|
+
// true only when the session user holds an entitled subscription to one of the
|
|
71
|
+
// products (any product for an empty list). Every failure fails closed.
|
|
72
|
+
async function isEntitledSubscriber(token, productIds) {
|
|
73
|
+
var userId = sessionUserId(token);
|
|
74
|
+
if (userId == null || String(userId) === '') {
|
|
75
|
+
return false;
|
|
55
76
|
}
|
|
56
|
-
|
|
57
|
-
return
|
|
77
|
+
try {
|
|
78
|
+
return (await subscriberAccessModule().isSubscriberEntitled(String(userId), productIds || [])) === true;
|
|
79
|
+
} catch (e) {
|
|
80
|
+
return false;
|
|
58
81
|
}
|
|
59
|
-
return null;
|
|
60
82
|
}
|
|
61
83
|
|
|
62
84
|
// Overwrites context[nodeId] drilled down \`path\` with the session user id.
|
|
@@ -77,16 +99,35 @@ function bindPath(root, path, value) {
|
|
|
77
99
|
|
|
78
100
|
// Returns null when the request may proceed, or { status, message } to reject.
|
|
79
101
|
// Mutates \`context\` in place to bind user-owned columns to the session user.
|
|
102
|
+
function sameSecret(given, expected) {
|
|
103
|
+
if (typeof given !== 'string' || typeof expected !== 'string' || given.length !== expected.length) {
|
|
104
|
+
return false;
|
|
105
|
+
}
|
|
106
|
+
return require('crypto').timingSafeEqual(Buffer.from(given), Buffer.from(expected));
|
|
107
|
+
}
|
|
108
|
+
|
|
80
109
|
async function guardWorkflowRequest(req, context, policy) {
|
|
81
110
|
if (!policy) {
|
|
82
111
|
return null;
|
|
83
112
|
}
|
|
84
113
|
|
|
114
|
+
// This deployment's own server code (a webhook or cron route running a
|
|
115
|
+
// custom node) carries the internal-call token and passes every gate. A route
|
|
116
|
+
// only such code may call (serverOnly) answers nothing to anyone else — not a
|
|
117
|
+
// browser, not a signed-in admin.
|
|
118
|
+
var internalCall = require('./server-runtime').isInternalCall(req);
|
|
119
|
+
if (policy.serverOnly) {
|
|
120
|
+
return internalCall ? null : { status: 401, message: 'Unauthenticated' };
|
|
121
|
+
}
|
|
122
|
+
if (internalCall) {
|
|
123
|
+
return null;
|
|
124
|
+
}
|
|
125
|
+
|
|
85
126
|
// Trusted internal server-to-server calls (e.g. password reset, server jobs)
|
|
86
127
|
// present the app secret in a header; only server code can read
|
|
87
128
|
// NEXTAUTH_SECRET, so a browser cannot forge it. These bypass the check.
|
|
88
129
|
var internal = req && req.headers && req.headers['x-internal-data-secret'];
|
|
89
|
-
if (internal && process.env.NEXTAUTH_SECRET && internal
|
|
130
|
+
if (internal && process.env.NEXTAUTH_SECRET && sameSecret(internal, process.env.NEXTAUTH_SECRET)) {
|
|
90
131
|
return null;
|
|
91
132
|
}
|
|
92
133
|
|
|
@@ -104,23 +145,53 @@ async function guardWorkflowRequest(req, context, policy) {
|
|
|
104
145
|
}
|
|
105
146
|
}
|
|
106
147
|
|
|
148
|
+
// Subscriber-only page: the route runs the same entitlement check the
|
|
149
|
+
// middleware asks the subscriber-access route for, after the session and the
|
|
150
|
+
// role are settled.
|
|
151
|
+
if (policy.requiresSubscription) {
|
|
152
|
+
if (!token) {
|
|
153
|
+
return { status: 401, message: 'Unauthenticated' };
|
|
154
|
+
}
|
|
155
|
+
if (!(await isEntitledSubscriber(token, policy.subscriptionProductIds || []))) {
|
|
156
|
+
return { status: 403, message: 'Subscription required' };
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
|
|
107
160
|
// Identity binding: force every user-owned column to the AUTHENTICATED session
|
|
108
|
-
// id so a caller can never act on another user's rows.
|
|
109
|
-
//
|
|
110
|
-
//
|
|
161
|
+
// id so a caller can never act on another user's rows.
|
|
162
|
+
// - A plain user-id binding only applies when a session is present — a guest
|
|
163
|
+
// keeps their (anonymous) client identity, which is why a guest-capable
|
|
164
|
+
// public write is not blocked here.
|
|
165
|
+
// - A \`claim: 'role'\` binding (a raw query's admin check) ALWAYS gets the
|
|
166
|
+
// session's role, '' for a guest or a session without one, so a browser
|
|
167
|
+
// can never claim a role it does not hold. Skipping it for a guest would
|
|
168
|
+
// let a signed-out request post \`role: 'admin'\` and read every row.
|
|
169
|
+
// - A \`claim: 'signedInUserId'\` binding always gets the session user id,
|
|
170
|
+
// '' for a guest: a statement that must only ever touch the signed-in
|
|
171
|
+
// caller's own row matches nothing for anybody else.
|
|
111
172
|
if (policy.userScoped && context) {
|
|
112
173
|
var sid = sessionUserId(token);
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
context[b.nodeId] = {};
|
|
120
|
-
}
|
|
121
|
-
bindPath(context[b.nodeId], b.path || [], sid);
|
|
122
|
-
}
|
|
174
|
+
var sessionRole = roleOf(token) || '';
|
|
175
|
+
var bindings = (policy.userScoped && policy.userScoped.bindings) || [];
|
|
176
|
+
for (var i = 0; i < bindings.length; i++) {
|
|
177
|
+
var b = bindings[i];
|
|
178
|
+
if (!b || !b.nodeId) {
|
|
179
|
+
continue;
|
|
123
180
|
}
|
|
181
|
+
var value;
|
|
182
|
+
if (b.claim === 'role') {
|
|
183
|
+
value = sessionRole;
|
|
184
|
+
} else if (b.claim === 'signedInUserId') {
|
|
185
|
+
value = sid != null ? sid : '';
|
|
186
|
+
} else if (sid != null) {
|
|
187
|
+
value = sid;
|
|
188
|
+
} else {
|
|
189
|
+
continue;
|
|
190
|
+
}
|
|
191
|
+
if (context[b.nodeId] == null || typeof context[b.nodeId] !== 'object') {
|
|
192
|
+
context[b.nodeId] = {};
|
|
193
|
+
}
|
|
194
|
+
bindPath(context[b.nodeId], b.path || [], value);
|
|
124
195
|
}
|
|
125
196
|
}
|
|
126
197
|
|
|
@@ -131,9 +202,33 @@ module.exports = { guardWorkflowRequest: guardWorkflowRequest };
|
|
|
131
202
|
`;
|
|
132
203
|
};
|
|
133
204
|
exports.generateWorkflowAuthHelperFile = generateWorkflowAuthHelperFile;
|
|
205
|
+
/**
|
|
206
|
+
* The route-side pieces that wire a workflow's protection policy into a
|
|
207
|
+
* generated API-route handler. Empty strings when the workflow has no policy,
|
|
208
|
+
* so an unprotected route is byte-identical to before.
|
|
209
|
+
*/
|
|
210
|
+
/**
|
|
211
|
+
* The entitlement query lives in `utils/auth/subscriber-access.js`, which the
|
|
212
|
+
* auth plugin emits only when a page is subscriber-only. A `require` of it is a
|
|
213
|
+
* static import to the bundler even inside a function, so it may only appear
|
|
214
|
+
* when that file exists — otherwise every project without such a page fails
|
|
215
|
+
* its build with "Module not found". Without the file the loader throws, and
|
|
216
|
+
* `isEntitledSubscriber` reads that as "not entitled" (fail closed).
|
|
217
|
+
*/
|
|
218
|
+
const generateSubscriberAccessLoader = (withSubscriberAccess) => withSubscriberAccess
|
|
219
|
+
? `// Entitlement query emitted with the subscriber-access route.
|
|
220
|
+
function subscriberAccessModule() {
|
|
221
|
+
return require('../auth/subscriber-access');
|
|
222
|
+
}`
|
|
223
|
+
: `// No page is subscriber-only, so no entitlement query was emitted: a policy
|
|
224
|
+
// that still asks for a subscription fails closed.
|
|
225
|
+
function subscriberAccessModule() {
|
|
226
|
+
throw new Error('No subscriber-only pages in this project');
|
|
227
|
+
}`;
|
|
134
228
|
const EMPTY_INJECTION = { requireLine: '', policyConst: '', guardCall: '' };
|
|
135
229
|
const buildWorkflowAuthInjection = (protection) => {
|
|
136
|
-
if (!protection ||
|
|
230
|
+
if (!protection ||
|
|
231
|
+
(!protection.requiresAuth && !protection.userScoped && !protection.serverOnly)) {
|
|
137
232
|
return EMPTY_INJECTION;
|
|
138
233
|
}
|
|
139
234
|
// Only the fields the runtime guard reads — `derivedFrom` is build-time only.
|
|
@@ -141,9 +236,18 @@ const buildWorkflowAuthInjection = (protection) => {
|
|
|
141
236
|
requiresAuth: !!protection.requiresAuth,
|
|
142
237
|
allowedRoles: protection.allowedRoles || [],
|
|
143
238
|
};
|
|
239
|
+
if (protection.serverOnly) {
|
|
240
|
+
policy.serverOnly = true;
|
|
241
|
+
}
|
|
144
242
|
if (protection.userScoped) {
|
|
145
243
|
policy.userScoped = protection.userScoped;
|
|
146
244
|
}
|
|
245
|
+
if (protection.requiresSubscription) {
|
|
246
|
+
policy.requiresSubscription = true;
|
|
247
|
+
policy.subscriptionProductIds = (protection.subscriptionProductIds || [])
|
|
248
|
+
.map((id) => String(id).trim())
|
|
249
|
+
.filter((id) => id.length > 0);
|
|
250
|
+
}
|
|
147
251
|
return {
|
|
148
252
|
requireLine: `const __wfAuth = require('../../../utils/workflows/workflow-auth');\n`,
|
|
149
253
|
policyConst: `const __WF_AUTH = ${JSON.stringify(policy)};\n`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-auth-generator.js","sourceRoot":"","sources":["../../src/workflow-auth-generator.ts"],"names":[],"mappings":";;;AACA,uEAAoF;AAEpF;;;;;;;;;;;;;;;;;GAiBG;AACI,MAAM,8BAA8B,GAAG,
|
|
1
|
+
{"version":3,"file":"workflow-auth-generator.js","sourceRoot":"","sources":["../../src/workflow-auth-generator.ts"],"names":[],"mappings":";;;AACA,uEAAoF;AAEpF;;;;GAIG;AACU,QAAA,kBAAkB,GAAG;;;;;;;;;;;;;;EAchC,CAAA;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACI,MAAM,8BAA8B,GAAG,CAC5C,UAA8C,EAAE,EACxC,EAAE;IACV,OAAO;;;;;;;;;EASP,IAAA,kEAAwC,GAAE;;;;;;;;;;;;;EAa1C,0BAAkB;;EAElB,8BAA8B,CAAC,OAAO,CAAC,oBAAoB,KAAK,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsItE,CAAA;AACD,CAAC,CAAA;AAlKY,QAAA,8BAA8B,kCAkK1C;AAED;;;;GAIG;AACH;;;;;;;GAOG;AACH,MAAM,8BAA8B,GAAG,CAAC,oBAA6B,EAAU,EAAE,CAC/E,oBAAoB;IAClB,CAAC,CAAC;;;EAGJ;IACE,CAAC,CAAC;;;;EAIJ,CAAA;AAYF,MAAM,eAAe,GAA0B,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAA;AAE3F,MAAM,0BAA0B,GAAG,CACxC,UAA8C,EACvB,EAAE;IACzB,IACE,CAAC,UAAU;QACX,CAAC,CAAC,UAAU,CAAC,YAAY,IAAI,CAAC,UAAU,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAC9E;QACA,OAAO,eAAe,CAAA;KACvB;IAED,8EAA8E;IAC9E,MAAM,MAAM,GAOR;QACF,YAAY,EAAE,CAAC,CAAC,UAAU,CAAC,YAAY;QACvC,YAAY,EAAE,UAAU,CAAC,YAAY,IAAI,EAAE;KAC5C,CAAA;IACD,IAAI,UAAU,CAAC,UAAU,EAAE;QACzB,MAAM,CAAC,UAAU,GAAG,IAAI,CAAA;KACzB;IACD,IAAI,UAAU,CAAC,UAAU,EAAE;QACzB,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAA;KAC1C;IACD,IAAI,UAAU,CAAC,oBAAoB,EAAE;QACnC,MAAM,CAAC,oBAAoB,GAAG,IAAI,CAAA;QAClC,MAAM,CAAC,sBAAsB,GAAG,CAAC,UAAU,CAAC,sBAAsB,IAAI,EAAE,CAAC;aACtE,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;aAC9B,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;KACjC;IAED,OAAO;QACL,WAAW,EAAE,uEAAuE;QACpF,WAAW,EAAE,qBAAqB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK;QAC7D,SAAS,EAAE;;;;;MAKT;KACH,CAAA;AACH,CAAC,CAAA;AA7CY,QAAA,0BAA0B,8BA6CtC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-component-plugin.d.ts","sourceRoot":"","sources":["../../src/workflow-component-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,sBAAsB,EAUvB,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"workflow-component-plugin.d.ts","sourceRoot":"","sources":["../../src/workflow-component-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,sBAAsB,EAUvB,MAAM,4BAA4B,CAAA;AAuBnC,UAAU,oBAAoB;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAiLD,eAAO,MAAM,wBAAwB,EAAE,sBAAsB,CAAC,oBAAoB,CA8ejF,CAAA"}
|