@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
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
*/
|
|
13
13
|
import { generateSqlValidatorCode } from './sql-validator';
|
|
14
14
|
import { generateCommonJsSessionTokenResolverCode } from './session-cookie-resolver';
|
|
15
|
+
import { TableAccess } from '@teleporthq/teleport-shared';
|
|
15
16
|
const DATA_NODE_TYPES = new Set([
|
|
16
17
|
'data-select',
|
|
17
18
|
'data-create-item',
|
|
@@ -32,6 +33,48 @@ export const needsDataAPIRoute = (usedNodeTypes) => {
|
|
|
32
33
|
}
|
|
33
34
|
return false;
|
|
34
35
|
};
|
|
36
|
+
/**
|
|
37
|
+
* The only tables a BROWSER reads through this route, in an app whose server
|
|
38
|
+
* code identifies itself with the app secret (see `__taBrowserIsReadOnly`).
|
|
39
|
+
*
|
|
40
|
+
* Every workflow data node runs server-side and presents the secret, so the
|
|
41
|
+
* browser's reads here are the storefront's own: the cart re-reading its
|
|
42
|
+
* products, the discount feed, the regional-pricing tables. Anything else a
|
|
43
|
+
* browser names — a merchant's own table, the AI assistant's conversations and
|
|
44
|
+
* knowledge base, `information_schema`, a `pg_*` catalog or statistics view —
|
|
45
|
+
* is refused, rather than refused only when a list of dangerous names
|
|
46
|
+
* remembered it. (An app without a secret cannot tell its server calls from a
|
|
47
|
+
* browser's; there `assertNoSystemCatalogRead` still keeps the catalogs out, and
|
|
48
|
+
* the shared protected set — `TableAccess.PROTECTED_TABLES`, the AI assistant's
|
|
49
|
+
* tables among them — the store's private tables.)
|
|
50
|
+
*/
|
|
51
|
+
export const BROWSER_READABLE_TABLES = [
|
|
52
|
+
'teleport_products',
|
|
53
|
+
'teleport_product_variants',
|
|
54
|
+
'teleport_discounts',
|
|
55
|
+
'teleport_shipping_zones',
|
|
56
|
+
'teleport_shipping_rates',
|
|
57
|
+
'teleport_tax_rates',
|
|
58
|
+
'teleport_store_locations',
|
|
59
|
+
'teleport_blog_posts',
|
|
60
|
+
];
|
|
61
|
+
/**
|
|
62
|
+
* What a browser is served of the readable tables whose unpublished rows sit
|
|
63
|
+
* beside the public ones — the same policy the per-table read routes apply
|
|
64
|
+
* (teleport-plugin-next-data-source `browser-row-policy.ts`, which this mirrors;
|
|
65
|
+
* keep the two in step). A browser may not filter or sort by a hidden column:
|
|
66
|
+
* a filter is an oracle for a column it never returns.
|
|
67
|
+
*/
|
|
68
|
+
export const BROWSER_ROW_POLICIES = {
|
|
69
|
+
teleport_blog_posts: {
|
|
70
|
+
predicate: "status = 'published'",
|
|
71
|
+
hiddenColumns: ['author_email', 'authorEmail'],
|
|
72
|
+
},
|
|
73
|
+
teleport_products: {
|
|
74
|
+
predicate: "LOWER(TRIM(status)) = 'active'",
|
|
75
|
+
hiddenColumns: [],
|
|
76
|
+
},
|
|
77
|
+
};
|
|
35
78
|
export const generateDataAPIRoute = (options = {}) => {
|
|
36
79
|
const validatorCode = generateSqlValidatorCode();
|
|
37
80
|
const authUsersTable = options.authUsersTableName || null;
|
|
@@ -49,7 +92,12 @@ ${
|
|
|
49
92
|
const LOW_STOCK_ALERTS_ENABLED = ${JSON.stringify(lowStockAlertsEnabled)};
|
|
50
93
|
const LOW_STOCK_THRESHOLD = ${JSON.stringify(lowStockThreshold)};
|
|
51
94
|
${validatorCode}
|
|
52
|
-
|
|
95
|
+
${
|
|
96
|
+
// The money-table lists and the guards over them, shared with the per-table
|
|
97
|
+
// read routes so both families refuse the same tables. No browser reads a
|
|
98
|
+
// protected table through THIS route (workflow data nodes run server-side),
|
|
99
|
+
// so the roles that may read from a browser are irrelevant here.
|
|
100
|
+
TableAccess.generateTableAccessHelperCode({ trustedReaderRoles: [] })}
|
|
53
101
|
function getPgSslFromEnv() {
|
|
54
102
|
if (process.env.TELEPORT_DB_SSL === 'false') return false;
|
|
55
103
|
if (process.env.TELEPORT_DB_SSL === 'true') return { rejectUnauthorized: false };
|
|
@@ -186,10 +234,28 @@ function isAllSentinelFilterValue(value, filter) {
|
|
|
186
234
|
return normalized === 'all' || normalized === 'any' || normalized === 'everything' || normalized === '__all__';
|
|
187
235
|
}
|
|
188
236
|
|
|
237
|
+
// A filter value that never reached the server: its binding produced nothing,
|
|
238
|
+
// or the client→server hand-off replaced an oversized value with a placeholder.
|
|
239
|
+
function isMissingFilterValue(value) {
|
|
240
|
+
if (value === undefined) return true;
|
|
241
|
+
return !!value && typeof value === 'object' && !Array.isArray(value) &&
|
|
242
|
+
(value.__truncated === true || value.__serializationError === true);
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
function refuseUnscopedWrite(field) {
|
|
246
|
+
var err = new Error('Refused: the filter on "' + (field || 'unknown') + '" has no value, so this write would change every row.');
|
|
247
|
+
err.status = 400;
|
|
248
|
+
return err;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
// \`strict\` (every UPDATE and DELETE): a filter that lost its value, or names no
|
|
252
|
+
// column, REFUSES the write instead of being left out — leaving it out widens
|
|
253
|
+
// the write to every row of the table. An empty list matches no row.
|
|
189
254
|
function buildWhereClause(filters, queryParams, startIndex, options) {
|
|
190
255
|
var conditions = [];
|
|
191
256
|
var paramIndex = startIndex;
|
|
192
257
|
var skipOptionalEmpty = !!(options && options.skipOptionalEmpty);
|
|
258
|
+
var strict = !!(options && options.strict);
|
|
193
259
|
|
|
194
260
|
if (!filters || !Array.isArray(filters) || filters.length === 0) {
|
|
195
261
|
return { clause: '', paramIndex: paramIndex };
|
|
@@ -200,15 +266,22 @@ function buildWhereClause(filters, queryParams, startIndex, options) {
|
|
|
200
266
|
for (var i = 0; i < filters.length; i++) {
|
|
201
267
|
var f = filters[i];
|
|
202
268
|
var field = f.source || f.field;
|
|
203
|
-
if (!field)
|
|
269
|
+
if (!field) {
|
|
270
|
+
if (strict) throw refuseUnscopedWrite('');
|
|
271
|
+
continue;
|
|
272
|
+
}
|
|
204
273
|
var value = f.destination !== undefined ? f.destination : f.value;
|
|
205
274
|
var operand = f.operand || f.operator || '=';
|
|
206
275
|
|
|
276
|
+
if (strict && isMissingFilterValue(value)) throw refuseUnscopedWrite(field);
|
|
207
277
|
if (value === undefined) continue;
|
|
208
278
|
if (skipOptionalEmpty && (isSkippableFilterValue(value) || isAllSentinelFilterValue(value, f))) continue;
|
|
209
279
|
|
|
210
280
|
if (Array.isArray(value)) {
|
|
211
|
-
if (value.length === 0)
|
|
281
|
+
if (value.length === 0) {
|
|
282
|
+
if (strict) conditions.push('FALSE');
|
|
283
|
+
continue;
|
|
284
|
+
}
|
|
212
285
|
var placeholders = value.map(function() { return '$' + (paramIndex++); });
|
|
213
286
|
queryParams.push.apply(queryParams, value);
|
|
214
287
|
if (operand === '!=') {
|
|
@@ -268,7 +341,7 @@ function buildWhereClause(filters, queryParams, startIndex, options) {
|
|
|
268
341
|
};
|
|
269
342
|
}
|
|
270
343
|
|
|
271
|
-
async function handleSelect(client, body) {
|
|
344
|
+
async function handleSelect(client, body, req) {
|
|
272
345
|
var tableName = body.tableName;
|
|
273
346
|
var filters = body.filters || [];
|
|
274
347
|
var sorts = body.sorts || [];
|
|
@@ -292,12 +365,32 @@ async function handleSelect(client, body) {
|
|
|
292
365
|
}
|
|
293
366
|
}
|
|
294
367
|
|
|
368
|
+
// A browser reads a feed table only as its feed: the pricing columns of the
|
|
369
|
+
// rows the DATABASE calls live. The window is therefore the server's
|
|
370
|
+
// judgement, not the browser clock's, and nothing unlaunched is handed out.
|
|
371
|
+
var feed = __taPublicFeed(req, tableName);
|
|
372
|
+
if (feed) {
|
|
373
|
+
__taAssertFeedFields(tableName, feed, filters.map(function(f) { return f && (f.source || f.field); }));
|
|
374
|
+
__taAssertFeedFields(tableName, feed, sorts.map(function(s) { return s && s.field; }));
|
|
375
|
+
}
|
|
376
|
+
// A browser reads a published table's public rows, and never names a hidden
|
|
377
|
+
// column — to read it, filter by it or sort by it.
|
|
378
|
+
var rowPolicy = __dataRowPolicy(req, tableName);
|
|
379
|
+
if (rowPolicy) {
|
|
380
|
+
__dataAssertVisibleFields(rowPolicy, filters.map(function(f) { return f && (f.source || f.field); }));
|
|
381
|
+
__dataAssertVisibleFields(rowPolicy, sorts.map(function(s) { return s && s.field; }));
|
|
382
|
+
__dataAssertVisibleFields(rowPolicy, selectedColumns);
|
|
383
|
+
}
|
|
384
|
+
|
|
295
385
|
var queryParams = [];
|
|
296
386
|
var cols = selectedColumns.length > 0 ? selectedColumns.join(', ') : '*';
|
|
387
|
+
if (feed) cols = feed.columns.join(', ');
|
|
297
388
|
var sql = 'SELECT ' + cols + ' FROM ' + tableName;
|
|
298
389
|
|
|
299
390
|
var where = buildWhereClause(filters, queryParams, 1, { skipOptionalEmpty: true });
|
|
300
391
|
sql += where.clause;
|
|
392
|
+
if (feed) sql += (where.clause ? ' AND ' : ' WHERE ') + feed.predicate;
|
|
393
|
+
if (rowPolicy) sql += (where.clause || feed ? ' AND ' : ' WHERE ') + '(' + rowPolicy.predicate + ')';
|
|
301
394
|
|
|
302
395
|
if (sorts.length > 0) {
|
|
303
396
|
var orderClauses = sorts.map(function(s) {
|
|
@@ -333,28 +426,43 @@ async function handleSelect(client, body) {
|
|
|
333
426
|
|
|
334
427
|
var result = await safeQuery(client, sql, queryParams, 'select');
|
|
335
428
|
var rows = Array.isArray(result.rows) ? result.rows : [];
|
|
429
|
+
// A browser reads the users table's profile, never its credentials.
|
|
430
|
+
if (!isInternalDataRequest(req)) rows = __taWithoutCredentials(rows, tableName);
|
|
431
|
+
if (rowPolicy) rows = __dataWithoutHidden(rowPolicy, rows);
|
|
336
432
|
|
|
337
433
|
var countSql = 'SELECT COUNT(*) FROM ' + tableName;
|
|
338
434
|
var countParams = [];
|
|
339
435
|
var countWhere = buildWhereClause(filters, countParams, 1, { skipOptionalEmpty: true });
|
|
340
436
|
countSql += countWhere.clause;
|
|
437
|
+
if (feed) countSql += (countWhere.clause ? ' AND ' : ' WHERE ') + feed.predicate;
|
|
438
|
+
if (rowPolicy) countSql += (countWhere.clause || feed ? ' AND ' : ' WHERE ') + '(' + rowPolicy.predicate + ')';
|
|
341
439
|
var countResult = await safeQuery(client, countSql, countParams, 'count');
|
|
342
440
|
var count = parseInt(countResult.rows[0].count, 10);
|
|
343
441
|
|
|
344
442
|
return { rows: rows, count: count };
|
|
345
443
|
}
|
|
346
444
|
|
|
347
|
-
async function handleCount(client, body) {
|
|
445
|
+
async function handleCount(client, body, req) {
|
|
348
446
|
var tableName = body.tableName;
|
|
349
447
|
var filters = body.filters || [];
|
|
350
448
|
|
|
351
449
|
// Validate table name
|
|
352
450
|
assertIdentifierSafe(tableName, 'table name');
|
|
353
451
|
|
|
452
|
+
var feed = __taPublicFeed(req, tableName);
|
|
453
|
+
if (feed) {
|
|
454
|
+
__taAssertFeedFields(tableName, feed, filters.map(function(f) { return f && (f.source || f.field); }));
|
|
455
|
+
}
|
|
456
|
+
var rowPolicy = __dataRowPolicy(req, tableName);
|
|
457
|
+
if (rowPolicy) {
|
|
458
|
+
__dataAssertVisibleFields(rowPolicy, filters.map(function(f) { return f && (f.source || f.field); }));
|
|
459
|
+
}
|
|
354
460
|
var queryParams = [];
|
|
355
461
|
var sql = 'SELECT COUNT(*) FROM ' + tableName;
|
|
356
462
|
var where = buildWhereClause(filters, queryParams, 1, { skipOptionalEmpty: true });
|
|
357
463
|
sql += where.clause;
|
|
464
|
+
if (feed) sql += (where.clause ? ' AND ' : ' WHERE ') + feed.predicate;
|
|
465
|
+
if (rowPolicy) sql += (where.clause || feed ? ' AND ' : ' WHERE ') + '(' + rowPolicy.predicate + ')';
|
|
358
466
|
|
|
359
467
|
var result = await safeQuery(client, sql, queryParams, 'count');
|
|
360
468
|
var count = parseInt(result.rows[0].count, 10);
|
|
@@ -516,6 +624,33 @@ function stampRequestLocale(tableName, entries, colTypes, requestLocale) {
|
|
|
516
624
|
return entries.concat([[LOCALE_COLUMN, requestLocale.slice(0, 10)]]);
|
|
517
625
|
}
|
|
518
626
|
|
|
627
|
+
// Columns a feature added after stores were provisioned: product options
|
|
628
|
+
// (the definitions on the product, the chosen configuration on an order line).
|
|
629
|
+
// A write naming one on a store whose table never gained it drops that column
|
|
630
|
+
// instead of failing the whole statement — an order must never lose its lines
|
|
631
|
+
// over a column that was not added. Only when the table's columns are known:
|
|
632
|
+
// an unreadable schema leaves the write exactly as it was.
|
|
633
|
+
var OPTIONAL_FEATURE_COLUMNS = {
|
|
634
|
+
teleport_products: ['option_groups', 'product_page'],
|
|
635
|
+
teleport_order_items: ['configuration', 'configuration_label'],
|
|
636
|
+
};
|
|
637
|
+
|
|
638
|
+
function dropMissingOptionalColumns(tableName, entries, colTypes) {
|
|
639
|
+
if (!Object.prototype.hasOwnProperty.call(OPTIONAL_FEATURE_COLUMNS, tableName)) return entries;
|
|
640
|
+
if (Object.keys(colTypes).length === 0) return entries;
|
|
641
|
+
var optional = OPTIONAL_FEATURE_COLUMNS[tableName];
|
|
642
|
+
var dropped = [];
|
|
643
|
+
var kept = entries.filter(function(e) {
|
|
644
|
+
var missing = optional.indexOf(e[0]) !== -1 && !colTypes[e[0]];
|
|
645
|
+
if (missing) dropped.push(e[0]);
|
|
646
|
+
return !missing;
|
|
647
|
+
});
|
|
648
|
+
if (dropped.length > 0) {
|
|
649
|
+
console.warn('[data-api] ' + tableName + ' has no ' + dropped.join(', ') + ' column; written without it.');
|
|
650
|
+
}
|
|
651
|
+
return kept;
|
|
652
|
+
}
|
|
653
|
+
|
|
519
654
|
async function handleCreate(client, body) {
|
|
520
655
|
var tableName = body.tableName;
|
|
521
656
|
var columnMappings = body.columnMappings || {};
|
|
@@ -543,6 +678,7 @@ async function handleCreate(client, body) {
|
|
|
543
678
|
|
|
544
679
|
var colTypes = await getColumnTypes(client, tableName);
|
|
545
680
|
entries = stampRequestLocale(tableName, entries, colTypes, body.__requestLocale);
|
|
681
|
+
entries = dropMissingOptionalColumns(tableName, entries, colTypes);
|
|
546
682
|
|
|
547
683
|
var TEXT_TYPES = { 'character varying': 1, 'text': 1, 'char': 1, 'character': 1, 'varchar': 1, 'name': 1 };
|
|
548
684
|
var columns = entries.map(function(e) { return e[0]; });
|
|
@@ -615,6 +751,10 @@ async function handleUpdate(client, body) {
|
|
|
615
751
|
}
|
|
616
752
|
|
|
617
753
|
var colTypes = await getColumnTypes(client, tableName);
|
|
754
|
+
entries = dropMissingOptionalColumns(tableName, entries, colTypes);
|
|
755
|
+
if (entries.length === 0) {
|
|
756
|
+
return { updatedCount: 0, item: null, id: null };
|
|
757
|
+
}
|
|
618
758
|
var TEXT_TYPES = { 'character varying': 1, 'text': 1, 'char': 1, 'character': 1, 'varchar': 1, 'name': 1 };
|
|
619
759
|
|
|
620
760
|
var queryParams = [];
|
|
@@ -632,7 +772,7 @@ async function handleUpdate(client, body) {
|
|
|
632
772
|
});
|
|
633
773
|
|
|
634
774
|
var sql = 'UPDATE ' + tableName + ' SET ' + setClauses.join(', ');
|
|
635
|
-
var where = buildWhereClause(filters, queryParams, paramIndex);
|
|
775
|
+
var where = buildWhereClause(filters, queryParams, paramIndex, { strict: true });
|
|
636
776
|
sql += where.clause;
|
|
637
777
|
sql += ' RETURNING *';
|
|
638
778
|
|
|
@@ -661,7 +801,7 @@ async function handleDelete(client, body) {
|
|
|
661
801
|
|
|
662
802
|
var queryParams = [];
|
|
663
803
|
var sql = 'DELETE FROM ' + tableName;
|
|
664
|
-
var where = buildWhereClause(filters, queryParams, 1);
|
|
804
|
+
var where = buildWhereClause(filters, queryParams, 1, { strict: true });
|
|
665
805
|
sql += where.clause;
|
|
666
806
|
|
|
667
807
|
var result = await safeQuery(client, sql, queryParams, 'delete');
|
|
@@ -705,19 +845,34 @@ function extractThresholdFromQuery(query) {
|
|
|
705
845
|
return isFinite(n) && n >= 0 ? n : LOW_STOCK_THRESHOLD;
|
|
706
846
|
}
|
|
707
847
|
|
|
708
|
-
// Resolves the base URL for an internal fire-and-forget POST
|
|
709
|
-
//
|
|
710
|
-
//
|
|
711
|
-
//
|
|
712
|
-
//
|
|
713
|
-
//
|
|
714
|
-
//
|
|
848
|
+
// Resolves the base URL for an internal fire-and-forget POST — the store's
|
|
849
|
+
// own origin, NEVER a host the request named: the POST carries the store's
|
|
850
|
+
// stock levels, and outside Vercel the Host header is whatever the caller
|
|
851
|
+
// sent. The rule of the server runtime's \`trustedBaseUrl\`
|
|
852
|
+
// (server-runtime-code.ts), inlined because this route must not depend on
|
|
853
|
+
// that module: on Vercel the request's host (the domain Vercel routed to this
|
|
854
|
+
// deployment); elsewhere NEXTAUTH_URL's origin when it is set — except that a
|
|
855
|
+
// local server on another port than a local NEXTAUTH_URL keeps its own
|
|
856
|
+
// loopback address (NEXTAUTH_URL stuck at :3000 while the dev server runs on
|
|
857
|
+
// :3001). Env vars are tried as fallbacks for the rare serverless
|
|
858
|
+
// background-work case where the request context isn't visible.
|
|
859
|
+
function isLoopbackHost(host) {
|
|
860
|
+
var name = String(host || '').replace(/:[0-9]+$/, '').toLowerCase();
|
|
861
|
+
return name === 'localhost' || name === '127.0.0.1' || name === '[::1]';
|
|
862
|
+
}
|
|
863
|
+
|
|
715
864
|
function resolveSelfBaseUrl(req) {
|
|
716
865
|
var host = req && req.headers && req.headers.host;
|
|
717
866
|
if (host) {
|
|
718
|
-
var proto = (req && req.headers && req.headers['x-forwarded-proto'])
|
|
719
|
-
|
|
720
|
-
|
|
867
|
+
var proto = (req && req.headers && req.headers['x-forwarded-proto']) || (isLoopbackHost(host) ? 'http' : 'https');
|
|
868
|
+
var requestOrigin = String(proto).split(',')[0].trim() + '://' + host;
|
|
869
|
+
if (process.env.VERCEL) return requestOrigin;
|
|
870
|
+
var configured = String(process.env.NEXTAUTH_URL || '').trim();
|
|
871
|
+
if (!configured) return requestOrigin;
|
|
872
|
+
var origin;
|
|
873
|
+
try { origin = new URL(configured).origin; } catch (e) { return requestOrigin; }
|
|
874
|
+
if (isLoopbackHost(host) && isLoopbackHost(new URL(origin).host)) return requestOrigin;
|
|
875
|
+
return origin;
|
|
721
876
|
}
|
|
722
877
|
if (process.env.NEXTAUTH_URL) return String(process.env.NEXTAUTH_URL).replace(/\\/+$/, '');
|
|
723
878
|
if (process.env.VERCEL_URL) return 'https://' + String(process.env.VERCEL_URL).replace(/\\/+$/, '');
|
|
@@ -752,7 +907,9 @@ function fireAndForgetLowStockAlert(req, rows, threshold) {
|
|
|
752
907
|
var fetchImpl = typeof fetch !== 'undefined' ? fetch : require('node-fetch');
|
|
753
908
|
fetchImpl(base + '/api/ecommerce/low-stock-alert', {
|
|
754
909
|
method: 'POST',
|
|
755
|
-
|
|
910
|
+
// The alert route emails the merchant only for the store's own server
|
|
911
|
+
// code, which presents the app secret.
|
|
912
|
+
headers: { 'Content-Type': 'application/json', 'x-internal-data-secret': process.env.NEXTAUTH_SECRET || '' },
|
|
756
913
|
body: JSON.stringify(payload),
|
|
757
914
|
}).catch(function(err) {
|
|
758
915
|
console.error('[data-api] low-stock alert POST failed: ' + (err && err.message ? err.message : String(err)));
|
|
@@ -800,21 +957,191 @@ async function handleRawQuery(client, body, req) {
|
|
|
800
957
|
return { rows: rows };
|
|
801
958
|
}
|
|
802
959
|
|
|
960
|
+
// Trusted internal server-side workflow calls (the data nodes of a server
|
|
961
|
+
// segment, password reset, server-side profile updates) carry the app's
|
|
962
|
+
// internal secret in a header — see __taIsInternalRequest. Direct
|
|
963
|
+
// (non-workflow) client calls have no secret and stay guarded.
|
|
964
|
+
function isInternalDataRequest(req) {
|
|
965
|
+
return __taIsInternalRequest(req);
|
|
966
|
+
}
|
|
967
|
+
|
|
968
|
+
var WRITE_OPERATIONS = { create: 1, update: 1, delete: 1 };
|
|
969
|
+
|
|
970
|
+
// See BROWSER_READABLE_TABLES / BROWSER_ROW_POLICIES in data-api-route-generator.ts.
|
|
971
|
+
var BROWSER_READABLE_TABLES = ${JSON.stringify(BROWSER_READABLE_TABLES)};
|
|
972
|
+
var BROWSER_ROW_POLICIES = ${JSON.stringify(BROWSER_ROW_POLICIES)};
|
|
973
|
+
|
|
974
|
+
// The table a structured request names, or null when it names another schema
|
|
975
|
+
// than the app's own: \`information_schema.tables\`, \`pg_catalog.pg_user\`.
|
|
976
|
+
function __dataPublicTable(tableName) {
|
|
977
|
+
var parts = String(tableName || '').trim().toLowerCase().replace(/"/g, '').split('.');
|
|
978
|
+
if (parts.length > 2 || (parts.length === 2 && parts[0] !== 'public')) return null;
|
|
979
|
+
return parts[parts.length - 1];
|
|
980
|
+
}
|
|
981
|
+
|
|
982
|
+
// Postgres searches pg_catalog before the app's own schema, so a bare \`pg_*\`
|
|
983
|
+
// name is a system catalog or statistics view (pg_user, pg_stats, pg_settings).
|
|
984
|
+
var SYSTEM_CATALOG_SQL_RE = /\\b(?:information_schema|pg_catalog|pg_toast)\\b|\\bpg_[a-z0-9_]+/i;
|
|
985
|
+
|
|
986
|
+
function __forbidSystemCatalog() {
|
|
987
|
+
var err = new Error('Forbidden: system catalogs are not readable through this route');
|
|
988
|
+
err.status = 403;
|
|
989
|
+
throw err;
|
|
990
|
+
}
|
|
991
|
+
|
|
992
|
+
// No caller but the app's own server code reads the database's catalogs — the
|
|
993
|
+
// schema, the roles, the planner's sampled column values of every table. Holds
|
|
994
|
+
// in an app without a secret too, where every caller counts as a browser.
|
|
995
|
+
function assertNoSystemCatalogRead(operation, body) {
|
|
996
|
+
var sql = operation === 'raw-query' ? body.query : body.rawQueryUserPart;
|
|
997
|
+
if (typeof sql === 'string' && sql.length > 0) {
|
|
998
|
+
var cleaned = __taCleanSql(sql);
|
|
999
|
+
if (!cleaned.ok || SYSTEM_CATALOG_SQL_RE.test(cleaned.text)) __forbidSystemCatalog();
|
|
1000
|
+
}
|
|
1001
|
+
if (operation === 'raw-query' || body.tableName === undefined) return;
|
|
1002
|
+
var table = __dataPublicTable(body.tableName);
|
|
1003
|
+
if (table === null || table.indexOf('pg_') === 0) __forbidSystemCatalog();
|
|
1004
|
+
}
|
|
1005
|
+
|
|
1006
|
+
// A browser's view of a readable table: the rows the storefront publishes,
|
|
1007
|
+
// never a hidden column. null for a server-side call, which reads it whole —
|
|
1008
|
+
// and in an app without a secret, where a server call (the scheduled-post
|
|
1009
|
+
// publisher, a blog workflow) cannot be told apart from a browser.
|
|
1010
|
+
function __dataRowPolicy(req, tableName) {
|
|
1011
|
+
if (!__taBrowserIsReadOnly(req)) return null;
|
|
1012
|
+
var table = __dataPublicTable(tableName);
|
|
1013
|
+
return table && Object.prototype.hasOwnProperty.call(BROWSER_ROW_POLICIES, table) ? BROWSER_ROW_POLICIES[table] : null;
|
|
1014
|
+
}
|
|
1015
|
+
|
|
1016
|
+
function __dataIsHidden(policy, field) {
|
|
1017
|
+
var parts = String(field == null ? '' : field).replace(/"/g, '').trim().toLowerCase().split('.');
|
|
1018
|
+
var name = parts[parts.length - 1];
|
|
1019
|
+
for (var i = 0; i < policy.hiddenColumns.length; i++) {
|
|
1020
|
+
if (policy.hiddenColumns[i].toLowerCase() === name) return true;
|
|
1021
|
+
}
|
|
1022
|
+
return false;
|
|
1023
|
+
}
|
|
1024
|
+
|
|
1025
|
+
function __dataAssertVisibleFields(policy, fields) {
|
|
1026
|
+
for (var i = 0; i < fields.length; i++) {
|
|
1027
|
+
if (fields[i] && __dataIsHidden(policy, fields[i])) {
|
|
1028
|
+
var err = new Error('Forbidden: ' + fields[i] + ' is not readable');
|
|
1029
|
+
err.status = 403;
|
|
1030
|
+
throw err;
|
|
1031
|
+
}
|
|
1032
|
+
}
|
|
1033
|
+
}
|
|
1034
|
+
|
|
1035
|
+
function __dataWithoutHidden(policy, rows) {
|
|
1036
|
+
if (!Array.isArray(rows) || policy.hiddenColumns.length === 0) return rows;
|
|
1037
|
+
return rows.map(function(row) {
|
|
1038
|
+
if (!row || typeof row !== 'object') return row;
|
|
1039
|
+
var copy = {};
|
|
1040
|
+
Object.keys(row).forEach(function(key) {
|
|
1041
|
+
if (!__dataIsHidden(policy, key)) copy[key] = row[key];
|
|
1042
|
+
});
|
|
1043
|
+
return copy;
|
|
1044
|
+
});
|
|
1045
|
+
}
|
|
1046
|
+
|
|
1047
|
+
function __forbidBrowserOperation(what) {
|
|
1048
|
+
var err = new Error('Forbidden: ' + what + ' is only available to server-side workflow nodes');
|
|
1049
|
+
err.status = 403;
|
|
1050
|
+
throw err;
|
|
1051
|
+
}
|
|
1052
|
+
|
|
1053
|
+
// Refuses a browser's access to the money tables (see the shared table-access
|
|
1054
|
+
// helper above); a trusted internal call passes untouched. Where the app can
|
|
1055
|
+
// tell its own server-side calls apart (__taBrowserIsReadOnly), a browser only
|
|
1056
|
+
// reads, through the structured select and count.
|
|
1057
|
+
function assertTableAccess(req, operation, body) {
|
|
1058
|
+
if (isInternalDataRequest(req)) return;
|
|
1059
|
+
if (!body || typeof body !== 'object') return;
|
|
1060
|
+
if (__taBrowserIsReadOnly(req)) {
|
|
1061
|
+
if (operation !== 'select' && operation !== 'count') __forbidBrowserOperation('the ' + operation + ' operation');
|
|
1062
|
+
if (body.rawQueryUserPart) __forbidBrowserOperation('a raw query');
|
|
1063
|
+
if (BROWSER_READABLE_TABLES.indexOf(__dataPublicTable(body.tableName)) === -1) {
|
|
1064
|
+
__forbidBrowserOperation('reading ' + String(body.tableName || 'this table'));
|
|
1065
|
+
}
|
|
1066
|
+
}
|
|
1067
|
+
assertNoSystemCatalogRead(operation, body);
|
|
1068
|
+
if (operation === 'raw-query') {
|
|
1069
|
+
if (typeof body.query === 'string') __taAssertSqlTextAllowed(body.query);
|
|
1070
|
+
return;
|
|
1071
|
+
}
|
|
1072
|
+
var table = __taNormalizeTable(body.tableName);
|
|
1073
|
+
if (__TA_PROTECTED_TABLES.indexOf(table) !== -1) __taForbid(table);
|
|
1074
|
+
if (WRITE_OPERATIONS[operation] && __TA_WRITE_PROTECTED_TABLES.indexOf(table) !== -1) __taForbid(table);
|
|
1075
|
+
// A select's raw override replaces the assembled SELECT wholesale, so its
|
|
1076
|
+
// text is checked like a raw query rather than trusting \`tableName\`.
|
|
1077
|
+
if (operation === 'select' && typeof body.rawQueryUserPart === 'string') {
|
|
1078
|
+
__taAssertSqlTextAllowed(body.rawQueryUserPart);
|
|
1079
|
+
}
|
|
1080
|
+
}
|
|
1081
|
+
|
|
1082
|
+
// The columns of the auth users table that decide what a session may DO, not
|
|
1083
|
+
// who it is. The session token carries role / roleName / roles off the
|
|
1084
|
+
// \`users\` row, and the middleware's page gates and the money-table guard
|
|
1085
|
+
// both read the role off it — so a browser that could write one of these
|
|
1086
|
+
// columns would be handing itself the store administrator's reads. Everything
|
|
1087
|
+
// else on the row stays writable: a generated profile form updates whatever
|
|
1088
|
+
// columns the merchant put there, and only the server-side segments (which
|
|
1089
|
+
// present the app secret) may grant a role.
|
|
1090
|
+
var AUTH_ROLE_COLUMNS = { role: 1, roles: 1, rolename: 1, role_name: 1 };
|
|
1091
|
+
|
|
1092
|
+
// The identity table this route guards, and \`users\`, which is where the auth
|
|
1093
|
+
// options read the session's role from whatever the identity table is called.
|
|
1094
|
+
var ROLE_SOURCE_TABLES = AUTH_USERS_TABLE
|
|
1095
|
+
? [__taNormalizeTable(AUTH_USERS_TABLE), 'users'].filter(function(t, i, all) { return all.indexOf(t) === i; })
|
|
1096
|
+
: [];
|
|
1097
|
+
|
|
1098
|
+
function __forbidRoleWrite(what) {
|
|
1099
|
+
var err = new Error('Forbidden: ' + what + ' is not settable from a browser');
|
|
1100
|
+
err.status = 403;
|
|
1101
|
+
throw err;
|
|
1102
|
+
}
|
|
1103
|
+
|
|
1104
|
+
// Refuses a browser every way of writing a role column: a create or update
|
|
1105
|
+
// naming one (however the column is spelled), and any raw statement that
|
|
1106
|
+
// writes and mentions a role-source table — a positional INSERT or a
|
|
1107
|
+
// row-valued SET names no column, so the statement is refused whole, the way
|
|
1108
|
+
// the write-protected money tables are.
|
|
1109
|
+
function assertNoBrowserRoleWrite(req, operation, body) {
|
|
1110
|
+
if (ROLE_SOURCE_TABLES.length === 0 || isInternalDataRequest(req)) return;
|
|
1111
|
+
if (!body || typeof body !== 'object') return;
|
|
1112
|
+
var sql = operation === 'raw-query' ? body.query : operation === 'select' ? body.rawQueryUserPart : null;
|
|
1113
|
+
if (typeof sql === 'string' && sql.length > 0) {
|
|
1114
|
+
var cleaned = __taCleanSql(sql);
|
|
1115
|
+
if (cleaned.ok && !__TA_SQL_WRITE_RE.test(cleaned.text)) return;
|
|
1116
|
+
for (var ti = 0; ti < ROLE_SOURCE_TABLES.length; ti++) {
|
|
1117
|
+
if (__taSqlMentionsTable(sql, ROLE_SOURCE_TABLES[ti])) __forbidRoleWrite('a write to ' + ROLE_SOURCE_TABLES[ti]);
|
|
1118
|
+
}
|
|
1119
|
+
return;
|
|
1120
|
+
}
|
|
1121
|
+
if (operation !== 'create' && operation !== 'update') return;
|
|
1122
|
+
if (ROLE_SOURCE_TABLES.indexOf(__taNormalizeTable(body.tableName)) === -1) return;
|
|
1123
|
+
var columnMappings = body.columnMappings || {};
|
|
1124
|
+
var written = Array.isArray(columnMappings)
|
|
1125
|
+
? columnMappings.map(function(m) { return m && (m.source || m.column); })
|
|
1126
|
+
: Object.keys(columnMappings);
|
|
1127
|
+
for (var i = 0; i < written.length; i++) {
|
|
1128
|
+
if (AUTH_ROLE_COLUMNS[__taNormalizeTable(written[i])]) __forbidRoleWrite(written[i]);
|
|
1129
|
+
}
|
|
1130
|
+
}
|
|
1131
|
+
|
|
803
1132
|
// Enforces that any update/delete against the auth users table is keyed by
|
|
804
1133
|
// the session user's id. Prevents a logged-in user from coercing a mutation
|
|
805
1134
|
// targeting another user's row via a client-supplied filter.
|
|
806
1135
|
async function assertSessionOwnsUsersRow(req, operation, body) {
|
|
807
1136
|
if (!AUTH_USERS_TABLE) return;
|
|
808
1137
|
if (operation !== 'update' && operation !== 'delete') return;
|
|
809
|
-
|
|
1138
|
+
// Schema-qualified and quoted spellings reach the SAME table — the identifier
|
|
1139
|
+
// validator allows both — so the guard compares the bare name.
|
|
1140
|
+
if (!body || __taNormalizeTable(body.tableName) !== __taNormalizeTable(AUTH_USERS_TABLE)) return;
|
|
810
1141
|
|
|
811
1142
|
// Trusted internal server-side workflow calls (e.g. password reset, which has
|
|
812
|
-
// NO logged-in session
|
|
813
|
-
|
|
814
|
-
// browser client cannot forge it — these calls bypass the per-session
|
|
815
|
-
// ownership check. Direct (non-workflow) client calls have no secret and stay guarded.
|
|
816
|
-
var internalSecret = req && req.headers && req.headers['x-internal-data-secret'];
|
|
817
|
-
if (internalSecret && process.env.NEXTAUTH_SECRET && internalSecret === process.env.NEXTAUTH_SECRET) {
|
|
1143
|
+
// NO logged-in session) bypass the per-session ownership check.
|
|
1144
|
+
if (isInternalDataRequest(req)) {
|
|
818
1145
|
return;
|
|
819
1146
|
}
|
|
820
1147
|
|
|
@@ -862,16 +1189,18 @@ module.exports = async function handler(req, res) {
|
|
|
862
1189
|
var client = getClient();
|
|
863
1190
|
|
|
864
1191
|
try {
|
|
1192
|
+
assertTableAccess(req, operation, body);
|
|
1193
|
+
assertNoBrowserRoleWrite(req, operation, body);
|
|
865
1194
|
await assertSessionOwnsUsersRow(req, operation, body);
|
|
866
1195
|
await client.connect();
|
|
867
1196
|
var result;
|
|
868
1197
|
|
|
869
1198
|
switch (operation) {
|
|
870
1199
|
case 'select':
|
|
871
|
-
result = await handleSelect(client, body);
|
|
1200
|
+
result = await handleSelect(client, body, req);
|
|
872
1201
|
break;
|
|
873
1202
|
case 'count':
|
|
874
|
-
result = await handleCount(client, body);
|
|
1203
|
+
result = await handleCount(client, body, req);
|
|
875
1204
|
break;
|
|
876
1205
|
case 'create':
|
|
877
1206
|
result = await handleCreate(client, body);
|
|
@@ -896,7 +1225,12 @@ module.exports = async function handler(req, res) {
|
|
|
896
1225
|
} catch (error) {
|
|
897
1226
|
// Return proper status codes for validation errors
|
|
898
1227
|
var statusCode = error.status || 500;
|
|
899
|
-
|
|
1228
|
+
// An error this route raised for the caller carries a status and a message
|
|
1229
|
+
// written for it. Anything else is the database's, and its text names
|
|
1230
|
+
// tables, columns, constraints and values: it stays in the server log. The
|
|
1231
|
+
// SQLSTATE travels on — a caller can act on it (23505, a duplicate) and it
|
|
1232
|
+
// says nothing about the schema.
|
|
1233
|
+
var errorResponse = { error: error.status ? error.message || 'Request refused' : 'Internal server error' };
|
|
900
1234
|
|
|
901
1235
|
if (error.code === 'FORBIDDEN_SQL_OPERATION') {
|
|
902
1236
|
errorResponse.error = 'FORBIDDEN_SQL_OPERATION';
|
|
@@ -907,6 +1241,9 @@ module.exports = async function handler(req, res) {
|
|
|
907
1241
|
errorResponse.message = error.message;
|
|
908
1242
|
} else {
|
|
909
1243
|
console.error('Data API error (' + operation + '):', error);
|
|
1244
|
+
if (!error.status && typeof error.code === 'string' && /^[0-9A-Z]{5}$/.test(error.code)) {
|
|
1245
|
+
errorResponse.code = error.code;
|
|
1246
|
+
}
|
|
910
1247
|
}
|
|
911
1248
|
|
|
912
1249
|
return res.status(statusCode).json(errorResponse);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-api-route-generator.js","sourceRoot":"","sources":["../../src/data-api-route-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAC1D,OAAO,EAAE,wCAAwC,EAAE,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"data-api-route-generator.js","sourceRoot":"","sources":["../../src/data-api-route-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAC1D,OAAO,EAAE,wCAAwC,EAAE,MAAM,2BAA2B,CAAA;AACpF,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAEzD,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IAC9B,aAAa;IACb,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,YAAY;IACZ,gBAAgB;IAChB,uEAAuE;IACvE,0EAA0E;IAC1E,sCAAsC;IACtC,yBAAyB;CAC1B,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,aAA0B,EAAW,EAAE;IACvE,KAAK,MAAM,EAAE,IAAI,aAAa,EAAE;QAC9B,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YAC3B,OAAO,IAAI,CAAA;SACZ;KACF;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAqBD;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAA0B;IAC5D,mBAAmB;IACnB,2BAA2B;IAC3B,oBAAoB;IACpB,yBAAyB;IACzB,yBAAyB;IACzB,oBAAoB;IACpB,0BAA0B;IAC1B,qBAAqB;CACtB,CAAA;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAE7B;IACF,mBAAmB,EAAE;QACnB,SAAS,EAAE,sBAAsB;QACjC,aAAa,EAAE,CAAC,cAAc,EAAE,aAAa,CAAC;KAC/C;IACD,iBAAiB,EAAE;QACjB,SAAS,EAAE,gCAAgC;QAC3C,aAAa,EAAE,EAAE;KAClB;CACF,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,UAA+B,EAAE,EAAU,EAAE;IAChF,MAAM,aAAa,GAAG,wBAAwB,EAAE,CAAA;IAChD,MAAM,cAAc,GAAG,OAAO,CAAC,kBAAkB,IAAI,IAAI,CAAA;IACzD,MAAM,qBAAqB,GAAG,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAA;IAC7D,MAAM,iBAAiB,GACrB,OAAO,OAAO,CAAC,iBAAiB,KAAK,QAAQ,IAAI,OAAO,CAAC,iBAAiB,IAAI,CAAC;QAC7E,CAAC,CAAC,OAAO,CAAC,iBAAiB;QAC3B,CAAC,CAAC,CAAC,CAAA;IAEP,OAAO;EACP;IACA,mEAAmE;IACnE,4EAA4E;IAC5E,6EAA6E;IAC7E,qEAAqE;IACrE,cAAc,CAAC,CAAC,CAAC,wCAAwC,EAAE,CAAC,CAAC,CAAC,EAChE,4BAA4B,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;mCACvB,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC;8BAC1C,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC;EAC7D,aAAa;EACb;IACA,4EAA4E;IAC5E,0EAA0E;IAC1E,4EAA4E;IAC5E,iEAAiE;IACjE,WAAW,CAAC,6BAA6B,CAAC,EAAE,kBAAkB,EAAE,EAAE,EAAE,CACtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAu2BgC,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC;6BAC1C,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8RhE,CAAA;AACD,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cart-availability.d.ts","sourceRoot":"","sources":["../../../src/ecommerce/cart-availability.ts"],"names":[],"mappings":"AAkDA,eAAO,MAAM,oCAAoC,SAAU,MAAM,KAAG,OAiBnE,CAAA;AAED,eAAO,MAAM,gCAAgC,oBAAqB,OAAO,KAAG,MA2K3E,CAAA;AAYD,eAAO,MAAM,4BAA4B,SAAU,MAAM,KAAG,OAuB3D,CAAA;AASD,eAAO,MAAM,wBAAwB,QAAO,MA8D3C,CAAA;AAQD,eAAO,MAAM,4BAA4B,SAAU,MAAM,KAAG,OAoB3D,CAAA;AAWD,eAAO,MAAM,wBAAwB,QAAO,
|
|
1
|
+
{"version":3,"file":"cart-availability.d.ts","sourceRoot":"","sources":["../../../src/ecommerce/cart-availability.ts"],"names":[],"mappings":"AAkDA,eAAO,MAAM,oCAAoC,SAAU,MAAM,KAAG,OAiBnE,CAAA;AAED,eAAO,MAAM,gCAAgC,oBAAqB,OAAO,KAAG,MA2K3E,CAAA;AAYD,eAAO,MAAM,4BAA4B,SAAU,MAAM,KAAG,OAuB3D,CAAA;AASD,eAAO,MAAM,wBAAwB,QAAO,MA8D3C,CAAA;AAQD,eAAO,MAAM,4BAA4B,SAAU,MAAM,KAAG,OAoB3D,CAAA;AAWD,eAAO,MAAM,wBAAwB,QAAO,MAwH3C,CAAA;AAID,eAAO,MAAM,WAAW;iDA3cmC,MAAM,KAAG,OAAO;yCA0MxB,MAAM,KAAG,OAAO;yCAsGhB,MAAM,KAAG,OAAO;wDA7RD,OAAO,KAAG,MAAM;oCAuNtC,MAAM;oCAqGN,MAAM;CAmIjD,CAAA"}
|