PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 3.0.0-beta2
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v3.0.0-beta2
4.7.0 4.6.6 4.6.5 4.6.4 4.6.3 4.6.2 4.6.1 4.6.0 4.5.1 4.5.0 4.4.2 4.4.1 4.4.0 4.3.3 4.3.2 4.3.1 4.3.0 4.2.3 4.2.2 4.2.1 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 1.10.0 1.10.1 1.10.2 1.10.3 1.10.4 1.11.0 1.11.1 1.11.2 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.4.0 1.4.1 1.4.2 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.9.0 1.9.1 1.9.2 1.9.3 1.9.4 1.9.5 2.0.0 2.0.1 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.10.0 2.10.1 2.11.0 2.11.1 2.11.2 2.11.3 2.11.4 2.12.0 2.13.0 2.14.0 2.14.1 2.15.0 2.15.1 2.16.0 2.16.1 2.16.2 2.16.3 2.17.0 2.17.1 2.17.2 2.18.0 2.19.0 2.19.2 2.19.3 2.19.4 2.2.0 2.2.1 2.20.0 2.20.1 2.20.2 2.20.3 2.20.4 2.20.5 2.20.6 2.21.0 2.22.0 2.22.1 2.23.0 2.24.0 2.25.0 2.25.1 2.25.2 2.26.0 2.27.0 2.27.1 2.28.0 2.29.0 2.29.1 2.29.2 2.29.3 2.29.4 2.3.0 2.3.1 2.30.0 2.31.0 2.31.1 2.31.2 2.31.3 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.40.0 2.40.1 2.5.0 2.5.1 2.5.2 2.6.0 2.6.1 2.6.2 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.8.2 2.8.3 2.8.4 2.9.0 3.0.0 3.0.0-RC1 3.0.0-RC2 3.0.0-beta1 3.0.0-beta2 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.10.0 3.10.1 3.11.0 3.12.0 3.13.0 3.13.1 3.13.2 3.13.3 3.13.4 3.14.0 3.15.0 3.15.1 3.15.2 3.15.3 3.15.4 3.15.5 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.16.6 3.16.7 3.16.8 3.17.0 3.17.1 3.17.2 3.17.3 3.17.4 3.17.5 3.17.6 3.18.0 3.19.0 3.19.1 3.19.2 3.2.0 3.2.1 3.2.2 3.20.0 3.20.1 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.4.3 3.5.0 3.5.1 3.5.2 3.5.3 3.6.0 3.6.1 3.6.2 3.7.0 3.7.1 3.7.2 3.7.3 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.9.0 4.0.0 4.0.1 4.0.2 4.0.3 trunk 4.1.0 0.2.19.1 4.1.1 1.0.0 4.2.0 1.0.1 1.0.2
surecart / dist / components / esm / sc-stripe-payment-request.entry.js
surecart / dist / components / esm Last commit date
MockProcessor-498b60c5.js 1 year ago MockProcessor-498b60c5.js.map 1 year ago add-query-args-0e2a8393.js 1 year ago add-query-args-0e2a8393.js.map 1 year ago address-b892540d.js 1 year ago address-b892540d.js.map 1 year ago animation-registry-12eed2e3.js 1 year ago animation-registry-12eed2e3.js.map 1 year ago app-globals-707edcd4.js 1 year ago app-globals-707edcd4.js.map 1 year ago consumer-e06b16d3.js 1 year ago consumer-e06b16d3.js.map 1 year ago countries-c2f41f03.js 1 year ago countries-c2f41f03.js.map 1 year ago currency-a0c9bff4.js 1 year ago currency-a0c9bff4.js.map 1 year ago error-12ea55b3.js 1 year ago error-12ea55b3.js.map 1 year ago fetch-e3c5d1b9.js 1 year ago fetch-e3c5d1b9.js.map 1 year ago form-data-76641f16.js 1 year ago form-data-76641f16.js.map 1 year ago functions-2a4a4ba3.js 1 year ago functions-2a4a4ba3.js.map 1 year ago getters-09dda855.js 1 year ago getters-09dda855.js.map 1 year ago getters-1a55b8a4.js 1 year ago getters-1a55b8a4.js.map 1 year ago getters-26526b7c.js 1 year ago getters-26526b7c.js.map 1 year ago getters-a7eec27c.js 1 year ago getters-a7eec27c.js.map 1 year ago getters-b1d93841.js 1 year ago getters-b1d93841.js.map 1 year ago google-a86aa761.js 1 year ago google-a86aa761.js.map 1 year ago google-dd89f242.js 1 year ago google-dd89f242.js.map 1 year ago index-06061d4e.js 1 year ago index-06061d4e.js.map 1 year ago index-675be13e.js 1 year ago index-675be13e.js.map 1 year ago index-745b6bec.js 1 year ago index-745b6bec.js.map 1 year ago index-822e5799.js 1 year ago index-822e5799.js.map 1 year ago index-871d88b8.js 1 year ago index-871d88b8.js.map 1 year ago index-c5a96d53.js 2 years ago index-c5a96d53.js.map 2 years ago index.js 1 year ago index.js.map 2 years ago inline-c012a0f9.js 1 year ago inline-c012a0f9.js.map 1 year ago lazy-deb42890.js 1 year ago lazy-deb42890.js.map 1 year ago library-e110eea6.js 1 year ago library-e110eea6.js.map 1 year ago loader.js 1 year ago loader.js.map 1 year ago media-d21119a3.js 1 year ago media-d21119a3.js.map 1 year ago mutations-066b82f0.js 1 year ago mutations-066b82f0.js.map 1 year ago mutations-7ba12644.js 1 year ago mutations-7ba12644.js.map 1 year ago mutations-e77bd122.js 1 year ago mutations-e77bd122.js.map 1 year ago mutations-ed6d0770.js 1 year ago mutations-ed6d0770.js.map 1 year ago mutations-f11a19f9.js 1 year ago mutations-f11a19f9.js.map 1 year ago page-align-0cdacf32.js 1 year ago page-align-0cdacf32.js.map 1 year ago price-d5770168.js 1 year ago price-d5770168.js.map 1 year ago pure-963214cb.js 1 year ago pure-963214cb.js.map 1 year ago quantity-1f39f750.js 1 year ago quantity-1f39f750.js.map 1 year ago remove-query-args-938c53ea.js 1 year ago remove-query-args-938c53ea.js.map 1 year ago sc-address_3.entry.js 1 year ago sc-address_3.entry.js.map 1 year ago sc-alert_13.entry.js 1 year ago sc-alert_13.entry.js.map 1 year ago sc-avatar.entry.js 1 year ago sc-avatar.entry.js.map 1 year ago sc-badge-notice.entry.js 1 year ago sc-badge-notice.entry.js.map 1 year ago sc-breadcrumb.entry.js 1 year ago sc-breadcrumb.entry.js.map 1 year ago sc-breadcrumbs.entry.js 1 year ago sc-breadcrumbs.entry.js.map 1 year ago sc-button-group.entry.js 1 year ago sc-button-group.entry.js.map 1 year ago sc-cancel-dialog_2.entry.js 1 year ago sc-cancel-dialog_2.entry.js.map 1 year ago sc-cancel-discount_4.entry.js 1 year ago sc-cancel-discount_4.entry.js.map 1 year ago sc-card.entry.js 1 year ago sc-card.entry.js.map 1 year ago sc-cart-button.entry.js 1 year ago sc-cart-button.entry.js.map 1 year ago sc-cart-form-submit.entry.js 1 year ago sc-cart-form-submit.entry.js.map 1 year ago sc-cart-form.entry.js 1 year ago sc-cart-form.entry.js.map 1 year ago sc-cart-header.entry.js 1 year ago sc-cart-header.entry.js.map 1 year ago sc-cart-icon.entry.js 1 year ago sc-cart-icon.entry.js.map 1 year ago sc-cart-loader.entry.js 1 year ago sc-cart-loader.entry.js.map 1 year ago sc-cart-session-provider_3.entry.js 1 year ago sc-cart-session-provider_3.entry.js.map 1 year ago sc-cart-submit.entry.js 1 year ago sc-cart-submit.entry.js.map 1 year ago sc-cart.entry.js 1 year ago sc-cart.entry.js.map 1 year ago sc-cc-logo_2.entry.js 1 year ago sc-cc-logo_2.entry.js.map 1 year ago sc-charges-list.entry.js 1 year ago sc-charges-list.entry.js.map 1 year ago sc-checkout-form-errors.entry.js 1 year ago sc-checkout-form-errors.entry.js.map 1 year ago sc-checkout-mollie-payment_2.entry.js 1 year ago sc-checkout-mollie-payment_2.entry.js.map 1 year ago sc-checkout-product-price-variant-selector.entry.js 1 year ago sc-checkout-product-price-variant-selector.entry.js.map 1 year ago sc-checkout-stock-alert_8.entry.js 1 year ago sc-checkout-stock-alert_8.entry.js.map 1 year ago sc-checkout.entry.js 1 year ago sc-checkout.entry.js.map 1 year ago sc-choice-container.entry.js 1 year ago sc-choice-container.entry.js.map 1 year ago sc-choice.entry.js 1 year ago sc-choice.entry.js.map 1 year ago sc-choices.entry.js 1 year ago sc-choices.entry.js.map 1 year ago sc-column_2.entry.js 1 year ago sc-column_2.entry.js.map 1 year ago sc-compact-address_11.entry.js 1 year ago sc-compact-address_11.entry.js.map 1 year ago sc-conditional-form.entry.js 1 year ago sc-conditional-form.entry.js.map 1 year ago sc-consumer.entry.js 1 year ago sc-consumer.entry.js.map 1 year ago sc-coupon-form.entry.js 1 year ago sc-coupon-form.entry.js.map 1 year ago sc-custom-order-price-input.entry.js 1 year ago sc-custom-order-price-input.entry.js.map 1 year ago sc-customer-details.entry.js 1 year ago sc-customer-details.entry.js.map 1 year ago sc-customer-edit.entry.js 1 year ago sc-customer-edit.entry.js.map 1 year ago sc-customer-email.entry.js 1 year ago sc-customer-email.entry.js.map 1 year ago sc-customer-firstname.entry.js 1 year ago sc-customer-firstname.entry.js.map 1 year ago sc-customer-lastname.entry.js 1 year ago sc-customer-lastname.entry.js.map 1 year ago sc-customer-name.entry.js 1 year ago sc-customer-name.entry.js.map 1 year ago sc-customer-phone.entry.js 1 year ago sc-customer-phone.entry.js.map 1 year ago sc-dashboard-customer-details.entry.js 1 year ago sc-dashboard-customer-details.entry.js.map 1 year ago sc-dashboard-downloads-list.entry.js 1 year ago sc-dashboard-downloads-list.entry.js.map 1 year ago sc-divider.entry.js 1 year ago sc-divider.entry.js.map 1 year ago sc-donation-choices.entry.js 1 year ago sc-donation-choices.entry.js.map 1 year ago sc-downloads-list.entry.js 1 year ago sc-downloads-list.entry.js.map 1 year ago sc-dropdown_3.entry.js 1 year ago sc-dropdown_3.entry.js.map 1 year ago sc-empty.entry.js 1 year ago sc-empty.entry.js.map 1 year ago sc-express-payment.entry.js 1 year ago sc-express-payment.entry.js.map 1 year ago sc-feature-demo-banner.entry.js 1 year ago sc-feature-demo-banner.entry.js.map 1 year ago sc-form-control_2.entry.js 1 year ago sc-form-control_2.entry.js.map 1 year ago sc-form-row.entry.js 1 year ago sc-form-row.entry.js.map 1 year ago sc-form.entry.js 1 year ago sc-form.entry.js.map 1 year ago sc-format-bytes.entry.js 1 year ago sc-format-bytes.entry.js.map 1 year ago sc-format-interval.entry.js 1 year ago sc-format-interval.entry.js.map 1 year ago sc-fulfillment-shipping-status-badge.entry.js 1 year ago sc-fulfillment-shipping-status-badge.entry.js.map 1 year ago sc-fulfillments.entry.js 1 year ago sc-fulfillments.entry.js.map 1 year ago sc-heading_2.entry.js 1 year ago sc-heading_2.entry.js.map 1 year ago sc-image-slider.entry.js 1 year ago sc-image-slider.entry.js.map 1 year ago sc-invoices-list.entry.js 1 year ago sc-invoices-list.entry.js.map 1 year ago sc-license.entry.js 1 year ago sc-license.entry.js.map 1 year ago sc-licenses-list.entry.js 1 year ago sc-licenses-list.entry.js.map 1 year ago sc-line-item-bump.entry.js 1 year ago sc-line-item-bump.entry.js.map 1 year ago sc-line-item-total.entry.js 1 year ago sc-line-item-total.entry.js.map 1 year ago sc-line-item.entry.js 1 year ago sc-line-item.entry.js.map 1 year ago sc-line-items-provider.entry.js 1 year ago sc-line-items-provider.entry.js.map 1 year ago sc-line-items.entry.js 1 year ago sc-line-items.entry.js.map 1 year ago sc-login-form.entry.js 1 year ago sc-login-form.entry.js.map 1 year ago sc-manual-payment-method_3.entry.js 1 year ago sc-manual-payment-method_3.entry.js.map 1 year ago sc-menu-divider.entry.js 1 year ago sc-menu-divider.entry.js.map 1 year ago sc-menu-label_2.entry.js 1 year ago sc-menu-label_2.entry.js.map 1 year ago sc-mollie-add-method.entry.js 1 year ago sc-mollie-add-method.entry.js.map 1 year ago sc-order-confirmation-customer.entry.js 1 year ago sc-order-confirmation-customer.entry.js.map 1 year ago sc-order-confirmation-details.entry.js 1 year ago sc-order-confirmation-details.entry.js.map 1 year ago sc-order-confirmation-line-items_2.entry.js 1 year ago sc-order-confirmation-line-items_2.entry.js.map 1 year ago sc-order-confirmation.entry.js 1 year ago sc-order-confirmation.entry.js.map 1 year ago sc-order-coupon-form.entry.js 1 year ago sc-order-coupon-form.entry.js.map 1 year ago sc-order-detail.entry.js 1 year ago sc-order-detail.entry.js.map 1 year ago sc-order-fulfillment-badge.entry.js 1 year ago sc-order-fulfillment-badge.entry.js.map 1 year ago sc-order-manual-instructions.entry.js 1 year ago sc-order-manual-instructions.entry.js.map 1 year ago sc-order-password.entry.js 1 year ago sc-order-password.entry.js.map 1 year ago sc-order-return-badge.entry.js 1 year ago sc-order-return-badge.entry.js.map 1 year ago sc-order-shipment-badge.entry.js 1 year ago sc-order-shipment-badge.entry.js.map 1 year ago sc-order-status-badge.entry.js 1 year ago sc-order-status-badge.entry.js.map 1 year ago sc-order-submit.entry.js 1 year ago sc-order-submit.entry.js.map 1 year ago sc-order-summary.entry.js 1 year ago sc-order-summary.entry.js.map 1 year ago sc-order.entry.js 1 year ago sc-order.entry.js.map 1 year ago sc-orders-list.entry.js 1 year ago sc-orders-list.entry.js.map 1 year ago sc-pagination.entry.js 1 year ago sc-pagination.entry.js.map 1 year ago sc-password-nag.entry.js 1 year ago sc-password-nag.entry.js.map 1 year ago sc-password.entry.js 1 year ago sc-password.entry.js.map 1 year ago sc-payment-method-choice_2.entry.js 1 year ago sc-payment-method-choice_2.entry.js.map 1 year ago sc-payment-method-details.entry.js 1 year ago sc-payment-method-details.entry.js.map 1 year ago sc-payment-methods-list.entry.js 1 year ago sc-payment-methods-list.entry.js.map 1 year ago sc-payment.entry.js 1 year ago sc-payment.entry.js.map 1 year ago sc-paypal-add-method.entry.js 1 year ago sc-paypal-add-method.entry.js.map 1 year ago sc-paypal-buttons_2.entry.js 1 year ago sc-paypal-buttons_2.entry.js.map 1 year ago sc-paystack-add-method.entry.js 1 year ago sc-paystack-add-method.entry.js.map 1 year ago sc-phone-input.entry.js 1 year ago sc-phone-input.entry.js.map 1 year ago sc-pill-option.entry.js 1 year ago sc-pill-option.entry.js.map 1 year ago sc-premium-tag.entry.js 1 year ago sc-premium-tag.entry.js.map 1 year ago sc-price-choice-container.entry.js 1 year ago sc-price-choice-container.entry.js.map 1 year ago sc-price-choice.entry.js 1 year ago sc-price-choice.entry.js.map 1 year ago sc-price-choices.entry.js 1 year ago sc-price-choices.entry.js.map 1 year ago sc-price-input.entry.js 1 year ago sc-price-input.entry.js.map 1 year ago sc-price-range.entry.js 1 year ago sc-price-range.entry.js.map 1 year ago sc-price.entry.js 1 year ago sc-price.entry.js.map 1 year ago sc-product-buy-button.entry.js 1 year ago sc-product-buy-button.entry.js.map 1 year ago sc-product-donation-amount-choice.entry.js 1 year ago sc-product-donation-amount-choice.entry.js.map 1 year ago sc-product-donation-choices.entry.js 1 year ago sc-product-donation-choices.entry.js.map 1 year ago sc-product-donation-custom-amount.entry.js 1 year ago sc-product-donation-custom-amount.entry.js.map 1 year ago sc-product-item-image_3.entry.js 1 year ago sc-product-item-image_3.entry.js.map 1 year ago sc-product-item-list.entry.js 1 year ago sc-product-item-list.entry.js.map 1 year ago sc-product-item.entry.js 1 year ago sc-product-item.entry.js.map 1 year ago sc-product-line-item_2.entry.js 1 year ago sc-product-line-item_2.entry.js.map 1 year ago sc-product-pills-variant-option.entry.js 1 year ago sc-product-pills-variant-option.entry.js.map 1 year ago sc-product-price-choices.entry.js 1 year ago sc-product-price-choices.entry.js.map 1 year ago sc-product-price-modal.entry.js 1 year ago sc-product-price-modal.entry.js.map 1 year ago sc-product-price.entry.js 1 year ago sc-product-price.entry.js.map 1 year ago sc-product-quantity.entry.js 1 year ago sc-product-quantity.entry.js.map 1 year ago sc-product-selected-price.entry.js 1 year ago sc-product-selected-price.entry.js.map 1 year ago sc-product-text.entry.js 1 year ago sc-product-text.entry.js.map 1 year ago sc-provider.entry.js 1 year ago sc-provider.entry.js.map 1 year ago sc-provisional-banner.entry.js 1 year ago sc-provisional-banner.entry.js.map 1 year ago sc-purchase-downloads-list.entry.js 1 year ago sc-purchase-downloads-list.entry.js.map 1 year ago sc-recurring-price-choice-container.entry.js 1 year ago sc-recurring-price-choice-container.entry.js.map 1 year ago sc-rich-text.entry.js 1 year ago sc-rich-text.entry.js.map 1 year ago sc-spacing.entry.js 1 year ago sc-spacing.entry.js.map 1 year ago sc-stacked-list_2.entry.js 1 year ago sc-stacked-list_2.entry.js.map 1 year ago sc-stripe-add-method.entry.js 1 year ago sc-stripe-add-method.entry.js.map 1 year ago sc-stripe-element.entry.js 1 year ago sc-stripe-element.entry.js.map 1 year ago sc-stripe-payment-element.entry.js 1 year ago sc-stripe-payment-element.entry.js.map 1 year ago sc-stripe-payment-request.entry.js 1 year ago sc-stripe-payment-request.entry.js.map 1 year ago sc-subscription-ad-hoc-confirm.entry.js 1 year ago sc-subscription-ad-hoc-confirm.entry.js.map 1 year ago sc-subscription-details_2.entry.js 1 year ago sc-subscription-details_2.entry.js.map 1 year ago sc-subscription-payment-method.entry.js 1 year ago sc-subscription-payment-method.entry.js.map 1 year ago sc-subscription-payment.entry.js 1 year ago sc-subscription-payment.entry.js.map 1 year ago sc-subscription-switch.entry.js 1 year ago sc-subscription-switch.entry.js.map 1 year ago sc-subscription-variation-confirm.entry.js 1 year ago sc-subscription-variation-confirm.entry.js.map 1 year ago sc-subscription.entry.js 1 year ago sc-subscription.entry.js.map 1 year ago sc-subscriptions-list.entry.js 1 year ago sc-subscriptions-list.entry.js.map 1 year ago sc-summary.entry.js 1 year ago sc-summary.entry.js.map 1 year ago sc-switch.entry.js 1 year ago sc-switch.entry.js.map 1 year ago sc-tab-group.entry.js 1 year ago sc-tab-group.entry.js.map 1 year ago sc-tab-panel.entry.js 1 year ago sc-tab-panel.entry.js.map 1 year ago sc-tab.entry.js 1 year ago sc-tab.entry.js.map 1 year ago sc-table-head.entry.js 1 year ago sc-table-head.entry.js.map 1 year ago sc-table_3.entry.js 1 year ago sc-table_3.entry.js.map 1 year ago sc-tag.entry.js 1 year ago sc-tag.entry.js.map 1 year ago sc-toggle.entry.js 1 year ago sc-toggle.entry.js.map 1 year ago sc-toggles.entry.js 1 year ago sc-toggles.entry.js.map 1 year ago sc-total.entry.js 1 year ago sc-total.entry.js.map 1 year ago sc-upcoming-invoice.entry.js 1 year ago sc-upcoming-invoice.entry.js.map 1 year ago sc-upgrade-required.entry.js 1 year ago sc-upgrade-required.entry.js.map 1 year ago sc-upsell-countdown-timer.entry.js 1 year ago sc-upsell-countdown-timer.entry.js.map 1 year ago sc-upsell-no-thanks-button.entry.js 1 year ago sc-upsell-no-thanks-button.entry.js.map 1 year ago sc-upsell-submit-button.entry.js 1 year ago sc-upsell-submit-button.entry.js.map 1 year ago sc-upsell-totals.entry.js 1 year ago sc-upsell-totals.entry.js.map 1 year ago sc-upsell.entry.js 1 year ago sc-upsell.entry.js.map 1 year ago sc-visually-hidden.entry.js 1 year ago sc-visually-hidden.entry.js.map 1 year ago sc-wordpress-password-edit.entry.js 1 year ago sc-wordpress-password-edit.entry.js.map 1 year ago sc-wordpress-user-edit.entry.js 1 year ago sc-wordpress-user-edit.entry.js.map 1 year ago sc-wordpress-user.entry.js 1 year ago sc-wordpress-user.entry.js.map 1 year ago store-093f0f6a.js 1 year ago store-093f0f6a.js.map 1 year ago store-a8bae355.js 1 year ago store-a8bae355.js.map 1 year ago store-dcefd119.js 1 year ago store-dcefd119.js.map 1 year ago surecart.js 1 year ago surecart.js.map 1 year ago tax-d4911dbc.js 1 year ago tax-d4911dbc.js.map 1 year ago universe-5a73abb7.js 1 year ago universe-5a73abb7.js.map 1 year ago util-50af2a83.js 1 year ago util-50af2a83.js.map 1 year ago utils-e9ee502a.js 1 year ago utils-e9ee502a.js.map 1 year ago watchers-38693c1f.js 1 year ago watchers-38693c1f.js.map 1 year ago watchers-4d2edfb0.js 1 year ago watchers-4d2edfb0.js.map 1 year ago watchers-4e5b728a.js 1 year ago watchers-4e5b728a.js.map 1 year ago watchers-67501779.js 1 year ago watchers-67501779.js.map 1 year ago watchers-a697b0c8.js 1 year ago watchers-a697b0c8.js.map 1 year ago
sc-stripe-payment-request.entry.js
310 lines
1 import { r as registerInstance, c as createEvent, h, a as getElement } from './index-745b6bec.js';
2 import { p as pure } from './pure-963214cb.js';
3 import { s as state, o as onChange } from './mutations-066b82f0.js';
4 import { c as createOrUpdateCheckout, f as finalizeCheckout } from './index-675be13e.js';
5 import { c as createErrorNotice } from './mutations-ed6d0770.js';
6 import { o as openWormhole } from './consumer-e06b16d3.js';
7 import './index-06061d4e.js';
8 import './utils-e9ee502a.js';
9 import './remove-query-args-938c53ea.js';
10 import './add-query-args-0e2a8393.js';
11 import './index-c5a96d53.js';
12 import './google-a86aa761.js';
13 import './currency-a0c9bff4.js';
14 import './price-d5770168.js';
15 import './fetch-e3c5d1b9.js';
16
17 const scStripePaymentRequestCss = ":host{display:block}.or{display:none;margin:var(--sc-form-section-spacing) 0}.request--loaded .or{display:block}";
18 const ScStripePaymentRequestStyle0 = scStripePaymentRequestCss;
19
20 const ScStripePaymentRequest = class {
21 constructor(hostRef) {
22 registerInstance(this, hostRef);
23 this.scFormSubmit = createEvent(this, "scFormSubmit", 7);
24 this.scPaid = createEvent(this, "scPaid", 7);
25 this.scPayError = createEvent(this, "scPayError", 7);
26 this.scSetState = createEvent(this, "scSetState", 7);
27 this.scPaymentRequestLoaded = createEvent(this, "scPaymentRequestLoaded", 7);
28 this.scUpdateOrderState = createEvent(this, "scUpdateOrderState", 7);
29 this.stripeAccountId = undefined;
30 this.publishableKey = undefined;
31 this.country = 'US';
32 this.prices = undefined;
33 this.label = 'total';
34 this.amount = 0;
35 this.theme = 'dark';
36 this.error = undefined;
37 this.debug = false;
38 this.loaded = false;
39 this.debugError = undefined;
40 }
41 async componentWillLoad() {
42 if (!(this === null || this === void 0 ? void 0 : this.publishableKey) || !(this === null || this === void 0 ? void 0 : this.stripeAccountId)) {
43 return true;
44 }
45 try {
46 this.stripe = await pure.loadStripe(this.publishableKey, { stripeAccount: this.stripeAccountId });
47 this.elements = this.stripe.elements();
48 this.paymentRequest = this.stripe.paymentRequest({
49 country: this.country,
50 requestShipping: true,
51 requestPayerEmail: true,
52 shippingOptions: [
53 {
54 id: 'free',
55 label: 'Free Shipping',
56 detail: 'No shipping required',
57 amount: 0,
58 },
59 ],
60 ...this.getRequestObject(state === null || state === void 0 ? void 0 : state.checkout),
61 });
62 }
63 catch (e) {
64 console.log((e === null || e === void 0 ? void 0 : e.message) || wp.i18n.__('Stripe could not be loaded', 'surecart'));
65 }
66 }
67 handleOrderChange() {
68 if (!this.paymentRequest)
69 return;
70 if (this.pendingEvent)
71 return;
72 this.paymentRequest.update(this.getRequestObject(state === null || state === void 0 ? void 0 : state.checkout));
73 }
74 handleLoaded() {
75 this.scPaymentRequestLoaded.emit(true);
76 }
77 handleErrorChange() {
78 if (this.pendingEvent) {
79 this.pendingEvent.complete('error');
80 }
81 }
82 async handleShippingChange(ev) {
83 var _a, _b, _c, _d, _e;
84 const { shippingAddress, updateWith } = ev;
85 try {
86 const order = (await createOrUpdateCheckout({
87 id: (_a = state === null || state === void 0 ? void 0 : state.checkout) === null || _a === void 0 ? void 0 : _a.id,
88 data: {
89 shipping_address: {
90 ...((shippingAddress === null || shippingAddress === void 0 ? void 0 : shippingAddress.name) ? { name: shippingAddress === null || shippingAddress === void 0 ? void 0 : shippingAddress.name } : {}),
91 ...(((_b = shippingAddress === null || shippingAddress === void 0 ? void 0 : shippingAddress.addressLine) === null || _b === void 0 ? void 0 : _b[0]) ? { line_1: (_c = shippingAddress === null || shippingAddress === void 0 ? void 0 : shippingAddress.addressLine) === null || _c === void 0 ? void 0 : _c[0] } : {}),
92 ...(((_d = shippingAddress === null || shippingAddress === void 0 ? void 0 : shippingAddress.addressLine) === null || _d === void 0 ? void 0 : _d[1]) ? { line_2: (_e = shippingAddress === null || shippingAddress === void 0 ? void 0 : shippingAddress.addressLine) === null || _e === void 0 ? void 0 : _e[1] } : {}),
93 ...((shippingAddress === null || shippingAddress === void 0 ? void 0 : shippingAddress.city) ? { city: shippingAddress === null || shippingAddress === void 0 ? void 0 : shippingAddress.city } : {}),
94 ...((shippingAddress === null || shippingAddress === void 0 ? void 0 : shippingAddress.country) ? { country: shippingAddress === null || shippingAddress === void 0 ? void 0 : shippingAddress.country } : {}),
95 ...((shippingAddress === null || shippingAddress === void 0 ? void 0 : shippingAddress.postalCode) ? { postal_code: shippingAddress === null || shippingAddress === void 0 ? void 0 : shippingAddress.postalCode } : {}),
96 ...((shippingAddress === null || shippingAddress === void 0 ? void 0 : shippingAddress.region) ? { state: shippingAddress === null || shippingAddress === void 0 ? void 0 : shippingAddress.region } : {}),
97 },
98 },
99 }));
100 updateWith({
101 status: 'success',
102 total: {
103 amount: (order === null || order === void 0 ? void 0 : order.amount_due) || 0,
104 label: wp.i18n.__('Total', 'surecart'),
105 pending: true,
106 },
107 });
108 }
109 catch (e) {
110 e.updateWith({ status: 'invalid_shipping_address' });
111 }
112 }
113 /** Only append price name if there's more than one product price in the session. */
114 getName(item) {
115 var _a, _b, _c, _d, _e;
116 const otherPrices = Object.keys(this.prices || {}).filter(key => {
117 const price = this.prices[key];
118 // @ts-ignore
119 return price.product === item.price.product.id;
120 });
121 let name = '';
122 if (otherPrices.length > 1) {
123 name = `${(_b = (_a = item === null || item === void 0 ? void 0 : item.price) === null || _a === void 0 ? void 0 : _a.product) === null || _b === void 0 ? void 0 : _b.name} \u2013 ${(_c = item === null || item === void 0 ? void 0 : item.price) === null || _c === void 0 ? void 0 : _c.name}`;
124 }
125 else {
126 name = (_e = (_d = item === null || item === void 0 ? void 0 : item.price) === null || _d === void 0 ? void 0 : _d.product) === null || _e === void 0 ? void 0 : _e.name;
127 }
128 return name;
129 }
130 getRequestObject(order) {
131 var _a;
132 const displayItems = (((_a = order === null || order === void 0 ? void 0 : order.line_items) === null || _a === void 0 ? void 0 : _a.data) || []).map(item => {
133 return {
134 label: this.getName(item),
135 amount: item.ad_hoc_amount !== null ? item.ad_hoc_amount : item.subtotal_amount,
136 };
137 });
138 return {
139 currency: state.currencyCode,
140 total: {
141 amount: (order === null || order === void 0 ? void 0 : order.amount_due) || 0,
142 label: wp.i18n.__('Total', 'surecart'),
143 pending: true,
144 },
145 displayItems,
146 };
147 }
148 componentDidLoad() {
149 this.handleOrderChange();
150 this.removeCheckoutListener = onChange('checkout', () => this.handleOrderChange());
151 if (!this.elements) {
152 return;
153 }
154 const paymentRequestElement = this.elements.create('paymentRequestButton', {
155 paymentRequest: this.paymentRequest,
156 style: {
157 paymentRequestButton: {
158 theme: this.theme,
159 },
160 },
161 });
162 // handle payment method.
163 this.paymentRequest.on('paymentmethod', e => this.handlePaymentMethod(e));
164 this.paymentRequest.on('shippingaddresschange', async (ev) => await this.handleShippingChange(ev));
165 // mount button.
166 this.paymentRequest
167 .canMakePayment()
168 .then(result => {
169 if (!result) {
170 if (location.protocol !== 'https:') {
171 if (this.debug) {
172 this.debugError = wp.i18n.__('You must serve this page over HTTPS to display express payment buttons.', 'surecart');
173 }
174 console.log('SSL needed to display payment buttons.');
175 }
176 else {
177 if (this.debug) {
178 this.debugError = wp.i18n.__('You do not have any wallets set up in your browser.', 'surecart');
179 }
180 console.log('No wallets available.');
181 }
182 return;
183 }
184 paymentRequestElement.mount(this.request);
185 this.loaded = true;
186 })
187 .catch(e => {
188 console.error(e);
189 });
190 }
191 /** Handle the payment method. */
192 async handlePaymentMethod(ev) {
193 var _a, _b, _c, _d, _e;
194 const { billing_details } = ev === null || ev === void 0 ? void 0 : ev.paymentMethod;
195 const { shippingAddress } = ev;
196 try {
197 this.scSetState.emit('FINALIZE');
198 // update session with shipping/billing
199 (await createOrUpdateCheckout({
200 id: (_a = state === null || state === void 0 ? void 0 : state.checkout) === null || _a === void 0 ? void 0 : _a.id,
201 data: {
202 email: billing_details === null || billing_details === void 0 ? void 0 : billing_details.email,
203 name: billing_details === null || billing_details === void 0 ? void 0 : billing_details.name,
204 shipping_address: {
205 ...((shippingAddress === null || shippingAddress === void 0 ? void 0 : shippingAddress.name) ? { name: shippingAddress === null || shippingAddress === void 0 ? void 0 : shippingAddress.name } : {}),
206 ...(((_b = shippingAddress === null || shippingAddress === void 0 ? void 0 : shippingAddress.addressLine) === null || _b === void 0 ? void 0 : _b[0]) ? { line_1: (_c = shippingAddress === null || shippingAddress === void 0 ? void 0 : shippingAddress.addressLine) === null || _c === void 0 ? void 0 : _c[0] } : {}),
207 ...(((_d = shippingAddress === null || shippingAddress === void 0 ? void 0 : shippingAddress.addressLine) === null || _d === void 0 ? void 0 : _d[1]) ? { line_2: (_e = shippingAddress === null || shippingAddress === void 0 ? void 0 : shippingAddress.addressLine) === null || _e === void 0 ? void 0 : _e[1] } : {}),
208 ...((shippingAddress === null || shippingAddress === void 0 ? void 0 : shippingAddress.city) ? { city: shippingAddress === null || shippingAddress === void 0 ? void 0 : shippingAddress.city } : {}),
209 ...((shippingAddress === null || shippingAddress === void 0 ? void 0 : shippingAddress.country) ? { country: shippingAddress === null || shippingAddress === void 0 ? void 0 : shippingAddress.country } : {}),
210 ...((shippingAddress === null || shippingAddress === void 0 ? void 0 : shippingAddress.postalCode) ? { postal_code: shippingAddress === null || shippingAddress === void 0 ? void 0 : shippingAddress.postalCode } : {}),
211 ...((shippingAddress === null || shippingAddress === void 0 ? void 0 : shippingAddress.region) ? { state: shippingAddress === null || shippingAddress === void 0 ? void 0 : shippingAddress.region } : {}),
212 },
213 },
214 }));
215 // finalize
216 const session = (await finalizeCheckout({
217 id: state === null || state === void 0 ? void 0 : state.checkout.id,
218 query: {
219 form_id: state.formId,
220 },
221 processor: { id: 'stripe', manual: false },
222 }));
223 // confirm payment
224 this.scSetState.emit('PAYING');
225 await this.confirmPayment(session, ev);
226 this.scSetState.emit('PAID');
227 // paid.
228 this.scPaid.emit();
229 // Report to the browser that the confirmation was successful, prompting
230 // it to close the browser payment method collection interface.
231 ev.complete('success');
232 }
233 catch (e) {
234 console.error(e);
235 this.scPayError.emit(e);
236 createErrorNotice(e);
237 ev.complete('fail');
238 }
239 finally {
240 this.confirming = false;
241 }
242 }
243 async confirmPayment(val, ev) {
244 var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
245 // must be finalized
246 if ((val === null || val === void 0 ? void 0 : val.status) !== 'finalized')
247 return;
248 // must have a secret
249 if (!((_c = (_b = (_a = val === null || val === void 0 ? void 0 : val.payment_intent) === null || _a === void 0 ? void 0 : _a.processor_data) === null || _b === void 0 ? void 0 : _b.stripe) === null || _c === void 0 ? void 0 : _c.client_secret))
250 return;
251 // need an external_type
252 if (!((_f = (_e = (_d = val === null || val === void 0 ? void 0 : val.payment_intent) === null || _d === void 0 ? void 0 : _d.processor_data) === null || _e === void 0 ? void 0 : _e.stripe) === null || _f === void 0 ? void 0 : _f.type))
253 return;
254 // must have an external intent id
255 if (!((_g = val === null || val === void 0 ? void 0 : val.payment_intent) === null || _g === void 0 ? void 0 : _g.external_intent_id))
256 return;
257 // prevent possible double-charges
258 if (this.confirming)
259 return;
260 this.confirming = true;
261 let response;
262 if (((_k = (_j = (_h = val === null || val === void 0 ? void 0 : val.payment_intent) === null || _h === void 0 ? void 0 : _h.processor_data) === null || _j === void 0 ? void 0 : _j.stripe) === null || _k === void 0 ? void 0 : _k.type) == 'setup') {
263 response = await this.confirmCardSetup((_m = (_l = val === null || val === void 0 ? void 0 : val.payment_intent) === null || _l === void 0 ? void 0 : _l.processor_data) === null || _m === void 0 ? void 0 : _m.stripe.client_secret, ev);
264 }
265 else {
266 response = await this.confirmCardPayment((_p = (_o = val === null || val === void 0 ? void 0 : val.payment_intent) === null || _o === void 0 ? void 0 : _o.processor_data) === null || _p === void 0 ? void 0 : _p.stripe.client_secret, ev);
267 }
268 if (response === null || response === void 0 ? void 0 : response.error) {
269 throw response.error;
270 }
271 // Check if the PaymentIntent requires any actions and if so let Stripe.js
272 // handle the flow. If using an API version older than "2019-02-11"
273 // instead check for: `paymentIntent.status === "requires_source_action"`.
274 if (((_q = response === null || response === void 0 ? void 0 : response.paymentIntent) === null || _q === void 0 ? void 0 : _q.status) === 'requires_action' || ((_r = response === null || response === void 0 ? void 0 : response.paymentIntent) === null || _r === void 0 ? void 0 : _r.status) === 'requires_source_action') {
275 // Let Stripe.js handle the rest of the payment flow.
276 const result = await this.stripe.confirmCardPayment((_t = (_s = val === null || val === void 0 ? void 0 : val.payment_intent) === null || _s === void 0 ? void 0 : _s.processor_data) === null || _t === void 0 ? void 0 : _t.stripe.client_secret);
277 // The payment failed -- ask your customer for a new payment method.
278 if (result.error) {
279 throw result.error;
280 }
281 return result;
282 }
283 return response;
284 }
285 /** Confirm card payment. */
286 confirmCardPayment(secret, ev) {
287 return this.stripe.confirmCardPayment(secret, { payment_method: ev.paymentMethod.id }, { handleActions: false });
288 }
289 /** Confirm card setup. */
290 confirmCardSetup(secret, ev) {
291 return this.stripe.confirmCardSetup(secret, { payment_method: ev.paymentMethod.id }, { handleActions: false });
292 }
293 disconnectedCallback() {
294 this.removeCheckoutListener();
295 }
296 render() {
297 return (h("div", { key: 'a29112f509cd24727393a2f7a1d375dcec8f11aa', class: { 'request': true, 'request--loaded': this.loaded } }, this.debug && this.debugError && (h("div", { key: 'a8f5b54ab015a5ceb21dbcdae0c4a0b28f1e9327' }, h("slot", { key: '8add73c4bf110a1aaacc2ce8291606a8880215ce', name: "debug-fallback" }), h("sc-alert", { key: '1fcc401ddf5e07453fc47b90528de2801a08844d', type: "info", open: true }, h("span", { key: '329f2a80ad4be14ea5ad34da4ffa3bfc4194cebe', slot: "title" }, wp.i18n.__('Express Payment', 'surecart')), this.debugError))), h("div", { key: 'a6d51c11e8d8ed56e76613c211756e016015c3f8', class: "sc-payment-request-button", part: "button", ref: el => (this.request = el) })));
298 }
299 get el() { return getElement(this); }
300 static get watchers() { return {
301 "loaded": ["handleLoaded"],
302 "error": ["handleErrorChange"]
303 }; }
304 };
305 openWormhole(ScStripePaymentRequest, ['prices'], false);
306 ScStripePaymentRequest.style = ScStripePaymentRequestStyle0;
307
308 export { ScStripePaymentRequest as sc_stripe_payment_request };
309
310 //# sourceMappingURL=sc-stripe-payment-request.entry.js.map