@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
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import {
|
|
2
|
+
FileType,
|
|
3
|
+
ProjectPluginStructure,
|
|
4
|
+
ProjectUIDL,
|
|
5
|
+
UIDLWorkflows,
|
|
6
|
+
} from '@teleporthq/teleport-types'
|
|
7
|
+
import { generatePaymentCoreCode } from './payment-core-code'
|
|
8
|
+
import { generatePaymentRegistryCode } from './payment-registry-code'
|
|
9
|
+
import { PAYMENT_DRIVER_CODE } from './payment-driver-code-map'
|
|
10
|
+
import {
|
|
11
|
+
DEFAULT_PAYMENT_DRIVER_IDS,
|
|
12
|
+
DeclaredPaymentCredentials,
|
|
13
|
+
PAYMENT_DRIVERS_DIRECTORY,
|
|
14
|
+
PAYMENT_DRIVERS_FILE_KEY,
|
|
15
|
+
PAYMENT_DRIVERS_PATH,
|
|
16
|
+
PAYMENT_DRIVER_IDS,
|
|
17
|
+
PAYMENT_DRIVER_SIGNATURE_ALGORITHM,
|
|
18
|
+
PaymentDriverId,
|
|
19
|
+
isPaymentDriverId,
|
|
20
|
+
usesPaymentDriverNode,
|
|
21
|
+
} from './payment-drivers-scope'
|
|
22
|
+
|
|
23
|
+
/** The Stripe SDK the Stripe driver requires; every other driver talks over fetch. */
|
|
24
|
+
const STRIPE_SDK_VERSION = '^14.0.0'
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* The provider a payment webhook verifies through: the one its trigger names
|
|
28
|
+
* with the `payment-driver` scheme, or — for a webhook stored before that
|
|
29
|
+
* scheme existed, possibly with verification off, or a `payment-driver`
|
|
30
|
+
* trigger that names none — the provider its `webhooks/<id>-payment` path
|
|
31
|
+
* belongs to. Either way a payment webhook is ALWAYS verified: an unverified
|
|
32
|
+
* one would mark orders paid on any request.
|
|
33
|
+
*
|
|
34
|
+
* Null on the `payment-driver` scheme means no driver can verify the
|
|
35
|
+
* webhook (a provider without one, or none named on another path): its
|
|
36
|
+
* route must refuse every delivery.
|
|
37
|
+
*/
|
|
38
|
+
export const readWebhookPaymentProvider = (webhookConfig: unknown): PaymentDriverId | null => {
|
|
39
|
+
const config = (webhookConfig || {}) as {
|
|
40
|
+
signatureAlgorithm?: unknown
|
|
41
|
+
paymentProvider?: unknown
|
|
42
|
+
urlPath?: unknown
|
|
43
|
+
}
|
|
44
|
+
const named =
|
|
45
|
+
config.signatureAlgorithm === PAYMENT_DRIVER_SIGNATURE_ALGORITHM
|
|
46
|
+
? String(config.paymentProvider || '').trim()
|
|
47
|
+
: ''
|
|
48
|
+
const provider = (
|
|
49
|
+
named ||
|
|
50
|
+
(/(?:^|\/)webhooks\/([a-z]+)-payment\/?$/.exec(String(config.urlPath || '')) || [])[1] ||
|
|
51
|
+
''
|
|
52
|
+
).toLowerCase()
|
|
53
|
+
return isPaymentDriverId(provider) ? provider : null
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Whether a webhook takes payment events: a provider's own route, or any
|
|
58
|
+
* route on the `payment-driver` scheme. Such a route is always verified, and
|
|
59
|
+
* runs one delivery of a body at a time (`webhook-delivery-lease`).
|
|
60
|
+
*/
|
|
61
|
+
export const isPaymentWebhookConfig = (webhookConfig: unknown): boolean =>
|
|
62
|
+
readWebhookPaymentProvider(webhookConfig) !== null ||
|
|
63
|
+
((webhookConfig || {}) as { signatureAlgorithm?: unknown }).signatureAlgorithm ===
|
|
64
|
+
PAYMENT_DRIVER_SIGNATURE_ALGORITHM
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* The providers this store needs a driver for: every provider its checkout
|
|
68
|
+
* offers, every provider a payment webhook verifies through, and Stripe +
|
|
69
|
+
* PayPal whenever a payment node runs at all (a workflow that names no
|
|
70
|
+
* provider has always meant Stripe). Empty when the store takes no online
|
|
71
|
+
* payment, in which case no driver module is written.
|
|
72
|
+
*/
|
|
73
|
+
export const resolveStorePaymentDriverIds = (
|
|
74
|
+
uidl: Pick<ProjectUIDL, 'ecommerceSettings'> & { workflows?: UIDLWorkflows },
|
|
75
|
+
usedNodeTypes: Iterable<string>
|
|
76
|
+
): PaymentDriverId[] => {
|
|
77
|
+
const wanted = new Set<PaymentDriverId>()
|
|
78
|
+
for (const provider of uidl.ecommerceSettings?.paymentProviders || []) {
|
|
79
|
+
const id = String(provider?.type || '').toLowerCase()
|
|
80
|
+
if (isPaymentDriverId(id)) {
|
|
81
|
+
wanted.add(id)
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
for (const workflow of Object.values(uidl.workflows?.workflows || {})) {
|
|
85
|
+
const id = readWebhookPaymentProvider((workflow as { webhookConfig?: unknown }).webhookConfig)
|
|
86
|
+
if (id) {
|
|
87
|
+
wanted.add(id)
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
if (wanted.size > 0 || usesPaymentDriverNode(usedNodeTypes)) {
|
|
91
|
+
DEFAULT_PAYMENT_DRIVER_IDS.forEach((id) => wanted.add(id))
|
|
92
|
+
}
|
|
93
|
+
return PAYMENT_DRIVER_IDS.filter((id) => wanted.has(id))
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/** An environment variable name, the only shape a declared secret may take. */
|
|
97
|
+
const ENV_NAME_PATTERN = /^[A-Za-z_][A-Za-z0-9_]*$/
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* The secret the merchant saved each live provider credential under, as the
|
|
101
|
+
* editor exported it (`ecommerceSettings.paymentProviders[].credentials`).
|
|
102
|
+
*/
|
|
103
|
+
export const readDeclaredPaymentCredentials = (
|
|
104
|
+
uidl: Pick<ProjectUIDL, 'ecommerceSettings'> | undefined
|
|
105
|
+
): DeclaredPaymentCredentials => {
|
|
106
|
+
const declared: DeclaredPaymentCredentials = {}
|
|
107
|
+
for (const provider of uidl?.ecommerceSettings?.paymentProviders || []) {
|
|
108
|
+
const id = String(provider?.type || '').toLowerCase()
|
|
109
|
+
if (!isPaymentDriverId(id)) {
|
|
110
|
+
continue
|
|
111
|
+
}
|
|
112
|
+
const fields: Record<string, string> = {}
|
|
113
|
+
for (const [field, secretName] of Object.entries(provider.credentials || {})) {
|
|
114
|
+
if (typeof secretName === 'string' && ENV_NAME_PATTERN.test(secretName)) {
|
|
115
|
+
fields[field] = secretName
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
if (Object.keys(fields).length > 0) {
|
|
119
|
+
declared[id] = fields
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
return declared
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Writes `utils/payments/` — core, registry and one driver per provider —
|
|
127
|
+
* once, whichever emitter asks first. Every emitter of code that reaches
|
|
128
|
+
* `__paymentDrivers` calls this with the store's providers.
|
|
129
|
+
*/
|
|
130
|
+
export const ensurePaymentDriversModule = (
|
|
131
|
+
structure: ProjectPluginStructure,
|
|
132
|
+
driverIds: readonly PaymentDriverId[]
|
|
133
|
+
): void => {
|
|
134
|
+
const { files, dependencies } = structure
|
|
135
|
+
if (driverIds.length === 0 || files.has(PAYMENT_DRIVERS_FILE_KEY)) {
|
|
136
|
+
return
|
|
137
|
+
}
|
|
138
|
+
const declared = readDeclaredPaymentCredentials(structure.uidl)
|
|
139
|
+
files.set(PAYMENT_DRIVERS_FILE_KEY, {
|
|
140
|
+
path: PAYMENT_DRIVERS_PATH,
|
|
141
|
+
files: [
|
|
142
|
+
{ name: 'index', fileType: FileType.JS, content: generatePaymentRegistryCode(driverIds) },
|
|
143
|
+
{ name: 'core', fileType: FileType.JS, content: generatePaymentCoreCode(declared) },
|
|
144
|
+
],
|
|
145
|
+
})
|
|
146
|
+
files.set(`${PAYMENT_DRIVERS_FILE_KEY}-drivers`, {
|
|
147
|
+
path: PAYMENT_DRIVERS_DIRECTORY,
|
|
148
|
+
files: driverIds.map((id) => ({
|
|
149
|
+
name: id,
|
|
150
|
+
fileType: FileType.JS,
|
|
151
|
+
content: PAYMENT_DRIVER_CODE[id](),
|
|
152
|
+
})),
|
|
153
|
+
})
|
|
154
|
+
if (driverIds.includes('stripe') && !dependencies.stripe) {
|
|
155
|
+
dependencies.stripe = STRIPE_SDK_VERSION
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* The environment variable a provider credential is deployed under — the
|
|
161
|
+
* editor's field key in upper snake case after the provider id
|
|
162
|
+
* (`stripe` + `secretKey` → `STRIPE_SECRET_KEY`), which is the first name
|
|
163
|
+
* each driver reads (`core.credential`).
|
|
164
|
+
*/
|
|
165
|
+
export const paymentCredentialEnvName = (providerId: string, field: string): string =>
|
|
166
|
+
`${providerId.toUpperCase()}_${field.replace(/([A-Z])/g, '_$1').toUpperCase()}`
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* Declares every credential the merchant saved for a store provider in the
|
|
170
|
+
* project's `.env`, as a placeholder the deploy resolves to that exact stored
|
|
171
|
+
* secret (`MOLLIE_API_KEY=teleporthq.secrets.<stored name>`) — never by a
|
|
172
|
+
* guess at which secret looks like it. A line something else already filled
|
|
173
|
+
* is left alone.
|
|
174
|
+
*/
|
|
175
|
+
export const declarePaymentCredentialEnv = (uidl: ProjectUIDL): void => {
|
|
176
|
+
const declared = readDeclaredPaymentCredentials(uidl)
|
|
177
|
+
for (const [id, fields] of Object.entries(declared)) {
|
|
178
|
+
for (const [field, secretName] of Object.entries(fields || {})) {
|
|
179
|
+
if (!uidl.globals.env) {
|
|
180
|
+
uidl.globals.env = {}
|
|
181
|
+
}
|
|
182
|
+
const envName = paymentCredentialEnvName(id, field)
|
|
183
|
+
if (!uidl.globals.env[envName]) {
|
|
184
|
+
uidl.globals.env[envName] = `teleporthq.secrets.${secretName}`
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
/**
|
|
191
|
+
* The binding a route needs when it runs a payment node or verifies a
|
|
192
|
+
* payment webhook: a guarded require, so a route evaluated where the module
|
|
193
|
+
* is absent (a test harness, a stub `require`) still loads and every payment
|
|
194
|
+
* call answers "not supported" instead of crashing the route. Empty for every
|
|
195
|
+
* other route, which keeps those byte-identical.
|
|
196
|
+
*/
|
|
197
|
+
export const generatePaymentDriversPreamble = (needed: boolean, relativePrefix: string): string => {
|
|
198
|
+
if (!needed) {
|
|
199
|
+
return ''
|
|
200
|
+
}
|
|
201
|
+
return `var __paymentDrivers = null;
|
|
202
|
+
try { __paymentDrivers = require('${relativePrefix}/utils/payments'); } catch (_e) { __paymentDrivers = null; }
|
|
203
|
+
`
|
|
204
|
+
}
|
|
@@ -0,0 +1,421 @@
|
|
|
1
|
+
import type { DeclaredPaymentCredentials } from './payment-drivers-scope'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Emits `utils/payments/core.js` — what every provider driver in the store
|
|
5
|
+
* shares: credentials out of the environment, money in each provider's unit,
|
|
6
|
+
* JSON requests that never throw on a provider's HTML error page, the few
|
|
7
|
+
* crypto primitives webhook verification needs, and form encoding.
|
|
8
|
+
*
|
|
9
|
+
* `declared` names the secret the editor saved each credential under (names,
|
|
10
|
+
* never values): the one a driver reads before any guess by name.
|
|
11
|
+
*
|
|
12
|
+
* A STRING, like every module this package writes into a generated app: a
|
|
13
|
+
* minifier never rewrites a string literal, so what ships is exactly what the
|
|
14
|
+
* tests execute (see `commerce-tracking.ts` for what `fn.toString()` did).
|
|
15
|
+
*
|
|
16
|
+
* Contract: nothing here throws except `request` on a network failure, which a
|
|
17
|
+
* driver's own try/catch turns into its `error` answer.
|
|
18
|
+
*/
|
|
19
|
+
export const generatePaymentCoreCode = (
|
|
20
|
+
declared: DeclaredPaymentCredentials = {}
|
|
21
|
+
): string => `'use strict';
|
|
22
|
+
/**
|
|
23
|
+
* Payment core shared by every provider driver of this store.
|
|
24
|
+
* Generated by TeleportHQ — changes are overwritten on the next export.
|
|
25
|
+
*/
|
|
26
|
+
var crypto = require('crypto');
|
|
27
|
+
|
|
28
|
+
// Currencies whose smallest unit IS the major unit, and those with three
|
|
29
|
+
// decimals (the ISO 4217 exponents every provider here follows unless its
|
|
30
|
+
// driver says otherwise).
|
|
31
|
+
var ZERO_DECIMAL_CURRENCIES = ['BIF', 'CLP', 'DJF', 'GNF', 'JPY', 'KMF', 'KRW', 'MGA', 'PYG', 'RWF', 'UGX', 'VND', 'VUV', 'XAF', 'XOF', 'XPF'];
|
|
32
|
+
var THREE_DECIMAL_CURRENCIES = ['BHD', 'IQD', 'JOD', 'KWD', 'LYD', 'OMR', 'TND'];
|
|
33
|
+
|
|
34
|
+
// A deploy resolves \`teleporthq.secrets.<name>\` to that secret's value; the
|
|
35
|
+
// project run anywhere else (a download, a local build) still holds the
|
|
36
|
+
// placeholder itself, which is no credential.
|
|
37
|
+
var UNRESOLVED_SECRET_PREFIX = 'teleporthq.secrets.';
|
|
38
|
+
|
|
39
|
+
/** A variable's value when it holds one: set, non-empty and no unresolved placeholder. */
|
|
40
|
+
function usable(value) {
|
|
41
|
+
var text = value == null ? '' : String(value);
|
|
42
|
+
return text.length > 0 && text.indexOf(UNRESOLVED_SECRET_PREFIX) !== 0 ? text : '';
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* The first usable variable among \`names\`, else the first whose name
|
|
47
|
+
* starts with \`prefix\`: the editor stores a credential under a
|
|
48
|
+
* CONFIGURATION_* name that a second save may number (…_KEY2).
|
|
49
|
+
*/
|
|
50
|
+
function env(names, prefix) {
|
|
51
|
+
var values = process.env;
|
|
52
|
+
for (var i = 0; i < names.length; i++) {
|
|
53
|
+
var value = names[i] ? usable(values[names[i]]) : '';
|
|
54
|
+
if (value) {
|
|
55
|
+
return value;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
if (prefix) {
|
|
59
|
+
var keys = Object.keys(values);
|
|
60
|
+
for (var k = 0; k < keys.length; k++) {
|
|
61
|
+
var candidate = keys[k].indexOf(prefix) === 0 ? usable(values[keys[k]]) : '';
|
|
62
|
+
if (candidate) {
|
|
63
|
+
return candidate;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return '';
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/** "clientSecret" -> "CLIENT_SECRET", the editor's secret naming. */
|
|
71
|
+
function snakeUpper(field) {
|
|
72
|
+
return String(field || '').replace(/([A-Z])/g, '_$1').toUpperCase();
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// The secret the editor saved each credential under, by provider and field.
|
|
76
|
+
// A re-typed key is saved under a NEW, numbered name (…_KEY_ID1), and the
|
|
77
|
+
// unnumbered secret it replaced keeps the OLD value.
|
|
78
|
+
var DECLARED_CREDENTIALS = ${JSON.stringify(declared)};
|
|
79
|
+
|
|
80
|
+
function declaredCredential(providerId, field) {
|
|
81
|
+
var fields = Object.prototype.hasOwnProperty.call(DECLARED_CREDENTIALS, providerId) ? DECLARED_CREDENTIALS[providerId] : null;
|
|
82
|
+
return fields && Object.prototype.hasOwnProperty.call(fields, field) ? fields[field] : '';
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* A provider credential by its field name in the editor's provider form:
|
|
87
|
+
* PROVIDER_FIELD (what a deploy writes), then the secret the editor saved it
|
|
88
|
+
* under. A store exported before the editor named its secrets reads
|
|
89
|
+
* CONFIGURATION_PROVIDER_FIELD, then any numbered variant of it.
|
|
90
|
+
*/
|
|
91
|
+
function credential(providerId, field, extraNames) {
|
|
92
|
+
var canonical = String(providerId).toUpperCase() + '_' + snakeUpper(field);
|
|
93
|
+
var declared = declaredCredential(providerId, field);
|
|
94
|
+
if (declared) {
|
|
95
|
+
return env([canonical, declared]);
|
|
96
|
+
}
|
|
97
|
+
var configured = 'CONFIGURATION_' + canonical;
|
|
98
|
+
return env([canonical, configured].concat(extraNames || []), configured);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
function minorFactor(currency) {
|
|
102
|
+
var upper = String(currency || '').toUpperCase();
|
|
103
|
+
if (ZERO_DECIMAL_CURRENCIES.indexOf(upper) >= 0) {
|
|
104
|
+
return 1;
|
|
105
|
+
}
|
|
106
|
+
if (THREE_DECIMAL_CURRENCIES.indexOf(upper) >= 0) {
|
|
107
|
+
return 1000;
|
|
108
|
+
}
|
|
109
|
+
return 100;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/** A major-unit amount as the provider's smallest integer unit; 0 for anything not positive. */
|
|
113
|
+
function toMinor(major, currency) {
|
|
114
|
+
var amount = Number(major);
|
|
115
|
+
if (!isFinite(amount) || amount <= 0) {
|
|
116
|
+
return 0;
|
|
117
|
+
}
|
|
118
|
+
return Math.round(amount * minorFactor(currency));
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
function fromMinor(minor, currency) {
|
|
122
|
+
var amount = Number(minor);
|
|
123
|
+
if (!isFinite(amount)) {
|
|
124
|
+
return 0;
|
|
125
|
+
}
|
|
126
|
+
return amount / minorFactor(currency);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
/** A major-unit amount as a decimal string with the currency's exact number of decimals. */
|
|
130
|
+
function decimalString(major, currency) {
|
|
131
|
+
var factor = minorFactor(currency);
|
|
132
|
+
var digits = factor === 1 ? 0 : factor === 1000 ? 3 : 2;
|
|
133
|
+
return (toMinor(major, currency) / factor).toFixed(digits);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/** A provider's JSON answer, or null for an empty or HTML body. */
|
|
137
|
+
async function readJson(response) {
|
|
138
|
+
try {
|
|
139
|
+
return await response.json();
|
|
140
|
+
} catch (_e) {
|
|
141
|
+
return null;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/** One provider call: \`{ ok, status, data }\`. Throws only when the network does. */
|
|
146
|
+
async function request(url, init) {
|
|
147
|
+
var response = await fetch(url, init || {});
|
|
148
|
+
var data = await readJson(response);
|
|
149
|
+
return { ok: !!response.ok, status: response.status, data: data };
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
/** A root-relative URL made absolute against the request's origin; anything absolute untouched. */
|
|
153
|
+
function absoluteUrl(url, baseUrl) {
|
|
154
|
+
var value = String(url || '');
|
|
155
|
+
if (!value || /^https?:\\/\\//i.test(value) || !baseUrl) {
|
|
156
|
+
return value;
|
|
157
|
+
}
|
|
158
|
+
var base = String(baseUrl).replace(/\\/+$/, '');
|
|
159
|
+
return value.charAt(0) === '/' ? base + value : base + '/' + value;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/** Where a provider that takes its webhook URL per payment sends this store's events. */
|
|
163
|
+
function webhookUrl(baseUrl, providerId) {
|
|
164
|
+
return absoluteUrl('/api/webhooks/' + providerId + '-payment', baseUrl);
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
/** A request header by name, whatever case the platform delivered it in. */
|
|
168
|
+
function header(headers, name) {
|
|
169
|
+
if (!headers) {
|
|
170
|
+
return '';
|
|
171
|
+
}
|
|
172
|
+
var wanted = String(name).toLowerCase();
|
|
173
|
+
var keys = Object.keys(headers);
|
|
174
|
+
for (var i = 0; i < keys.length; i++) {
|
|
175
|
+
if (keys[i].toLowerCase() === wanted) {
|
|
176
|
+
var value = headers[keys[i]];
|
|
177
|
+
return Array.isArray(value) ? String(value[0] || '') : String(value == null ? '' : value);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
return '';
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
function hmac(algorithm, key, payload, encoding) {
|
|
184
|
+
return crypto.createHmac(algorithm, key).update(payload).digest(encoding || 'hex');
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
/** Constant-time comparison of two strings; false for any length mismatch. */
|
|
188
|
+
function safeEqual(left, right) {
|
|
189
|
+
var a = Buffer.from(String(left || ''), 'utf8');
|
|
190
|
+
var b = Buffer.from(String(right || ''), 'utf8');
|
|
191
|
+
if (a.length === 0 || a.length !== b.length) {
|
|
192
|
+
return false;
|
|
193
|
+
}
|
|
194
|
+
return crypto.timingSafeEqual(a, b);
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
/**
|
|
198
|
+
* Nested form encoding (\`metadata[orderId]=…\`, \`items[0][name]=…\`), the shape
|
|
199
|
+
* form-based provider APIs read. Undefined and null values are left out.
|
|
200
|
+
*/
|
|
201
|
+
function formEncode(value, prefix) {
|
|
202
|
+
var parts = [];
|
|
203
|
+
function walk(current, path) {
|
|
204
|
+
if (current === undefined || current === null) {
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
if (Array.isArray(current)) {
|
|
208
|
+
for (var i = 0; i < current.length; i++) {
|
|
209
|
+
walk(current[i], path + '[' + i + ']');
|
|
210
|
+
}
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
if (typeof current === 'object') {
|
|
214
|
+
var keys = Object.keys(current);
|
|
215
|
+
for (var k = 0; k < keys.length; k++) {
|
|
216
|
+
walk(current[keys[k]], path ? path + '[' + keys[k] + ']' : keys[k]);
|
|
217
|
+
}
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
parts.push(encodeURIComponent(path) + '=' + encodeURIComponent(String(current)));
|
|
221
|
+
}
|
|
222
|
+
walk(value, prefix || '');
|
|
223
|
+
return parts.join('&');
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
/** The object a form-encoded \`key=value&…\` body stands for (a repeated key keeps its last value). */
|
|
227
|
+
function parseForm(text) {
|
|
228
|
+
var result = {};
|
|
229
|
+
var body = String(text || '');
|
|
230
|
+
if (!body) {
|
|
231
|
+
return result;
|
|
232
|
+
}
|
|
233
|
+
var pairs = body.split('&');
|
|
234
|
+
for (var i = 0; i < pairs.length; i++) {
|
|
235
|
+
if (!pairs[i]) {
|
|
236
|
+
continue;
|
|
237
|
+
}
|
|
238
|
+
var eq = pairs[i].indexOf('=');
|
|
239
|
+
var rawKey = eq >= 0 ? pairs[i].slice(0, eq) : pairs[i];
|
|
240
|
+
var rawValue = eq >= 0 ? pairs[i].slice(eq + 1) : '';
|
|
241
|
+
try {
|
|
242
|
+
result[decodeURIComponent(rawKey.replace(/\\+/g, ' '))] = decodeURIComponent(rawValue.replace(/\\+/g, ' '));
|
|
243
|
+
} catch (_e) {
|
|
244
|
+
result[rawKey] = rawValue;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
return result;
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
/** The actionable half of a thrown error, never an object's stringification. */
|
|
251
|
+
function describeError(err, fallback) {
|
|
252
|
+
if (err && typeof err === 'object') {
|
|
253
|
+
var raw = (err.raw && err.raw.message) || err.message;
|
|
254
|
+
if (typeof raw === 'string' && raw.trim()) {
|
|
255
|
+
return raw.trim();
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
return fallback || 'The payment provider could not be reached.';
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
/** The metadata a checkout attached (a JSON string or an object), as an object. */
|
|
262
|
+
function readMetadata(value) {
|
|
263
|
+
if (!value) {
|
|
264
|
+
return {};
|
|
265
|
+
}
|
|
266
|
+
if (typeof value === 'object') {
|
|
267
|
+
return value;
|
|
268
|
+
}
|
|
269
|
+
try {
|
|
270
|
+
var parsed = JSON.parse(String(value));
|
|
271
|
+
return parsed && typeof parsed === 'object' ? parsed : {};
|
|
272
|
+
} catch (_e) {
|
|
273
|
+
return {};
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
// How many result pages a driver reads when it searches the provider for an
|
|
278
|
+
// order's checkouts; a search that would need more is refused, never guessed.
|
|
279
|
+
var SEARCH_PAGE_LIMIT = 10;
|
|
280
|
+
// An order that recorded no checkout had one opened by the request that placed
|
|
281
|
+
// it, seconds after its row was written: the provider is searched around then.
|
|
282
|
+
var SEARCH_BEFORE_MS = 10 * 60 * 1000;
|
|
283
|
+
var SEARCH_AFTER_MS = 60 * 60 * 1000;
|
|
284
|
+
|
|
285
|
+
/**
|
|
286
|
+
* The time window a checkout opened for an order placed at \`placedAt\` falls
|
|
287
|
+
* in: \`{ from, to }\` in milliseconds, or null for a time that cannot be read.
|
|
288
|
+
*/
|
|
289
|
+
function searchWindow(placedAt) {
|
|
290
|
+
var placed = new Date(String(placedAt || '')).getTime();
|
|
291
|
+
if (!isFinite(placed) || placed <= 0) {
|
|
292
|
+
return null;
|
|
293
|
+
}
|
|
294
|
+
return { from: placed - SEARCH_BEFORE_MS, to: placed + SEARCH_AFTER_MS };
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
/** Milliseconds as an ISO time; '' for anything that is not a time. */
|
|
298
|
+
function isoTime(ms) {
|
|
299
|
+
var value = Number(ms);
|
|
300
|
+
return isFinite(value) && value > 0 ? new Date(value).toISOString() : '';
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
/** The later of two ISO times; '' only when neither is one. */
|
|
304
|
+
function laterTime(left, right) {
|
|
305
|
+
var a = new Date(String(left || '')).getTime();
|
|
306
|
+
var b = new Date(String(right || '')).getTime();
|
|
307
|
+
if (!isFinite(a)) {
|
|
308
|
+
return isFinite(b) ? String(right) : '';
|
|
309
|
+
}
|
|
310
|
+
return isFinite(b) && b > a ? String(right) : String(left);
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
// The states a checkout can be left in, most binding first: money taken, money
|
|
314
|
+
// on its way, a page that still takes money, a page that takes none.
|
|
315
|
+
var CHECKOUT_STATE_RANK = { paid: 4, confirming: 3, open: 2, closed: 1 };
|
|
316
|
+
|
|
317
|
+
/**
|
|
318
|
+
* Closes every checkout an order has open with its provider, so no page the
|
|
319
|
+
* store opened can take money for it again: the checkout the order recorded,
|
|
320
|
+
* or — when it recorded none — the ones the provider finds for it around the
|
|
321
|
+
* moment it was placed. Answers the most binding state among them:
|
|
322
|
+
*
|
|
323
|
+
* - \`paid\` / \`confirming\` — a checkout took the money, or is taking it;
|
|
324
|
+
* - \`open\` — one could not be closed (the provider has no way to close it
|
|
325
|
+
* early, or cannot be searched): \`openUntil\` is when it runs out, '' when
|
|
326
|
+
* the provider does not say; \`checkoutUrl\` and \`reference\` name its page
|
|
327
|
+
* when the provider gave one;
|
|
328
|
+
* - \`closed\` — every checkout found takes no more money;
|
|
329
|
+
* - \`none\` — the provider has no checkout for the order.
|
|
330
|
+
*
|
|
331
|
+
* \`{ outcome: '', error }\` when the provider could not be asked: nothing may
|
|
332
|
+
* then be decided as if the pages were closed.
|
|
333
|
+
*/
|
|
334
|
+
async function closeOrderCheckouts(driver, input) {
|
|
335
|
+
var request = input || {};
|
|
336
|
+
if (!driver || typeof driver.closeCheckout !== 'function') {
|
|
337
|
+
return { outcome: '', openUntil: '', checkoutUrl: '', error: 'This store cannot close checkouts with that payment provider.' };
|
|
338
|
+
}
|
|
339
|
+
var reference = String(request.reference || '').trim();
|
|
340
|
+
var references = reference ? [reference] : [];
|
|
341
|
+
if (!reference) {
|
|
342
|
+
var found =
|
|
343
|
+
typeof driver.findCheckouts === 'function'
|
|
344
|
+
? await driver.findCheckouts({ orderId: request.orderId, placedAt: request.placedAt })
|
|
345
|
+
: { searchable: false, openUntil: '' };
|
|
346
|
+
if (found && found.error) {
|
|
347
|
+
return { outcome: '', openUntil: '', checkoutUrl: '', error: String(found.error) };
|
|
348
|
+
}
|
|
349
|
+
if (found && found.searchable === false) {
|
|
350
|
+
var until = new Date(String(found.openUntil || '')).getTime();
|
|
351
|
+
return isFinite(until) && until > Date.now()
|
|
352
|
+
? { outcome: 'open', openUntil: String(found.openUntil), checkoutUrl: '' }
|
|
353
|
+
: { outcome: 'none', openUntil: '', checkoutUrl: '' };
|
|
354
|
+
}
|
|
355
|
+
references = found && Array.isArray(found.references) ? found.references : [];
|
|
356
|
+
}
|
|
357
|
+
if (references.length === 0) {
|
|
358
|
+
return { outcome: 'none', openUntil: '', checkoutUrl: '' };
|
|
359
|
+
}
|
|
360
|
+
var best = { outcome: 'closed', openUntil: '', checkoutUrl: '', reference: '' };
|
|
361
|
+
// One page open for a time nobody knows keeps the whole answer open-ended.
|
|
362
|
+
var untilUnknown = false;
|
|
363
|
+
for (var i = 0; i < references.length; i++) {
|
|
364
|
+
var result;
|
|
365
|
+
try {
|
|
366
|
+
result = await driver.closeCheckout({ reference: references[i] });
|
|
367
|
+
} catch (err) {
|
|
368
|
+
result = { state: '', error: describeError(err) };
|
|
369
|
+
}
|
|
370
|
+
if (!result || result.error || !CHECKOUT_STATE_RANK[result.state]) {
|
|
371
|
+
return {
|
|
372
|
+
outcome: '',
|
|
373
|
+
openUntil: '',
|
|
374
|
+
checkoutUrl: '',
|
|
375
|
+
error: String((result && result.error) || 'The payment provider did not say what became of checkout ' + references[i] + '.'),
|
|
376
|
+
};
|
|
377
|
+
}
|
|
378
|
+
if (result.state === 'open') {
|
|
379
|
+
untilUnknown = untilUnknown || !result.openUntil;
|
|
380
|
+
best.openUntil = untilUnknown ? '' : laterTime(best.openUntil, result.openUntil);
|
|
381
|
+
if (!best.checkoutUrl && result.checkoutUrl) {
|
|
382
|
+
best.checkoutUrl = String(result.checkoutUrl);
|
|
383
|
+
best.reference = references[i];
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
if (CHECKOUT_STATE_RANK[result.state] > CHECKOUT_STATE_RANK[best.outcome]) {
|
|
387
|
+
best.outcome = result.state;
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
if (best.outcome !== 'open') {
|
|
391
|
+
best.openUntil = '';
|
|
392
|
+
best.checkoutUrl = '';
|
|
393
|
+
best.reference = '';
|
|
394
|
+
}
|
|
395
|
+
return best;
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
module.exports = {
|
|
399
|
+
env: env,
|
|
400
|
+
credential: credential,
|
|
401
|
+
minorFactor: minorFactor,
|
|
402
|
+
toMinor: toMinor,
|
|
403
|
+
fromMinor: fromMinor,
|
|
404
|
+
decimalString: decimalString,
|
|
405
|
+
readJson: readJson,
|
|
406
|
+
request: request,
|
|
407
|
+
absoluteUrl: absoluteUrl,
|
|
408
|
+
webhookUrl: webhookUrl,
|
|
409
|
+
header: header,
|
|
410
|
+
hmac: hmac,
|
|
411
|
+
safeEqual: safeEqual,
|
|
412
|
+
formEncode: formEncode,
|
|
413
|
+
parseForm: parseForm,
|
|
414
|
+
describeError: describeError,
|
|
415
|
+
readMetadata: readMetadata,
|
|
416
|
+
SEARCH_PAGE_LIMIT: SEARCH_PAGE_LIMIT,
|
|
417
|
+
searchWindow: searchWindow,
|
|
418
|
+
isoTime: isoTime,
|
|
419
|
+
closeOrderCheckouts: closeOrderCheckouts,
|
|
420
|
+
};
|
|
421
|
+
`
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { PaymentDriverId } from './payment-drivers-scope'
|
|
2
|
+
import { generateStripeDriverCode } from './drivers/stripe-driver-code'
|
|
3
|
+
import { generatePaypalDriverCode } from './drivers/paypal-driver-code'
|
|
4
|
+
import { generateMollieDriverCode } from './drivers/mollie-driver-code'
|
|
5
|
+
import { generateRazorpayDriverCode } from './drivers/razorpay-driver-code'
|
|
6
|
+
import { generateSquareDriverCode } from './drivers/square-driver-code'
|
|
7
|
+
import { generatePaddleDriverCode } from './drivers/paddle-driver-code'
|
|
8
|
+
import { generateCoingateDriverCode } from './drivers/coingate-driver-code'
|
|
9
|
+
|
|
10
|
+
/** The module source of each provider's driver (`utils/payments/drivers/<id>.js`). */
|
|
11
|
+
export const PAYMENT_DRIVER_CODE: Record<PaymentDriverId, () => string> = {
|
|
12
|
+
stripe: generateStripeDriverCode,
|
|
13
|
+
paypal: generatePaypalDriverCode,
|
|
14
|
+
mollie: generateMollieDriverCode,
|
|
15
|
+
razorpay: generateRazorpayDriverCode,
|
|
16
|
+
square: generateSquareDriverCode,
|
|
17
|
+
paddle: generatePaddleDriverCode,
|
|
18
|
+
coingate: generateCoingateDriverCode,
|
|
19
|
+
}
|