├── .circleci └── config.yml ├── .env-example ├── .eslintignore ├── .eslintrc.json ├── .github ├── CODEOWNERS ├── PULL_REQUEST_TEMPLATE.md └── dependabot.yml ├── .gitignore ├── .nvmrc ├── .versionrc.json ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE.md ├── README.md ├── SECURITY.md ├── bower.json ├── commit-validation.json ├── dist ├── 185-1bdbd6a6.js ├── 185-1bdbd6a6.js.map ├── 347-149827b2.js ├── 347-149827b2.js.map ├── 352-bd1f0500.js ├── 352-bd1f0500.js.map ├── 805-6507f751.js ├── 805-6507f751.js.map ├── auto-loader-1.601.0.js ├── auto-loader-1.601.0.js.LICENSE.txt ├── auto-loader-1.601.0.js.map ├── auto-loader.js ├── billing-5cb3e9e6.css ├── billing-f699ffb0.js ├── billing-f699ffb0.js.map ├── cart-summary-140174ff.js ├── cart-summary-140174ff.js.map ├── cart-summary-5084b1db.css ├── cart-summary-drawer-5084b1db.css ├── cart-summary-drawer-8846c1db.js ├── cart-summary-drawer-8846c1db.js.map ├── checkout-1beeae08.js ├── checkout-1beeae08.js.map ├── checkout-446762e8.css ├── loader-1.601.0.js ├── loader-1.601.0.js.LICENSE.txt ├── loader-1.601.0.js.map ├── loader.js ├── manifest-app.json ├── manifest-loader.json ├── manifest.json ├── order-summary-d69c4d67.js ├── order-summary-d69c4d67.js.map ├── order-summary-drawer-e015ddce.js ├── order-summary-drawer-e015ddce.js.map ├── payment-3479b5c1.js ├── payment-3479b5c1.js.map ├── payment-c110aee5.css ├── polyfill-f34068b2.js ├── polyfill-f34068b2.js.map ├── runtime-5057fa9e.js ├── runtime-5057fa9e.js.map ├── sentry-ac340b99.js ├── sentry-ac340b99.js.map ├── shipping-1f29b0aa.js ├── shipping-1f29b0aa.js.map ├── shipping-99d3303d.css ├── static │ ├── card-9f708a7a.svg │ └── powered_by_google_on_white-46afd78d.png ├── transients-1bd2519f.js ├── transients-1bd2519f.js.map ├── translations-da-1.601.0.js ├── translations-de-1.601.0.js ├── translations-es-1.601.0.js ├── translations-es-419-1.601.0.js ├── translations-es-ar-1.601.0.js ├── translations-es-cl-1.601.0.js ├── translations-es-co-1.601.0.js ├── translations-es-mx-1.601.0.js ├── translations-es-pe-1.601.0.js ├── translations-fr-1.601.0.js ├── translations-it-1.601.0.js ├── translations-nl-1.601.0.js ├── translations-no-1.601.0.js ├── translations-pt-1.601.0.js ├── translations-pt-br-1.601.0.js ├── translations-sv-1.601.0.js ├── vendors-2ca0da9d.js └── vendors-2ca0da9d.js.map ├── jest-setup.ts ├── jest.config.js ├── jest.preset.js ├── nx.json ├── package-lock.json ├── package.json ├── packages ├── adyen-integration │ ├── .eslintrc.json │ ├── README.md │ ├── e2e │ │ ├── __har__ │ │ │ ├── Adyenv2-ACH-in-Payment-Step_1196775541 │ │ │ │ └── recording.har │ │ │ ├── Adyenv2-Credit-Card-in-Payment-Step_220184964 │ │ │ │ └── recording.har │ │ │ ├── Adyenv3-ACH-in-Payment-Step_873791026 │ │ │ │ └── recording.har │ │ │ └── Adyenv3-Credit-Card-in-Payment-Step_3229115791 │ │ │ │ └── recording.har │ │ ├── adyenv2.mock.js │ │ ├── adyenv2.spec.ts │ │ ├── adyenv3.mock.js │ │ ├── adyenv3.spec.ts │ │ └── support │ │ │ ├── adyen.ejs │ │ │ ├── checkout.php.ejs │ │ │ └── hostedField.ejs │ ├── jest.config.js │ ├── project.json │ ├── src │ │ ├── adyenv2 │ │ │ ├── AdyenV2CardValidation.tsx │ │ │ ├── AdyenV2Form.tsx │ │ │ ├── AdyenV2PaymentMethod.test.tsx │ │ │ └── AdyenV2PaymentMethod.tsx │ │ ├── adyenv3 │ │ │ ├── AdyenV3CardValidation.tsx │ │ │ ├── AdyenV3Form.tsx │ │ │ ├── AdyenV3PaymentMethod.test.tsx │ │ │ └── AdyenV3PaymentMethod.tsx │ │ └── index.ts │ ├── tsconfig.json │ └── tsconfig.spec.json ├── affirm-integration │ ├── .eslintrc.json │ ├── README.md │ ├── e2e │ │ ├── AffirmResponsesMock.js │ │ ├── __har__ │ │ │ └── Affirm-in-Payment-Step_519329631 │ │ │ │ └── recording.har │ │ ├── affirm.spec.ts │ │ └── support │ │ │ └── affirmMock.js │ ├── jest.config.js │ ├── project.json │ ├── src │ │ ├── AffirmPaymentMethod.test.tsx │ │ ├── AffirmPaymentMethod.tsx │ │ └── index.ts │ ├── tsconfig.json │ ├── tsconfig.lib.json │ └── tsconfig.spec.json ├── afterpay-integration │ ├── .eslintrc.json │ ├── README.md │ ├── jest.config.js │ ├── project.json │ ├── src │ │ ├── AfterpayPaymentMethod.test.tsx │ │ ├── AfterpayPaymentMethod.tsx │ │ └── index.ts │ ├── tsconfig.json │ └── tsconfig.spec.json ├── amazon-pay-v2-integration │ ├── .eslintrc.json │ ├── README.md │ ├── jest.config.js │ ├── project.json │ ├── src │ │ ├── AmazonPayV2Button.test.tsx │ │ ├── AmazonPayV2Button.tsx │ │ ├── AmazonPayV2PaymentMethod.test.tsx │ │ ├── AmazonPayV2PaymentMethod.tsx │ │ └── index.ts │ ├── tsconfig.json │ ├── tsconfig.lib.json │ └── tsconfig.spec.json ├── analytics │ ├── .eslintrc.json │ ├── README.md │ ├── jest.config.js │ ├── project.json │ ├── src │ │ ├── AnalyticsContext.ts │ │ ├── AnalyticsProvider.mock.tsx │ │ ├── AnalyticsProvider.test.tsx │ │ ├── AnalyticsProvider.tsx │ │ ├── createAnalyticsService.test.ts │ │ ├── createAnalyticsService.ts │ │ ├── index.ts │ │ └── useAnalytics.tsx │ ├── tsconfig.json │ ├── tsconfig.lib.json │ └── tsconfig.spec.json ├── apple-pay-integration │ ├── .eslintrc.json │ ├── README.md │ ├── e2e │ │ ├── ApplePaySessionCustomerStepMockObject.ts │ │ ├── ApplePaySessionPaymentStepMockObject.ts │ │ ├── ApplePayTestMockResponse.ts │ │ ├── __har__ │ │ │ ├── ApplePay-in-Customer-Step_453200396 │ │ │ │ └── recording.har │ │ │ └── ApplePay-in-Payment-Step_2100856370 │ │ │ │ └── recording.har │ │ └── applepay.spec.ts │ ├── jest.config.js │ ├── project.json │ ├── src │ │ ├── ApplePayPaymentMethod.test.tsx │ │ ├── ApplePayPaymentMethod.tsx │ │ ├── index.ts │ │ └── paymentMethods.mock.ts │ ├── tsconfig.json │ ├── tsconfig.lib.json │ ├── tsconfig.spec.json │ └── types │ │ └── ApplePaySession.d.ts ├── barclay-integration │ ├── .eslintrc.json │ ├── README.md │ ├── e2e │ │ ├── __har__ │ │ │ └── Barclay_3915322175 │ │ │ │ └── recording.har │ │ ├── barclay.spec.ts │ │ └── support │ │ │ └── barclay.ejs │ ├── jest.config.js │ ├── project.json │ ├── src │ │ ├── BarclaycardPaymentMethod.test.tsx │ │ ├── BarclaycardPaymentMethod.tsx │ │ ├── __snapshots__ │ │ │ └── BarclaycardPaymentMethod.test.tsx.snap │ │ └── index.ts │ ├── tsconfig.json │ └── tsconfig.spec.json ├── bigcommerce-payments-integration │ ├── .eslintrc.json │ ├── README.md │ ├── jest.config.js │ ├── project.json │ ├── src │ │ ├── BigCommercePaymentsAPMs │ │ │ ├── BigCommercePaymentsAPMsPaymentMethod.test.tsx │ │ │ └── BigCommercePaymentsAPMsPaymentMethod.tsx │ │ ├── BigCommercePaymentsFastlane │ │ │ ├── BigCommercePaymentsFastlanePaymentMethod.scss │ │ │ ├── BigCommercePaymentsFastlanePaymentMethod.test.tsx │ │ │ ├── BigCommercePaymentsFastlanePaymentMethod.tsx │ │ │ ├── components │ │ │ │ ├── BigCommercePaymentsFastlaneCreditCardForm.scss │ │ │ │ ├── BigCommercePaymentsFastlaneCreditCardForm.test.tsx │ │ │ │ ├── BigCommercePaymentsFastlaneCreditCardForm.tsx │ │ │ │ ├── BigCommercePaymentsFastlaneForm.test.tsx │ │ │ │ ├── BigCommercePaymentsFastlaneForm.tsx │ │ │ │ ├── BigCommercePaymentsFastlaneInstrumentsForm.scss │ │ │ │ ├── BigCommercePaymentsFastlaneInstrumentsForm.test.tsx │ │ │ │ └── BigCommercePaymentsFastlaneInstrumentsForm.tsx │ │ │ ├── hooks │ │ │ │ └── useBigCommercePaymentsFastlaneInstruments.ts │ │ │ └── index.ts │ │ ├── BigCommercePaymentsPayLater │ │ │ ├── BigCommercePaymentsPayLaterPaymentMethod.test.tsx │ │ │ ├── BigCommercePaymentsPayLaterPaymentMethod.tsx │ │ │ ├── BigcommercePaymentsPayLaterButton.test.tsx │ │ │ └── BigcommercePaymentsPayLaterButton.tsx │ │ ├── BigCommercePaymentsPaypal │ │ │ ├── BigCommercePaymentsPaypalPaymentMethod.test.tsx │ │ │ ├── BigCommercePaymentsPaypalPaymentMethod.tsx │ │ │ ├── BigcommercePaymentsPaypalButton.test.tsx │ │ │ └── BigcommercePaymentsPaypalButton.tsx │ │ ├── BigCommercePaymentsRatePay │ │ │ ├── BigCommercePaymentsRatePayPaymentMethod.test.tsx │ │ │ └── BigCommercePaymentsRatePayPaymentMethod.tsx │ │ ├── BigCommercePaymentsVenmo │ │ │ ├── BigCommercePaymentsVenmoPaymentMethod.test.tsx │ │ │ └── BigCommercePaymentsVenmoPaymentMethod.tsx │ │ ├── components │ │ │ ├── BigCommercePaymentsPaymentMethodComponent.test.tsx │ │ │ └── BigCommercePaymentsPaymentMethodComponent.tsx │ │ ├── hooks │ │ │ └── useBigCommercePaymentsInstruments.ts │ │ ├── index.ts │ │ ├── mocks │ │ │ ├── bigCommercePaymentsRatePayMocks.ts │ │ │ └── paymentMethods.mock.ts │ │ └── validation-schemas │ │ │ └── getBigCommercePaymentsRatePayValidationSchema.ts │ ├── tsconfig.json │ ├── tsconfig.lib.json │ └── tsconfig.spec.json ├── bigcommerce-payments-utils │ ├── .eslintrc.json │ ├── BigCommercePaymentsPayLaterBanner.test.tsx │ ├── BigCommercePaymentsPayLaterBanner.tsx │ ├── README.md │ ├── index.ts │ ├── jest.config.js │ ├── project.json │ ├── tsconfig.json │ └── tsconfig.spec.json ├── bluesnap-direct-integration │ ├── .eslintrc.json │ ├── README.md │ ├── e2e │ │ ├── __har__ │ │ │ ├── ACH-with-BlueSnapv2-in-Payment-Step_1030426958 │ │ │ │ └── recording.har │ │ │ ├── Bank-Transfer-with-BlueSnapv2-in-Payment-Step_3241051483 │ │ │ │ └── recording.har │ │ │ ├── Credit-Card-with-BlueSnap-in-Payment-Step_2136680895 │ │ │ │ └── recording.har │ │ │ ├── Credit-Card-with-BlueSnapv2-in-Payment-Step_2247692055 │ │ │ │ └── recording.har │ │ │ ├── ECP-with-BlueSnap-in-Payment-Step_75403566 │ │ │ │ └── recording.har │ │ │ ├── External-APM-with-BlueSnap-in-Payment-Step_1599217875 │ │ │ │ └── recording.har │ │ │ ├── Moneybookers-with-BlueSnapv2-in-Payment-Step_558909199 │ │ │ │ └── recording.har │ │ │ ├── Pay-by-Bank-with-BlueSnap-in-Payment-Step_241965973 │ │ │ │ └── recording.har │ │ │ ├── Paysafecard-with-BlueSnapv2-in-Payment-Step_448808695 │ │ │ │ └── recording.har │ │ │ ├── SEPA-with-BlueSnap-in-Payment-Step_2879624599 │ │ │ │ └── recording.har │ │ │ └── Wire-with-BlueSnapv2-in-Payment-Step_3120654321 │ │ │ │ └── recording.har │ │ ├── bluesnapdirect.spec.ts │ │ ├── bluesnapv2.spec.ts │ │ └── support │ │ │ ├── bluesnap.ejs │ │ │ ├── bluesnapv2.ejs │ │ │ └── hostedField.ejs │ ├── jest.config.js │ ├── project.json │ ├── src │ │ ├── BlueSnapDirectAlternativePaymentMethod.tsx │ │ ├── BlueSnapDirectEcpPaymentMethod.test.tsx │ │ ├── BlueSnapDirectEcpPaymentMethod.tsx │ │ ├── BlueSnapDirectIdealPaymentMethod.test.tsx │ │ ├── BlueSnapDirectIdealPaymentMethod.tsx │ │ ├── BlueSnapDirectInitializationData.ts │ │ ├── BlueSnapDirectPayByBankPaymentMethod.test.tsx │ │ ├── BlueSnapDirectPayByBankPaymentMethod.tsx │ │ ├── BlueSnapDirectSepaPaymentMethod.test.tsx │ │ ├── BlueSnapDirectSepaPaymentMethod.tsx │ │ ├── BlueSnapV2PaymentMethod.test.tsx │ │ ├── BlueSnapV2PaymentMethod.tsx │ │ ├── constants.ts │ │ ├── fields │ │ │ ├── BlueSnapDirectEcpFieldset.test.tsx │ │ │ ├── BlueSnapDirectEcpFieldset.tsx │ │ │ ├── BlueSnapDirectNumberField.test.tsx │ │ │ ├── BlueSnapDirectNumberField.tsx │ │ │ ├── BlueSnapDirectSelectField.test.tsx │ │ │ ├── BlueSnapDirectSelectField.tsx │ │ │ └── BlueSnapDirectTextField.tsx │ │ ├── hooks │ │ │ ├── useEcpInstruments.ts │ │ │ └── useSepaInstruments.ts │ │ ├── index.ts │ │ ├── mocks │ │ │ └── bluesnapdirect-method.mock.ts │ │ └── validation-schemas │ │ │ ├── getEcpValidationSchema.ts │ │ │ ├── getIdealValidationSchema.ts │ │ │ ├── getPayByBankValidationSchema.ts │ │ │ └── getSepaValidationSchema.ts │ ├── tsconfig.json │ ├── tsconfig.lib.json │ └── tsconfig.spec.json ├── bolt-integration │ ├── .eslintrc.json │ ├── README.md │ ├── jest.config.js │ ├── project.json │ ├── src │ │ ├── BoltClientPaymentMethod.test.tsx │ │ ├── BoltClientPaymentMethod.tsx │ │ ├── BoltCustomForm.test.tsx │ │ ├── BoltCustomForm.tsx │ │ ├── BoltCustomFormValues.ts │ │ ├── BoltEmbeddedPaymentMethod.test.tsx │ │ ├── BoltEmbeddedPaymentMethod.tsx │ │ ├── BoltPaymentMethod.test.tsx │ │ ├── BoltPaymentMethod.tsx │ │ ├── __snapshots__ │ │ │ └── BoltEmbeddedPaymentMethod.test.tsx.snap │ │ └── index.ts │ ├── tsconfig.json │ ├── tsconfig.lib.json │ └── tsconfig.spec.json ├── braintree-integration │ ├── .eslintrc.json │ ├── README.md │ ├── jest.config.js │ ├── project.json │ ├── src │ │ ├── BraintreeAch │ │ │ ├── BraintreeAchPaymentMethod.test.tsx │ │ │ ├── BraintreeAchPaymentMethod.tsx │ │ │ ├── components │ │ │ │ ├── BraintreeAchFormFields.test.tsx │ │ │ │ ├── BraintreeAchFormFields.tsx │ │ │ │ ├── BraintreeAchMandateText.test.tsx │ │ │ │ ├── BraintreeAchMandateText.tsx │ │ │ │ ├── BraintreeAchPaymentForm.test.tsx │ │ │ │ ├── BraintreeAchPaymentForm.tsx │ │ │ │ └── __snapshots__ │ │ │ │ │ ├── BraintreeAchFormFields.test.tsx.snap │ │ │ │ │ └── BraintreeAchMandateText.test.tsx.snap │ │ │ ├── constants.ts │ │ │ └── hooks │ │ │ │ ├── useBraintreeAchInstruments.ts │ │ │ │ └── useBraintreeAchValidation.ts │ │ ├── BraintreeFastlane │ │ │ ├── BraintreeFastlanePaymentMethod.scss │ │ │ ├── BraintreeFastlanePaymentMethod.test.tsx │ │ │ ├── BraintreeFastlanePaymentMethod.tsx │ │ │ ├── components │ │ │ │ ├── BraintreeFastlaneCreditCardForm.scss │ │ │ │ ├── BraintreeFastlaneCreditCardForm.test.tsx │ │ │ │ ├── BraintreeFastlaneCreditCardForm.tsx │ │ │ │ ├── BraintreeFastlaneForm.test.tsx │ │ │ │ ├── BraintreeFastlaneForm.tsx │ │ │ │ ├── BraintreeFastlaneInstrumentsForm.scss │ │ │ │ ├── BraintreeFastlaneInstrumentsForm.test.tsx │ │ │ │ └── BraintreeFastlaneInstrumentsForm.tsx │ │ │ ├── hooks │ │ │ │ └── useBraintreeFastlaneInstruments.ts │ │ │ └── index.ts │ │ ├── BraintreeLocalMethod.test.tsx │ │ ├── BraintreeLocalPaymentMethod.tsx │ │ ├── BraintreePaypalPaymentMethod.test.tsx │ │ ├── BraintreePaypalPaymentMethod.tsx │ │ ├── VisaCheckout │ │ │ ├── VisaCheckoutPaymentMethod.test.tsx │ │ │ └── VisaCheckoutPaymentMethod.tsx │ │ ├── index.ts │ │ └── mocks │ │ │ └── braintreeLocalMethodsMocks.ts │ ├── tsconfig.json │ └── tsconfig.spec.json ├── checkout-button-integration │ ├── .eslintrc.json │ ├── README.md │ ├── jest.config.js │ ├── project.json │ ├── src │ │ ├── CheckoutButton.test.tsx │ │ ├── CheckoutButton.tsx │ │ └── index.ts │ ├── tsconfig.json │ ├── tsconfig.lib.json │ └── tsconfig.spec.json ├── checkout-extension │ ├── .eslintrc.json │ ├── README.md │ ├── jest.config.js │ ├── project.json │ ├── src │ │ ├── Extension.mock.ts │ │ ├── Extension.tsx │ │ ├── ExtensionContext.tsx │ │ ├── ExtensionProvider.test.tsx │ │ ├── ExtensionProvider.tsx │ │ ├── ExtensionReducer.ts │ │ ├── ExtensionRegionContainer.ts │ │ ├── ExtensionService.test.tsx │ │ ├── ExtensionService.ts │ │ ├── handler │ │ │ ├── commandHandlers │ │ │ │ ├── CommandHandler.ts │ │ │ │ ├── commandHandlers.test.ts │ │ │ │ ├── createReRenderShippingFormHandler.ts │ │ │ │ ├── createReloadCheckoutHandler.ts │ │ │ │ ├── createSetIframeStyleHandler.ts │ │ │ │ ├── createShowLoadingIndicatorHandler.ts │ │ │ │ └── index.ts │ │ │ ├── index.ts │ │ │ └── queryHandlers │ │ │ │ ├── QueryHandler.ts │ │ │ │ ├── createGetConsignmentHandler.ts │ │ │ │ ├── index.ts │ │ │ │ └── queryHandlers.test.ts │ │ ├── index.ts │ │ ├── useExtensions.tsx │ │ └── withExtension.ts │ ├── tsconfig.json │ └── tsconfig.spec.json ├── checkoutcom-integration │ ├── .eslintrc.json │ ├── README.md │ ├── e2e │ │ ├── __har__ │ │ │ ├── Credit-Card-with-Checkoutcom-in-Payment-Step_3718073430 │ │ │ │ └── recording.har │ │ │ └── Fawry-with-Checkoutcom-in-Payment-Step_4061538748 │ │ │ │ └── recording.har │ │ ├── checkoutcom.spec.ts │ │ └── support │ │ │ ├── checkoutcom.ejs │ │ │ └── hostedField.ejs │ ├── jest.config.js │ ├── project.json │ ├── src │ │ ├── CheckoutcomCustomFormFields.test.tsx │ │ ├── CheckoutcomCustomFormFields.tsx │ │ ├── CheckoutcomCustomPaymentMethod.test.tsx │ │ ├── CheckoutcomCustomPaymentMethod.tsx │ │ ├── checkoutcomFieldsets │ │ │ ├── CheckoutcomFormValues.ts │ │ │ ├── TextFieldForm.tsx │ │ │ ├── getCheckoutcomFieldsetValidationSchemas.test.tsx │ │ │ ├── getCheckoutcomFieldsetValidationSchemas.tsx │ │ │ └── index.ts │ │ └── index.ts │ ├── tsconfig.json │ ├── tsconfig.lib.json │ └── tsconfig.spec.json ├── clearpay-integration │ ├── .eslintrc.json │ ├── README.md │ ├── jest.config.js │ ├── project.json │ ├── src │ │ ├── ClearpayPaymentMethod.test.tsx │ │ ├── ClearpayPaymentMethod.tsx │ │ └── index.ts │ ├── tsconfig.json │ └── tsconfig.spec.json ├── core │ ├── .eslintrc.json │ ├── auto-export.config.json │ ├── e2e │ │ ├── Promotion.spec.ts │ │ ├── Shipping.spec.ts │ │ └── __har__ │ │ │ ├── Adding-and-Removing-free-shipping-coupon_4050863903 │ │ │ └── recording.har │ │ │ ├── Shipping-with-Customer-checkout_2160979277 │ │ │ └── recording.har │ │ │ ├── Shipping-with-Guest-checkout_658786807 │ │ │ └── recording.har │ │ │ └── Shipping-with-different-billing-address_981343935 │ │ │ └── recording.har │ ├── jest.config.js │ ├── project.json │ ├── src │ │ ├── app │ │ │ ├── AppExport.ts │ │ │ ├── address │ │ │ │ ├── AddressForm.scss │ │ │ │ ├── AddressForm.test.tsx │ │ │ │ ├── AddressForm.tsx │ │ │ │ ├── AddressFormModal.test.tsx │ │ │ │ ├── AddressFormModal.tsx │ │ │ │ ├── AddressSelect.scss │ │ │ │ ├── AddressSelect.test.tsx │ │ │ │ ├── AddressSelect.tsx │ │ │ │ ├── AddressSelectButton.tsx │ │ │ │ ├── AddressType.ts │ │ │ │ ├── SingleLineStaticAddress.test.tsx │ │ │ │ ├── SingleLineStaticAddress.tsx │ │ │ │ ├── StaticAddress.scss │ │ │ │ ├── StaticAddress.test.tsx │ │ │ │ ├── StaticAddress.tsx │ │ │ │ ├── address.mock.ts │ │ │ │ ├── address.ts │ │ │ │ ├── formField.mock.ts │ │ │ │ ├── getAddressFormFieldInputId.ts │ │ │ │ ├── getAddressFormFieldsValidationSchema.ts │ │ │ │ ├── googleAutocomplete │ │ │ │ │ ├── AddressSelector.test.ts │ │ │ │ │ ├── AddressSelector.ts │ │ │ │ │ ├── AddressSelectorAU.test.ts │ │ │ │ │ ├── AddressSelectorAU.ts │ │ │ │ │ ├── AddressSelectorCA.ts │ │ │ │ │ ├── AddressSelectorFactory.ts │ │ │ │ │ ├── AddressSelectorUk.ts │ │ │ │ │ ├── GoogleAutoCompleteFormField.test.tsx │ │ │ │ │ ├── GoogleAutocomplete.scss │ │ │ │ │ ├── GoogleAutocomplete.tsx │ │ │ │ │ ├── GoogleAutocompleteFormField.tsx │ │ │ │ │ ├── GoogleAutocompleteScriptLoader.ts │ │ │ │ │ ├── GoogleAutocompleteService.ts │ │ │ │ │ ├── getGoogleAutocompleteScriptLoader.test.ts │ │ │ │ │ ├── getGoogleAutocompleteScriptLoader.ts │ │ │ │ │ ├── googleAutocompleteResult.mock.ts │ │ │ │ │ ├── googleAutocompleteTypes.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── mapToAddress.test.ts │ │ │ │ │ └── mapToAddress.ts │ │ │ │ ├── index.ts │ │ │ │ ├── isEqualAddress.test.ts │ │ │ │ ├── isEqualAddress.ts │ │ │ │ ├── isValidAddress.test.ts │ │ │ │ ├── isValidAddress.ts │ │ │ │ ├── isValidCustomerAddress.ts │ │ │ │ ├── mapAddressFromFormValues.test.ts │ │ │ │ ├── mapAddressFromFormValues.ts │ │ │ │ └── mapAddressToFormValues.ts │ │ │ ├── analytics │ │ │ │ ├── index.ts │ │ │ │ └── withAnalytics.ts │ │ │ ├── auto-loader.ts │ │ │ ├── billing │ │ │ │ ├── Billing.test.tsx │ │ │ │ ├── Billing.tsx │ │ │ │ ├── BillingForm.tsx │ │ │ │ ├── StaticBillingAddress.tsx │ │ │ │ ├── billingAddresses.mock.ts │ │ │ │ ├── getBillingMethodId.test.ts │ │ │ │ ├── getBillingMethodId.ts │ │ │ │ └── index.ts │ │ │ ├── cart │ │ │ │ ├── AppliedRedeemable.scss │ │ │ │ ├── AppliedRedeemable.test.tsx │ │ │ │ ├── AppliedRedeemable.tsx │ │ │ │ ├── AppliedRedeemables.tsx │ │ │ │ ├── CartSummary.test.tsx │ │ │ │ ├── CartSummary.tsx │ │ │ │ ├── CartSummaryAndDrawer.test.tsx │ │ │ │ ├── CartSummaryDrawer.test.tsx │ │ │ │ ├── CartSummaryDrawer.tsx │ │ │ │ ├── EditLink.tsx │ │ │ │ ├── EmptyCartMessage.tsx │ │ │ │ ├── Redeemable.test.tsx │ │ │ │ ├── Redeemable.tsx │ │ │ │ ├── carts.mock.ts │ │ │ │ ├── index.ts │ │ │ │ ├── lineItem.mock.ts │ │ │ │ ├── mapToCartSummaryProps.ts │ │ │ │ ├── mapToOrderSummarySubtotalsProps.ts │ │ │ │ ├── mapToRedeemableProps.ts │ │ │ │ └── withRedeemable.tsx │ │ │ ├── checkout │ │ │ │ ├── Checkout.test.tsx │ │ │ │ ├── Checkout.tsx │ │ │ │ ├── CheckoutApp.test.tsx │ │ │ │ ├── CheckoutApp.tsx │ │ │ │ ├── CheckoutStep.test.tsx │ │ │ │ ├── CheckoutStep.tsx │ │ │ │ ├── CheckoutStepHeader.test.tsx │ │ │ │ ├── CheckoutStepHeader.tsx │ │ │ │ ├── CheckoutStepStatus.ts │ │ │ │ ├── CheckoutStepType.ts │ │ │ │ ├── CheckoutSupport.ts │ │ │ │ ├── NoopCheckoutSupport.ts │ │ │ │ ├── checkouts.mock.ts │ │ │ │ ├── getCheckoutStepStatuses.test.ts │ │ │ │ ├── getCheckoutStepStatuses.ts │ │ │ │ ├── index.ts │ │ │ │ ├── mapToCheckoutProps.test.ts │ │ │ │ ├── mapToCheckoutProps.ts │ │ │ │ ├── renderCheckout.test.tsx │ │ │ │ ├── renderCheckout.tsx │ │ │ │ ├── withCheckout.test.tsx │ │ │ │ └── withCheckout.tsx │ │ │ ├── common │ │ │ │ ├── bundler │ │ │ │ │ ├── configurePublicPath.test.ts │ │ │ │ │ ├── configurePublicPath.ts │ │ │ │ │ ├── getCurrentScriptPath.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── dom │ │ │ │ │ ├── appendStylesheet.test.ts │ │ │ │ │ ├── appendStylesheet.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── toCssRule.test.ts │ │ │ │ │ └── toCssRule.ts │ │ │ │ ├── error │ │ │ │ │ ├── ConsoleErrorLogger.test.ts │ │ │ │ │ ├── ConsoleErrorLogger.ts │ │ │ │ │ ├── CustomError.ts │ │ │ │ │ ├── ErrorCode.scss │ │ │ │ │ ├── ErrorCode.test.tsx │ │ │ │ │ ├── ErrorCode.tsx │ │ │ │ │ ├── ErrorModal.test.tsx │ │ │ │ │ ├── ErrorModal.tsx │ │ │ │ │ ├── NoopErrorLogger.ts │ │ │ │ │ ├── SentryErrorLogger.test.ts │ │ │ │ │ ├── SentryErrorLogger.ts │ │ │ │ │ ├── computeErrorCode.test.ts │ │ │ │ │ ├── computeErrorCode.ts │ │ │ │ │ ├── createCustomErrorType.test.ts │ │ │ │ │ ├── createCustomErrorType.ts │ │ │ │ │ ├── createErrorLogger.test.ts │ │ │ │ │ ├── createErrorLogger.ts │ │ │ │ │ ├── defaultErrorTypes.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── isCartChangedError.ts │ │ │ │ │ ├── isCustomError.ts │ │ │ │ │ ├── isErrorWithType.ts │ │ │ │ │ ├── isHtmlError.tsx │ │ │ │ │ └── isRequestError.ts │ │ │ │ ├── form │ │ │ │ │ ├── ConnectFormikProps.ts │ │ │ │ │ ├── connectFormik.test.tsx │ │ │ │ │ ├── connectFormik.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── withFormikExtended.test.tsx │ │ │ │ │ └── withFormikExtended.tsx │ │ │ │ ├── request │ │ │ │ │ └── responses.mock.ts │ │ │ │ ├── resolver │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── resolveComponent.test.tsx │ │ │ │ │ └── resolveComponent.ts │ │ │ │ └── utility │ │ │ │ │ ├── emptyData.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── is-apple-pay-window.ts │ │ │ │ │ ├── isExperimentEnabled.ts │ │ │ │ │ ├── isFloatingLabelEnabled.ts │ │ │ │ │ ├── isMobile.test.ts │ │ │ │ │ ├── isMobile.ts │ │ │ │ │ ├── isRecord.ts │ │ │ │ │ ├── isRecordContainingKey.ts │ │ │ │ │ ├── joinPaths.test.ts │ │ │ │ │ ├── joinPaths.ts │ │ │ │ │ ├── retry.test.ts │ │ │ │ │ ├── retry.ts │ │ │ │ │ └── should-filter-apple-pay.ts │ │ │ ├── config │ │ │ │ └── config.mock.ts │ │ │ ├── coupon │ │ │ │ ├── AppliedCoupon.test.tsx │ │ │ │ ├── AppliedCoupon.tsx │ │ │ │ ├── coupons.mock.ts │ │ │ │ └── index.ts │ │ │ ├── currency │ │ │ │ ├── ShopperCurrency.test.tsx │ │ │ │ ├── ShopperCurrency.tsx │ │ │ │ ├── StoreCurrency.test.tsx │ │ │ │ ├── StoreCurrency.tsx │ │ │ │ ├── __snapshots__ │ │ │ │ │ ├── ShopperCurrency.test.tsx.snap │ │ │ │ │ └── StoreCurrency.test.tsx.snap │ │ │ │ ├── currencies.mock.ts │ │ │ │ └── index.ts │ │ │ ├── customer │ │ │ │ ├── CheckoutButton.test.tsx │ │ │ │ ├── CheckoutButton.tsx │ │ │ │ ├── CheckoutButtonContainer.tsx │ │ │ │ ├── CheckoutButtonList.test.tsx │ │ │ │ ├── CheckoutButtonList.tsx │ │ │ │ ├── CreateAccountForm.scss │ │ │ │ ├── CreateAccountForm.tsx │ │ │ │ ├── Customer.test.tsx │ │ │ │ ├── Customer.tsx │ │ │ │ ├── CustomerGuest.test.tsx │ │ │ │ ├── CustomerInfo.test.tsx │ │ │ │ ├── CustomerInfo.tsx │ │ │ │ ├── CustomerViewType.ts │ │ │ │ ├── EmailField.tsx │ │ │ │ ├── EmailLoginForm.tsx │ │ │ │ ├── GuestForm.tsx │ │ │ │ ├── LoginForm.tsx │ │ │ │ ├── PasswordField.tsx │ │ │ │ ├── RegisteredCustomer.test.tsx │ │ │ │ ├── StripeGuestForm.test.tsx │ │ │ │ ├── StripeGuestForm.tsx │ │ │ │ ├── SubscribeField.tsx │ │ │ │ ├── SubscribeSessionStorage.test.ts │ │ │ │ ├── SubscribeSessionStorage.ts │ │ │ │ ├── WalletButtonV1Resolver.test.tsx │ │ │ │ ├── WalletButtonV1Resolver.tsx │ │ │ │ ├── __snapshots__ │ │ │ │ │ └── StripeGuestForm.test.tsx.snap │ │ │ │ ├── canSignOut.test.ts │ │ │ │ ├── canSignOut.ts │ │ │ │ ├── checkoutSuggestion │ │ │ │ │ ├── BoltCheckoutSuggestion.test.tsx │ │ │ │ │ ├── BoltCheckoutSuggestion.tsx │ │ │ │ │ ├── CheckoutSuggestion.test.tsx │ │ │ │ │ ├── CheckoutSuggestion.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── customWalletButton │ │ │ │ │ ├── AmazonPayV2Button.test.tsx │ │ │ │ │ ├── AmazonPayV2Button.tsx │ │ │ │ │ ├── ApplePayButton.tsx │ │ │ │ │ ├── PayPalCommerceButton.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── customers.mock.ts │ │ │ │ ├── formField.mock.ts │ │ │ │ ├── getCreateCustomerValidationSchema.ts │ │ │ │ ├── getEmailValidationSchema.ts │ │ │ │ ├── getPasswordRequirements.ts │ │ │ │ ├── getSupportedMethods.test.ts │ │ │ │ ├── getSupportedMethods.ts │ │ │ │ ├── index.ts │ │ │ │ ├── mapCreateAccountFromFormValues.ts │ │ │ │ ├── mapErrorMessage.test.ts │ │ │ │ ├── mapErrorMessage.ts │ │ │ │ ├── resolveCheckoutButton.ts │ │ │ │ └── validationPatterns.ts │ │ │ ├── embeddedCheckout │ │ │ │ ├── EmbeddedCheckoutStyleParser.test.ts │ │ │ │ ├── EmbeddedCheckoutStyleParser.ts │ │ │ │ ├── EmbeddedCheckoutStylesheet.test.ts │ │ │ │ ├── EmbeddedCheckoutStylesheet.ts │ │ │ │ ├── EmbeddedCheckoutSupport.test.ts │ │ │ │ ├── EmbeddedCheckoutSupport.ts │ │ │ │ ├── __snapshots__ │ │ │ │ │ └── EmbeddedCheckoutStyleParser.test.ts.snap │ │ │ │ ├── createEmbeddedCheckoutStylesheet.ts │ │ │ │ ├── createEmbeddedCheckoutSupport.test.ts │ │ │ │ ├── createEmbeddedCheckoutSupport.ts │ │ │ │ ├── embeddedCheckoutStyles.mock.ts │ │ │ │ ├── errors │ │ │ │ │ ├── EmbeddedCheckoutUnsupportedError.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── index.ts │ │ │ │ ├── isEmbedded.test.ts │ │ │ │ └── isEmbedded.ts │ │ │ ├── formFields │ │ │ │ ├── getCustomFormFieldsValidationSchema.test.tsx │ │ │ │ ├── getCustomFormFieldsValidationSchema.ts │ │ │ │ ├── getFormFieldsValidationSchema.test.tsx │ │ │ │ ├── getFormFieldsValidationSchema.ts │ │ │ │ ├── index.ts │ │ │ │ └── mapCustomFormFieldsFromFormValues.ts │ │ │ ├── geography │ │ │ │ ├── countries.mock.ts │ │ │ │ ├── country.ts │ │ │ │ └── index.ts │ │ │ ├── giftCertificate │ │ │ │ ├── AppliedGiftCertificate.test.tsx │ │ │ │ ├── AppliedGiftCertificate.tsx │ │ │ │ ├── giftCertificate.mock.ts │ │ │ │ ├── index.ts │ │ │ │ ├── isGiftCertificatePayment.ts │ │ │ │ ├── mapFromPayments.test.ts │ │ │ │ └── mapFromPayments.ts │ │ │ ├── guestSignup │ │ │ │ ├── AccountService.test.ts │ │ │ │ ├── AccountService.ts │ │ │ │ ├── CreatedCustomer.ts │ │ │ │ ├── GuestSignUpForm.test.tsx │ │ │ │ ├── GuestSignUpForm.tsx │ │ │ │ ├── PasswordSavedSuccessAlert.test.tsx │ │ │ │ ├── PasswordSavedSuccessAlert.tsx │ │ │ │ ├── SignUpPasswordField.tsx │ │ │ │ ├── SignedUpSuccessAlert.test.tsx │ │ │ │ ├── SignedUpSuccessAlert.tsx │ │ │ │ ├── errors │ │ │ │ │ ├── AccountCreationFailedError.ts │ │ │ │ │ ├── AccountCreationRequirementsError.ts │ │ │ │ │ └── index.ts │ │ │ │ └── index.ts │ │ │ ├── index.ts │ │ │ ├── loader.test.ts │ │ │ ├── loader.ts │ │ │ ├── order │ │ │ │ ├── MandateTextComponent.test.tsx │ │ │ │ ├── MandateTextComponent.tsx │ │ │ │ ├── OrderConfirmation.test.tsx │ │ │ │ ├── OrderConfirmation.tsx │ │ │ │ ├── OrderConfirmationApp.test.tsx │ │ │ │ ├── OrderConfirmationApp.tsx │ │ │ │ ├── OrderConfirmationSection.tsx │ │ │ │ ├── OrderModalSummarySubheader.test.tsx │ │ │ │ ├── OrderModalSummarySubheader.tsx │ │ │ │ ├── OrderStatus.test.tsx │ │ │ │ ├── OrderStatus.tsx │ │ │ │ ├── OrderSummary.test.tsx │ │ │ │ ├── OrderSummary.tsx │ │ │ │ ├── OrderSummaryDiscount.test.tsx │ │ │ │ ├── OrderSummaryDiscount.tsx │ │ │ │ ├── OrderSummaryDrawer.test.tsx │ │ │ │ ├── OrderSummaryDrawer.tsx │ │ │ │ ├── OrderSummaryHeader.tsx │ │ │ │ ├── OrderSummaryItem.test.tsx │ │ │ │ ├── OrderSummaryItem.tsx │ │ │ │ ├── OrderSummaryItems.test.tsx │ │ │ │ ├── OrderSummaryItems.tsx │ │ │ │ ├── OrderSummaryModal.test.tsx │ │ │ │ ├── OrderSummaryModal.tsx │ │ │ │ ├── OrderSummaryPrice.test.tsx │ │ │ │ ├── OrderSummaryPrice.tsx │ │ │ │ ├── OrderSummarySection.tsx │ │ │ │ ├── OrderSummarySubtotals.test.tsx │ │ │ │ ├── OrderSummarySubtotals.tsx │ │ │ │ ├── OrderSummaryTotal.test.tsx │ │ │ │ ├── OrderSummaryTotal.tsx │ │ │ │ ├── PaymentsWithMandates.test.tsx │ │ │ │ ├── PaymentsWithMandates.tsx │ │ │ │ ├── PrintLink.tsx │ │ │ │ ├── ThankYouHeader.tsx │ │ │ │ ├── __snapshots__ │ │ │ │ │ ├── OrderSummaryPrice.test.tsx.snap │ │ │ │ │ └── mapFromDigital.test.tsx.snap │ │ │ │ ├── getItemsCount.test.ts │ │ │ │ ├── getItemsCount.ts │ │ │ │ ├── getLineItemsCount.ts │ │ │ │ ├── getOrderShippingCostAfterAutomaticDiscount.ts │ │ │ │ ├── getOrderSummaryItemImage.test.tsx │ │ │ │ ├── getOrderSummaryItemImage.tsx │ │ │ │ ├── getPaymentInstructions.test.ts │ │ │ │ ├── getPaymentInstructions.ts │ │ │ │ ├── getStoreCreditAmount.test.ts │ │ │ │ ├── getStoreCreditAmount.ts │ │ │ │ ├── index.tsx │ │ │ │ ├── isOrderFee.test.ts │ │ │ │ ├── isOrderFee.ts │ │ │ │ ├── mapFromCustom.tsx │ │ │ │ ├── mapFromDigital.test.tsx │ │ │ │ ├── mapFromDigital.tsx │ │ │ │ ├── mapFromGiftCertificate.tsx │ │ │ │ ├── mapFromPhysical.tsx │ │ │ │ ├── mapToOrderSummarySubtotalsProps.ts │ │ │ │ ├── orders.mock.ts │ │ │ │ ├── removeBundledItems.test.ts │ │ │ │ ├── removeBundledItems.ts │ │ │ │ ├── renderOrderConfirmation.test.tsx │ │ │ │ └── renderOrderConfirmation.tsx │ │ │ ├── orderComments │ │ │ │ ├── OrderComments.tsx │ │ │ │ └── index.ts │ │ │ ├── payment │ │ │ │ ├── Payment.test.tsx │ │ │ │ ├── Payment.tsx │ │ │ │ ├── PaymentContext.tsx │ │ │ │ ├── PaymentForm.test.tsx │ │ │ │ ├── PaymentForm.tsx │ │ │ │ ├── PaymentRedeemables.test.tsx │ │ │ │ ├── PaymentRedeemables.tsx │ │ │ │ ├── PaymentSubmitButton.test.tsx │ │ │ │ ├── PaymentSubmitButton.tsx │ │ │ │ ├── SpamProtectionField.test.tsx │ │ │ │ ├── SpamProtectionField.tsx │ │ │ │ ├── StoreInstrumentFieldset │ │ │ │ │ ├── InstrumentStorageField.tsx │ │ │ │ │ ├── InstrumentStoreAsDefaultField.tsx │ │ │ │ │ ├── StoreInstrumentFieldset.test.tsx │ │ │ │ │ ├── StoreInstrumentFieldset.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── createPaymentFormService.ts │ │ │ │ ├── creditCard │ │ │ │ │ ├── CreditCardCodeField.tsx │ │ │ │ │ ├── CreditCardCodeTooltip.scss │ │ │ │ │ ├── CreditCardCodeTooltip.test.tsx │ │ │ │ │ ├── CreditCardCodeTooltip.tsx │ │ │ │ │ ├── CreditCardCustomerCodeField.tsx │ │ │ │ │ ├── CreditCardExpiryField.tsx │ │ │ │ │ ├── CreditCardFieldset.test.tsx │ │ │ │ │ ├── CreditCardFieldset.tsx │ │ │ │ │ ├── CreditCardIcon.test.tsx │ │ │ │ │ ├── CreditCardIcon.tsx │ │ │ │ │ ├── CreditCardIconList.test.tsx │ │ │ │ │ ├── CreditCardIconList.tsx │ │ │ │ │ ├── CreditCardNameField.tsx │ │ │ │ │ ├── CreditCardNumberField.test.tsx │ │ │ │ │ ├── CreditCardNumberField.tsx │ │ │ │ │ ├── TextFieldForm.test.tsx │ │ │ │ │ ├── TextFieldForm.tsx │ │ │ │ │ ├── configureCardValidator.ts │ │ │ │ │ ├── formatCreditCardExpiryDate.test.ts │ │ │ │ │ ├── formatCreditCardExpiryDate.ts │ │ │ │ │ ├── formatCreditCardNumber.test.ts │ │ │ │ │ ├── formatCreditCardNumber.ts │ │ │ │ │ ├── getCreditCardInputStyles.test.tsx │ │ │ │ │ ├── getCreditCardInputStyles.tsx │ │ │ │ │ ├── getCreditCardValidationSchema.test.ts │ │ │ │ │ ├── getCreditCardValidationSchema.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── mapFromPaymentMethodCardType.test.ts │ │ │ │ │ ├── mapFromPaymentMethodCardType.ts │ │ │ │ │ ├── unformatCreditCardExpiryDate.test.ts │ │ │ │ │ ├── unformatCreditCardExpiryDate.ts │ │ │ │ │ ├── unformatCreditCardNumber.test.ts │ │ │ │ │ └── unformatCreditCardNumber.ts │ │ │ │ ├── getPaymentValidationSchema.ts │ │ │ │ ├── getPreselectedPayment.ts │ │ │ │ ├── getProviderWithCustomCheckout.test.ts │ │ │ │ ├── getProviderWithCustomCheckout.ts │ │ │ │ ├── hostedCreditCard │ │ │ │ │ ├── HostedCreditCardCodeField.test.tsx │ │ │ │ │ ├── HostedCreditCardCodeField.tsx │ │ │ │ │ ├── HostedCreditCardExpiryField.tsx │ │ │ │ │ ├── HostedCreditCardFieldset.test.tsx │ │ │ │ │ ├── HostedCreditCardFieldset.tsx │ │ │ │ │ ├── HostedCreditCardNameField.tsx │ │ │ │ │ ├── HostedCreditCardNumberField.test.tsx │ │ │ │ │ ├── HostedCreditCardNumberField.tsx │ │ │ │ │ ├── HostedCreditCardValidation.test.tsx │ │ │ │ │ ├── HostedCreditCardValidation.tsx │ │ │ │ │ ├── getHostedCreditCardValidationSchema.test.ts │ │ │ │ │ ├── getHostedCreditCardValidationSchema.ts │ │ │ │ │ ├── getHostedInstrumentValidationSchema.test.ts │ │ │ │ │ ├── getHostedInstrumentValidationSchema.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── withHostedCreditCardFieldset.test.tsx │ │ │ │ │ ├── withHostedCreditCardFieldset.tsx │ │ │ │ │ └── withHostedPayPalCommerceCreditCardFieldset.tsx │ │ │ │ ├── index.ts │ │ │ │ ├── mapSubmitOrderErrorMessage.test.ts │ │ │ │ ├── mapSubmitOrderErrorMessage.ts │ │ │ │ ├── mapToOrderRequestBody.test.ts │ │ │ │ ├── mapToOrderRequestBody.ts │ │ │ │ ├── payment-methods.mock.ts │ │ │ │ ├── paymentMethod │ │ │ │ │ ├── BraintreeCreditCardPaymentMethod.tsx │ │ │ │ │ ├── CCAvenueMarsPaymentMethod.tsx │ │ │ │ │ ├── CreditCardFieldsetValues.ts │ │ │ │ │ ├── CreditCardPaymentMethod.tsx │ │ │ │ │ ├── HostedCreditCardFieldsetValues.ts │ │ │ │ │ ├── HostedCreditCardPaymentMethod.tsx │ │ │ │ │ ├── HostedPaymentMethod.tsx │ │ │ │ │ ├── HostedWidgetPaymentMethod.tsx │ │ │ │ │ ├── MasterpassPaymentMethod.tsx │ │ │ │ │ ├── PPSDKPaymentMethod │ │ │ │ │ │ ├── NoUI.tsx │ │ │ │ │ │ ├── PPSDKPaymentMethod.tsx │ │ │ │ │ │ ├── Wrapper.tsx │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── initializationComponentMap.ts │ │ │ │ │ │ └── usePropsToOnMount.ts │ │ │ │ │ ├── PaymentMethod.tsx │ │ │ │ │ ├── PaymentMethodId.ts │ │ │ │ │ ├── PaymentMethodList.tsx │ │ │ │ │ ├── PaymentMethodProviderType.ts │ │ │ │ │ ├── PaymentMethodTitle.tsx │ │ │ │ │ ├── PaymentMethodType.ts │ │ │ │ │ ├── PaymentMethodV2.tsx │ │ │ │ │ ├── PaypalCommerceCreditCardPaymentMethod.tsx │ │ │ │ │ ├── PaypalPaymentsProPaymentMethod.tsx │ │ │ │ │ ├── SignOutLink.tsx │ │ │ │ │ ├── WalletButtonPaymentMethod.tsx │ │ │ │ │ ├── getPaymentMethodDisplayName.test.ts │ │ │ │ │ ├── getPaymentMethodDisplayName.tsx │ │ │ │ │ ├── getPaymentMethodName.test.ts │ │ │ │ │ ├── getPaymentMethodName.ts │ │ │ │ │ ├── getUniquePaymentMethodId.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── resolvePaymentMethod.ts │ │ │ │ ├── storeCredit │ │ │ │ │ ├── StoreCreditField.test.tsx │ │ │ │ │ ├── StoreCreditField.tsx │ │ │ │ │ ├── StoreCreditOverlay.test.tsx │ │ │ │ │ ├── StoreCreditOverlay.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ └── isStoreCreditPayment.ts │ │ │ │ ├── storedInstrument │ │ │ │ │ ├── AccountInstrumentFieldset.test.tsx │ │ │ │ │ ├── AccountInstrumentFieldset.tsx │ │ │ │ │ ├── AccountInstrumentSelect.test.tsx │ │ │ │ │ ├── AccountInstrumentSelect.tsx │ │ │ │ │ ├── CardInstrumentFieldset.test.tsx │ │ │ │ │ ├── CardInstrumentFieldset.tsx │ │ │ │ │ ├── CardInstrumentFieldsetValues.tsx │ │ │ │ │ ├── CreditCardValidation.test.tsx │ │ │ │ │ ├── CreditCardValidation.tsx │ │ │ │ │ ├── InstrumentSelect.test.tsx │ │ │ │ │ ├── InstrumentSelect.tsx │ │ │ │ │ ├── ManageAccountInstrumentsTable.test.tsx │ │ │ │ │ ├── ManageAccountInstrumentsTable.tsx │ │ │ │ │ ├── ManageCardInstrumentsTable.test.tsx │ │ │ │ │ ├── ManageCardInstrumentsTable.tsx │ │ │ │ │ ├── ManageInstrumentsAlert.test.tsx │ │ │ │ │ ├── ManageInstrumentsAlert.tsx │ │ │ │ │ ├── ManageInstrumentsModal.test.tsx │ │ │ │ │ ├── ManageInstrumentsModal.tsx │ │ │ │ │ ├── getInstrumentValidationSchema.test.ts │ │ │ │ │ ├── getInstrumentValidationSchema.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── instruments.mock.ts │ │ │ │ │ ├── isAccountInstrument.test.ts │ │ │ │ │ ├── isAccountInstrument.ts │ │ │ │ │ ├── isBankAccountInstrument.test.ts │ │ │ │ │ ├── isBankAccountInstrument.ts │ │ │ │ │ ├── isCardInstrument.test.ts │ │ │ │ │ ├── isCardInstrument.ts │ │ │ │ │ ├── isInstrumentCardCodeRequired.test.ts │ │ │ │ │ ├── isInstrumentCardCodeRequired.ts │ │ │ │ │ ├── isInstrumentCardCodeRequiredSelector.ts │ │ │ │ │ ├── isInstrumentCardNumberRequired.ts │ │ │ │ │ ├── isInstrumentCardNumberRequiredSelector.ts │ │ │ │ │ ├── isInstrumentFeatureAvailable.test.ts │ │ │ │ │ ├── isInstrumentFeatureAvailable.ts │ │ │ │ │ ├── mapFromInstrumentCardType.test.ts │ │ │ │ │ └── mapFromInstrumentCardType.ts │ │ │ │ └── withPayment.tsx │ │ │ ├── polyfill.ts │ │ │ ├── privacyPolicy │ │ │ │ ├── PrivacyPolicyField.test.tsx │ │ │ │ ├── PrivacyPolicyField.tsx │ │ │ │ ├── getPrivacyPolicyValidationSchema.ts │ │ │ │ └── index.ts │ │ │ ├── promotion │ │ │ │ ├── PromotionBanner.test.tsx │ │ │ │ ├── PromotionBanner.tsx │ │ │ │ ├── PromotionBannerList.scss │ │ │ │ ├── PromotionBannerList.test.tsx │ │ │ │ ├── PromotionBannerList.tsx │ │ │ │ ├── index.ts │ │ │ │ └── promotions.mock.ts │ │ │ ├── shipping │ │ │ │ ├── AllocateItemsModal.tsx │ │ │ │ ├── AllocatedItemsList.tsx │ │ │ │ ├── AmazonPayShippingAddress.tsx │ │ │ │ ├── BillingSameAsShippingField.tsx │ │ │ │ ├── ConsignmentAddressSelector.tsx │ │ │ │ ├── ConsignmentLineItem.tsx │ │ │ │ ├── ConsignmentLineItemDetail.tsx │ │ │ │ ├── ConsignmentListItem.tsx │ │ │ │ ├── ItemSplitTooltip.scss │ │ │ │ ├── ItemSplitTooltip.tsx │ │ │ │ ├── LeftToAllocateItem.tsx │ │ │ │ ├── LeftToAllocateItemsTable.tsx │ │ │ │ ├── MultiShipping.test.tsx │ │ │ │ ├── MultiShippingForm.scss │ │ │ │ ├── MultiShippingForm.test.tsx │ │ │ │ ├── MultiShippingForm.tsx │ │ │ │ ├── MultiShippingFormFooter.tsx │ │ │ │ ├── MultiShippingGuestForm.tsx │ │ │ │ ├── MultishippingType.ts │ │ │ │ ├── NewConsignment.tsx │ │ │ │ ├── PayPalFastlaneShippingAddress.test.tsx │ │ │ │ ├── PayPalFastlaneShippingAddress.tsx │ │ │ │ ├── ShippableItem.ts │ │ │ │ ├── Shipping.test.tsx │ │ │ │ ├── Shipping.tsx │ │ │ │ ├── ShippingAddress.tsx │ │ │ │ ├── ShippingAddressFields.ts │ │ │ │ ├── ShippingAddressForm.tsx │ │ │ │ ├── ShippingComponent.test.tsx │ │ │ │ ├── ShippingForm.tsx │ │ │ │ ├── ShippingFormFooter.tsx │ │ │ │ ├── ShippingHeader.scss │ │ │ │ ├── ShippingHeader.tsx │ │ │ │ ├── ShippingSummary.tsx │ │ │ │ ├── SingleShippingForm.test.tsx │ │ │ │ ├── SingleShippingForm.tsx │ │ │ │ ├── StaticAddressEditable.scss │ │ │ │ ├── StaticAddressEditable.tsx │ │ │ │ ├── StaticConsignment.scss │ │ │ │ ├── StaticConsignment.tsx │ │ │ │ ├── StaticConsignmentItemList.tsx │ │ │ │ ├── StaticMultiConsignment.scss │ │ │ │ ├── StaticMultiConsignment.tsx │ │ │ │ ├── consignment.mock.ts │ │ │ │ ├── errors │ │ │ │ │ ├── AssignItemFailedError.ts │ │ │ │ │ ├── AssignItemInvalidAddressError.ts │ │ │ │ │ ├── UnassignItemError.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── findConsignment.test.ts │ │ │ │ ├── findConsignment.ts │ │ │ │ ├── findLineItems.test.ts │ │ │ │ ├── findLineItems.ts │ │ │ │ ├── getLineItemsCount.test.ts │ │ │ │ ├── getLineItemsCount.ts │ │ │ │ ├── getRecommendedShippingOption.test.ts │ │ │ │ ├── getRecommendedShippingOption.ts │ │ │ │ ├── getShippableItemsCount.ts │ │ │ │ ├── getShippableLineItems.test.ts │ │ │ │ ├── getShippableLineItems.ts │ │ │ │ ├── getShippingCostAfterAutomaticDiscount.ts │ │ │ │ ├── getShippingMethodId.test.ts │ │ │ │ ├── getShippingMethodId.ts │ │ │ │ ├── hasPromotionalItems.tsx │ │ │ │ ├── hasSelectedShippingOptions.test.ts │ │ │ │ ├── hasSelectedShippingOptions.ts │ │ │ │ ├── hasUnassignedLineItems.test.ts │ │ │ │ ├── hasUnassignedLineItems.ts │ │ │ │ ├── hooks │ │ │ │ │ ├── useDeallocateItem.test.ts │ │ │ │ │ ├── useDeallocateItem.ts │ │ │ │ │ └── useMultishippingConsignmentItems.ts │ │ │ │ ├── index.ts │ │ │ │ ├── isSelectedShippingOptionValid.test.ts │ │ │ │ ├── isSelectedShippingOptionValid.ts │ │ │ │ ├── isUsingMultiShipping.test.ts │ │ │ │ ├── isUsingMultiShipping.ts │ │ │ │ ├── itemsRequireShipping.test.ts │ │ │ │ ├── itemsRequireShipping.ts │ │ │ │ ├── mapToShippingProps.test.ts │ │ │ │ ├── shipping-addresses.mock.ts │ │ │ │ ├── shippingOption │ │ │ │ │ ├── MultiShippingOptions.tsx │ │ │ │ │ ├── MultiShippingOptionsList.tsx │ │ │ │ │ ├── MultiShippingOptionsListItem.tsx │ │ │ │ │ ├── ShippingOptionAdditionalDescription.test.tsx │ │ │ │ │ ├── ShippingOptionAdditionalDescription.tsx │ │ │ │ │ ├── ShippingOptionExpiredError.ts │ │ │ │ │ ├── ShippingOptions.tsx │ │ │ │ │ ├── ShippingOptionsForm.scss │ │ │ │ │ ├── ShippingOptionsForm.tsx │ │ │ │ │ ├── ShippingOptionsList.tsx │ │ │ │ │ ├── StaticShippingOption.scss │ │ │ │ │ ├── StaticShippingOption.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── mapToShippingOptions.test.ts │ │ │ │ │ └── shippingMethod.mock.ts │ │ │ │ ├── stripeUPE │ │ │ │ │ ├── StripeShipping.test.tsx │ │ │ │ │ ├── StripeShipping.tsx │ │ │ │ │ ├── StripeShippingAddress.test.tsx │ │ │ │ │ ├── StripeShippingAddress.tsx │ │ │ │ │ ├── StripeShippingAddressDisplay.tsx │ │ │ │ │ ├── StripeShippingForm.test.tsx │ │ │ │ │ ├── StripeShippingForm.tsx │ │ │ │ │ ├── StripeStateMapper.test.ts │ │ │ │ │ ├── StripeStateMapper.ts │ │ │ │ │ └── StripeUPEShippingAddress.test.tsx │ │ │ │ └── utils │ │ │ │ │ ├── generateItemHash.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ └── setRecommendedOrMissingShippingOption.ts │ │ │ ├── termsConditions │ │ │ │ ├── TermsConditions.tsx │ │ │ │ ├── TermsConditionsField.test.tsx │ │ │ │ ├── TermsConditionsField.tsx │ │ │ │ ├── getTermsConditionsValidationSchema.test.ts │ │ │ │ ├── getTermsConditionsValidationSchema.ts │ │ │ │ └── index.ts │ │ │ └── ui │ │ │ │ ├── Base.scss │ │ │ │ ├── alert │ │ │ │ ├── Alert.test.tsx │ │ │ │ ├── Alert.tsx │ │ │ │ └── index.ts │ │ │ │ ├── autocomplete │ │ │ │ ├── Autocomplete.test.tsx │ │ │ │ ├── Autocomplete.tsx │ │ │ │ ├── autocomplete-item.ts │ │ │ │ └── index.ts │ │ │ │ ├── button │ │ │ │ ├── Button.test.tsx │ │ │ │ ├── Button.tsx │ │ │ │ └── index.ts │ │ │ │ ├── dropdown │ │ │ │ ├── DropdownTrigger.test.tsx │ │ │ │ ├── DropdownTrigger.tsx │ │ │ │ └── index.ts │ │ │ │ ├── form │ │ │ │ ├── BasicFormField.tsx │ │ │ │ ├── CheckboxFormField.tsx │ │ │ │ ├── CheckboxGroupFormField.tsx │ │ │ │ ├── CheckboxInput.tsx │ │ │ │ ├── Checklist.tsx │ │ │ │ ├── ChecklistItem.tsx │ │ │ │ ├── ChecklistItemInput.tsx │ │ │ │ ├── CustomChecklistItem.tsx │ │ │ │ ├── DynamicFormField.tsx │ │ │ │ ├── DynamicFormFieldType.ts │ │ │ │ ├── DynamicInput.tsx │ │ │ │ ├── Fieldset.tsx │ │ │ │ ├── Form.tsx │ │ │ │ ├── FormField.tsx │ │ │ │ ├── FormFieldContainer.tsx │ │ │ │ ├── FormFieldError.tsx │ │ │ │ ├── Input.tsx │ │ │ │ ├── Label.tsx │ │ │ │ ├── Legend.tsx │ │ │ │ ├── MultiCheckboxControl.scss │ │ │ │ ├── MultiCheckboxControl.tsx │ │ │ │ ├── RadioInput.tsx │ │ │ │ ├── TextArea.tsx │ │ │ │ ├── TextInput.tsx │ │ │ │ ├── TextInputIframeContainer.test.tsx │ │ │ │ ├── TextInputIframeContainer.tsx │ │ │ │ ├── index.ts │ │ │ │ └── withForm.tsx │ │ │ │ ├── header │ │ │ │ ├── PrimaryHeader.tsx │ │ │ │ └── index.ts │ │ │ │ ├── icon │ │ │ │ ├── IconBitCoin.tsx │ │ │ │ ├── IconBitCoinCash.tsx │ │ │ │ ├── IconBolt.tsx │ │ │ │ ├── IconCardAmex.tsx │ │ │ │ ├── IconCardBancontact.tsx │ │ │ │ ├── IconCardCB.tsx │ │ │ │ ├── IconCardCarnet.tsx │ │ │ │ ├── IconCardCodeAmex.tsx │ │ │ │ ├── IconCardCodeVisa.tsx │ │ │ │ ├── IconCardDankort.tsx │ │ │ │ ├── IconCardDinersClub.tsx │ │ │ │ ├── IconCardDiscover.tsx │ │ │ │ ├── IconCardElectron.tsx │ │ │ │ ├── IconCardElo.tsx │ │ │ │ ├── IconCardHipercard.tsx │ │ │ │ ├── IconCardJCB.tsx │ │ │ │ ├── IconCardMada.tsx │ │ │ │ ├── IconCardMaestro.tsx │ │ │ │ ├── IconCardMastercard.tsx │ │ │ │ ├── IconCardTroy.tsx │ │ │ │ ├── IconCardUnionPay.tsx │ │ │ │ ├── IconCardVisa.tsx │ │ │ │ ├── IconCheck.tsx │ │ │ │ ├── IconChevronDown.tsx │ │ │ │ ├── IconChevronUp.tsx │ │ │ │ ├── IconClose.tsx │ │ │ │ ├── IconDogeCoin.tsx │ │ │ │ ├── IconError.tsx │ │ │ │ ├── IconEthereum.tsx │ │ │ │ ├── IconEye.tsx │ │ │ │ ├── IconEyeSlash.tsx │ │ │ │ ├── IconGiftCertificate.tsx │ │ │ │ ├── IconHelp.tsx │ │ │ │ ├── IconInfo.tsx │ │ │ │ ├── IconLiteCoin.tsx │ │ │ │ ├── IconLock.tsx │ │ │ │ ├── IconNewAccount.tsx │ │ │ │ ├── IconPaypal.tsx │ │ │ │ ├── IconPrint.tsx │ │ │ │ ├── IconRemove.tsx │ │ │ │ ├── IconShibaInu.tsx │ │ │ │ ├── IconSuccess.tsx │ │ │ │ ├── IconTag.tsx │ │ │ │ ├── IconUsdCoin.tsx │ │ │ │ ├── index.ts │ │ │ │ └── withIconContainer.tsx │ │ │ │ ├── modal │ │ │ │ ├── Modal.test.tsx │ │ │ │ ├── Modal.tsx │ │ │ │ ├── ModalHeader.tsx │ │ │ │ ├── ModalLink.scss │ │ │ │ ├── ModalLink.tsx │ │ │ │ ├── ModalTrigger.test.tsx │ │ │ │ ├── ModalTrigger.tsx │ │ │ │ └── index.ts │ │ │ │ ├── popover │ │ │ │ ├── Popover.scss │ │ │ │ ├── Popover.test.tsx │ │ │ │ ├── Popover.tsx │ │ │ │ ├── PopoverList.scss │ │ │ │ ├── PopoverList.test.tsx │ │ │ │ ├── PopoverList.tsx │ │ │ │ └── index.ts │ │ │ │ ├── responsive │ │ │ │ ├── MobileView.tsx │ │ │ │ ├── ViewPicker.tsx │ │ │ │ ├── breakpoints.ts │ │ │ │ ├── index.ts │ │ │ │ ├── isMobileView.ts │ │ │ │ ├── isSmallScreen.test.ts │ │ │ │ └── isSmallScreen.ts │ │ │ │ ├── text │ │ │ │ ├── MultiLineText.test.tsx │ │ │ │ ├── MultiLineText.tsx │ │ │ │ └── index.ts │ │ │ │ ├── toggle │ │ │ │ ├── Toggle.test.tsx │ │ │ │ ├── Toggle.tsx │ │ │ │ └── index.ts │ │ │ │ └── tooltip │ │ │ │ ├── Tooltip.scss │ │ │ │ ├── Tooltip.test.tsx │ │ │ │ ├── Tooltip.tsx │ │ │ │ ├── TooltipTrigger.test.tsx │ │ │ │ ├── TooltipTrigger.tsx │ │ │ │ └── index.ts │ │ ├── scss │ │ │ ├── App.scss │ │ │ ├── components │ │ │ │ ├── _components.scss │ │ │ │ ├── bigcommerce │ │ │ │ │ ├── credit-card-types │ │ │ │ │ │ ├── _component.scss │ │ │ │ │ │ └── _credit-card-types.scss │ │ │ │ │ ├── forms-ccFields │ │ │ │ │ │ ├── _component.scss │ │ │ │ │ │ └── _forms-ccFields.scss │ │ │ │ │ ├── forms │ │ │ │ │ │ ├── _component.scss │ │ │ │ │ │ └── _forms.scss │ │ │ │ │ ├── icons │ │ │ │ │ │ ├── _component.scss │ │ │ │ │ │ └── _icons.scss │ │ │ │ │ └── loading │ │ │ │ │ │ ├── _component.scss │ │ │ │ │ │ └── _loading.scss │ │ │ │ ├── checkout │ │ │ │ │ ├── achForm │ │ │ │ │ │ ├── _achForm.scss │ │ │ │ │ │ └── component.scss │ │ │ │ │ ├── animation │ │ │ │ │ │ ├── _animation.scss │ │ │ │ │ │ └── _component.scss │ │ │ │ │ ├── cardIcon │ │ │ │ │ │ ├── _cardIcon.scss │ │ │ │ │ │ └── _component.scss │ │ │ │ │ ├── cartDrawer │ │ │ │ │ │ ├── _cartDrawer.scss │ │ │ │ │ │ └── _component.scss │ │ │ │ │ ├── cartModal │ │ │ │ │ │ ├── _cartModal.scss │ │ │ │ │ │ └── _component.scss │ │ │ │ │ ├── changeHighlight │ │ │ │ │ │ ├── _changeHighlight.scss │ │ │ │ │ │ └── _component.scss │ │ │ │ │ ├── checklist │ │ │ │ │ │ ├── _checklist.scss │ │ │ │ │ │ └── _component.scss │ │ │ │ │ ├── checkoutAddress │ │ │ │ │ │ ├── _checkoutAddress.scss │ │ │ │ │ │ └── _component.scss │ │ │ │ │ ├── checkoutCart │ │ │ │ │ │ ├── _checkoutCart.scss │ │ │ │ │ │ └── _component.scss │ │ │ │ │ ├── checkoutHeader │ │ │ │ │ │ ├── _checkoutHeader.scss │ │ │ │ │ │ └── _component.scss │ │ │ │ │ ├── checkoutRemote │ │ │ │ │ │ ├── _checkoutRemote.scss │ │ │ │ │ │ └── _component.scss │ │ │ │ │ ├── checkoutSteps │ │ │ │ │ │ ├── _checkoutSteps.scss │ │ │ │ │ │ └── _component.scss │ │ │ │ │ ├── checkoutSuggestion │ │ │ │ │ │ ├── _checkoutSuggestion.scss │ │ │ │ │ │ └── _component.scss │ │ │ │ │ ├── consignment │ │ │ │ │ │ ├── _component.scss │ │ │ │ │ │ └── _consignment.scss │ │ │ │ │ ├── customer │ │ │ │ │ │ ├── _component.scss │ │ │ │ │ │ └── _customer.scss │ │ │ │ │ ├── dynamicFormField │ │ │ │ │ │ ├── _component.scss │ │ │ │ │ │ ├── _datePicker.scss │ │ │ │ │ │ └── _datePickerNext.scss │ │ │ │ │ ├── genericModal │ │ │ │ │ │ ├── _component.scss │ │ │ │ │ │ └── _genericModal.scss │ │ │ │ │ ├── instrumentModal │ │ │ │ │ │ ├── _component.scss │ │ │ │ │ │ └── _instrumentModal.scss │ │ │ │ │ ├── instrumentSelect │ │ │ │ │ │ ├── _component.scss │ │ │ │ │ │ └── _instrumentSelect.scss │ │ │ │ │ ├── loadingSpinner │ │ │ │ │ │ ├── _component.scss │ │ │ │ │ │ └── _loadingSpinner.scss │ │ │ │ │ ├── orderConfirmation │ │ │ │ │ │ ├── _component.scss │ │ │ │ │ │ └── _orderConfirmation.scss │ │ │ │ │ ├── paymentProvider │ │ │ │ │ │ ├── _component.scss │ │ │ │ │ │ └── _paymentProvider.scss │ │ │ │ │ ├── productList │ │ │ │ │ │ ├── _component.scss │ │ │ │ │ │ └── _productList.scss │ │ │ │ │ ├── ratepayForm │ │ │ │ │ │ ├── _ratepayForm.scss │ │ │ │ │ │ └── component.scss │ │ │ │ │ ├── signoutLink │ │ │ │ │ │ ├── _component.scss │ │ │ │ │ │ └── _signoutLink.scss │ │ │ │ │ ├── spamProtection │ │ │ │ │ │ ├── _component.scss │ │ │ │ │ │ └── _spamProtection.scss │ │ │ │ │ ├── storeCredit │ │ │ │ │ │ ├── _component.scss │ │ │ │ │ │ └── _storeCredit.scss │ │ │ │ │ └── widget │ │ │ │ │ │ ├── _component.scss │ │ │ │ │ │ └── _widget.scss │ │ │ │ └── foundation │ │ │ │ │ ├── alerts │ │ │ │ │ ├── _alerts.scss │ │ │ │ │ └── _component.scss │ │ │ │ │ ├── buttons │ │ │ │ │ ├── _buttons.scss │ │ │ │ │ └── _component.scss │ │ │ │ │ ├── forms │ │ │ │ │ ├── _component.scss │ │ │ │ │ └── _forms.scss │ │ │ │ │ ├── global │ │ │ │ │ ├── _component.scss │ │ │ │ │ └── _global.scss │ │ │ │ │ ├── modal │ │ │ │ │ ├── _component.scss │ │ │ │ │ └── _modal.scss │ │ │ │ │ ├── table │ │ │ │ │ ├── _component.scss │ │ │ │ │ └── _table.scss │ │ │ │ │ └── type │ │ │ │ │ ├── _component.scss │ │ │ │ │ ├── _tools.scss │ │ │ │ │ └── _type.scss │ │ │ ├── layouts │ │ │ │ ├── _layouts.scss │ │ │ │ └── checkout │ │ │ │ │ └── _checkout.scss │ │ │ ├── settings │ │ │ │ ├── bigcommerce │ │ │ │ │ ├── _bigcommerce.scss │ │ │ │ │ ├── credit-card-types │ │ │ │ │ │ └── _settings.scss │ │ │ │ │ ├── forms-ccFields │ │ │ │ │ │ └── _settings.scss │ │ │ │ │ ├── forms │ │ │ │ │ │ └── _settings.scss │ │ │ │ │ ├── icons │ │ │ │ │ │ └── _settings.scss │ │ │ │ │ ├── loading │ │ │ │ │ │ └── _settings.scss │ │ │ │ │ └── media │ │ │ │ │ │ └── _settings.scss │ │ │ │ ├── checkout │ │ │ │ │ ├── _checkout.scss │ │ │ │ │ ├── animation │ │ │ │ │ │ └── _settings.scss │ │ │ │ │ ├── cartDrawer │ │ │ │ │ │ └── _settings.scss │ │ │ │ │ ├── checklist │ │ │ │ │ │ └── _settings.scss │ │ │ │ │ ├── checkoutAddress │ │ │ │ │ │ └── _settings.scss │ │ │ │ │ ├── checkoutCart │ │ │ │ │ │ └── _settings.scss │ │ │ │ │ ├── checkoutSteps │ │ │ │ │ │ └── _settings.scss │ │ │ │ │ ├── customer │ │ │ │ │ │ └── _settings.scss │ │ │ │ │ ├── dropdownSelect │ │ │ │ │ │ └── _settings.scss │ │ │ │ │ ├── paymentProvider │ │ │ │ │ │ └── _settings.scss │ │ │ │ │ └── paymentStep │ │ │ │ │ │ └── _settings.scss │ │ │ │ ├── foundation │ │ │ │ │ ├── _foundation.scss │ │ │ │ │ ├── alerts │ │ │ │ │ │ └── _settings.scss │ │ │ │ │ ├── buttons │ │ │ │ │ │ └── _settings.scss │ │ │ │ │ ├── dropdown-buttons │ │ │ │ │ │ └── _settings.scss │ │ │ │ │ ├── dropdown │ │ │ │ │ │ └── _settings.scss │ │ │ │ │ ├── forms │ │ │ │ │ │ └── _settings.scss │ │ │ │ │ ├── global │ │ │ │ │ │ └── _settings.scss │ │ │ │ │ ├── grid │ │ │ │ │ │ └── _settings.scss │ │ │ │ │ ├── modal │ │ │ │ │ │ └── _settings.scss │ │ │ │ │ ├── panels │ │ │ │ │ │ └── _settings.scss │ │ │ │ │ ├── tables │ │ │ │ │ │ └── _settings.scss │ │ │ │ │ ├── tooltips │ │ │ │ │ │ └── _settings.scss │ │ │ │ │ └── type │ │ │ │ │ │ └── _settings.scss │ │ │ │ ├── global │ │ │ │ │ ├── _global.scss │ │ │ │ │ ├── color │ │ │ │ │ │ └── _color.scss │ │ │ │ │ ├── container │ │ │ │ │ │ └── _container.scss │ │ │ │ │ ├── export │ │ │ │ │ │ └── _export.scss │ │ │ │ │ ├── layout │ │ │ │ │ │ └── _layout.scss │ │ │ │ │ ├── overlay │ │ │ │ │ │ └── _overlay.scss │ │ │ │ │ ├── screensizes │ │ │ │ │ │ └── _screensizes.scss │ │ │ │ │ ├── typography │ │ │ │ │ │ └── _typography.scss │ │ │ │ │ └── z-index │ │ │ │ │ │ └── _z-index.scss │ │ │ │ ├── normalize │ │ │ │ │ └── _normalize.scss │ │ │ │ └── utilities │ │ │ │ │ └── _utilities.scss │ │ │ └── tools │ │ │ │ └── _toolkit.scss │ │ └── static │ │ │ ├── img │ │ │ └── powered_by_google_on_white.png │ │ │ └── svg │ │ │ ├── card.svg │ │ │ ├── facebook.svg │ │ │ ├── gplus.svg │ │ │ └── twitter.svg │ ├── tsconfig.json │ ├── tsconfig.spec.json │ └── types │ │ ├── card-validator.d.ts │ │ ├── supported-files.d.ts │ │ └── webpack.d.ts ├── credit-card-integration │ ├── .eslintrc.json │ ├── README.md │ ├── jest.config.js │ ├── project.json │ ├── src │ │ ├── CreditCardPaymentMethodComponent.test.tsx │ │ ├── CreditCardPaymentMethodComponent.tsx │ │ └── index.ts │ ├── tsconfig.json │ └── tsconfig.spec.json ├── digitalriver-integration │ ├── .eslintrc.json │ ├── README.md │ ├── e2e │ │ ├── __har__ │ │ │ ├── Digital-River-Credit-Card-in-Payment-Step_3405653337 │ │ │ │ └── recording.har │ │ │ └── Digital-River-wire-transfer-in-Payment-Step_3932186716 │ │ │ │ └── recording.har │ │ ├── digitalriver.spec.ts │ │ └── support │ │ │ └── hostedField.ejs │ ├── jest.config.js │ ├── project.json │ ├── src │ │ ├── DigitalRiverPaymentMethod.test.tsx │ │ ├── DigitalRiverPaymentMethod.tsx │ │ └── index.ts │ ├── tsconfig.json │ └── tsconfig.spec.json ├── dom-utils │ ├── .eslintrc.json │ ├── README.md │ ├── jest.config.js │ ├── project.json │ ├── src │ │ ├── getAppliedStyles.test.ts │ │ ├── getAppliedStyles.ts │ │ ├── index.ts │ │ ├── parseAnchor.test.ts │ │ ├── parseAnchor.ts │ │ ├── preventDefault.ts │ │ └── stopPropagation.ts │ ├── tsconfig.json │ └── tsconfig.spec.json ├── error-handling-utils │ ├── .eslintrc.json │ ├── README.md │ ├── jest.config.js │ ├── project.json │ ├── src │ │ ├── ErrorBoundary.test.tsx │ │ ├── ErrorBoundary.tsx │ │ ├── ErrorLogger.ts │ │ ├── index.ts │ │ ├── isErrorWithMessage.test.ts │ │ └── isErrorWithMessage.ts │ ├── tsconfig.json │ └── tsconfig.spec.json ├── google-pay-integration │ ├── .eslintrc.json │ ├── README.md │ ├── e2e │ │ ├── GooglePayAuthorizeNet.spec.ts │ │ ├── GooglePayBraintreeInPaymentStep.spec.ts │ │ ├── GooglePayBraintreeMockingResponses.ts │ │ ├── GooglePayCheckoutCom.spec.ts │ │ ├── GooglePayMockingResponses.ts │ │ ├── __har__ │ │ │ ├── Google-Pay-AuthorizeNet-in-Customer-Step_559055575 │ │ │ │ └── recording.har │ │ │ ├── Google-Pay-Braintree-in-Customer-Step_2052222657 │ │ │ │ └── recording.har │ │ │ └── Google-Pay-CheckoutCom-in-Customer-Step_587969126 │ │ │ │ └── recording.har │ │ └── support │ │ │ ├── checkout.php.ejs │ │ │ └── googlePay.mock.js │ ├── jest.config.js │ ├── project.json │ ├── src │ │ ├── GooglePayButton.scss │ │ ├── GooglePayButton.test.tsx │ │ ├── GooglePayButton.tsx │ │ ├── GooglePayPaymentMethod.test.tsx │ │ ├── GooglePayPaymentMethod.tsx │ │ ├── GooglePayPaymentMethodId.ts │ │ └── index.ts │ ├── tsconfig.json │ ├── tsconfig.lib.json │ └── tsconfig.spec.json ├── hosted-credit-card-integration │ ├── .eslintrc.json │ ├── README.md │ ├── e2e │ │ ├── __har__ │ │ │ └── CC-with-BlueSnap-in-Payment-Step_3392749462 │ │ │ │ └── recording.har │ │ ├── bluesnapdirect.spec.ts │ │ └── support │ │ │ ├── bluesnap.mock.js │ │ │ └── hostedField.ejs │ ├── jest.config.js │ ├── project.json │ ├── src │ │ ├── HostedCreditCardPaymentMethod.tsx │ │ ├── components │ │ │ ├── HostedCreditCardCodeField │ │ │ │ ├── HostedCreditCardCodeField.test.tsx │ │ │ │ ├── HostedCreditCardCodeField.tsx │ │ │ │ └── index.ts │ │ │ ├── HostedCreditCardExpiryField.tsx │ │ │ ├── HostedCreditCardFieldset │ │ │ │ ├── HostedCreditCardFieldset.test.tsx │ │ │ │ ├── HostedCreditCardFieldset.tsx │ │ │ │ └── index.ts │ │ │ ├── HostedCreditCardNameField.tsx │ │ │ ├── HostedCreditCardNumberField │ │ │ │ ├── HostedCreditCardNumberField.test.tsx │ │ │ │ ├── HostedCreditCardNumberField.tsx │ │ │ │ └── index.ts │ │ │ ├── HostedCreditCardValidation │ │ │ │ ├── HostedCreditCardValidation.test.tsx │ │ │ │ ├── HostedCreditCardValidation.tsx │ │ │ │ └── index.ts │ │ │ ├── getHostedCreditCardValidationSchema │ │ │ │ ├── getHostedCreditCardValidationSchema.test.ts │ │ │ │ ├── getHostedCreditCardValidationSchema.ts │ │ │ │ └── index.ts │ │ │ ├── getHostedInstrumentValidationSchema │ │ │ │ ├── getHostedInstrumentValidationSchema.test.ts │ │ │ │ ├── getHostedInstrumentValidationSchema.ts │ │ │ │ └── index.ts │ │ │ └── index.ts │ │ ├── hooks │ │ │ ├── index.ts │ │ │ ├── useHostedCreditCard.test.tsx │ │ │ └── useHostedCreditCard.tsx │ │ ├── index.ts │ │ └── types │ │ │ ├── HostedCreditCardFiledsetValues.ts │ │ │ └── index.ts │ ├── tsconfig.json │ └── tsconfig.spec.json ├── hosted-dropin-integration │ ├── .eslintrc.json │ ├── README.md │ ├── jest.config.js │ ├── project.json │ ├── src │ │ ├── HostedDropInPaymentMethodComponent.tsx │ │ └── index.ts │ ├── tsconfig.json │ └── tsconfig.spec.json ├── hosted-field-integration │ ├── .eslintrc.json │ ├── README.md │ ├── jest.config.js │ ├── project.json │ ├── src │ │ ├── hosted-field-integration.test.tsx │ │ ├── hosted-field-integration.tsx │ │ └── index.ts │ ├── tsconfig.json │ ├── tsconfig.lib.json │ └── tsconfig.spec.json ├── hosted-payment-integration │ ├── .eslintrc.json │ ├── README.md │ ├── e2e │ │ ├── HummResponsesMock.ts │ │ ├── __har__ │ │ │ └── Humm-in-Payment-Step_487368341 │ │ │ │ └── recording.har │ │ └── humm.spec.ts │ ├── jest.config.js │ ├── project.json │ ├── src │ │ ├── HostedPaymentComponent.test.tsx │ │ ├── HostedPaymentComponent.tsx │ │ └── index.ts │ ├── tsconfig.json │ └── tsconfig.spec.json ├── hosted-widget-integration │ ├── .eslintrc.json │ ├── README.md │ ├── jest.config.js │ ├── project.json │ ├── src │ │ ├── HostedWidgetPaymentComponent.tsx │ │ └── index.ts │ ├── tsconfig.json │ ├── tsconfig.lib.json │ └── tsconfig.spec.json ├── instrument-utils │ ├── .eslintrc.json │ ├── README.md │ ├── jest.config.js │ ├── project.json │ ├── src │ │ ├── creditCard │ │ │ ├── CreditCardCodeField.tsx │ │ │ ├── CreditCardCodeTooltip.scss │ │ │ ├── CreditCardCodeTooltip.tsx │ │ │ ├── CreditCardCustomerCodeField.tsx │ │ │ ├── CreditCardExpiryField.tsx │ │ │ ├── CreditCardFieldset │ │ │ │ ├── CreditCardFieldset.test.tsx │ │ │ │ ├── CreditCardFieldset.tsx │ │ │ │ └── index.ts │ │ │ ├── CreditCardFieldsetValues.test.ts │ │ │ ├── CreditCardFieldsetValues.ts │ │ │ ├── CreditCardIcon │ │ │ │ ├── CreditCardIcon.test.tsx │ │ │ │ ├── CreditCardIcon.tsx │ │ │ │ └── index.ts │ │ │ ├── CreditCardNameField.tsx │ │ │ ├── CreditCardNumberField │ │ │ │ ├── CreditCardNumberField.test.tsx │ │ │ │ ├── CreditCardNumberField.tsx │ │ │ │ └── index.ts │ │ │ ├── CreditCardValidation │ │ │ │ ├── CreditCardValidation.test.tsx │ │ │ │ ├── CreditCardValidation.tsx │ │ │ │ └── index.ts │ │ │ ├── configureCardValidator.ts │ │ │ ├── formatCreditCardExpiryDate │ │ │ │ ├── formatCreditCardExpiryDate.test.ts │ │ │ │ ├── formatCreditCardExpiryDate.ts │ │ │ │ └── index.ts │ │ │ ├── formatCreditCardNumber │ │ │ │ ├── formatCreditCardNumber.test.ts │ │ │ │ ├── formatCreditCardNumber.ts │ │ │ │ └── index.ts │ │ │ ├── getCreditCardInputStyles │ │ │ │ ├── getCreditCardInputStyles.test.tsx │ │ │ │ ├── getCreditCardInputStyles.tsx │ │ │ │ └── index.ts │ │ │ ├── getCreditCardValidationSchema │ │ │ │ ├── getCreditCardValidationSchema.test.ts │ │ │ │ ├── getCreditCardValidationSchema.ts │ │ │ │ └── index.ts │ │ │ ├── index.ts │ │ │ ├── mapFromPaymentMethodCardType │ │ │ │ ├── index.ts │ │ │ │ ├── mapFromPaymentMethodCardType.test.ts │ │ │ │ └── mapFromPaymentMethodCardType.ts │ │ │ └── unformatCreditCardNumber │ │ │ │ ├── index.ts │ │ │ │ ├── unformatCreditCardNumber.test.ts │ │ │ │ └── unformatCreditCardNumber.ts │ │ ├── guards │ │ │ ├── index.ts │ │ │ ├── isAccountInstrument │ │ │ │ ├── index.ts │ │ │ │ ├── isAccountInstrument.test.ts │ │ │ │ └── isAccountInstrument.ts │ │ │ ├── isAchInstrument │ │ │ │ ├── index.ts │ │ │ │ ├── isAchInstrument.test.ts │ │ │ │ └── isAchInstrument.ts │ │ │ ├── isBankInstrument │ │ │ │ ├── index.ts │ │ │ │ ├── isBankInstrument.test.ts │ │ │ │ └── isBankInstrument.ts │ │ │ ├── isCardInstrument │ │ │ │ ├── index.ts │ │ │ │ ├── isCardInstrument.test.ts │ │ │ │ └── isCardInstrument.ts │ │ │ ├── isHTMLElement │ │ │ │ ├── index.ts │ │ │ │ ├── isHTMLElement.test.ts │ │ │ │ └── isHTMLElement.ts │ │ │ ├── isInstrumentCardCodeRequired │ │ │ │ ├── index.ts │ │ │ │ ├── isInstrumentCardCodeRequired.test.ts │ │ │ │ └── isInstrumentCardCodeRequired.ts │ │ │ ├── isInstrumentCardCodeRequiredSelector.test.ts │ │ │ ├── isInstrumentCardCodeRequiredSelector.ts │ │ │ ├── isInstrumentCardNumberRequired │ │ │ │ ├── index.ts │ │ │ │ ├── isInstrumentCardNumberRequired.test.ts │ │ │ │ └── isInstrumentCardNumberRequired.ts │ │ │ ├── isInstrumentCardNumberRequiredSelector.ts │ │ │ ├── isInstrumentFeatureAvailable │ │ │ │ ├── index.ts │ │ │ │ ├── isInstrumentFeatureAvailable.test.ts │ │ │ │ └── isInstrumentFeatureAvailable.ts │ │ │ ├── isSepaInstrument │ │ │ │ ├── index.ts │ │ │ │ ├── isSepaInstrument.test.ts │ │ │ │ └── isSepaInstrument.ts │ │ │ ├── shouldUseStripeLinkByMinimumAmount.test.ts │ │ │ └── shouldUseStripeLinkByMinimumAmount.ts │ │ ├── index.ts │ │ └── storedInstrument │ │ │ ├── AccountInstrumentFieldset │ │ │ ├── AccountInstrumentFieldset.test.tsx │ │ │ ├── AccountInstrumentFieldset.tsx │ │ │ └── index.ts │ │ │ ├── AccountInstrumentSelect │ │ │ ├── AccountInstrumentSelect.test.tsx │ │ │ ├── AccountInstrumentSelect.tsx │ │ │ └── index.ts │ │ │ ├── CardInstrumentFieldset │ │ │ ├── CardInstrumentFieldset.test.tsx │ │ │ ├── CardInstrumentFieldset.tsx │ │ │ └── index.ts │ │ │ ├── InstrumentSelect │ │ │ ├── InstrumentSelect.test.tsx │ │ │ ├── InstrumentSelect.tsx │ │ │ └── index.ts │ │ │ ├── InstrumentStorageField │ │ │ ├── InstrumentStorageField.tsx │ │ │ └── index.ts │ │ │ ├── InstrumentStoreAsDefaultField │ │ │ ├── InstrumentStoreAsDefaultField.test.tsx │ │ │ ├── InstrumentStoreAsDefaultField.tsx │ │ │ └── index.ts │ │ │ ├── ManageAccountInstrumentsTable │ │ │ ├── ManageAccountInstrumentsTable.test.tsx │ │ │ ├── ManageAccountInstrumentsTable.tsx │ │ │ └── index.ts │ │ │ ├── ManageAchInstrumentsTable │ │ │ ├── ManageAchInstrumentsTable.test.tsx │ │ │ ├── ManageAchInstrumentsTable.tsx │ │ │ ├── __snapshots__ │ │ │ │ └── ManageAchInstrumentsTable.test.tsx.snap │ │ │ └── index.ts │ │ │ ├── ManageCardInstrumentsTable │ │ │ ├── ManageCardInstrumentsTable.test.tsx │ │ │ ├── ManageCardInstrumentsTable.tsx │ │ │ └── index.ts │ │ │ ├── ManageInstrumentsAlert │ │ │ ├── ManageInstrumentsAlert.test.tsx │ │ │ ├── ManageInstrumentsAlert.tsx │ │ │ └── index.ts │ │ │ ├── ManageInstrumentsModal │ │ │ ├── ManageInstrumentsModal.test.tsx │ │ │ ├── ManageInstrumentsModal.tsx │ │ │ └── index.ts │ │ │ ├── SignOutLink │ │ │ ├── SignOutLink.test.tsx │ │ │ ├── SignOutLink.tsx │ │ │ └── index.ts │ │ │ ├── StoreInstrumentFieldset │ │ │ ├── StoreInstrumentFieldset.test.tsx │ │ │ ├── StoreInstrumentFieldset.tsx │ │ │ └── index.ts │ │ │ ├── getInstrumentValidationSchema │ │ │ ├── getInstrumentValidationSchema.test.ts │ │ │ ├── getInstrumentValidationSchema.ts │ │ │ └── index.ts │ │ │ ├── index.ts │ │ │ └── mapFromInstrumentCardType │ │ │ ├── index.ts │ │ │ ├── mapFromInstrumentCardType.test.ts │ │ │ └── mapFromInstrumentCardType.ts │ ├── tsconfig.json │ ├── tsconfig.spec.json │ └── types │ │ └── card-validator.d.ts ├── klarna-integration │ ├── .eslintrc.json │ ├── README.md │ ├── e2e │ │ ├── __har__ │ │ │ ├── Klarna-in-Payment-Step_2246731093 │ │ │ │ └── recording.har │ │ │ └── KlarnaV2-in-Payment-Step_402603181 │ │ │ │ └── recording.har │ │ ├── klarna.spec.ts │ │ ├── klarnav2.spec.ts │ │ └── support │ │ │ └── klarnaMock.js │ ├── jest.config.js │ ├── project.json │ ├── src │ │ ├── index.ts │ │ ├── klarna │ │ │ ├── KlarnaPaymentMethod.test.tsx │ │ │ └── KlarnaPaymentMethod.tsx │ │ └── klarnav2 │ │ │ ├── KlarnaV2PaymentMethod.test.tsx │ │ │ └── KlarnaV2PaymentMethod.tsx │ ├── tsconfig.json │ ├── tsconfig.lib.json │ └── tsconfig.spec.json ├── legacy-hoc │ ├── .eslintrc.json │ ├── README.md │ ├── jest.config.js │ ├── project.json │ ├── src │ │ ├── InjectHoc.ts │ │ ├── MappableInjectHoc.tsx │ │ ├── createInjectHoc.test.tsx │ │ ├── createInjectHoc.tsx │ │ ├── createMappableInjectHoc.tsx │ │ └── index.ts │ ├── tsconfig.json │ └── tsconfig.spec.json ├── locale │ ├── .eslintrc.json │ ├── README.md │ ├── jest.config.js │ ├── project.json │ ├── src │ │ ├── LanguageWindow.test.ts │ │ ├── LanguageWindow.ts │ │ ├── LocaleContext.ts │ │ ├── LocaleProvider.test.tsx │ │ ├── LocaleProvider.tsx │ │ ├── TranslatedHtml.test.tsx │ │ ├── TranslatedHtml.tsx │ │ ├── TranslatedLink.test.tsx │ │ ├── TranslatedLink.tsx │ │ ├── TranslatedString.test.tsx │ │ ├── TranslatedString.tsx │ │ ├── address.mock.ts │ │ ├── countries.mock.ts │ │ ├── createLocaleContext.test.ts │ │ ├── createLocaleContext.ts │ │ ├── getDefaultTranslations.test.ts │ │ ├── getDefaultTranslations.ts │ │ ├── getLanguageService.test.ts │ │ ├── getLanguageService.ts │ │ ├── index.ts │ │ ├── localeContext.mock.tsx │ │ ├── localizeAddress.test.ts │ │ ├── localizeAddress.ts │ │ ├── masterpassFormatLocale.test.ts │ │ ├── masterpassFormatLocale.ts │ │ ├── translations │ │ │ ├── README.md │ │ │ ├── da.json │ │ │ ├── de.json │ │ │ ├── en.json │ │ │ ├── es-419.json │ │ │ ├── es-AR.json │ │ │ ├── es-CL.json │ │ │ ├── es-CO.json │ │ │ ├── es-LA.json │ │ │ ├── es-MX.json │ │ │ ├── es-PE.json │ │ │ ├── es.json │ │ │ ├── fr.json │ │ │ ├── index.ts │ │ │ ├── it.json │ │ │ ├── ja.json │ │ │ ├── nl.json │ │ │ ├── no.json │ │ │ ├── pl.json │ │ │ ├── pt-BR.json │ │ │ ├── pt.json │ │ │ └── sv.json │ │ ├── withCurrency.test.tsx │ │ ├── withCurrency.tsx │ │ ├── withDate.test.tsx │ │ ├── withDate.tsx │ │ ├── withLanguage.test.tsx │ │ └── withLanguage.tsx │ ├── tsconfig.json │ ├── tsconfig.lib.json │ └── tsconfig.spec.json ├── mollie-integration │ ├── .eslintrc.json │ ├── README.md │ ├── e2e │ │ ├── __har__ │ │ │ ├── Bancontact-with-Mollie-in-Payment-Step_2670522601 │ │ │ │ └── recording.har │ │ │ ├── CC-with-Mollie-in-Payment-Step_668330648 │ │ │ │ └── recording.har │ │ │ ├── Klarnapaylater-with-Mollie-in-Payment-Step_2902091219 │ │ │ │ └── recording.har │ │ │ ├── Klarnapaynow-with-Mollie-in-Payment-Step_802259869 │ │ │ │ └── recording.har │ │ │ ├── Klarnasliceit-with-Mollie-in-Payment-Step_2481485656 │ │ │ │ └── recording.har │ │ │ └── Sofort-with-Mollie-in-Payment-Step_2796910677 │ │ │ │ └── recording.har │ │ ├── mollie.spec.ts │ │ └── support │ │ │ ├── hostedField.ejs │ │ │ └── mollie.mock.js │ ├── jest.config.js │ ├── project.json │ ├── src │ │ ├── MollieAPMCustomForm.test.tsx │ │ ├── MollieAPMCustomForm.tsx │ │ ├── MollieCustomCardForm.test.tsx │ │ ├── MollieCustomCardForm.tsx │ │ ├── MolliePaymentMethod.test.tsx │ │ ├── MolliePaymentMethod.tsx │ │ └── index.ts │ ├── tsconfig.json │ ├── tsconfig.lib.json │ └── tsconfig.spec.json ├── moneris-integration │ ├── .eslintrc.json │ ├── README.md │ ├── jest.config.js │ ├── project.json │ ├── src │ │ ├── MonerisPaymentMethod.test.tsx │ │ ├── MonerisPaymentMethod.tsx │ │ └── index.ts │ ├── tsconfig.json │ └── tsconfig.spec.json ├── offline-payment-integration │ ├── .eslintrc.json │ ├── README.md │ ├── e2e │ │ ├── OfflinePaymentMethod.spec.ts │ │ └── __har__ │ │ │ ├── Cash-on-Delivery_227544541 │ │ │ └── recording.har │ │ │ └── Pay-in-Store_2088335945 │ │ │ └── recording.har │ ├── jest.config.js │ ├── project.json │ ├── src │ │ ├── OfflinePaymentMethod.test.tsx │ │ ├── OfflinePaymentMethod.tsx │ │ ├── index.ts │ │ └── payment-method.mock.ts │ ├── tsconfig.json │ └── tsconfig.spec.json ├── payment-integration-api │ ├── .eslintrc.json │ ├── README.md │ ├── jest.config.js │ ├── project.json │ ├── src │ │ ├── CardInstrumentFieldsetValues.ts │ │ ├── CheckoutButtonProps.tsx │ │ ├── CheckoutButtonResolveId.ts │ │ ├── CheckoutRootWrapperIds.ts │ │ ├── CountryData.ts │ │ ├── CreditCardFieldsetValues.ts │ │ ├── PaymentFormErrors.ts │ │ ├── PaymentFormService.ts │ │ ├── PaymentFormValues.ts │ │ ├── PaymentMethodId.ts │ │ ├── PaymentMethodProps.tsx │ │ ├── PaymentMethodResolveId.ts │ │ ├── PaymentMethodType.ts │ │ ├── RequireAtLeastOne.ts │ │ ├── ResolvableComponent.ts │ │ ├── TranslateValidationErrorFunction.ts │ │ ├── contexts │ │ │ ├── checkout-context │ │ │ │ ├── CheckoutContext.tsx │ │ │ │ ├── CheckoutProvider.test.tsx │ │ │ │ ├── CheckoutProvider.tsx │ │ │ │ └── index.ts │ │ │ ├── index.ts │ │ │ └── payment-form-context │ │ │ │ ├── PaymentFormContext.tsx │ │ │ │ ├── PaymentFormProvider.tsx │ │ │ │ └── index.ts │ │ ├── errors │ │ │ ├── CustomError.ts │ │ │ ├── EmbeddedCheckoutUnsupportedError.ts │ │ │ ├── custom-error-types.ts │ │ │ └── index.ts │ │ ├── getPaymentMethodName.ts │ │ ├── getUniquePaymentMethodId.ts │ │ ├── index.ts │ │ ├── isEmbedded.ts │ │ ├── isResolvableComponent.ts │ │ ├── parseUniquePaymentMethodId.ts │ │ ├── setPrototypeOf.ts │ │ └── toResolvableComponent.tsx │ ├── tsconfig.json │ └── tsconfig.spec.json ├── paypal-commerce-integration │ ├── .eslintrc.json │ ├── README.md │ ├── jest.config.js │ ├── project.json │ ├── src │ │ ├── PayPalCommerce │ │ │ ├── PayPalCommerceButton.test.tsx │ │ │ ├── PayPalCommerceButton.tsx │ │ │ ├── PayPalCommercePaymentMethod.test.tsx │ │ │ ├── PayPalCommercePaymentMethod.tsx │ │ │ ├── __snapshots__ │ │ │ │ └── PayPalCommercePaymentMethod.test.tsx.snap │ │ │ └── hooks │ │ │ │ └── usePaypalCommerceInstruments.ts │ │ ├── PayPalCommerceAPMs │ │ │ ├── PayPalCommerceAPMsPaymentMethod.test.tsx │ │ │ ├── PayPalCommerceAPMsPaymentMethod.tsx │ │ │ └── __snapshots__ │ │ │ │ └── PayPalCommerceAPMsPaymentMethod.test.tsx.snap │ │ ├── PayPalCommerceCredit │ │ │ ├── PayPalCommerceCreditButton.test.tsx │ │ │ ├── PayPalCommerceCreditButton.tsx │ │ │ ├── PayPalCommerceCreditPaymentMethod.test.tsx │ │ │ ├── PayPalCommerceCreditPaymentMethod.tsx │ │ │ └── __snapshots__ │ │ │ │ └── PayPalCommerceCreditPaymentMethod.test.tsx.snap │ │ ├── PayPalCommerceFastlane │ │ │ ├── PayPalCommerceFastlanePaymentMethod.scss │ │ │ ├── PayPalCommerceFastlanePaymentMethod.test.tsx │ │ │ ├── PayPalCommerceFastlanePaymentMethod.tsx │ │ │ ├── components │ │ │ │ ├── PayPalCommerceFastlaneCreditCardForm.scss │ │ │ │ ├── PayPalCommerceFastlaneCreditCardForm.test.tsx │ │ │ │ ├── PayPalCommerceFastlaneCreditCardForm.tsx │ │ │ │ ├── PayPalCommerceFastlaneForm.test.tsx │ │ │ │ ├── PayPalCommerceFastlaneForm.tsx │ │ │ │ ├── PayPalCommerceFastlaneInstrumentsForm.scss │ │ │ │ ├── PayPalCommerceFastlaneInstrumentsForm.test.tsx │ │ │ │ ├── PayPalCommerceFastlaneInstrumentsForm.tsx │ │ │ │ └── __snapshots__ │ │ │ │ │ └── PayPalCommerceFastlaneInstrumentsForm.test.tsx.snap │ │ │ ├── hooks │ │ │ │ └── usePayPalCommerceFastlaneInstruments.ts │ │ │ └── index.ts │ │ ├── PayPalCommerceRatepay │ │ │ ├── PaypalCommerceRatePayPaymentMethod.test.tsx │ │ │ ├── PaypalCommerceRatePayPaymentMethod.tsx │ │ │ └── validation-schema │ │ │ │ └── getPaypalCommerceRatePayValidationSchema.ts │ │ ├── PayPalCommerceVenmo │ │ │ ├── PayPalCommerceVenmoPaymentMethod.test.tsx │ │ │ ├── PayPalCommerceVenmoPaymentMethod.tsx │ │ │ └── __snapshots__ │ │ │ │ └── PayPalCommerceVenmoPaymentMethod.test.tsx.snap │ │ ├── components │ │ │ ├── PayPalCommercePaymentMethodComponent.test.tsx │ │ │ └── PayPalCommercePaymentMethodComponent.tsx │ │ ├── index.ts │ │ └── mocks │ │ │ └── paymentMethods.mock.ts │ ├── tsconfig.json │ └── tsconfig.spec.json ├── paypal-express-integration │ ├── .eslintrc.json │ ├── README.md │ ├── jest.config.js │ ├── project.json │ ├── src │ │ ├── PaypalExpressPaymentMethod.test.tsx │ │ ├── PaypalExpressPaymentMethod.tsx │ │ └── index.ts │ ├── tsconfig.json │ └── tsconfig.spec.json ├── paypal-fastlane-integration │ ├── .eslintrc.json │ ├── README.md │ ├── jest.config.js │ ├── project.json │ ├── src │ │ ├── PayPalFastlaneShippingAddressForm.test.tsx │ │ ├── PayPalFastlaneShippingAddressForm.tsx │ │ ├── PayPalFastlaneWatermark.scss │ │ ├── PayPalFastlaneWatermark.test.tsx │ │ ├── PayPalFastlaneWatermark.tsx │ │ ├── PoweredByPayPalFastlaneLabel.scss │ │ ├── PoweredByPayPalFastlaneLabel.tsx │ │ ├── index.ts │ │ ├── is-bigcommerce-payments-fastlane-method.test.ts │ │ ├── is-bigcommerce-payments-fastlane-method.ts │ │ ├── is-braintree-fastlane-method.test.ts │ │ ├── is-braintree-fastlane-method.ts │ │ ├── is-fastlane-window.test.ts │ │ ├── is-fastlane-window.ts │ │ ├── is-paypal-commerce-fastlane-method.test.ts │ │ ├── is-paypal-commerce-fastlane-method.ts │ │ ├── is-paypal-fastlane-address.test.ts │ │ ├── is-paypal-fastlane-address.ts │ │ ├── is-paypal-fastlane-customer.test.ts │ │ ├── is-paypal-fastlane-customer.ts │ │ ├── is-paypal-fastlane-method.test.ts │ │ ├── is-paypal-fastlane-method.ts │ │ ├── types.ts │ │ ├── usePayPalFastlaneAddress.test.tsx │ │ └── usePayPalFastlaneAddress.ts │ ├── tsconfig.json │ └── tsconfig.spec.json ├── paypal-utils │ ├── .eslintrc.json │ ├── README.md │ ├── jest.config.js │ ├── project.json │ ├── src │ │ ├── BraintreePaypalCreditBanner.test.tsx │ │ ├── BraintreePaypalCreditBanner.tsx │ │ ├── PaypalCommerceCreditBanner.test.tsx │ │ ├── PaypalCommerceCreditBanner.tsx │ │ └── index.ts │ ├── tsconfig.json │ └── tsconfig.spec.json ├── squarev2-integration │ ├── .eslintrc.json │ ├── README.md │ ├── e2e │ │ ├── __har__ │ │ │ └── SquareV2-in-Payment-Step_656806659 │ │ │ │ └── recording.har │ │ ├── squarev2.spec.ts │ │ └── support │ │ │ └── square.mock.js │ ├── jest.config.js │ ├── project.json │ ├── src │ │ ├── SquareV2Form.tsx │ │ ├── SquareV2PaymentMethod.test.tsx │ │ ├── SquareV2PaymentMethod.tsx │ │ ├── __snapshots__ │ │ │ └── SquareV2PaymentMethod.test.tsx.snap │ │ ├── index.ts │ │ └── mocks │ │ │ └── squarev2-method.mock.ts │ ├── tsconfig.json │ ├── tsconfig.lib.json │ └── tsconfig.spec.json ├── stripe-integration │ ├── .eslintrc.json │ ├── README.md │ ├── e2e │ │ ├── __har__ │ │ │ ├── Stripe-UPE-Alipay-in-Payment-Step_1327921107 │ │ │ │ └── recording.har │ │ │ ├── Stripe-UPE-Credit-Cards-in-Payment-Step_2742926991 │ │ │ │ └── recording.har │ │ │ ├── Stripe-UPE-US-Bank-Account-in-Payment-Step_2989821772 │ │ │ │ └── recording.har │ │ │ ├── Stripe-UPE-Wechat-in-Payment-Step_3313051439 │ │ │ │ └── recording.har │ │ │ ├── StripeV3-Alipay-in-Payment-Step_2485846366 │ │ │ │ └── recording.har │ │ │ └── StripeV3-Credit-Card-in-Payment-Step_2401307189 │ │ │ │ └── recording.har │ │ ├── stripe-upe.spec.ts │ │ ├── stripev3.spec.ts │ │ └── support │ │ │ ├── checkout.php.ejs │ │ │ ├── stripeUPE.mock.js │ │ │ └── stripeV3.mock.js │ ├── jest.config.js │ ├── project.json │ ├── src │ │ ├── index.ts │ │ ├── stripe-ocs │ │ │ ├── StripeOCSPaymentMethod.test.tsx │ │ │ ├── StripeOCSPaymentMethod.tsx │ │ │ ├── getStripeOCSStyles.test.ts │ │ │ └── getStripeOCSStyles.ts │ │ ├── stripe-upe │ │ │ ├── StripeUPEPaymentMethod.test.tsx │ │ │ └── StripeUPEPaymentMethod.tsx │ │ └── stripev3 │ │ │ ├── StripePaymentMethod.test.tsx │ │ │ ├── StripeV3CustomCardForm.test.tsx │ │ │ ├── StripeV3CustomCardForm.tsx │ │ │ └── StripeV3PaymentMethod.tsx │ ├── tsconfig.json │ ├── tsconfig.lib.json │ └── tsconfig.spec.json ├── td-bank-integration │ ├── .eslintrc.json │ ├── README.md │ ├── jest.config.js │ ├── project.json │ ├── src │ │ └── index.ts │ ├── tsconfig.json │ └── tsconfig.spec.json ├── test-framework │ ├── .eslintrc.json │ ├── README.md │ ├── e2eTestTemplate │ │ └── template.ts │ ├── pollyConfig.js │ ├── project.json │ ├── scripts │ │ └── polly │ │ │ ├── HttpHeaders.js │ │ │ ├── NormalizeRequest.js │ │ │ ├── parseUrl.js │ │ │ └── regenerateHar.js │ ├── src │ │ ├── fixture │ │ │ ├── CheckoutFixtures.ts │ │ │ ├── StoreUrlHelper.ts │ │ │ ├── index.ts │ │ │ ├── pageObject │ │ │ │ ├── Assertions.ts │ │ │ │ ├── Checkout.ts │ │ │ │ ├── index.ts │ │ │ │ └── playwright │ │ │ │ │ ├── CustomFSPersister.ts │ │ │ │ │ ├── PlaywrightHelper.ts │ │ │ │ │ ├── PollyObject.ts │ │ │ │ │ ├── ServerSideRender.ts │ │ │ │ │ └── senstiveDataConfig.ts │ │ │ └── pagePreset │ │ │ │ ├── ApiContextFactory.ts │ │ │ │ ├── ApiRequestsSender.ts │ │ │ │ ├── CheckoutPagePreset.ts │ │ │ │ ├── CustomerStepAsGuest.ts │ │ │ │ ├── PaymentStepAsGuest.ts │ │ │ │ ├── PaymentStepAsGuestEU.ts │ │ │ │ ├── UseAUD.ts │ │ │ │ ├── index.ts │ │ │ │ └── types.ts │ │ ├── index.ts │ │ ├── react-testing-library-support │ │ │ ├── CheckoutPageNodeObject.ts │ │ │ ├── index.ts │ │ │ └── mocks │ │ │ │ ├── checkout-settings.mock.ts │ │ │ │ ├── checkout.mock.ts │ │ │ │ ├── countries.ts │ │ │ │ ├── form-fields.ts │ │ │ │ ├── index.ts │ │ │ │ ├── order.ts │ │ │ │ ├── payment-method.mock.ts │ │ │ │ └── payments.ts │ │ └── support │ │ │ ├── checkout.ejs │ │ │ ├── orderConfirmation.ejs │ │ │ └── product.png │ └── tsconfig.json ├── test-mocks │ ├── .eslintrc.json │ ├── README.md │ ├── jest.config.js │ ├── project.json │ ├── src │ │ ├── address.mock.ts │ │ ├── cart.mock.ts │ │ ├── checkout.mock.ts │ │ ├── config.mock.ts │ │ ├── consignment.mock.ts │ │ ├── coupon.mock.ts │ │ ├── customers.mock.ts │ │ ├── getYear.ts │ │ ├── index.ts │ │ ├── instruments.mock.ts │ │ ├── line-item.mock.ts │ │ ├── payment-form-service.mock.ts │ │ ├── payment-methods.mock.ts │ │ ├── promotion.mock.ts │ │ ├── shipping-address.mock.ts │ │ └── shippingMethod.mock.ts │ ├── tsconfig.json │ └── tsconfig.spec.json ├── test-utils │ ├── .eslintrc.json │ ├── README.md │ ├── jest.config.js │ ├── project.json │ ├── src │ │ ├── TestWrapper.tsx │ │ └── index.ts │ ├── tsconfig.json │ └── tsconfig.spec.json ├── ui │ ├── .eslintrc.json │ ├── README.md │ ├── jest.config.js │ ├── project.json │ ├── src │ │ ├── Base.scss │ │ ├── accordion │ │ │ ├── Accordion.test.tsx │ │ │ ├── Accordion.tsx │ │ │ ├── AccordionContext.tsx │ │ │ ├── AccordionItem.test.tsx │ │ │ ├── AccordionItem.tsx │ │ │ └── index.ts │ │ ├── alert │ │ │ ├── Alert.test.tsx │ │ │ ├── Alert.tsx │ │ │ └── index.ts │ │ ├── button │ │ │ ├── Button.test.tsx │ │ │ ├── Button.tsx │ │ │ └── index.ts │ │ ├── dropdown │ │ │ ├── DropdownTrigger.test.tsx │ │ │ ├── DropdownTrigger.tsx │ │ │ └── index.ts │ │ ├── form │ │ │ ├── BasicFormField │ │ │ │ ├── BasicFormField.test.tsx │ │ │ │ ├── BasicFormField.tsx │ │ │ │ └── index.ts │ │ │ ├── CheckboxFormField │ │ │ │ ├── CheckboxFormField.test.tsx │ │ │ │ ├── CheckboxFormField.tsx │ │ │ │ └── index.ts │ │ │ ├── CheckboxInput │ │ │ │ ├── CheckboxInput.test.tsx │ │ │ │ ├── CheckboxInput.tsx │ │ │ │ └── index.ts │ │ │ ├── ChecklistItemInput │ │ │ │ ├── ChecklistItemInput.test.tsx │ │ │ │ ├── ChecklistItemInput.tsx │ │ │ │ └── index.ts │ │ │ ├── DynamicFormField │ │ │ │ ├── CheckboxGroupFormField.tsx │ │ │ │ ├── DynamicFormField.test.tsx │ │ │ │ ├── DynamicFormField.tsx │ │ │ │ ├── DynamicFormFieldType.ts │ │ │ │ ├── DynamicInput.test.tsx │ │ │ │ ├── DynamicInput.tsx │ │ │ │ ├── MultiCheckboxControl.scss │ │ │ │ ├── MultiCheckboxControl.tsx │ │ │ │ └── index.ts │ │ │ ├── Fieldset │ │ │ │ ├── Fieldset.test.tsx │ │ │ │ ├── Fieldset.tsx │ │ │ │ └── index.ts │ │ │ ├── Form │ │ │ │ ├── Form.test.tsx │ │ │ │ ├── Form.tsx │ │ │ │ └── index.ts │ │ │ ├── FormField │ │ │ │ ├── FormField.test.tsx │ │ │ │ ├── FormField.tsx │ │ │ │ └── index.ts │ │ │ ├── FormFieldContainer │ │ │ │ ├── FormFieldContainer.test.tsx │ │ │ │ ├── FormFieldContainer.tsx │ │ │ │ └── index.ts │ │ │ ├── FormFieldError │ │ │ │ ├── FormFieldError.test.tsx │ │ │ │ ├── FormFieldError.tsx │ │ │ │ └── index.ts │ │ │ ├── Input │ │ │ │ ├── Input.test.tsx │ │ │ │ ├── Input.tsx │ │ │ │ └── index.ts │ │ │ ├── Label │ │ │ │ ├── Label.test.tsx │ │ │ │ ├── Label.tsx │ │ │ │ └── index.ts │ │ │ ├── Legend │ │ │ │ ├── Legend.test.tsx │ │ │ │ ├── Legend.tsx │ │ │ │ └── index.ts │ │ │ ├── LoadingSkeleton │ │ │ │ ├── AddressFormSkeleton.test.tsx │ │ │ │ ├── AddressFormSkeleton.tsx │ │ │ │ ├── CheckListSkeleton.test.tsx │ │ │ │ ├── ChecklistSkeleton.tsx │ │ │ │ ├── CustomerSkeleton.test.tsx │ │ │ │ ├── CustomerSkeleton.tsx │ │ │ │ ├── LoadingSkeleton.tsx │ │ │ │ ├── WalletButtonContainerSkeleton.test.tsx │ │ │ │ ├── WalletButtonContainerSkeleton.tsx │ │ │ │ └── index.ts │ │ │ ├── RadioInput │ │ │ │ ├── RadioInput.test.tsx │ │ │ │ ├── RadioInput.tsx │ │ │ │ └── index.ts │ │ │ ├── TextArea │ │ │ │ ├── TextArea.test.tsx │ │ │ │ ├── TextArea.tsx │ │ │ │ └── index.ts │ │ │ ├── TextInput │ │ │ │ ├── TextInput.test.tsx │ │ │ │ ├── TextInput.tsx │ │ │ │ └── index.ts │ │ │ ├── TextInputIframeContainer │ │ │ │ ├── TextInputIframeContainer.test.tsx │ │ │ │ ├── TextInputIframeContainer.tsx │ │ │ │ └── index.ts │ │ │ ├── contexts │ │ │ │ ├── FormContext.tsx │ │ │ │ └── index.ts │ │ │ └── index.ts │ │ ├── icon │ │ │ ├── CreditCardIcon.tsx │ │ │ ├── IconAch.tsx │ │ │ ├── IconBitCoin.tsx │ │ │ ├── IconBitCoinCash.tsx │ │ │ ├── IconBolt.tsx │ │ │ ├── IconCardAmex.tsx │ │ │ ├── IconCardBancontact.tsx │ │ │ ├── IconCardCB.tsx │ │ │ ├── IconCardCarnet.tsx │ │ │ ├── IconCardCodeAmex.tsx │ │ │ ├── IconCardCodeVisa.tsx │ │ │ ├── IconCardDankort.tsx │ │ │ ├── IconCardDinersClub.tsx │ │ │ ├── IconCardDiscover.tsx │ │ │ ├── IconCardElectron.tsx │ │ │ ├── IconCardElo.tsx │ │ │ ├── IconCardHipercard.tsx │ │ │ ├── IconCardJCB.tsx │ │ │ ├── IconCardMada.tsx │ │ │ ├── IconCardMaestro.tsx │ │ │ ├── IconCardMastercard.tsx │ │ │ ├── IconCardTroy.tsx │ │ │ ├── IconCardUnionPay.tsx │ │ │ ├── IconCardVisa.tsx │ │ │ ├── IconCheck.tsx │ │ │ ├── IconChevronDown.tsx │ │ │ ├── IconChevronUp.tsx │ │ │ ├── IconClose.tsx │ │ │ ├── IconCloseWithBorder.tsx │ │ │ ├── IconDogeCoin.tsx │ │ │ ├── IconError.tsx │ │ │ ├── IconEthereum.tsx │ │ │ ├── IconEye.tsx │ │ │ ├── IconEyeSlash.tsx │ │ │ ├── IconGiftCertificate.tsx │ │ │ ├── IconHelp.tsx │ │ │ ├── IconInfo.tsx │ │ │ ├── IconLiteCoin.tsx │ │ │ ├── IconLock.tsx │ │ │ ├── IconNewAccount.tsx │ │ │ ├── IconPayPalFastlane.tsx │ │ │ ├── IconPaypal.tsx │ │ │ ├── IconPrint.tsx │ │ │ ├── IconRemove.tsx │ │ │ ├── IconSepa.tsx │ │ │ ├── IconShibaInu.tsx │ │ │ ├── IconSuccess.tsx │ │ │ ├── IconTag.tsx │ │ │ ├── IconUsdCoin.tsx │ │ │ ├── index.ts │ │ │ ├── mapFromPaymentMethodCardType.test.ts │ │ │ ├── mapFromPaymentMethodCardType.ts │ │ │ └── withIconContainer.tsx │ │ ├── index.ts │ │ ├── loading │ │ │ ├── LazyContainer.scss │ │ │ ├── LazyContainer.test.tsx │ │ │ ├── LazyContainer.tsx │ │ │ ├── LoadingNotification.test.tsx │ │ │ ├── LoadingNotification.tsx │ │ │ ├── LoadingOverlay.test.tsx │ │ │ ├── LoadingOverlay.tsx │ │ │ ├── LoadingSpinner.test.tsx │ │ │ ├── LoadingSpinner.tsx │ │ │ └── index.ts │ │ ├── modal │ │ │ ├── ConfirmationModal.test.tsx │ │ │ ├── ConfirmationModal.tsx │ │ │ ├── Modal.test.tsx │ │ │ ├── Modal.tsx │ │ │ ├── ModalHeader.tsx │ │ │ ├── ModalLink.scss │ │ │ ├── ModalLink.test.tsx │ │ │ ├── ModalLink.tsx │ │ │ ├── ModalTrigger.test.tsx │ │ │ ├── ModalTrigger.tsx │ │ │ └── index.ts │ │ └── tooltip │ │ │ ├── Tooltip.scss │ │ │ ├── Tooltip.test.tsx │ │ │ ├── Tooltip.tsx │ │ │ ├── TooltipTrigger.test.tsx │ │ │ ├── TooltipTrigger.tsx │ │ │ └── index.ts │ ├── tsconfig.json │ ├── tsconfig.lib.json │ └── tsconfig.spec.json ├── utility │ ├── .eslintrc.json │ ├── README.md │ ├── jest.config.js │ ├── project.json │ ├── src │ │ ├── index.ts │ │ ├── isBuyNowCart.test.ts │ │ ├── isBuyNowCart.ts │ │ ├── navigateToOrderConfirmation.test.ts │ │ └── navigateToOrderConfirmation.ts │ ├── tsconfig.json │ ├── tsconfig.lib.json │ └── tsconfig.spec.json ├── wallet-button-integration │ ├── .eslintrc.json │ ├── README.md │ ├── jest.config.js │ ├── project.json │ ├── src │ │ ├── WalletButtonPaymentMethodComponent.test.tsx │ │ ├── WalletButtonPaymentMethodComponent.tsx │ │ ├── index.ts │ │ ├── normalizeWalletPaymentData.ts │ │ └── types.ts │ ├── tsconfig.json │ ├── tsconfig.lib.json │ └── tsconfig.spec.json ├── workspace-tools │ ├── .eslintrc.json │ ├── README.md │ ├── executors.json │ ├── generators.json │ ├── jest.config.js │ ├── package.json │ ├── project.json │ ├── src │ │ ├── generators │ │ │ └── auto-export │ │ │ │ ├── __fixtures__ │ │ │ │ ├── function-a │ │ │ │ │ ├── function-a.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── strategy-a │ │ │ │ │ ├── index.ts │ │ │ │ │ └── strategy-a.ts │ │ │ │ ├── strategy-b │ │ │ │ │ ├── constants.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── strategy-b.ts │ │ │ │ └── tsconfig.json │ │ │ │ ├── __snapshots__ │ │ │ │ └── auto-export.test.ts.snap │ │ │ │ ├── auto-export-config.ts │ │ │ │ ├── auto-export.test.ts │ │ │ │ ├── auto-export.ts │ │ │ │ ├── generator.ts │ │ │ │ ├── is-auto-export-config.ts │ │ │ │ ├── schema.d.ts │ │ │ │ ├── schema.json │ │ │ │ └── templates │ │ │ │ └── __outputName__ │ │ └── index.ts │ ├── tsconfig.json │ ├── tsconfig.lib.json │ └── tsconfig.spec.json └── worldpay-access-integration │ ├── .eslintrc.json │ ├── README.md │ ├── jest.config.js │ ├── project.json │ ├── src │ ├── WorldPayCreditCardPaymentMethod.test.tsx │ ├── WorldpayCreditCardPaymentMethod.tsx │ └── index.ts │ ├── tsconfig.json │ ├── tsconfig.lib.json │ └── tsconfig.spec.json ├── playwright.config.ts ├── scripts ├── jest │ ├── file-transformer.js │ └── style-transformer.js ├── sdk-live-checker.sh ├── standard-version │ └── prebump.js └── webpack │ ├── async-hook-plugin.js │ ├── build-hook-plugin.js │ ├── get-loader-packages.js │ ├── get-next-version.js │ ├── index.js │ ├── merge-manifests.js │ └── transform-manifest.js ├── stylelint.config.js ├── tsconfig.base.json ├── webpack.config.js └── workspace.json /.env-example: -------------------------------------------------------------------------------- 1 | PORT=8080 2 | MODE=replay 3 | STOREURL= 4 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | /packages/**/generated 3 | /packages/**/jest.config.js 4 | /packages/**/e2e/support 5 | /packages/**/e2e/*.js 6 | /packages/test-framework/**/*.js 7 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | ## What? 2 | ... 3 | 4 | ## Why? 5 | ... 6 | 7 | ## Testing / Proof 8 | ... 9 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | 3 | updates: 4 | - package-ecosystem: "npm" 5 | directory: "/" 6 | schedule: 7 | interval: 'weekly' 8 | day: 'monday' 9 | open-pull-requests-limit: 1 10 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | .vscode 3 | .DS_Store 4 | .nx/cache 5 | .nx/workspace-data 6 | tsconfig.base.tsbuildinfo 7 | junit.xml 8 | __temp__ 9 | node_modules 10 | build 11 | coverage 12 | /dist-tools 13 | /packages/**/generated 14 | /packages/test-framework/report 15 | /packages/test-framework/screenshots 16 | /packages/test-framework/videos 17 | -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | 22.13.0 2 | -------------------------------------------------------------------------------- /bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "checkout-js", 3 | "version": "1.601.0", 4 | "authors": [ 5 | "BigCommerce" 6 | ], 7 | "description": "BigCommerce Checkout", 8 | "license": "Commercial", 9 | "homepage": "https://www.bigcommerce.com", 10 | "private": true, 11 | "ignore": [ 12 | "**/*", 13 | "!dist/**" 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /commit-validation.json: -------------------------------------------------------------------------------- 1 | { 2 | "scopes": [ 3 | "billing", 4 | "cart", 5 | "checkout", 6 | "customer", 7 | "embedded-checkout", 8 | "extension", 9 | "order", 10 | "other", 11 | "payment", 12 | "shipping" 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /dist/auto-loader-1.601.0.js.LICENSE.txt: -------------------------------------------------------------------------------- 1 | /*! 2 | * JavaScript Cookie v2.2.1 3 | * https://github.com/js-cookie/js-cookie 4 | * 5 | * Copyright 2006, 2015 Klaus Hartl & Fagner Brack 6 | * Released under the MIT license 7 | */ 8 | -------------------------------------------------------------------------------- /dist/loader-1.601.0.js.LICENSE.txt: -------------------------------------------------------------------------------- 1 | /*! 2 | * JavaScript Cookie v2.2.1 3 | * https://github.com/js-cookie/js-cookie 4 | * 5 | * Copyright 2006, 2015 Klaus Hartl & Fagner Brack 6 | * Released under the MIT license 7 | */ 8 | -------------------------------------------------------------------------------- /dist/static/powered_by_google_on_white-46afd78d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigcommerce/checkout-js/787c37937c5aa1fa6081ccdc4c51dddd5d2edcfc/dist/static/powered_by_google_on_white-46afd78d.png -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- 1 | const { getJestProjects } = require('@nx/jest'); 2 | 3 | module.exports = { 4 | projects: getJestProjects(), 5 | }; 6 | -------------------------------------------------------------------------------- /packages/adyen-integration/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../.eslintrc.json"] 3 | } 4 | -------------------------------------------------------------------------------- /packages/adyen-integration/e2e/support/adyen.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Your test have reached `Adyen`. 8 | 9 | 10 | -------------------------------------------------------------------------------- /packages/adyen-integration/e2e/support/checkout.php.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Your test have reached `<%= storeUrl %>/checkout.php`. 8 | 9 | 10 | -------------------------------------------------------------------------------- /packages/adyen-integration/src/index.ts: -------------------------------------------------------------------------------- 1 | export { default as AdyenV2PaymentMethod } from './adyenv2/AdyenV2PaymentMethod'; 2 | export { default as AdyenV3PaymentMethod } from './adyenv3/AdyenV3PaymentMethod'; 3 | -------------------------------------------------------------------------------- /packages/adyen-integration/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "references": [ 4 | { 5 | "path": "./tsconfig.spec.json" 6 | } 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /packages/affirm-integration/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../.eslintrc.json"] 3 | } 4 | -------------------------------------------------------------------------------- /packages/affirm-integration/src/index.ts: -------------------------------------------------------------------------------- 1 | export { default as AffirmPaymentMethod } from './AffirmPaymentMethod'; 2 | -------------------------------------------------------------------------------- /packages/affirm-integration/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "references": [ 4 | { 5 | "path": "./tsconfig.lib.json" 6 | }, 7 | { 8 | "path": "./tsconfig.spec.json" 9 | } 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /packages/affirm-integration/tsconfig.lib.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "include": [ 4 | "src/**/*.ts", 5 | "src/**/*.tsx" 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /packages/afterpay-integration/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../.eslintrc.json"] 3 | } 4 | -------------------------------------------------------------------------------- /packages/afterpay-integration/README.md: -------------------------------------------------------------------------------- 1 | # afterpay-integration 2 | 3 | This package contains the integration layer for the [Afterpay](https://www.afterpay.com/) provider. 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test afterpay-integration` to execute the unit tests via [Jest](https://jestjs.io). 8 | 9 | ## Running lint 10 | 11 | Run `nx lint afterpay-integration` to execute the lint via [ESLint](https://eslint.org/). 12 | -------------------------------------------------------------------------------- /packages/afterpay-integration/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | displayName: 'afterpay-integration', 3 | preset: '../../jest.preset.js', 4 | globals: { 5 | 'ts-jest': { 6 | tsconfig: '/tsconfig.spec.json', 7 | diagnostics: false, 8 | } 9 | }, 10 | setupFilesAfterEnv: ['../../jest-setup.ts'], 11 | coverageDirectory: '../../coverage/packages/afterpay-integration' 12 | }; 13 | -------------------------------------------------------------------------------- /packages/afterpay-integration/src/index.ts: -------------------------------------------------------------------------------- 1 | export { default as AfterpayPaymentMethod } from './AfterpayPaymentMethod'; 2 | -------------------------------------------------------------------------------- /packages/afterpay-integration/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "references": [ 4 | { 5 | "path": "./tsconfig.spec.json" 6 | } 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /packages/amazon-pay-v2-integration/src/index.ts: -------------------------------------------------------------------------------- 1 | export { default as AmazonPayV2PaymentMethod } from './AmazonPayV2PaymentMethod'; 2 | export { default as AmazonPayV2Button } from './AmazonPayV2Button'; 3 | -------------------------------------------------------------------------------- /packages/amazon-pay-v2-integration/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "references": [ 4 | { 5 | "path": "./tsconfig.lib.json" 6 | }, 7 | { 8 | "path": "./tsconfig.spec.json" 9 | } 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /packages/amazon-pay-v2-integration/tsconfig.lib.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "include": [ 4 | "src/**/*.ts", 5 | "src/**/*.tsx" 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /packages/analytics/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../.eslintrc.json"] 3 | } 4 | -------------------------------------------------------------------------------- /packages/analytics/README.md: -------------------------------------------------------------------------------- 1 | # analytics 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | 6 | ## Running unit tests 7 | 8 | Run `nx test analytics` to execute the unit tests via [Jest](https://jestjs.io). 9 | 10 | 11 | ## Running lint 12 | 13 | Run `nx lint analytics` to execute the lint via [ESLint](https://eslint.org/). 14 | 15 | -------------------------------------------------------------------------------- /packages/analytics/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | displayName: 'analytics', 3 | preset: '../../jest.preset.js', 4 | transform: { 5 | '^.+\\.[tj]sx?$': ['ts-jest', { 6 | tsconfig: '/tsconfig.spec.json', 7 | diagnostics: false, 8 | }], 9 | }, 10 | setupFilesAfterEnv: ['../../jest-setup.ts'], 11 | coverageDirectory: '../../coverage/packages/analytics' 12 | }; 13 | -------------------------------------------------------------------------------- /packages/analytics/src/index.ts: -------------------------------------------------------------------------------- 1 | export { default as AnalyticsProvider } from './AnalyticsProvider'; 2 | export { default as AnalyticsProviderMock } from './AnalyticsProvider.mock'; 3 | export { 4 | default as AnalyticsContext, 5 | AnalyticsEvents, 6 | AnalyticsContextProps, 7 | } from './AnalyticsContext'; 8 | export { default as useAnalytics } from './useAnalytics'; 9 | -------------------------------------------------------------------------------- /packages/analytics/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "references": [ 4 | { 5 | "path": "./tsconfig.lib.json" 6 | }, 7 | { 8 | "path": "./tsconfig.spec.json" 9 | } 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /packages/analytics/tsconfig.lib.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "include": [ 4 | "src/**/*.ts", 5 | "src/**/*.tsx" 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /packages/analytics/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "types": ["jest", "node"] 5 | }, 6 | "include": [ 7 | "**/*.spec.ts", 8 | "**/*.spec.tsx" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /packages/apple-pay-integration/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "../../.eslintrc.json" 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /packages/apple-pay-integration/README.md: -------------------------------------------------------------------------------- 1 | # payment-methods 2 | 3 | Package containing apple pay implementation in payment step. 4 | 5 | 6 | ## Running unit tests 7 | 8 | Run `nx test apple-pay-integration` to execute the unit tests via [Jest](https://jestjs.io). 9 | 10 | 11 | ## Running lint 12 | 13 | Run `nx lint apple-pay-integration` to execute the lint via [ESLint](https://eslint.org/). 14 | 15 | -------------------------------------------------------------------------------- /packages/apple-pay-integration/src/index.ts: -------------------------------------------------------------------------------- 1 | export { default as ApplePayPaymentMethod } from './ApplePayPaymentMethod'; 2 | -------------------------------------------------------------------------------- /packages/apple-pay-integration/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "references": [ 4 | { 5 | "path": "./tsconfig.lib.json" 6 | }, 7 | { 8 | "path": "./tsconfig.spec.json" 9 | } 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /packages/apple-pay-integration/tsconfig.lib.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "include": [ 4 | "src/**/*.ts", 5 | "src/**/*.tsx" 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /packages/apple-pay-integration/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "types": ["jest", "node"] 5 | }, 6 | "include": [ 7 | "**/*.spec.ts", 8 | "**/*.spec.tsx" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /packages/apple-pay-integration/types/ApplePaySession.d.ts: -------------------------------------------------------------------------------- 1 | export declare global { 2 | interface Window { 3 | // eslint-disable-next-line @typescript-eslint/naming-convention 4 | ApplePaySession?: ApplePaySession; 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/barclay-integration/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../.eslintrc.json"] 3 | } 4 | -------------------------------------------------------------------------------- /packages/barclay-integration/README.md: -------------------------------------------------------------------------------- 1 | # barclay-integration 2 | 3 | This package contains the integration layer for the [Barclays](https://www.barclays.com/) provider. 4 | 5 | 6 | ## Running unit tests 7 | 8 | Run `nx test barclay-integration` to execute the unit tests via [Jest](https://jestjs.io). 9 | 10 | 11 | ## Running lint 12 | 13 | Run `nx lint barclay-integration` to execute the lint via [ESLint](https://eslint.org/). 14 | 15 | -------------------------------------------------------------------------------- /packages/barclay-integration/e2e/support/barclay.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Your test have reached `Barclay`. 8 | 9 | 10 | -------------------------------------------------------------------------------- /packages/barclay-integration/src/index.ts: -------------------------------------------------------------------------------- 1 | export { default as BarclaycardPaymentMethod } from './BarclaycardPaymentMethod'; 2 | -------------------------------------------------------------------------------- /packages/barclay-integration/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "references": [ 4 | { 5 | "path": "./tsconfig.spec.json" 6 | } 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /packages/bigcommerce-payments-integration/src/BigCommercePaymentsFastlane/components/BigCommercePaymentsFastlaneCreditCardForm.scss: -------------------------------------------------------------------------------- 1 | .big-commerce-payments-fastlane-cc-form-container { 2 | font-weight: initial; 3 | padding-bottom: 1rem; 4 | } 5 | -------------------------------------------------------------------------------- /packages/bigcommerce-payments-integration/src/BigCommercePaymentsFastlane/index.ts: -------------------------------------------------------------------------------- 1 | import BigCommercePaymentsFastlanePaymentMethod from './BigCommercePaymentsFastlanePaymentMethod'; 2 | 3 | export default BigCommercePaymentsFastlanePaymentMethod; 4 | -------------------------------------------------------------------------------- /packages/bigcommerce-payments-integration/tsconfig.lib.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../dist/out-tsc", 5 | "declaration": true, 6 | "types": [] 7 | }, 8 | "include": ["**/*.ts"], 9 | "exclude": ["**/*.spec.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /packages/bigcommerce-payments-integration/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "include": [ 9 | "**/*.test.ts", 10 | "**/*.spec.ts", 11 | "**/*.test.tsx", 12 | "**/*.spec.tsx", 13 | "**/*.d.ts" 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /packages/bigcommerce-payments-utils/index.ts: -------------------------------------------------------------------------------- 1 | export { default as BigCommercePaymentsPayLaterBanner } from './BigCommercePaymentsPayLaterBanner'; 2 | -------------------------------------------------------------------------------- /packages/bigcommerce-payments-utils/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "references": [ 4 | { 5 | "path": "./tsconfig.spec.json" 6 | } 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /packages/bigcommerce-payments-utils/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "types": ["jest", "node"] 5 | }, 6 | "include": [ 7 | "src/**/*.spec.ts", 8 | "src/**/*.spec.tsx", 9 | "src/**/*.test.ts", 10 | "src/**/*.test.tsx", 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /packages/bluesnap-direct-integration/README.md: -------------------------------------------------------------------------------- 1 | # bluesnap-direct-integration 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test bluesnap-direct-integration` to execute the unit tests via [Jest](https://jestjs.io). 8 | 9 | ## Running lint 10 | 11 | Run `nx lint bluesnap-direct-integration` to execute the lint via [ESLint](https://eslint.org/). 12 | -------------------------------------------------------------------------------- /packages/bluesnap-direct-integration/e2e/support/bluesnap.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Your test have reached `Bluesnap`. 8 | 9 | 10 | -------------------------------------------------------------------------------- /packages/bluesnap-direct-integration/e2e/support/bluesnapv2.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | Your test have reached `Bluesnap`. 9 | 10 | 11 | -------------------------------------------------------------------------------- /packages/bluesnap-direct-integration/src/constants.ts: -------------------------------------------------------------------------------- 1 | export enum BluesnapECPAccountType { 2 | ConsumerChecking = 'CONSUMER_CHECKING', 3 | ConsumerSavings = 'CONSUMER_SAVINGS', 4 | CorporateChecking = 'CORPORATE_CHECKING', 5 | CorporateSavings = 'CORPORATE_SAVINGS', 6 | } 7 | -------------------------------------------------------------------------------- /packages/bluesnap-direct-integration/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "references": [ 4 | { 5 | "path": "./tsconfig.lib.json" 6 | }, 7 | { 8 | "path": "./tsconfig.spec.json" 9 | } 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /packages/bluesnap-direct-integration/tsconfig.lib.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "include": [ 4 | "src/**/*.ts", 5 | "src/**/*.tsx" 6 | ], 7 | "composite": true, 8 | } 9 | -------------------------------------------------------------------------------- /packages/bolt-integration/README.md: -------------------------------------------------------------------------------- 1 | # bolt-integration 2 | 3 | This package contains the integration layer for the [Bolt](https://www.bolt.com/) provider. 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test bolt-integration` to execute the unit tests via [Jest](https://jestjs.io). 8 | 9 | ## Running lint 10 | 11 | Run `nx lint bolt-integration` to execute the lint via [ESLint](https://eslint.org/). 12 | -------------------------------------------------------------------------------- /packages/bolt-integration/src/BoltCustomFormValues.ts: -------------------------------------------------------------------------------- 1 | export default interface BoltCustomFormValues { 2 | shouldCreateAccount: boolean; 3 | } 4 | -------------------------------------------------------------------------------- /packages/bolt-integration/src/index.ts: -------------------------------------------------------------------------------- 1 | export { default as BoltClientPaymentMethod } from './BoltClientPaymentMethod'; 2 | export { default as BoltEmbeddedPaymentMethod } from './BoltEmbeddedPaymentMethod'; 3 | export { default as BoltPaymentMethod } from './BoltPaymentMethod'; 4 | -------------------------------------------------------------------------------- /packages/bolt-integration/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "references": [ 4 | { 5 | "path": "./tsconfig.lib.json" 6 | }, 7 | { 8 | "path": "./tsconfig.spec.json" 9 | } 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /packages/bolt-integration/tsconfig.lib.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "include": [ 4 | "src/**/*.ts", 5 | "src/**/*.tsx" 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /packages/braintree-integration/README.md: -------------------------------------------------------------------------------- 1 | # braintree-integration 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test braintree-integration` to execute the unit tests via [Jest](https://jestjs.io). 8 | 9 | ## Running lint 10 | 11 | Run `nx lint braintree-integration` to execute the lint via [ESLint](https://eslint.org/). 12 | -------------------------------------------------------------------------------- /packages/braintree-integration/src/BraintreeFastlane/components/BraintreeFastlaneCreditCardForm.scss: -------------------------------------------------------------------------------- 1 | .braintree-fastlane-cc-form-container { 2 | font-weight: initial; 3 | padding-bottom: 1rem; 4 | } 5 | -------------------------------------------------------------------------------- /packages/braintree-integration/src/BraintreeFastlane/index.ts: -------------------------------------------------------------------------------- 1 | import BraintreeFastlanePaymentMethod from './BraintreeFastlanePaymentMethod'; 2 | 3 | export default BraintreeFastlanePaymentMethod; 4 | -------------------------------------------------------------------------------- /packages/braintree-integration/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "references": [ 4 | { 5 | "path": "./tsconfig.spec.json" 6 | } 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /packages/braintree-integration/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "types": ["jest", "node"] 5 | }, 6 | "include": [ 7 | "**/*.test.ts", 8 | "**/*.spec.ts", 9 | "**/*.test.tsx", 10 | "**/*.spec.tsx", 11 | "**/*.test.js", 12 | "**/*.spec.js", 13 | "**/*.test.jsx", 14 | "**/*.spec.jsx", 15 | "**/*.d.ts" 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /packages/checkout-button-integration/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "../../.eslintrc.json" 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /packages/checkout-button-integration/src/index.ts: -------------------------------------------------------------------------------- 1 | export { default as CheckoutButton } from './CheckoutButton'; 2 | -------------------------------------------------------------------------------- /packages/checkout-button-integration/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "references": [ 4 | { 5 | "path": "./tsconfig.lib.json" 6 | }, 7 | { 8 | "path": "./tsconfig.spec.json" 9 | } 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /packages/checkout-button-integration/tsconfig.lib.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "include": [ 4 | "src/**/*.ts", 5 | "src/**/*.tsx" 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /packages/checkout-button-integration/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "types": ["jest", "node"] 5 | }, 6 | "include": [ 7 | "src/**/*.spec.ts", 8 | "src/**/*.spec.tsx" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /packages/checkout-extension/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../.eslintrc.json"], 3 | "rules": { 4 | "@typescript-eslint/naming-convention": "off", 5 | "@typescript-eslint/no-explicit-any": "off", 6 | "@typescript-eslint/no-unnecessary-condition": "off" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/checkout-extension/README.md: -------------------------------------------------------------------------------- 1 | # checkout-extension 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test checkout-extension` to execute the unit tests via [Jest](https://jestjs.io). 8 | 9 | ## Running lint 10 | 11 | Run `nx lint checkout-extension` to execute the lint via [ESLint](https://eslint.org/). 12 | -------------------------------------------------------------------------------- /packages/checkout-extension/src/ExtensionContext.tsx: -------------------------------------------------------------------------------- 1 | import { createContext } from 'react'; 2 | 3 | import { ExtensionState } from './ExtensionProvider'; 4 | import { ExtensionService } from './ExtensionService'; 5 | 6 | export interface ExtensionContextProps { 7 | extensionService: ExtensionService; 8 | extensionState: ExtensionState; 9 | } 10 | 11 | export const ExtensionContext = createContext(undefined); 12 | -------------------------------------------------------------------------------- /packages/checkout-extension/src/handler/commandHandlers/index.ts: -------------------------------------------------------------------------------- 1 | export { createReloadCheckoutHandler } from './createReloadCheckoutHandler'; 2 | export { createSetIframeStyleHandler } from './createSetIframeStyleHandler'; 3 | export { createShowLoadingIndicatorHandler } from './createShowLoadingIndicatorHandler'; 4 | export { createReRenderShippingFormHandler } from './createReRenderShippingFormHandler'; 5 | -------------------------------------------------------------------------------- /packages/checkout-extension/src/handler/index.ts: -------------------------------------------------------------------------------- 1 | export { CommandHandler } from './commandHandlers/CommandHandler'; 2 | export { QueryHandler } from './queryHandlers/QueryHandler'; 3 | -------------------------------------------------------------------------------- /packages/checkout-extension/src/handler/queryHandlers/index.ts: -------------------------------------------------------------------------------- 1 | export { createGetConsignmentHandler } from './createGetConsignmentHandler'; 2 | -------------------------------------------------------------------------------- /packages/checkout-extension/src/useExtensions.tsx: -------------------------------------------------------------------------------- 1 | import { useContext } from 'react'; 2 | 3 | import { ExtensionContext } from './ExtensionContext'; 4 | 5 | export const useExtensions = () => { 6 | const extensionContext = useContext(ExtensionContext); 7 | 8 | if (!extensionContext) { 9 | throw new Error('useExtensions must be used within an '); 10 | } 11 | 12 | return extensionContext; 13 | }; 14 | -------------------------------------------------------------------------------- /packages/checkout-extension/src/withExtension.ts: -------------------------------------------------------------------------------- 1 | import { createInjectHoc } from '@bigcommerce/checkout/legacy-hoc'; 2 | 3 | import { ExtensionContext } from './ExtensionContext'; 4 | 5 | export const withExtension = createInjectHoc(ExtensionContext, { 6 | displayNamePrefix: 'WithExtension', 7 | }); 8 | -------------------------------------------------------------------------------- /packages/checkout-extension/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json" 3 | } 4 | -------------------------------------------------------------------------------- /packages/checkout-extension/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "types": ["jest", "node"] 5 | }, 6 | "include": [ 7 | "**/*.test.ts", 8 | "**/*.test.tsx", 9 | "**/*.d.ts" 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /packages/checkoutcom-integration/README.md: -------------------------------------------------------------------------------- 1 | # checkoutcom-integration 2 | This package contains the integration layer for the [Checkoutcom](https://www.checkout.com/) provider. 3 | 4 | ## Running unit tests 5 | 6 | Run `nx test checkoutcom-integration` to execute the unit tests via [Jest](https://jestjs.io). 7 | 8 | ## Running lint 9 | 10 | Run `nx lint checkoutcom-integration` to execute the lint via [ESLint](https://eslint.org/). 11 | -------------------------------------------------------------------------------- /packages/checkoutcom-integration/e2e/support/checkoutcom.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Your test have reached `Checkoutcom`. 8 | 9 | 10 | -------------------------------------------------------------------------------- /packages/checkoutcom-integration/src/checkoutcomFieldsets/index.ts: -------------------------------------------------------------------------------- 1 | export { 2 | default as getCheckoutcomValidationSchemas, 3 | checkoutcomPaymentMethods, 4 | documentPaymentMethods, 5 | checkoutcomCustomPaymentMethods, 6 | } from './getCheckoutcomFieldsetValidationSchemas'; 7 | export * from './CheckoutcomFormValues'; 8 | -------------------------------------------------------------------------------- /packages/checkoutcom-integration/src/index.ts: -------------------------------------------------------------------------------- 1 | export { default as CheckoutcomCustomPaymentMethod } from './CheckoutcomCustomPaymentMethod'; 2 | export { 3 | default as getCheckoutcomValidationSchemas, 4 | checkoutcomPaymentMethods, 5 | documentPaymentMethods, 6 | checkoutcomCustomPaymentMethods, 7 | } from './checkoutcomFieldsets/getCheckoutcomFieldsetValidationSchemas'; 8 | export * from './checkoutcomFieldsets/CheckoutcomFormValues'; 9 | -------------------------------------------------------------------------------- /packages/checkoutcom-integration/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "references": [ 4 | { 5 | "path": "./tsconfig.lib.json" 6 | }, 7 | { 8 | "path": "./tsconfig.spec.json" 9 | } 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /packages/checkoutcom-integration/tsconfig.lib.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "include": [ 4 | "src/**/*.ts", 5 | "src/**/*.tsx" 6 | ], 7 | "composite": true, 8 | } 9 | -------------------------------------------------------------------------------- /packages/clearpay-integration/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../.eslintrc.json"] 3 | } 4 | -------------------------------------------------------------------------------- /packages/clearpay-integration/README.md: -------------------------------------------------------------------------------- 1 | # clearpay-integration 2 | 3 | This package contains the integration layer for the [Clearpay](https://www.clearpay.co.uk/) provider. 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test clearpay-integration` to execute the unit tests via [Jest](https://jestjs.io). 8 | 9 | ## Running lint 10 | 11 | Run `nx lint clearpay-integration` to execute the lint via [ESLint](https://eslint.org/). 12 | -------------------------------------------------------------------------------- /packages/clearpay-integration/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | displayName: 'clearpay-integration', 3 | preset: '../../jest.preset.js', 4 | transform: { 5 | '^.+\\.[tj]sx?$': ['ts-jest', { 6 | tsconfig: '/tsconfig.spec.json', 7 | diagnostics: false, 8 | }], 9 | }, 10 | setupFilesAfterEnv: ['../../jest-setup.ts'], 11 | coverageDirectory: '../../coverage/packages/clearpay-integration', 12 | }; 13 | -------------------------------------------------------------------------------- /packages/clearpay-integration/src/index.ts: -------------------------------------------------------------------------------- 1 | export { default as ClearpayPaymentMethod } from './ClearpayPaymentMethod'; 2 | -------------------------------------------------------------------------------- /packages/clearpay-integration/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "references": [ 4 | { 5 | "path": "./tsconfig.spec.json" 6 | } 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /packages/core/src/app/address/AddressType.ts: -------------------------------------------------------------------------------- 1 | enum AddressType { 2 | Billing = 'billing', 3 | Shipping = 'shipping', 4 | } 5 | 6 | export default AddressType; 7 | -------------------------------------------------------------------------------- /packages/core/src/app/address/StaticAddress.scss: -------------------------------------------------------------------------------- 1 | @import "../ui/Base"; 2 | 3 | .checkout-address--static { 4 | .address-entry { 5 | margin: 0; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/core/src/app/address/address.ts: -------------------------------------------------------------------------------- 1 | export interface AddressKeyMap { 2 | [fieldName: string]: T; 3 | } 4 | -------------------------------------------------------------------------------- /packages/core/src/app/address/googleAutocomplete/AddressSelectorAU.ts: -------------------------------------------------------------------------------- 1 | import AddressSelector from './AddressSelector'; 2 | 3 | export default class AddressSelectorAU extends AddressSelector { 4 | getStreet(): string { 5 | return `${this._get('street_number', 'long_name')} ${this._get('route', 'long_name')}`; 6 | } 7 | 8 | getStreet2(): string { 9 | return this._get('subpremise', 'long_name'); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/core/src/app/address/googleAutocomplete/AddressSelectorCA.ts: -------------------------------------------------------------------------------- 1 | import AddressSelector from './AddressSelector'; 2 | 3 | export default class AddressSelectorCA extends AddressSelector { 4 | getCity(): string { 5 | return this._get('sublocality_level_1', 'long_name') || this._get('locality', 'long_name'); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/core/src/app/address/googleAutocomplete/AddressSelectorUk.ts: -------------------------------------------------------------------------------- 1 | import AddressSelector from './AddressSelector'; 2 | 3 | export default class AddressSelectorUK extends AddressSelector { 4 | getState(): string { 5 | return ''; 6 | } 7 | 8 | getStreet2(): string { 9 | return this._get('locality', 'long_name'); 10 | } 11 | 12 | getPostCode(): string { 13 | return ''; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /packages/core/src/app/address/googleAutocomplete/index.ts: -------------------------------------------------------------------------------- 1 | export * from './googleAutocompleteTypes'; 2 | export { default as mapToAddress } from './mapToAddress'; 3 | export { default as GoogleAutocompleteScriptLoader } from './GoogleAutocompleteScriptLoader'; 4 | export { default as GoogleAutocomplete } from './GoogleAutocomplete'; 5 | export { default as GoogleAutocompleteFormField } from './GoogleAutocompleteFormField'; 6 | -------------------------------------------------------------------------------- /packages/core/src/app/analytics/index.ts: -------------------------------------------------------------------------------- 1 | export { default as withAnalytics } from './withAnalytics'; 2 | -------------------------------------------------------------------------------- /packages/core/src/app/analytics/withAnalytics.ts: -------------------------------------------------------------------------------- 1 | import { AnalyticsContext } from '@bigcommerce/checkout/analytics'; 2 | import { createInjectHoc } from '@bigcommerce/checkout/legacy-hoc'; 3 | 4 | const withAnalytics = createInjectHoc(AnalyticsContext, { displayNamePrefix: 'WithAnalytics' }); 5 | 6 | export default withAnalytics; 7 | -------------------------------------------------------------------------------- /packages/core/src/app/billing/index.ts: -------------------------------------------------------------------------------- 1 | export { BillingProps } from './Billing'; 2 | export { default as StaticBillingAddress } from './StaticBillingAddress'; 3 | -------------------------------------------------------------------------------- /packages/core/src/app/cart/index.ts: -------------------------------------------------------------------------------- 1 | export { default as EmptyCartMessage, EmptyCartMessageProps } from './EmptyCartMessage'; 2 | export { default as Redeemable, RedeemableProps } from './Redeemable'; 3 | export { default as mapToRedeemableProps } from './mapToRedeemableProps'; 4 | -------------------------------------------------------------------------------- /packages/core/src/app/checkout/CheckoutStepStatus.ts: -------------------------------------------------------------------------------- 1 | import CheckoutStepType from './CheckoutStepType'; 2 | 3 | export default interface CheckoutStepStatus { 4 | isActive: boolean; 5 | isBusy: boolean; 6 | isComplete: boolean; 7 | isEditable: boolean; 8 | isRequired: boolean; 9 | type: CheckoutStepType; 10 | } 11 | -------------------------------------------------------------------------------- /packages/core/src/app/checkout/CheckoutStepType.ts: -------------------------------------------------------------------------------- 1 | enum CheckoutStepType { 2 | Billing = 'billing', 3 | Customer = 'customer', 4 | Payment = 'payment', 5 | Shipping = 'shipping', 6 | } 7 | 8 | export default CheckoutStepType; 9 | -------------------------------------------------------------------------------- /packages/core/src/app/checkout/CheckoutSupport.ts: -------------------------------------------------------------------------------- 1 | export default interface CheckoutSupport { 2 | /** 3 | * Check if a feature is supported. 4 | * 5 | * If a feature is not supported, the call will throw an error. 6 | * Otherwise, it will return true. It will always return true if the 7 | * application is not running as Embedded Checkout. 8 | */ 9 | isSupported(...ids: string[]): boolean; 10 | } 11 | -------------------------------------------------------------------------------- /packages/core/src/app/checkout/NoopCheckoutSupport.ts: -------------------------------------------------------------------------------- 1 | import CheckoutSupport from './CheckoutSupport'; 2 | 3 | export default class NoopCheckoutSupport implements CheckoutSupport { 4 | isSupported(): boolean { 5 | return true; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/core/src/app/checkout/index.ts: -------------------------------------------------------------------------------- 1 | export { RenderCheckout, RenderCheckoutOptions } from './renderCheckout'; 2 | export { default as withCheckout, WithCheckoutProps } from './withCheckout'; 3 | export { default as CheckoutSupport } from './CheckoutSupport'; 4 | export { default as NoopCheckoutSupport } from './NoopCheckoutSupport'; 5 | -------------------------------------------------------------------------------- /packages/core/src/app/common/bundler/getCurrentScriptPath.ts: -------------------------------------------------------------------------------- 1 | // `document.currentScript` can only be called at the global level as it only 2 | // holds a reference to the script when it is initially processed. 3 | const path = document.currentScript ? (document.currentScript as HTMLScriptElement).src : undefined; 4 | 5 | export default function getCurrentScriptPath(): string | undefined { 6 | return path; 7 | } 8 | -------------------------------------------------------------------------------- /packages/core/src/app/common/bundler/index.ts: -------------------------------------------------------------------------------- 1 | export { default as configurePublicPath } from './configurePublicPath'; 2 | -------------------------------------------------------------------------------- /packages/core/src/app/common/dom/index.ts: -------------------------------------------------------------------------------- 1 | export { default as appendStylesheet } from './appendStylesheet'; 2 | export { default as toCSSRule } from './toCssRule'; 3 | -------------------------------------------------------------------------------- /packages/core/src/app/common/error/ErrorCode.scss: -------------------------------------------------------------------------------- 1 | @import '../../ui/Base'; 2 | 3 | .errorCode { 4 | font-size: fontSize("tiny"); 5 | opacity: 0.4; 6 | 7 | .errorCode-value { 8 | word-break: break-word; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/core/src/app/common/error/NoopErrorLogger.ts: -------------------------------------------------------------------------------- 1 | import { ErrorLogger } from '@bigcommerce/checkout/error-handling-utils'; 2 | 3 | export default class NoopErrorLogger implements ErrorLogger { 4 | log() {} 5 | } 6 | -------------------------------------------------------------------------------- /packages/core/src/app/common/error/computeErrorCode.ts: -------------------------------------------------------------------------------- 1 | import HashStatic from 'object-hash'; 2 | 3 | export default function computeErrorCode(value: any): string | undefined { 4 | try { 5 | return HashStatic(value).toUpperCase(); 6 | } catch (error) {} 7 | } 8 | -------------------------------------------------------------------------------- /packages/core/src/app/common/error/defaultErrorTypes.ts: -------------------------------------------------------------------------------- 1 | const DEFAULT_ERROR_TYPES = [ 2 | 'Error', 3 | 'EvalError', 4 | 'RangeError', 5 | 'ReferenceError', 6 | 'SyntaxError', 7 | 'TypeError', 8 | 'URIError', 9 | ]; 10 | 11 | export default DEFAULT_ERROR_TYPES; 12 | -------------------------------------------------------------------------------- /packages/core/src/app/common/error/isCartChangedError.ts: -------------------------------------------------------------------------------- 1 | import { CartChangedError } from '@bigcommerce/checkout-sdk'; 2 | 3 | export default function isCartChangedError(error: unknown): error is CartChangedError { 4 | const requestError = error as CartChangedError; 5 | 6 | return requestError.type === 'cart_changed'; 7 | } 8 | -------------------------------------------------------------------------------- /packages/core/src/app/common/error/isCustomError.ts: -------------------------------------------------------------------------------- 1 | import CustomError from './CustomError'; 2 | 3 | export default function isCustomError(error: Error): error is CustomError { 4 | const customError = error as CustomError; 5 | 6 | return ( 7 | typeof customError.title !== 'undefined' && 8 | typeof customError.data !== 'undefined' && 9 | typeof customError.type !== 'undefined' 10 | ); 11 | } 12 | -------------------------------------------------------------------------------- /packages/core/src/app/common/error/isRequestError.ts: -------------------------------------------------------------------------------- 1 | import { RequestError } from '@bigcommerce/checkout-sdk'; 2 | 3 | export default function isRequestError(error: unknown): error is RequestError { 4 | const requestError = error as RequestError; 5 | 6 | return requestError.type === 'request'; 7 | } 8 | -------------------------------------------------------------------------------- /packages/core/src/app/common/form/ConnectFormikProps.ts: -------------------------------------------------------------------------------- 1 | import { FormikContextType } from 'formik'; 2 | 3 | export default interface ConnectFormikProps { 4 | formik: FormikContextType; 5 | } 6 | 7 | export type WithFormikProps = ConnectFormikProps; 8 | -------------------------------------------------------------------------------- /packages/core/src/app/common/form/index.ts: -------------------------------------------------------------------------------- 1 | export { default as connectFormik } from './connectFormik'; 2 | export { default as ConnectFormikProps, WithFormikProps } from './ConnectFormikProps'; 3 | export { default as withFormikExtended, WithFormikExtendedProps } from './withFormikExtended'; 4 | -------------------------------------------------------------------------------- /packages/core/src/app/common/resolver/index.ts: -------------------------------------------------------------------------------- 1 | export { default as resolveComponent } from './resolveComponent'; 2 | -------------------------------------------------------------------------------- /packages/core/src/app/common/utility/emptyData.ts: -------------------------------------------------------------------------------- 1 | // NOTE: For now, need to coerce the type as mutable array / object. Otherwise, 2 | // we'll need to change the props of all components as readonly. 3 | export const EMPTY_ARRAY = Object.freeze([]) as never[]; 4 | export const EMPTY_OBJECT = Object.freeze({}) as any; 5 | -------------------------------------------------------------------------------- /packages/core/src/app/common/utility/is-apple-pay-window.ts: -------------------------------------------------------------------------------- 1 | interface ApplePayWindow extends Window { 2 | ApplePaySession: void; 3 | } 4 | 5 | export default function isApplePayWindow(window: Window): window is ApplePayWindow { 6 | return 'ApplePaySession' in window; 7 | } 8 | -------------------------------------------------------------------------------- /packages/core/src/app/common/utility/isExperimentEnabled.ts: -------------------------------------------------------------------------------- 1 | import { CheckoutSettings } from '@bigcommerce/checkout-sdk'; 2 | 3 | export default function isExperimentEnabled( 4 | checkoutSettings: CheckoutSettings | undefined, 5 | experimentName: string, 6 | ): boolean { 7 | return Boolean(checkoutSettings?.features[experimentName] ?? true); 8 | } 9 | -------------------------------------------------------------------------------- /packages/core/src/app/common/utility/isFloatingLabelEnabled.ts: -------------------------------------------------------------------------------- 1 | import { CheckoutSettings } from '@bigcommerce/checkout-sdk'; 2 | 3 | export default function isFloatingLabelEnabled(checkoutSettings: CheckoutSettings): boolean { 4 | return Boolean(checkoutSettings.checkoutUserExperienceSettings.floatingLabelEnabled); 5 | } 6 | -------------------------------------------------------------------------------- /packages/core/src/app/common/utility/isMobile.ts: -------------------------------------------------------------------------------- 1 | export default function isMobile(): boolean { 2 | return /Android|iPhone|iPad|iPod/i.test(window.navigator.userAgent); 3 | } 4 | -------------------------------------------------------------------------------- /packages/core/src/app/common/utility/isRecord.ts: -------------------------------------------------------------------------------- 1 | export default function isRecord( 2 | record: unknown, 3 | ): record is Record { 4 | return typeof record === 'object' && record !== null; 5 | } 6 | -------------------------------------------------------------------------------- /packages/core/src/app/common/utility/isRecordContainingKey.ts: -------------------------------------------------------------------------------- 1 | import isRecord from './isRecord'; 2 | 3 | export default function isRecordContainingKey( 4 | record: unknown, 5 | key: TKey, 6 | ): record is Record { 7 | return isRecord(record) && key in record; 8 | } 9 | -------------------------------------------------------------------------------- /packages/core/src/app/common/utility/should-filter-apple-pay.ts: -------------------------------------------------------------------------------- 1 | import { isApplePayWindow } from './'; 2 | 3 | export default function shouldFilterApplePay(methodId: string, isBrowserSupported: boolean): boolean { 4 | if (methodId !== 'applepay') { 5 | return false; 6 | } 7 | 8 | return !isApplePayWindow(window) && !isBrowserSupported; 9 | } 10 | -------------------------------------------------------------------------------- /packages/core/src/app/coupon/index.ts: -------------------------------------------------------------------------------- 1 | export { default as AppliedCoupon } from './AppliedCoupon'; 2 | -------------------------------------------------------------------------------- /packages/core/src/app/currency/__snapshots__/ShopperCurrency.test.tsx.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`ShopperCurrency Component renders formatted amount in shopper currency 1`] = `"$11.20"`; 4 | -------------------------------------------------------------------------------- /packages/core/src/app/currency/__snapshots__/StoreCurrency.test.tsx.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`ShopperCurrency Component renders formatted amount in shopper currency 1`] = `"$10.00"`; 4 | -------------------------------------------------------------------------------- /packages/core/src/app/currency/currencies.mock.ts: -------------------------------------------------------------------------------- 1 | import { Currency } from '@bigcommerce/checkout-sdk'; 2 | 3 | export function getCurrency(): Currency { 4 | return { 5 | name: 'US Dollar', 6 | code: 'USD', 7 | symbol: '$', 8 | decimalPlaces: 2, 9 | }; 10 | } 11 | -------------------------------------------------------------------------------- /packages/core/src/app/currency/index.ts: -------------------------------------------------------------------------------- 1 | export { default as ShopperCurrency } from './ShopperCurrency'; 2 | export { default as StoreCurrency } from './StoreCurrency'; 3 | -------------------------------------------------------------------------------- /packages/core/src/app/customer/CustomerViewType.ts: -------------------------------------------------------------------------------- 1 | enum CustomerViewType { 2 | Guest = 'guest', 3 | Login = 'login', 4 | SuggestedLogin = 'suggested_login', 5 | EnforcedLogin = 'enforced_login', 6 | CancellableEnforcedLogin = 'cancellable_enforced_login', 7 | CreateAccount = 'create_account', 8 | } 9 | 10 | export default CustomerViewType; 11 | -------------------------------------------------------------------------------- /packages/core/src/app/customer/checkoutSuggestion/index.tsx: -------------------------------------------------------------------------------- 1 | export { default as CheckoutSuggestion } from './CheckoutSuggestion'; 2 | -------------------------------------------------------------------------------- /packages/core/src/app/customer/customWalletButton/index.ts: -------------------------------------------------------------------------------- 1 | export { default as ApplePayButton } from './ApplePayButton'; 2 | export { default as AmazonPayV2Button } from './AmazonPayV2Button'; 3 | export { default as PayPalCommerceButton } from './PayPalCommerceButton'; 4 | -------------------------------------------------------------------------------- /packages/core/src/app/customer/validationPatterns.ts: -------------------------------------------------------------------------------- 1 | // NOTE: This is a legacy regex used to create accounts, more flexible than the current used one 2 | // we need to keep this regex for login validation as accounts might have been created using this regex 3 | export const EMAIL_REGEXP = 4 | /^[a-z0-9!#$%&'*+/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i; 5 | -------------------------------------------------------------------------------- /packages/core/src/app/embeddedCheckout/createEmbeddedCheckoutStylesheet.ts: -------------------------------------------------------------------------------- 1 | import EmbeddedCheckoutStyleParser from './EmbeddedCheckoutStyleParser'; 2 | import EmbeddedCheckoutStylesheet from './EmbeddedCheckoutStylesheet'; 3 | 4 | export default function createEmbeddedCheckoutStylesheet() { 5 | const embeddedCheckoutStyleParser = new EmbeddedCheckoutStyleParser(); 6 | 7 | return new EmbeddedCheckoutStylesheet(embeddedCheckoutStyleParser); 8 | } 9 | -------------------------------------------------------------------------------- /packages/core/src/app/embeddedCheckout/errors/index.ts: -------------------------------------------------------------------------------- 1 | export { EmbeddedCheckoutUnsupportedError } from './EmbeddedCheckoutUnsupportedError'; 2 | -------------------------------------------------------------------------------- /packages/core/src/app/embeddedCheckout/index.ts: -------------------------------------------------------------------------------- 1 | export { default as createEmbeddedCheckoutStylesheet } from './createEmbeddedCheckoutStylesheet'; 2 | export { default as createEmbeddedCheckoutSupport } from './createEmbeddedCheckoutSupport'; 3 | export { default as EmbeddedCheckoutStylesheet } from './EmbeddedCheckoutStylesheet'; 4 | export { default as isEmbedded } from './isEmbedded'; 5 | -------------------------------------------------------------------------------- /packages/core/src/app/embeddedCheckout/isEmbedded.ts: -------------------------------------------------------------------------------- 1 | export default function isEmbedded(pathname: string = document.location.pathname): boolean { 2 | const basePath = `/${pathname.split('/')[1]}`; 3 | 4 | return basePath === '/embedded-checkout'; 5 | } 6 | -------------------------------------------------------------------------------- /packages/core/src/app/geography/country.ts: -------------------------------------------------------------------------------- 1 | export interface LocalizedGeography { 2 | localizedCountry: string; 3 | localizedProvince: string; 4 | } 5 | -------------------------------------------------------------------------------- /packages/core/src/app/geography/index.ts: -------------------------------------------------------------------------------- 1 | export { LocalizedGeography } from './country'; 2 | -------------------------------------------------------------------------------- /packages/core/src/app/giftCertificate/giftCertificate.mock.ts: -------------------------------------------------------------------------------- 1 | import { GiftCertificate } from '@bigcommerce/checkout-sdk'; 2 | 3 | export function getGiftCertificate(): GiftCertificate { 4 | return { 5 | code: 'savebig2015', 6 | remaining: 20, 7 | used: 80, 8 | balance: 100, 9 | purchaseDate: '', 10 | }; 11 | } 12 | -------------------------------------------------------------------------------- /packages/core/src/app/giftCertificate/index.ts: -------------------------------------------------------------------------------- 1 | export { default as AppliedGiftCertificate } from './AppliedGiftCertificate'; 2 | export { default as isGiftCertificatePayment } from './isGiftCertificatePayment'; 3 | export { default as mapFromPayments } from './mapFromPayments'; 4 | -------------------------------------------------------------------------------- /packages/core/src/app/giftCertificate/isGiftCertificatePayment.ts: -------------------------------------------------------------------------------- 1 | import { 2 | CheckoutPayment, 3 | GiftCertificateOrderPayment, 4 | OrderPayment, 5 | } from '@bigcommerce/checkout-sdk'; 6 | 7 | export default function isGiftCertificatePayment( 8 | payment: OrderPayment | CheckoutPayment, 9 | ): payment is GiftCertificateOrderPayment { 10 | return payment.providerId === 'giftcertificate'; 11 | } 12 | -------------------------------------------------------------------------------- /packages/core/src/app/guestSignup/errors/index.ts: -------------------------------------------------------------------------------- 1 | export { default as AccountCreationFailedError } from './AccountCreationFailedError'; 2 | export { default as AccountCreationRequirementsError } from './AccountCreationRequirementsError'; 3 | -------------------------------------------------------------------------------- /packages/core/src/app/guestSignup/index.ts: -------------------------------------------------------------------------------- 1 | export { default as AccountService } from './AccountService'; 2 | export { default as GuestSignUpForm, SignUpFormValues } from './GuestSignUpForm'; 3 | export { default as SignedUpSuccessAlert } from './SignedUpSuccessAlert'; 4 | export { default as PasswordSavedSuccessAlert } from './PasswordSavedSuccessAlert'; 5 | export { CreatedCustomer } from './CreatedCustomer'; 6 | -------------------------------------------------------------------------------- /packages/core/src/app/index.ts: -------------------------------------------------------------------------------- 1 | export { default as renderCheckout } from '../app/checkout/renderCheckout'; 2 | export { default as renderOrderConfirmation } from '../app/order/renderOrderConfirmation'; 3 | export { initializeLanguageService } from '@bigcommerce/checkout/locale'; 4 | -------------------------------------------------------------------------------- /packages/core/src/app/order/OrderConfirmationSection.tsx: -------------------------------------------------------------------------------- 1 | import React, { FunctionComponent } from 'react'; 2 | 3 | const OrderConfirmationSection: FunctionComponent<{ children?: React.ReactNode }> = ({ children }) => ( 4 |
{children}
5 | ); 6 | 7 | export default OrderConfirmationSection; 8 | -------------------------------------------------------------------------------- /packages/core/src/app/order/OrderSummarySection.tsx: -------------------------------------------------------------------------------- 1 | import React, { FunctionComponent } from 'react'; 2 | 3 | const OrderSummarySection: FunctionComponent<{ children?: React.ReactNode }> = ({ children }) => ( 4 |
5 | {children} 6 |
7 | ); 8 | 9 | export default OrderSummarySection; 10 | -------------------------------------------------------------------------------- /packages/core/src/app/order/getOrderSummaryItemImage.tsx: -------------------------------------------------------------------------------- 1 | import { DigitalItem, PhysicalItem } from '@bigcommerce/checkout-sdk'; 2 | import React, { ReactNode } from 'react'; 3 | 4 | export default function getOrderSummaryItemImage(item: DigitalItem | PhysicalItem): ReactNode { 5 | if (!item.imageUrl) { 6 | return; 7 | } 8 | 9 | return ; 10 | } 11 | -------------------------------------------------------------------------------- /packages/core/src/app/order/getStoreCreditAmount.ts: -------------------------------------------------------------------------------- 1 | import { OrderPayment } from '@bigcommerce/checkout-sdk'; 2 | 3 | import { isStoreCreditPayment } from '../payment/storeCredit'; 4 | 5 | export default function getStoreCreditAmount(payments?: OrderPayment[]): number { 6 | return (payments || []) 7 | .filter(isStoreCreditPayment) 8 | .reduce((total, payment) => total + payment.amount, 0); 9 | } 10 | -------------------------------------------------------------------------------- /packages/core/src/app/order/index.tsx: -------------------------------------------------------------------------------- 1 | export { RenderOrderConfirmation, RenderOrderConfirmationOptions } from './renderOrderConfirmation'; 2 | export { OrderSummaryProps } from './OrderSummary'; 3 | export { OrderSummarySubtotalsProps } from './OrderSummarySubtotals'; 4 | export { default as OrderStatus } from './OrderStatus'; 5 | export { default as getPaymentInstructions } from './getPaymentInstructions'; 6 | -------------------------------------------------------------------------------- /packages/core/src/app/order/isOrderFee.ts: -------------------------------------------------------------------------------- 1 | import { Fee, OrderFee } from "@bigcommerce/checkout-sdk"; 2 | 3 | export default function isOrderFee(fee: OrderFee | Fee): fee is OrderFee { 4 | return Object.hasOwn(fee, 'customerDisplayName'); 5 | } 6 | 7 | ; 8 | -------------------------------------------------------------------------------- /packages/core/src/app/orderComments/index.ts: -------------------------------------------------------------------------------- 1 | export { default as OrderComments } from './OrderComments'; 2 | -------------------------------------------------------------------------------- /packages/core/src/app/payment/StoreInstrumentFieldset/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './StoreInstrumentFieldset'; 2 | -------------------------------------------------------------------------------- /packages/core/src/app/payment/creditCard/CreditCardCodeTooltip.scss: -------------------------------------------------------------------------------- 1 | .dropdown-menu--card-code { 2 | display: block; 3 | left: 0; 4 | position: relative; 5 | visibility: visible; 6 | width: 200px; 7 | } 8 | -------------------------------------------------------------------------------- /packages/core/src/app/payment/creditCard/unformatCreditCardNumber.ts: -------------------------------------------------------------------------------- 1 | import { number } from 'card-validator'; 2 | 3 | export default function unformatCreditCardNumber(value: string, separator = ' '): string { 4 | const { card } = number(value); 5 | 6 | if (!card) { 7 | return value; 8 | } 9 | 10 | return value.replace(new RegExp(separator, 'g'), ''); 11 | } 12 | -------------------------------------------------------------------------------- /packages/core/src/app/payment/hostedCreditCard/index.ts: -------------------------------------------------------------------------------- 1 | export { 2 | default as withHostedCreditCardFieldset, 3 | WithInjectedHostedCreditCardFieldsetProps, 4 | } from './withHostedCreditCardFieldset'; 5 | export { default as HostedCreditCardFieldset } from './HostedCreditCardFieldset'; 6 | -------------------------------------------------------------------------------- /packages/core/src/app/payment/index.ts: -------------------------------------------------------------------------------- 1 | export { PaymentProps } from './Payment'; 2 | export { default as getPreselectedPayment } from './getPreselectedPayment'; 3 | -------------------------------------------------------------------------------- /packages/core/src/app/payment/paymentMethod/PPSDKPaymentMethod/NoUI.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | import { Props } from './PPSDKPaymentMethod'; 4 | import { usePropsToOnMount } from './usePropsToOnMount'; 5 | import { Wrapper } from './Wrapper'; 6 | 7 | export const NoUI = (props: Props) => { 8 | const onMount = usePropsToOnMount(props); 9 | 10 | return ; 11 | }; 12 | -------------------------------------------------------------------------------- /packages/core/src/app/payment/paymentMethod/PPSDKPaymentMethod/Wrapper.tsx: -------------------------------------------------------------------------------- 1 | import React, { FunctionComponent, useEffect } from 'react'; 2 | 3 | interface Props { 4 | onMount(): () => void; 5 | children?: React.ReactNode; 6 | } 7 | 8 | export const Wrapper: FunctionComponent = (props) => { 9 | const { children, onMount } = props; 10 | 11 | useEffect(onMount, [onMount]); 12 | 13 | return <>{children}; 14 | }; 15 | -------------------------------------------------------------------------------- /packages/core/src/app/payment/paymentMethod/PPSDKPaymentMethod/index.ts: -------------------------------------------------------------------------------- 1 | export { PPSDKPaymentMethod as default } from './PPSDKPaymentMethod'; 2 | -------------------------------------------------------------------------------- /packages/core/src/app/payment/paymentMethod/PaymentMethodId.ts: -------------------------------------------------------------------------------- 1 | import { PaymentMethodId } from '@bigcommerce/checkout/payment-integration-api'; 2 | 3 | export default PaymentMethodId; 4 | -------------------------------------------------------------------------------- /packages/core/src/app/payment/paymentMethod/PaymentMethodProviderType.ts: -------------------------------------------------------------------------------- 1 | enum PaymentMethodProviderType { 2 | Api = 'PAYMENT_TYPE_API', 3 | Hosted = 'PAYMENT_TYPE_HOSTED', 4 | Offline = 'PAYMENT_TYPE_OFFLINE', 5 | PPSDK = 'PAYMENT_TYPE_SDK', 6 | } 7 | 8 | export default PaymentMethodProviderType; 9 | -------------------------------------------------------------------------------- /packages/core/src/app/payment/storeCredit/index.ts: -------------------------------------------------------------------------------- 1 | export { default as isStoreCreditPayment } from './isStoreCreditPayment'; 2 | export { default as StoreCreditField, StoreCreditFieldProps } from './StoreCreditField'; 3 | export { default as StoreCreditOverlay } from './StoreCreditOverlay'; 4 | -------------------------------------------------------------------------------- /packages/core/src/app/payment/storeCredit/isStoreCreditPayment.ts: -------------------------------------------------------------------------------- 1 | import { CheckoutPayment, OrderPayment } from '@bigcommerce/checkout-sdk'; 2 | 3 | export default function isStoreCreditPayment(payment: OrderPayment | CheckoutPayment): boolean { 4 | return payment.providerId === 'storecredit'; 5 | } 6 | -------------------------------------------------------------------------------- /packages/core/src/app/payment/storedInstrument/CardInstrumentFieldsetValues.tsx: -------------------------------------------------------------------------------- 1 | export default interface CardInstrumentFieldsetValues { 2 | instrumentId: string; 3 | } 4 | -------------------------------------------------------------------------------- /packages/core/src/app/payment/storedInstrument/isAccountInstrument.ts: -------------------------------------------------------------------------------- 1 | import { AccountInstrument, PaymentInstrument } from '@bigcommerce/checkout-sdk'; 2 | 3 | export default function isAccountInstrument( 4 | instrument: PaymentInstrument, 5 | ): instrument is AccountInstrument { 6 | return instrument.type === 'account'; 7 | } 8 | -------------------------------------------------------------------------------- /packages/core/src/app/payment/storedInstrument/isBankAccountInstrument.ts: -------------------------------------------------------------------------------- 1 | import { AchInstrument, BankInstrument, PaymentInstrument } from '@bigcommerce/checkout-sdk'; 2 | 3 | export default function isBankAccountInstrument( 4 | instrument: PaymentInstrument, 5 | ): instrument is BankInstrument | AchInstrument { 6 | return instrument.type === 'bank'; 7 | } 8 | -------------------------------------------------------------------------------- /packages/core/src/app/payment/storedInstrument/isCardInstrument.ts: -------------------------------------------------------------------------------- 1 | import { CardInstrument, PaymentInstrument } from '@bigcommerce/checkout-sdk'; 2 | 3 | export default function isCardInstrument( 4 | instrument: PaymentInstrument, 5 | ): instrument is CardInstrument { 6 | return instrument.type === 'card'; 7 | } 8 | -------------------------------------------------------------------------------- /packages/core/src/app/payment/withPayment.tsx: -------------------------------------------------------------------------------- 1 | import { createInjectHoc } from '@bigcommerce/checkout/legacy-hoc'; 2 | 3 | import PaymentContext, { PaymentContextProps } from './PaymentContext'; 4 | 5 | export type WithPaymentProps = PaymentContextProps; 6 | 7 | const withPayment = createInjectHoc(PaymentContext, { displayNamePrefix: 'WithPayment' }); 8 | 9 | export default withPayment; 10 | -------------------------------------------------------------------------------- /packages/core/src/app/polyfill.ts: -------------------------------------------------------------------------------- 1 | import 'core-js'; 2 | import 'regenerator-runtime/runtime'; 3 | -------------------------------------------------------------------------------- /packages/core/src/app/privacyPolicy/index.ts: -------------------------------------------------------------------------------- 1 | export { default as PrivacyPolicyField } from './PrivacyPolicyField'; 2 | export { default as getPrivacyPolicyValidationSchema } from './getPrivacyPolicyValidationSchema'; 3 | -------------------------------------------------------------------------------- /packages/core/src/app/promotion/PromotionBannerList.scss: -------------------------------------------------------------------------------- 1 | @import '../ui/Base'; 2 | 3 | .discountBanner { 4 | margin-top: spacing("single"); 5 | 6 | .alertBox { 7 | border-radius: $global-radius; 8 | } 9 | } 10 | 11 | .discountBannerList { 12 | list-style: none; 13 | margin: 0; 14 | margin-left: 0; 15 | 16 | ul, 17 | ol { 18 | list-style: none; 19 | margin-bottom: 0; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /packages/core/src/app/promotion/index.ts: -------------------------------------------------------------------------------- 1 | export { default as PromotionBannerList } from './PromotionBannerList'; 2 | -------------------------------------------------------------------------------- /packages/core/src/app/promotion/promotions.mock.ts: -------------------------------------------------------------------------------- 1 | import { Promotion } from '@bigcommerce/checkout-sdk'; 2 | 3 | export function getPromotion(): Promotion { 4 | return { 5 | banners: [ 6 | { type: 'upsell', text: 'Get a discount if you order more' }, 7 | { type: 'eligible', text: 'You are eligible for a discount' }, 8 | ], 9 | }; 10 | } 11 | -------------------------------------------------------------------------------- /packages/core/src/app/shipping/ItemSplitTooltip.scss: -------------------------------------------------------------------------------- 1 | @import '../ui/Base'; 2 | 3 | .item-split-tooltip { 4 | .icon { 5 | margin-left: spacing("quarter"); 6 | svg { 7 | cursor: help; 8 | padding-bottom: spacing("eighth"); 9 | } 10 | } 11 | } 12 | 13 | .tooltip--basic { 14 | border-radius: $global-radius; 15 | } 16 | -------------------------------------------------------------------------------- /packages/core/src/app/shipping/ShippableItem.ts: -------------------------------------------------------------------------------- 1 | import { Consignment, PhysicalItem } from '@bigcommerce/checkout-sdk'; 2 | 3 | export default interface ShippableItem extends PhysicalItem { 4 | consignment?: Consignment; 5 | key: string; 6 | } 7 | -------------------------------------------------------------------------------- /packages/core/src/app/shipping/ShippingAddressFields.ts: -------------------------------------------------------------------------------- 1 | export const SHIPPING_ADDRESS_FIELDS = [ 2 | 'address1', 3 | 'postalCode', 4 | 'countryCode', 5 | 'city', 6 | 'stateOrProvince', 7 | 'stateOrProvinceCode', 8 | ]; 9 | -------------------------------------------------------------------------------- /packages/core/src/app/shipping/ShippingHeader.scss: -------------------------------------------------------------------------------- 1 | @import '../ui/Base'; 2 | 3 | .shipping-header { 4 | flex-direction: column; 5 | align-items: flex-start; 6 | padding-bottom: spacing("base"); 7 | 8 | @include breakpoint("small") { 9 | flex-direction: row; 10 | align-items: center; 11 | padding-bottom: 0; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/core/src/app/shipping/StaticAddressEditable.scss: -------------------------------------------------------------------------------- 1 | .stepHeader-body.subheader { 2 | margin-left: 0; 3 | order: inherit; 4 | } 5 | 6 | .stepHeader-actions.subheader { 7 | margin-bottom: 0; 8 | margin-left: 0; 9 | } 10 | 11 | #customFieldset { 12 | margin-top: 1rem; 13 | } 14 | -------------------------------------------------------------------------------- /packages/core/src/app/shipping/errors/index.ts: -------------------------------------------------------------------------------- 1 | export { default as AssignItemFailedError } from './AssignItemFailedError'; 2 | export { default as AssignItemInvalidAddressError } from './AssignItemInvalidAddressError'; 3 | export { default as UnassignItemError } from './UnassignItemError'; 4 | -------------------------------------------------------------------------------- /packages/core/src/app/shipping/findConsignment.ts: -------------------------------------------------------------------------------- 1 | import { Consignment } from '@bigcommerce/checkout-sdk'; 2 | import { find, includes } from 'lodash'; 3 | 4 | export default function findConsignment( 5 | consignments: Consignment[], 6 | itemId: string, 7 | ): Consignment | undefined { 8 | return find(consignments, (consignment) => includes(consignment.lineItemIds, itemId)); 9 | } 10 | -------------------------------------------------------------------------------- /packages/core/src/app/shipping/getLineItemsCount.ts: -------------------------------------------------------------------------------- 1 | import { LineItem } from '@bigcommerce/checkout-sdk'; 2 | import { reduce } from 'lodash'; 3 | 4 | export default function getLineItemsCount(lineItems: LineItem[]): number { 5 | return reduce(lineItems, (total, item) => total + item.quantity, 0); 6 | } 7 | -------------------------------------------------------------------------------- /packages/core/src/app/shipping/getShippableItemsCount.ts: -------------------------------------------------------------------------------- 1 | import { Cart } from '@bigcommerce/checkout-sdk'; 2 | 3 | import getLineItemsCount from './getLineItemsCount'; 4 | 5 | export default function getShippableItemsCount( 6 | cart: Cart, 7 | ): number { 8 | return getLineItemsCount(cart.lineItems.physicalItems.filter((item) => !item.addedByPromotion && !item.parentId)); 9 | } 10 | -------------------------------------------------------------------------------- /packages/core/src/app/shipping/hasPromotionalItems.tsx: -------------------------------------------------------------------------------- 1 | import { Cart } from '@bigcommerce/checkout-sdk'; 2 | 3 | export default function hasPromotionalItems(cart: Cart): boolean { 4 | const { digitalItems = [], physicalItems } = cart.lineItems; 5 | 6 | return [...digitalItems, ...physicalItems].filter((item) => item.addedByPromotion)?.length > 0; 7 | } 8 | -------------------------------------------------------------------------------- /packages/core/src/app/shipping/shippingOption/index.ts: -------------------------------------------------------------------------------- 1 | export { default as StaticShippingOption } from './StaticShippingOption'; 2 | export { default as ShippingOptions } from './ShippingOptions'; 3 | export { default as ShippingOptionsList } from './ShippingOptionsList'; 4 | export { default as ShippingOptionExpiredError } from './ShippingOptionExpiredError'; 5 | -------------------------------------------------------------------------------- /packages/core/src/app/shipping/utils/index.ts: -------------------------------------------------------------------------------- 1 | export { generateItemHash } from './generateItemHash'; 2 | export { setRecommendedOrMissingShippingOption } from './setRecommendedOrMissingShippingOption'; 3 | -------------------------------------------------------------------------------- /packages/core/src/app/termsConditions/index.ts: -------------------------------------------------------------------------------- 1 | export { TermsConditions } from './TermsConditions'; 2 | export { 3 | default as TermsConditionsField, 4 | TermsConditionsType, 5 | TermsConditionsFieldProps, 6 | } from './TermsConditionsField'; 7 | export { default as getTermsConditionsValidationSchema } from './getTermsConditionsValidationSchema'; 8 | -------------------------------------------------------------------------------- /packages/core/src/app/ui/Base.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../../node_modules/@bigcommerce/citadel/src/tools/toolkit'; 2 | @import '../../../../../node_modules/@bigcommerce/citadel/src/settings/global/global'; 3 | @import '../../scss/settings/foundation/foundation'; 4 | 5 | $global-radius: 4px; 6 | -------------------------------------------------------------------------------- /packages/core/src/app/ui/alert/index.ts: -------------------------------------------------------------------------------- 1 | export { default as Alert, AlertType, AlertProps } from './Alert'; 2 | -------------------------------------------------------------------------------- /packages/core/src/app/ui/autocomplete/autocomplete-item.ts: -------------------------------------------------------------------------------- 1 | interface AutocompleteItem { 2 | label: string; 3 | highlightedSlices?: Array<{ 4 | offset: number; 5 | length: number; 6 | }>; 7 | value?: string; 8 | id: string; 9 | } 10 | 11 | export default AutocompleteItem; 12 | -------------------------------------------------------------------------------- /packages/core/src/app/ui/autocomplete/index.ts: -------------------------------------------------------------------------------- 1 | export { default as Autocomplete } from './Autocomplete'; 2 | export { default as AutocompleteItem } from './autocomplete-item'; 3 | -------------------------------------------------------------------------------- /packages/core/src/app/ui/button/index.ts: -------------------------------------------------------------------------------- 1 | export { default as Button, ButtonSize, ButtonVariant, ButtonProps } from './Button'; 2 | -------------------------------------------------------------------------------- /packages/core/src/app/ui/dropdown/index.ts: -------------------------------------------------------------------------------- 1 | export { default as DropdownTrigger } from './DropdownTrigger'; 2 | -------------------------------------------------------------------------------- /packages/core/src/app/ui/form/DynamicFormFieldType.ts: -------------------------------------------------------------------------------- 1 | enum DynamicFormFieldType { 2 | telephone = 'tel', 3 | dropdown = 'dropdown', 4 | number = 'number', 5 | password = 'password', 6 | checkbox = 'checkbox', 7 | multiline = 'multiline', 8 | date = 'date', 9 | radio = 'radio', 10 | text = 'text', 11 | } 12 | 13 | export default DynamicFormFieldType; 14 | -------------------------------------------------------------------------------- /packages/core/src/app/ui/form/MultiCheckboxControl.scss: -------------------------------------------------------------------------------- 1 | @import '../../ui/Base'; 2 | 3 | .multiCheckbox--controls { 4 | list-style: none; 5 | margin: 0 0 spacing("half"); 6 | padding: 0; 7 | } 8 | 9 | .multiCheckbox--control { 10 | display: inline-block; 11 | margin-right: spacing("quarter"); 12 | } 13 | -------------------------------------------------------------------------------- /packages/core/src/app/ui/form/withForm.tsx: -------------------------------------------------------------------------------- 1 | import { createInjectHoc } from '@bigcommerce/checkout/legacy-hoc'; 2 | import { FormContext, FormContextType } from '@bigcommerce/checkout/ui'; 3 | 4 | export type WithFormProps = FormContextType; 5 | 6 | const withForm = createInjectHoc(FormContext, { displayNamePrefix: 'WithForm' }); 7 | 8 | export default withForm; 9 | -------------------------------------------------------------------------------- /packages/core/src/app/ui/header/index.ts: -------------------------------------------------------------------------------- 1 | export { default as PrimaryHeader } from './PrimaryHeader'; 2 | -------------------------------------------------------------------------------- /packages/core/src/app/ui/icon/IconCheck.tsx: -------------------------------------------------------------------------------- 1 | import React, { FunctionComponent } from 'react'; 2 | 3 | import withIconContainer from './withIconContainer'; 4 | 5 | const IconCheck: FunctionComponent = () => ( 6 | 7 | 8 | 9 | ); 10 | 11 | export default withIconContainer(IconCheck); 12 | -------------------------------------------------------------------------------- /packages/core/src/app/ui/modal/ModalLink.scss: -------------------------------------------------------------------------------- 1 | @import '../Base'; 2 | 3 | .modal--withText { 4 | padding-bottom: spacing("half"); 5 | padding-top: 0; 6 | } 7 | -------------------------------------------------------------------------------- /packages/core/src/app/ui/modal/index.ts: -------------------------------------------------------------------------------- 1 | export { default as ModalLink } from './ModalLink'; 2 | export { default as Modal, ModalProps } from './Modal'; 3 | export { default as ModalHeader } from './ModalHeader'; 4 | export { default as ModalTrigger, ModalTriggerModalProps, ModalTriggerProps } from './ModalTrigger'; 5 | -------------------------------------------------------------------------------- /packages/core/src/app/ui/popover/Popover.scss: -------------------------------------------------------------------------------- 1 | @import '../Base'; 2 | 3 | .popover { 4 | background: container("fill"); 5 | border: container("border"); 6 | border-radius: 4px; 7 | box-shadow: container("dropShadow"); 8 | left: 0; 9 | position: absolute; 10 | right: 0; 11 | z-index: zIndex("low"); 12 | } 13 | -------------------------------------------------------------------------------- /packages/core/src/app/ui/popover/Popover.tsx: -------------------------------------------------------------------------------- 1 | import React, { FunctionComponent, ReactNode } from 'react'; 2 | 3 | import './Popover.scss'; 4 | 5 | export interface PopoverProps { 6 | children?: ReactNode; 7 | } 8 | 9 | const Popover: FunctionComponent = ({ children }) => { 10 | return
{children}
; 11 | }; 12 | 13 | export default Popover; 14 | -------------------------------------------------------------------------------- /packages/core/src/app/ui/popover/index.ts: -------------------------------------------------------------------------------- 1 | export { default as Popover, PopoverProps } from './Popover'; 2 | export { default as PopoverList, PopoverListItem, PopoverListProps } from './PopoverList'; 3 | -------------------------------------------------------------------------------- /packages/core/src/app/ui/responsive/breakpoints.ts: -------------------------------------------------------------------------------- 1 | // These values have to match with screensizes.scss 2 | export const MOBILE_MAX_WIDTH = 968; 3 | export const SMALL_SCREEN_MAX_WIDTH = 551; 4 | -------------------------------------------------------------------------------- /packages/core/src/app/ui/responsive/index.ts: -------------------------------------------------------------------------------- 1 | export * from './breakpoints'; 2 | 3 | export { default as MobileView } from './MobileView'; 4 | export { default as isMobileView } from './isMobileView'; 5 | export { default as isSmallScreen } from './isSmallScreen'; 6 | export { default as ViewPicker } from './ViewPicker'; 7 | -------------------------------------------------------------------------------- /packages/core/src/app/ui/responsive/isMobileView.ts: -------------------------------------------------------------------------------- 1 | import { MOBILE_MAX_WIDTH } from './breakpoints'; 2 | 3 | let query: MediaQueryList; 4 | 5 | export default function isMobileView() { 6 | query = window.matchMedia(`(max-width: ${MOBILE_MAX_WIDTH}px)`); 7 | 8 | return query.matches; 9 | } 10 | -------------------------------------------------------------------------------- /packages/core/src/app/ui/responsive/isSmallScreen.ts: -------------------------------------------------------------------------------- 1 | import { SMALL_SCREEN_MAX_WIDTH } from './breakpoints'; 2 | 3 | let query: MediaQueryList; 4 | 5 | export default function isSmallScreen() { 6 | query = window.matchMedia(`(max-width: ${SMALL_SCREEN_MAX_WIDTH}px)`); 7 | 8 | return query.matches; 9 | } 10 | -------------------------------------------------------------------------------- /packages/core/src/app/ui/text/index.ts: -------------------------------------------------------------------------------- 1 | export { default as MultiLineText } from './MultiLineText'; 2 | -------------------------------------------------------------------------------- /packages/core/src/app/ui/toggle/index.ts: -------------------------------------------------------------------------------- 1 | export { default as Toggle } from './Toggle'; 2 | -------------------------------------------------------------------------------- /packages/core/src/app/ui/tooltip/Tooltip.scss: -------------------------------------------------------------------------------- 1 | .tooltip--basic { 2 | display: block; 3 | left: auto; 4 | position: relative; 5 | visibility: inherit; 6 | width: auto; 7 | } 8 | -------------------------------------------------------------------------------- /packages/core/src/app/ui/tooltip/index.ts: -------------------------------------------------------------------------------- 1 | export { default as Tooltip, TooltipProps } from './Tooltip'; 2 | export { default as TooltipTrigger, TooltipTriggerProps } from './TooltipTrigger'; 3 | -------------------------------------------------------------------------------- /packages/core/src/scss/components/bigcommerce/credit-card-types/_component.scss: -------------------------------------------------------------------------------- 1 | // ============================================================================= 2 | // Bigcommerce credit-card-types component 3 | // ============================================================================= 4 | 5 | @import "credit-card-types"; 6 | -------------------------------------------------------------------------------- /packages/core/src/scss/components/bigcommerce/forms-ccFields/_component.scss: -------------------------------------------------------------------------------- 1 | // ============================================================================= 2 | // FORM CREDIT CARD FIELDS 3 | // ============================================================================= 4 | 5 | // Component 6 | @import "forms-ccFields"; 7 | -------------------------------------------------------------------------------- /packages/core/src/scss/components/bigcommerce/forms/_component.scss: -------------------------------------------------------------------------------- 1 | // ============================================================================= 2 | // Bigcommerce form component extras 3 | // ============================================================================= 4 | 5 | @import "forms"; 6 | -------------------------------------------------------------------------------- /packages/core/src/scss/components/bigcommerce/icons/_component.scss: -------------------------------------------------------------------------------- 1 | // ============================================================================= 2 | // Bigcommerce icons component 3 | // ============================================================================= 4 | 5 | @import "icons"; 6 | -------------------------------------------------------------------------------- /packages/core/src/scss/components/bigcommerce/loading/_component.scss: -------------------------------------------------------------------------------- 1 | // ============================================================================= 2 | // LOADING INDICATORS 3 | // ============================================================================= 4 | 5 | @import "loading"; 6 | -------------------------------------------------------------------------------- /packages/core/src/scss/components/checkout/achForm/component.scss: -------------------------------------------------------------------------------- 1 | // ============================================================================= 2 | // CHECKOUT ACH 3 | // ============================================================================= 4 | 5 | @import "achForm"; 6 | -------------------------------------------------------------------------------- /packages/core/src/scss/components/checkout/animation/_component.scss: -------------------------------------------------------------------------------- 1 | // ============================================================================ 2 | // ANIMATION 3 | // ============================================================================= 4 | 5 | @import "animation"; 6 | -------------------------------------------------------------------------------- /packages/core/src/scss/components/checkout/cardIcon/_component.scss: -------------------------------------------------------------------------------- 1 | // ============================================================================= 2 | // CARD ICON 3 | // ============================================================================= 4 | 5 | @import "cardIcon"; 6 | -------------------------------------------------------------------------------- /packages/core/src/scss/components/checkout/cartDrawer/_component.scss: -------------------------------------------------------------------------------- 1 | // ============================================================================= 2 | // CartDrawer 3 | // ============================================================================= 4 | 5 | @import "cartDrawer"; 6 | -------------------------------------------------------------------------------- /packages/core/src/scss/components/checkout/cartModal/_component.scss: -------------------------------------------------------------------------------- 1 | // ============================================================================= 2 | // CartModal 3 | // ============================================================================= 4 | 5 | @import "cartModal"; 6 | -------------------------------------------------------------------------------- /packages/core/src/scss/components/checkout/changeHighlight/_component.scss: -------------------------------------------------------------------------------- 1 | // ============================================================================= 2 | // ChangeHighlight 3 | // ============================================================================= 4 | 5 | @import "changeHighlight"; 6 | -------------------------------------------------------------------------------- /packages/core/src/scss/components/checkout/checklist/_component.scss: -------------------------------------------------------------------------------- 1 | // ============================================================================= 2 | // CHECKLIST 3 | // ============================================================================= 4 | 5 | @import "checklist"; 6 | -------------------------------------------------------------------------------- /packages/core/src/scss/components/checkout/checkoutAddress/_component.scss: -------------------------------------------------------------------------------- 1 | // ============================================================================= 2 | // CHECKOUT ADDRESS 3 | // ============================================================================= 4 | 5 | @import "checkoutAddress"; 6 | -------------------------------------------------------------------------------- /packages/core/src/scss/components/checkout/checkoutCart/_component.scss: -------------------------------------------------------------------------------- 1 | // ============================================================================= 2 | // CHECKOUT CART 3 | // ============================================================================= 4 | 5 | @import "checkoutCart"; 6 | -------------------------------------------------------------------------------- /packages/core/src/scss/components/checkout/checkoutHeader/_component.scss: -------------------------------------------------------------------------------- 1 | // ============================================================================= 2 | // CHECKOUT HEADER 3 | // ============================================================================= 4 | 5 | @import "checkoutHeader"; 6 | -------------------------------------------------------------------------------- /packages/core/src/scss/components/checkout/checkoutRemote/_component.scss: -------------------------------------------------------------------------------- 1 | // ============================================================================= 2 | // CHECKOUT CUSTOMER REMOTE 3 | // ============================================================================= 4 | 5 | @import "checkoutRemote"; 6 | -------------------------------------------------------------------------------- /packages/core/src/scss/components/checkout/checkoutSteps/_component.scss: -------------------------------------------------------------------------------- 1 | // ============================================================================= 2 | // CHECKOUT STEPS 3 | // ============================================================================= 4 | 5 | @import "checkoutSteps"; 6 | -------------------------------------------------------------------------------- /packages/core/src/scss/components/checkout/checkoutSuggestion/_component.scss: -------------------------------------------------------------------------------- 1 | // ============================================================================= 2 | // CHECKOUT SUGGESTION 3 | // ============================================================================= 4 | 5 | @import "checkoutSuggestion"; 6 | -------------------------------------------------------------------------------- /packages/core/src/scss/components/checkout/consignment/_component.scss: -------------------------------------------------------------------------------- 1 | @import "consignment"; 2 | -------------------------------------------------------------------------------- /packages/core/src/scss/components/checkout/customer/_component.scss: -------------------------------------------------------------------------------- 1 | // ============================================================================= 2 | // CUSTOMER 3 | // ============================================================================= 4 | 5 | @import "customer"; 6 | -------------------------------------------------------------------------------- /packages/core/src/scss/components/checkout/dynamicFormField/_component.scss: -------------------------------------------------------------------------------- 1 | // ============================================================================= 2 | // DYNAMIC FORM FIELD 3 | // ============================================================================= 4 | 5 | @import "datePickerNext"; 6 | @import "datePicker"; 7 | -------------------------------------------------------------------------------- /packages/core/src/scss/components/checkout/genericModal/_component.scss: -------------------------------------------------------------------------------- 1 | // ============================================================================= 2 | // GenericModal 3 | // ============================================================================= 4 | 5 | @import "genericModal"; 6 | -------------------------------------------------------------------------------- /packages/core/src/scss/components/checkout/genericModal/_genericModal.scss: -------------------------------------------------------------------------------- 1 | // ============================================================================= 2 | // GENERIC MODAL (Component) 3 | // ============================================================================= 4 | 5 | .genericModal-body-iframe--center { 6 | display: block; 7 | margin-left: auto; 8 | margin-right: auto; 9 | } 10 | -------------------------------------------------------------------------------- /packages/core/src/scss/components/checkout/instrumentModal/_component.scss: -------------------------------------------------------------------------------- 1 | // ============================================================================= 2 | // INSTRUMENT MODAL 3 | // ============================================================================= 4 | 5 | @import "instrumentModal"; 6 | -------------------------------------------------------------------------------- /packages/core/src/scss/components/checkout/instrumentSelect/_component.scss: -------------------------------------------------------------------------------- 1 | // ============================================================================= 2 | // INSTRUMENT SELECT 3 | // ============================================================================= 4 | 5 | @import "instrumentSelect"; 6 | -------------------------------------------------------------------------------- /packages/core/src/scss/components/checkout/loadingSpinner/_component.scss: -------------------------------------------------------------------------------- 1 | // ============================================================================= 2 | // LOADING SPINNER 3 | // ============================================================================= 4 | 5 | @import "loadingSpinner"; 6 | -------------------------------------------------------------------------------- /packages/core/src/scss/components/checkout/loadingSpinner/_loadingSpinner.scss: -------------------------------------------------------------------------------- 1 | // ============================================================================= 2 | // LOADING SPINNER (Component) 3 | // ============================================================================= 4 | 5 | .loadingSpinner .loadingOverlay { 6 | background-color: transparent; 7 | } 8 | -------------------------------------------------------------------------------- /packages/core/src/scss/components/checkout/orderConfirmation/_component.scss: -------------------------------------------------------------------------------- 1 | // ============================================================================= 2 | // ORDER CONFIRMATION 3 | // ============================================================================= 4 | 5 | @import "orderConfirmation"; 6 | -------------------------------------------------------------------------------- /packages/core/src/scss/components/checkout/paymentProvider/_component.scss: -------------------------------------------------------------------------------- 1 | // ============================================================================= 2 | // PAYMENT PROVIDER 3 | // ============================================================================= 4 | 5 | @import "paymentProvider"; 6 | -------------------------------------------------------------------------------- /packages/core/src/scss/components/checkout/productList/_component.scss: -------------------------------------------------------------------------------- 1 | // ============================================================================= 2 | // productList 3 | // ============================================================================= 4 | 5 | @import "productList"; 6 | -------------------------------------------------------------------------------- /packages/core/src/scss/components/checkout/ratepayForm/component.scss: -------------------------------------------------------------------------------- 1 | // ============================================================================= 2 | // CHECKOUT Ratepay 3 | // ============================================================================= 4 | 5 | @import "ratepayForm"; 6 | -------------------------------------------------------------------------------- /packages/core/src/scss/components/checkout/signoutLink/_component.scss: -------------------------------------------------------------------------------- 1 | // ============================================================================= 2 | // SIGN OUT LINK (Component) 3 | // ============================================================================= 4 | 5 | @import "signoutLink"; 6 | -------------------------------------------------------------------------------- /packages/core/src/scss/components/checkout/spamProtection/_component.scss: -------------------------------------------------------------------------------- 1 | // ============================================================================= 2 | // SPAM PROTECTION 3 | // ============================================================================= 4 | 5 | @import "spamProtection"; 6 | -------------------------------------------------------------------------------- /packages/core/src/scss/components/checkout/storeCredit/_component.scss: -------------------------------------------------------------------------------- 1 | // ============================================================================= 2 | // STORE CREDIT 3 | // ============================================================================= 4 | 5 | @import "storeCredit"; 6 | -------------------------------------------------------------------------------- /packages/core/src/scss/components/checkout/widget/_component.scss: -------------------------------------------------------------------------------- 1 | // ============================================================================= 2 | // WIDGET 3 | // ============================================================================= 4 | 5 | @import "widget"; 6 | -------------------------------------------------------------------------------- /packages/core/src/scss/components/foundation/alerts/_component.scss: -------------------------------------------------------------------------------- 1 | // ============================================================================= 2 | // Foundation Alert Extensions 3 | // ============================================================================= 4 | 5 | @import "alerts"; 6 | -------------------------------------------------------------------------------- /packages/core/src/scss/components/foundation/buttons/_component.scss: -------------------------------------------------------------------------------- 1 | @import "buttons"; 2 | -------------------------------------------------------------------------------- /packages/core/src/scss/components/foundation/forms/_component.scss: -------------------------------------------------------------------------------- 1 | // ============================================================================= 2 | // Foundation Form Extensions 3 | // ============================================================================= 4 | 5 | @import "forms"; 6 | -------------------------------------------------------------------------------- /packages/core/src/scss/components/foundation/global/_component.scss: -------------------------------------------------------------------------------- 1 | // ============================================================================= 2 | // GLOBAL 3 | // ============================================================================= 4 | 5 | @import "global"; 6 | -------------------------------------------------------------------------------- /packages/core/src/scss/components/foundation/global/_global.scss: -------------------------------------------------------------------------------- 1 | html, 2 | body { 3 | height: auto; 4 | 5 | @include breakpoint("large") { 6 | scroll-behavior: smooth; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/core/src/scss/components/foundation/modal/_component.scss: -------------------------------------------------------------------------------- 1 | // ============================================================================= 2 | // Foundation Modal Extensions 3 | // ============================================================================= 4 | 5 | @import "modal"; 6 | -------------------------------------------------------------------------------- /packages/core/src/scss/components/foundation/table/_component.scss: -------------------------------------------------------------------------------- 1 | // ============================================================================= 2 | // Foundation Table Extensions 3 | // ============================================================================= 4 | 5 | @import "table"; 6 | -------------------------------------------------------------------------------- /packages/core/src/scss/components/foundation/type/_component.scss: -------------------------------------------------------------------------------- 1 | // ============================================================================= 2 | // TYPE (Component) 3 | // ============================================================================= 4 | 5 | @import "tools"; 6 | 7 | @import "type"; 8 | -------------------------------------------------------------------------------- /packages/core/src/scss/layouts/_layouts.scss: -------------------------------------------------------------------------------- 1 | // ============================================================================= 2 | // LAYOUT 3 | // ============================================================================= 4 | 5 | @import "checkout/checkout"; 6 | -------------------------------------------------------------------------------- /packages/core/src/scss/settings/bigcommerce/_bigcommerce.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Import Bigcommerce Component Settings 3 | // 4 | // ----------------------------------------------------------------------------- 5 | 6 | @import "credit-card-types/settings"; 7 | 8 | @import "icons/settings"; 9 | 10 | @import "forms/settings"; 11 | 12 | @import "forms-ccFields/settings"; 13 | 14 | @import "loading/settings"; 15 | 16 | @import "media/settings"; 17 | -------------------------------------------------------------------------------- /packages/core/src/scss/settings/checkout/checkoutAddress/_settings.scss: -------------------------------------------------------------------------------- 1 | // ============================================================================= 2 | // CHECKOUT ADDRESS (Settings) 3 | // ============================================================================= 4 | 5 | $checkout-address-field--large: 3; 6 | -------------------------------------------------------------------------------- /packages/core/src/scss/settings/checkout/checkoutCart/_settings.scss: -------------------------------------------------------------------------------- 1 | // ============================================================================= 2 | // CHECKOUT CART (Settings) 3 | // ============================================================================= 4 | 5 | $checkoutCart-borderRadius: $global-radius; 6 | $checkoutCart-minHeight: 300px; 7 | $checkoutCart-padding: spacing("single"); 8 | -------------------------------------------------------------------------------- /packages/core/src/scss/settings/checkout/dropdownSelect/_settings.scss: -------------------------------------------------------------------------------- 1 | // ============================================================================= 2 | // DROPDOWN SELECT (Settings) 3 | // ============================================================================= 4 | 5 | $dropdown-toggle-height--select: 3rem; 6 | -------------------------------------------------------------------------------- /packages/core/src/scss/settings/checkout/paymentProvider/_settings.scss: -------------------------------------------------------------------------------- 1 | // ============================================================================= 2 | // PAYMENT PROVIDER (Settings) 3 | // ============================================================================= 4 | 5 | $bolt-action-color: #006cff; 6 | $bolt-action-color-hover: #005ad5; 7 | -------------------------------------------------------------------------------- /packages/core/src/scss/settings/checkout/paymentStep/_settings.scss: -------------------------------------------------------------------------------- 1 | // ============================================================================= 2 | // PAYMENT STEP (Settings) 3 | // ============================================================================= 4 | 5 | $payment-step-spacing-top: spacing("base") / 1.5; 6 | -------------------------------------------------------------------------------- /packages/core/src/scss/settings/global/export/_export.scss: -------------------------------------------------------------------------------- 1 | // ============================================================================= 2 | // EXPORT CSS 3 | // ============================================================================= 4 | 5 | // Include classes when building 6 | // ----------------------------------------------------------------------------- 7 | 8 | $exportCSS: false; 9 | -------------------------------------------------------------------------------- /packages/core/src/scss/settings/normalize/_normalize.scss: -------------------------------------------------------------------------------- 1 | // ============================================================================= 2 | // NORMALIZE SETTINGS 3 | // ============================================================================= 4 | 5 | $exportCSS--normalize: true; 6 | -------------------------------------------------------------------------------- /packages/core/src/scss/settings/utilities/_utilities.scss: -------------------------------------------------------------------------------- 1 | // ============================================================================= 2 | // UTILITIES 3 | // ============================================================================= 4 | 5 | $exportCSS--displayUtilities: true; 6 | $exportCSS--textUtilities: true; 7 | -------------------------------------------------------------------------------- /packages/core/src/scss/tools/_toolkit.scss: -------------------------------------------------------------------------------- 1 | // ============================================================================= 2 | // CHECKOUT TOOLS 3 | // ============================================================================= 4 | 5 | @mixin textTruncateMultiline() { 6 | hyphens: auto; 7 | max-width: 100%; 8 | overflow: hidden; 9 | overflow-wrap: break-word; 10 | word-break: break-word; 11 | word-wrap: break-word; 12 | } 13 | -------------------------------------------------------------------------------- /packages/core/src/static/img/powered_by_google_on_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigcommerce/checkout-js/787c37937c5aa1fa6081ccdc4c51dddd5d2edcfc/packages/core/src/static/img/powered_by_google_on_white.png -------------------------------------------------------------------------------- /packages/core/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "include": [ 4 | "src/**/*.ts", 5 | "src/**/*.tsx", 6 | "types/*.d.ts" 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /packages/core/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "types": ["jest", "node"], 5 | }, 6 | "include": [ 7 | "**/*.test.ts", 8 | "**/*.spec.ts", 9 | "**/*.d.ts" 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /packages/core/types/webpack.d.ts: -------------------------------------------------------------------------------- 1 | declare let __webpack_public_path__: string; 2 | -------------------------------------------------------------------------------- /packages/credit-card-integration/README.md: -------------------------------------------------------------------------------- 1 | # credit-card-integration 2 | 3 | This package provides a seamless integration for handling credit card payments within the checkout process. It includes utilities and components to securely process transactions and ensure compliance with payment standards. 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test credit-card-integration` to execute the unit tests via [Jest](https://jestjs.io). 8 | -------------------------------------------------------------------------------- /packages/credit-card-integration/src/index.ts: -------------------------------------------------------------------------------- 1 | export { 2 | default as CreditCardPaymentMethodComponent, 3 | CreditCardPaymentMethodProps, 4 | CreditCardPaymentMethodValues, 5 | } from './CreditCardPaymentMethodComponent'; 6 | -------------------------------------------------------------------------------- /packages/credit-card-integration/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "references": [ 4 | { 5 | "path": "./tsconfig.spec.json" 6 | } 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /packages/credit-card-integration/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "types": ["jest", "node"] 5 | }, 6 | "include": [ 7 | "src/**/*.spec.ts", 8 | "src/**/*.spec.tsx" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /packages/digitalriver-integration/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../.eslintrc.json"], 3 | "overrides": [ 4 | { 5 | "files": ["*.tsx"], 6 | "rules": { 7 | "@typescript-eslint/naming-convention": "off", 8 | "@typescript-eslint/no-unsafe-assignment" : "off", 9 | "@typescript-eslint/no-unsafe-argument": "off", 10 | "no-param-reassign": "off" 11 | } 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /packages/digitalriver-integration/README.md: -------------------------------------------------------------------------------- 1 | # digitalriver-integration 2 | 3 | ## Running unit tests 4 | 5 | Run `nx test digitalriver-integration` to execute the unit tests via [Jest](https://jestjs.io). 6 | 7 | ## Running lint 8 | 9 | Run `nx lint digitalriver-integration` to execute the lint via [ESLint](https://eslint.org/). 10 | -------------------------------------------------------------------------------- /packages/digitalriver-integration/src/index.ts: -------------------------------------------------------------------------------- 1 | export { default as DigitalRiverPaymentMethod } from './DigitalRiverPaymentMethod'; 2 | -------------------------------------------------------------------------------- /packages/digitalriver-integration/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "references": [ 4 | { 5 | "path": "./tsconfig.spec.json" 6 | } 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /packages/dom-utils/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../.eslintrc.json"] 3 | } 4 | -------------------------------------------------------------------------------- /packages/dom-utils/README.md: -------------------------------------------------------------------------------- 1 | # dom-utils 2 | 3 | This library consists of dom/ui utils that are used commonly throughout checkout-js. 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test dom-utils` to execute the unit tests via [Jest](https://jestjs.io). 8 | 9 | ## Running lint 10 | 11 | Run `nx lint dom-utils` to execute the lint via [ESLint](https://eslint.org/). 12 | -------------------------------------------------------------------------------- /packages/dom-utils/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | displayName: 'dom-utils', 3 | preset: '../../jest.preset.js', 4 | transform: { 5 | '^.+\\.[tj]sx?$': ['ts-jest', { 6 | tsconfig: '/tsconfig.spec.json', 7 | diagnostics: false, 8 | }], 9 | }, 10 | setupFilesAfterEnv: ['../../jest-setup.ts'], 11 | coverageDirectory: '../../coverage/packages/dom-utils', 12 | }; 13 | -------------------------------------------------------------------------------- /packages/dom-utils/src/index.ts: -------------------------------------------------------------------------------- 1 | export { default as getAppliedStyles } from './getAppliedStyles'; 2 | export { default as parseAnchor } from './parseAnchor'; 3 | export { default as preventDefault } from './preventDefault'; 4 | export { default as stopPropagation } from './stopPropagation'; 5 | -------------------------------------------------------------------------------- /packages/dom-utils/src/preventDefault.ts: -------------------------------------------------------------------------------- 1 | import { SyntheticEvent } from 'react'; 2 | 3 | export default function preventDefault< 4 | TFunc extends (event: TEvent, ...args: any[]) => any, 5 | TEvent extends SyntheticEvent, 6 | >(fn?: TFunc): (event: TEvent) => void { 7 | return (event) => { 8 | event.preventDefault(); 9 | 10 | if (fn) { 11 | fn(event); 12 | } 13 | }; 14 | } 15 | -------------------------------------------------------------------------------- /packages/dom-utils/src/stopPropagation.ts: -------------------------------------------------------------------------------- 1 | import { SyntheticEvent } from 'react'; 2 | 3 | export default function stopPropagation< 4 | TFunc extends (event: TEvent, ...args: any[]) => any, 5 | TEvent extends SyntheticEvent, 6 | >(fn?: TFunc): (event: TEvent) => void { 7 | return (event) => { 8 | event.stopPropagation(); 9 | 10 | if (fn) { 11 | fn(event); 12 | } 13 | }; 14 | } 15 | -------------------------------------------------------------------------------- /packages/dom-utils/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "references": [ 4 | { 5 | "path": "./tsconfig.spec.json" 6 | } 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /packages/dom-utils/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "types": ["jest", "node"] 5 | }, 6 | "include": ["**/*.spec.ts", "**/*.spec.tsx"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/error-handling-utils/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../.eslintrc.json"] 3 | } 4 | -------------------------------------------------------------------------------- /packages/error-handling-utils/README.md: -------------------------------------------------------------------------------- 1 | # error-handling-utils 2 | 3 | This library consists of error handling utils or types that are used commonly throughout checkout-js. 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test error-handling-utils` to execute the unit tests via [Jest](https://jestjs.io). 8 | 9 | ## Running lint 10 | 11 | Run `nx lint error-handling-utils` to execute the lint via [ESLint](https://eslint.org/). 12 | -------------------------------------------------------------------------------- /packages/error-handling-utils/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | displayName: 'error-handling-utils', 3 | preset: '../../jest.preset.js', 4 | transform: { 5 | '^.+\\.[tj]sx?$': ['ts-jest', { 6 | tsconfig: '/tsconfig.spec.json', 7 | diagnostics: false, 8 | }], 9 | }, 10 | setupFilesAfterEnv: ['../../jest-setup.ts'], 11 | coverageDirectory: '../../coverage/packages/error-handling-utils', 12 | }; 13 | -------------------------------------------------------------------------------- /packages/error-handling-utils/src/index.ts: -------------------------------------------------------------------------------- 1 | export { 2 | default as ErrorLogger, 3 | ErrorLevelType, 4 | ErrorLoggerOptions, 5 | ErrorLoggerServiceConfig, 6 | ErrorMeta, 7 | ErrorTags, 8 | } from './ErrorLogger'; 9 | export { default as ErrorBoundary } from './ErrorBoundary'; 10 | export { default as isErrorWithMessage } from './isErrorWithMessage'; 11 | -------------------------------------------------------------------------------- /packages/error-handling-utils/src/isErrorWithMessage.ts: -------------------------------------------------------------------------------- 1 | interface ErrorWithMessage extends Error { 2 | message: string; 3 | } 4 | 5 | export default function isErrorWithMessage(error: unknown): error is ErrorWithMessage { 6 | return ( 7 | typeof error === 'object' && 8 | error !== null && 9 | Object.prototype.hasOwnProperty.call(error, 'message') 10 | ); 11 | } 12 | -------------------------------------------------------------------------------- /packages/error-handling-utils/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "references": [ 4 | { 5 | "path": "./tsconfig.spec.json" 6 | } 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /packages/error-handling-utils/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "types": ["jest", "node"] 5 | }, 6 | "include": ["**/*.spec.ts", "**/*.spec.tsx"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/google-pay-integration/README.md: -------------------------------------------------------------------------------- 1 | # google-pay-integration 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | 6 | ## Running unit tests 7 | 8 | Run `nx test google-pay-integration` to execute the unit tests via [Jest](https://jestjs.io). 9 | 10 | 11 | ## Running lint 12 | 13 | Run `nx lint google-pay-integration` to execute the lint via [ESLint](https://eslint.org/). 14 | 15 | -------------------------------------------------------------------------------- /packages/google-pay-integration/e2e/support/checkout.php.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Your test have reached `<%= storeUrl %>/checkout.php`. 8 | 9 | 10 | -------------------------------------------------------------------------------- /packages/google-pay-integration/src/index.ts: -------------------------------------------------------------------------------- 1 | export { default as GooglePayButton } from './GooglePayButton'; 2 | export { default as GooglePayPaymentMethod } from './GooglePayPaymentMethod'; 3 | -------------------------------------------------------------------------------- /packages/google-pay-integration/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "references": [ 4 | { 5 | "path": "./tsconfig.lib.json" 6 | }, 7 | { 8 | "path": "./tsconfig.spec.json" 9 | } 10 | ], 11 | "files": ["../core/types/card-validator.d.ts"] 12 | } 13 | -------------------------------------------------------------------------------- /packages/google-pay-integration/tsconfig.lib.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "include": [ 4 | "src/**/*.ts", 5 | "src/**/*.tsx" 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /packages/google-pay-integration/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "types": ["jest", "node"] 5 | }, 6 | "include": [ 7 | "src/**/*.spec.ts", 8 | "src/**/*.spec.tsx", 9 | "src/**/*.test.ts", 10 | "src/**/*.test.tsx" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /packages/hosted-credit-card-integration/README.md: -------------------------------------------------------------------------------- 1 | # hosted-credit-card-integration 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | 6 | ## Running unit tests 7 | 8 | Run `nx test hosted-credit-card-integration` to execute the unit tests via [Jest](https://jestjs.io). 9 | 10 | 11 | ## Running lint 12 | 13 | Run `nx lint hosted-credit-card-integration` to execute the lint via [ESLint](https://eslint.org/). 14 | 15 | -------------------------------------------------------------------------------- /packages/hosted-credit-card-integration/src/components/HostedCreditCardCodeField/index.ts: -------------------------------------------------------------------------------- 1 | export { 2 | default as HostedCreditCardCodeField, 3 | HostedCreditCardCodeFieldProps, 4 | } from './HostedCreditCardCodeField'; 5 | -------------------------------------------------------------------------------- /packages/hosted-credit-card-integration/src/components/HostedCreditCardFieldset/index.ts: -------------------------------------------------------------------------------- 1 | export { 2 | default as HostedCreditCardFieldset, 3 | HostedCreditCardFieldsetProps, 4 | } from './HostedCreditCardFieldset'; 5 | -------------------------------------------------------------------------------- /packages/hosted-credit-card-integration/src/components/HostedCreditCardNumberField/index.ts: -------------------------------------------------------------------------------- 1 | export { 2 | default as HostedCreditCardNumberField, 3 | HostedCreditCardNumberFieldProps, 4 | } from './HostedCreditCardNumberField'; 5 | -------------------------------------------------------------------------------- /packages/hosted-credit-card-integration/src/components/HostedCreditCardValidation/index.ts: -------------------------------------------------------------------------------- 1 | export { 2 | default as HostedCreditCardValidation, 3 | HostedCreditCardValidationProps, 4 | } from './HostedCreditCardValidation'; 5 | -------------------------------------------------------------------------------- /packages/hosted-credit-card-integration/src/components/getHostedCreditCardValidationSchema/index.ts: -------------------------------------------------------------------------------- 1 | export { default as getHostedCreditCardValidationSchema } from './getHostedCreditCardValidationSchema'; 2 | -------------------------------------------------------------------------------- /packages/hosted-credit-card-integration/src/components/getHostedInstrumentValidationSchema/index.ts: -------------------------------------------------------------------------------- 1 | export { default as getHostedInstrumentValidationSchema } from './getHostedInstrumentValidationSchema'; 2 | -------------------------------------------------------------------------------- /packages/hosted-credit-card-integration/src/hooks/index.ts: -------------------------------------------------------------------------------- 1 | export { useHostedCreditCard } from './useHostedCreditCard'; 2 | -------------------------------------------------------------------------------- /packages/hosted-credit-card-integration/src/types/index.ts: -------------------------------------------------------------------------------- 1 | export { 2 | HostedCreditCardFieldsetValues, 3 | HostedCreditCardValidationValues, 4 | } from './HostedCreditCardFiledsetValues'; 5 | -------------------------------------------------------------------------------- /packages/hosted-credit-card-integration/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "references": [ 4 | { 5 | "path": "./tsconfig.spec.json" 6 | } 7 | ], 8 | "files": ["../core/types/card-validator.d.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /packages/hosted-credit-card-integration/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "types": ["jest", "node"] 5 | }, 6 | "include": [ 7 | "src/**/*.spec.ts", 8 | "src/**/*.spec.tsx" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /packages/hosted-dropin-integration/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../.eslintrc.json"], 3 | "rules": { 4 | "@typescript-eslint/await-thenable": "off", 5 | "@typescript-eslint/consistent-type-assertions": "off", 6 | "@typescript-eslint/no-unsafe-call": "off" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/hosted-dropin-integration/README.md: -------------------------------------------------------------------------------- 1 | # hosted-dropin-integration 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test hosted-dropin-integration` to execute the unit tests via [Jest](https://jestjs.io). 8 | 9 | ## Running lint 10 | 11 | Run `nx lint hosted-dropin-integration` to execute the lint via [ESLint](https://eslint.org/). 12 | -------------------------------------------------------------------------------- /packages/hosted-dropin-integration/src/index.ts: -------------------------------------------------------------------------------- 1 | export { 2 | default as HostedDropInPaymentMethodComponent, 3 | HostedDropInPaymentMethodProps, 4 | } from './HostedDropInPaymentMethodComponent'; 5 | -------------------------------------------------------------------------------- /packages/hosted-dropin-integration/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "references": [ 4 | { 5 | "path": "./tsconfig.spec.json" 6 | } 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /packages/hosted-dropin-integration/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "types": ["jest", "node"] 5 | }, 6 | "include": [ 7 | "src/**/*.spec.ts", 8 | "src/**/*.spec.tsx" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /packages/hosted-field-integration/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "../../.eslintrc.json" 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /packages/hosted-field-integration/README.md: -------------------------------------------------------------------------------- 1 | # hosted-field-integration 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test hosted-field-integration` to execute the unit tests via [Jest](https://jestjs.io). 8 | -------------------------------------------------------------------------------- /packages/hosted-field-integration/src/index.ts: -------------------------------------------------------------------------------- 1 | export { 2 | HostedFieldPaymentMethodComponent, 3 | HostedFieldPaymentMethodComponentProps, 4 | } from './hosted-field-integration'; 5 | -------------------------------------------------------------------------------- /packages/hosted-field-integration/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "references": [ 4 | { 5 | "path": "./tsconfig.lib.json" 6 | }, 7 | { 8 | "path": "./tsconfig.spec.json" 9 | } 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /packages/hosted-field-integration/tsconfig.lib.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "include": [ 4 | "src/**/*.ts", 5 | "src/**/*.tsx" 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /packages/hosted-field-integration/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "types": ["jest", "node"] 5 | }, 6 | "include": [ 7 | "src/**/*.spec.ts", 8 | "src/**/*.spec.tsx" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /packages/hosted-payment-integration/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../.eslintrc.json"] 3 | } 4 | -------------------------------------------------------------------------------- /packages/hosted-payment-integration/README.md: -------------------------------------------------------------------------------- 1 | # hosted-payment-integration 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test hosted-payment-integration` to execute the unit tests via [Jest](https://jestjs.io). 8 | 9 | ## Running lint 10 | 11 | Run `nx lint hosted-payment-integration` to execute the lint via [ESLint](https://eslint.org/). 12 | -------------------------------------------------------------------------------- /packages/hosted-payment-integration/e2e/HummResponsesMock.ts: -------------------------------------------------------------------------------- 1 | export const orderPayment = 2 | '{"status":"ok","three_ds_result":{"acs_url":null,"payer_auth_request":null,"merchant_data":null,"callback_url":null},"errors":[]}'; 3 | -------------------------------------------------------------------------------- /packages/hosted-payment-integration/src/index.ts: -------------------------------------------------------------------------------- 1 | export { 2 | default as HostedPaymentComponent, 3 | HostedPaymentMethodProps, 4 | } from './HostedPaymentComponent'; 5 | -------------------------------------------------------------------------------- /packages/hosted-payment-integration/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "references": [ 4 | { 5 | "path": "./tsconfig.spec.json" 6 | } 7 | ] 8 | } -------------------------------------------------------------------------------- /packages/hosted-payment-integration/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "include": [ 9 | "**/*.spec.ts", 10 | "**/*.spec.tsx" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /packages/hosted-widget-integration/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../.eslintrc.json"], 3 | "rules": { 4 | "@typescript-eslint/no-unsafe-call": "off", 5 | "@typescript-eslint/no-unnecessary-condition": "off" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/hosted-widget-integration/README.md: -------------------------------------------------------------------------------- 1 | # hosted-widget-integration 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test hosted-widget-integration` to execute the unit tests via [Jest](https://jestjs.io). 8 | 9 | ## Running lint 10 | 11 | Run `nx lint hosted-widget-integration` to execute the lint via [ESLint](https://eslint.org/). 12 | -------------------------------------------------------------------------------- /packages/hosted-widget-integration/src/index.ts: -------------------------------------------------------------------------------- 1 | export { 2 | default as HostedWidgetPaymentComponent, 3 | HostedWidgetComponentProps, 4 | } from './HostedWidgetPaymentComponent'; 5 | -------------------------------------------------------------------------------- /packages/hosted-widget-integration/tsconfig.lib.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "include": [ 4 | "src/**/*.ts", 5 | "src/**/*.tsx" 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /packages/hosted-widget-integration/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "types": ["jest", "node"] 5 | }, 6 | "include": [ 7 | "src/**/*.spec.ts", 8 | "src/**/*.spec.tsx" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /packages/instrument-utils/README.md: -------------------------------------------------------------------------------- 1 | # instrument-utils 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | 6 | ## Running unit tests 7 | 8 | Run `nx test instrument-utils` to execute the unit tests via [Jest](https://jestjs.io). 9 | 10 | 11 | ## Running lint 12 | 13 | Run `nx lint instrument-utils` to execute the lint via [ESLint](https://eslint.org/). 14 | 15 | -------------------------------------------------------------------------------- /packages/instrument-utils/src/creditCard/CreditCardCodeTooltip.scss: -------------------------------------------------------------------------------- 1 | .dropdown-menu--card-code { 2 | display: block; 3 | left: 0; 4 | position: relative; 5 | visibility: visible; 6 | width: 200px; 7 | } 8 | -------------------------------------------------------------------------------- /packages/instrument-utils/src/creditCard/CreditCardFieldset/index.ts: -------------------------------------------------------------------------------- 1 | export { default as CreditCardFieldset, CreditCardFieldsetProps } from './CreditCardFieldset'; 2 | -------------------------------------------------------------------------------- /packages/instrument-utils/src/creditCard/CreditCardIcon/index.ts: -------------------------------------------------------------------------------- 1 | export { default as CreditCardIcon, CreditCardIconProps } from './CreditCardIcon'; 2 | -------------------------------------------------------------------------------- /packages/instrument-utils/src/creditCard/CreditCardNumberField/index.ts: -------------------------------------------------------------------------------- 1 | export { default as CreditCardNumberField } from './CreditCardNumberField'; 2 | -------------------------------------------------------------------------------- /packages/instrument-utils/src/creditCard/CreditCardValidation/index.ts: -------------------------------------------------------------------------------- 1 | export { default as CreditCardValidation } from './CreditCardValidation'; 2 | -------------------------------------------------------------------------------- /packages/instrument-utils/src/creditCard/formatCreditCardExpiryDate/index.ts: -------------------------------------------------------------------------------- 1 | export { default as formatCreditCardExpiryDate } from './formatCreditCardExpiryDate'; 2 | -------------------------------------------------------------------------------- /packages/instrument-utils/src/creditCard/formatCreditCardNumber/index.ts: -------------------------------------------------------------------------------- 1 | export { default as formatCreditCardNumber } from './formatCreditCardNumber'; 2 | -------------------------------------------------------------------------------- /packages/instrument-utils/src/creditCard/getCreditCardInputStyles/index.ts: -------------------------------------------------------------------------------- 1 | export { 2 | default as getCreditCardInputStyles, 3 | CreditCardInputStylesType, 4 | } from './getCreditCardInputStyles'; 5 | -------------------------------------------------------------------------------- /packages/instrument-utils/src/creditCard/getCreditCardValidationSchema/index.ts: -------------------------------------------------------------------------------- 1 | export { 2 | default as getCreditCardValidationSchema, 3 | CreditCardValidationSchemaOptions, 4 | } from './getCreditCardValidationSchema'; 5 | -------------------------------------------------------------------------------- /packages/instrument-utils/src/creditCard/mapFromPaymentMethodCardType/index.ts: -------------------------------------------------------------------------------- 1 | export { 2 | default as mapFromPaymentMethodCardType, 3 | getPaymentMethodIconComponent, 4 | filterInstrumentTypes, 5 | } from './mapFromPaymentMethodCardType'; 6 | -------------------------------------------------------------------------------- /packages/instrument-utils/src/creditCard/unformatCreditCardNumber/index.ts: -------------------------------------------------------------------------------- 1 | export { default as unformatCreditCardNumber } from './unformatCreditCardNumber'; 2 | -------------------------------------------------------------------------------- /packages/instrument-utils/src/creditCard/unformatCreditCardNumber/unformatCreditCardNumber.ts: -------------------------------------------------------------------------------- 1 | import { number } from 'card-validator'; 2 | 3 | export default function unformatCreditCardNumber(value: string, separator = ' '): string { 4 | const { card } = number(value); 5 | 6 | if (!card) { 7 | return value; 8 | } 9 | 10 | return value.replace(new RegExp(separator, 'g'), ''); 11 | } 12 | -------------------------------------------------------------------------------- /packages/instrument-utils/src/guards/isAccountInstrument/index.ts: -------------------------------------------------------------------------------- 1 | export { default as isAccountInstrument } from './isAccountInstrument'; 2 | -------------------------------------------------------------------------------- /packages/instrument-utils/src/guards/isAccountInstrument/isAccountInstrument.ts: -------------------------------------------------------------------------------- 1 | import { AccountInstrument, PaymentInstrument } from '@bigcommerce/checkout-sdk'; 2 | 3 | export default function isAccountInstrument( 4 | instrument: PaymentInstrument, 5 | ): instrument is AccountInstrument { 6 | return instrument.type === 'account'; 7 | } 8 | -------------------------------------------------------------------------------- /packages/instrument-utils/src/guards/isAchInstrument/index.ts: -------------------------------------------------------------------------------- 1 | export { default as isAchInstrument } from './isAchInstrument'; 2 | -------------------------------------------------------------------------------- /packages/instrument-utils/src/guards/isAchInstrument/isAchInstrument.ts: -------------------------------------------------------------------------------- 1 | import { AchInstrument, PaymentInstrument } from '@bigcommerce/checkout-sdk'; 2 | 3 | export default function isAchInstrument( 4 | instrument: PaymentInstrument, 5 | ): instrument is AchInstrument { 6 | return ( 7 | instrument.type === 'bank' && (instrument.method === 'ecp' || instrument.method === 'ach') 8 | ); 9 | } 10 | -------------------------------------------------------------------------------- /packages/instrument-utils/src/guards/isBankInstrument/index.ts: -------------------------------------------------------------------------------- 1 | export { default as assertIsBankInstrument, isBankAccountInstrument } from './isBankInstrument'; 2 | -------------------------------------------------------------------------------- /packages/instrument-utils/src/guards/isCardInstrument/index.ts: -------------------------------------------------------------------------------- 1 | export { default as assertIsCardInstrument, isCardInstrument } from './isCardInstrument'; 2 | -------------------------------------------------------------------------------- /packages/instrument-utils/src/guards/isHTMLElement/index.ts: -------------------------------------------------------------------------------- 1 | export { default as isHTMLElement } from './isHTMLElement'; 2 | -------------------------------------------------------------------------------- /packages/instrument-utils/src/guards/isHTMLElement/isHTMLElement.ts: -------------------------------------------------------------------------------- 1 | export default function isHTMLElement(element: unknown): element is HTMLElement { 2 | return element instanceof HTMLElement; 3 | } 4 | -------------------------------------------------------------------------------- /packages/instrument-utils/src/guards/isInstrumentCardCodeRequired/index.ts: -------------------------------------------------------------------------------- 1 | export { 2 | default as isInstrumentCardCodeRequired, 3 | IsInstrumentCardCodeRequiredState, 4 | PROVIDERS_WITHOUT_CARD_CODE, 5 | } from './isInstrumentCardCodeRequired'; 6 | -------------------------------------------------------------------------------- /packages/instrument-utils/src/guards/isInstrumentCardNumberRequired/index.ts: -------------------------------------------------------------------------------- 1 | export { 2 | default as isInstrumentCardNumberRequired, 3 | IsInstrumentCardNumberRequiredState, 4 | } from './isInstrumentCardNumberRequired'; 5 | -------------------------------------------------------------------------------- /packages/instrument-utils/src/guards/isInstrumentFeatureAvailable/index.ts: -------------------------------------------------------------------------------- 1 | export { 2 | default as isInstrumentFeatureAvailable, 3 | IsInstrumentFeatureAvailableState, 4 | } from './isInstrumentFeatureAvailable'; 5 | -------------------------------------------------------------------------------- /packages/instrument-utils/src/guards/isSepaInstrument/index.ts: -------------------------------------------------------------------------------- 1 | export { isSepaInstrument } from './isSepaInstrument'; 2 | -------------------------------------------------------------------------------- /packages/instrument-utils/src/guards/isSepaInstrument/isSepaInstrument.ts: -------------------------------------------------------------------------------- 1 | import { BankInstrument, PaymentInstrument } from '@bigcommerce/checkout-sdk'; 2 | 3 | export function isSepaInstrument(instrument?: PaymentInstrument): instrument is BankInstrument { 4 | return ( 5 | instrument?.type === 'bank' && 6 | (instrument?.method === 'sepa' || instrument?.method === 'sepa_direct_debit') 7 | ); 8 | } 9 | -------------------------------------------------------------------------------- /packages/instrument-utils/src/storedInstrument/AccountInstrumentFieldset/index.ts: -------------------------------------------------------------------------------- 1 | export { default as AccountInstrumentFieldset } from './AccountInstrumentFieldset'; 2 | -------------------------------------------------------------------------------- /packages/instrument-utils/src/storedInstrument/AccountInstrumentSelect/index.ts: -------------------------------------------------------------------------------- 1 | export { default as AccountInstrumentSelect } from './AccountInstrumentSelect'; 2 | -------------------------------------------------------------------------------- /packages/instrument-utils/src/storedInstrument/CardInstrumentFieldset/index.ts: -------------------------------------------------------------------------------- 1 | export { default as CardInstrumentFieldset } from './CardInstrumentFieldset'; 2 | -------------------------------------------------------------------------------- /packages/instrument-utils/src/storedInstrument/InstrumentSelect/index.ts: -------------------------------------------------------------------------------- 1 | export { default as InstrumentSelect } from './InstrumentSelect'; 2 | -------------------------------------------------------------------------------- /packages/instrument-utils/src/storedInstrument/InstrumentStorageField/index.ts: -------------------------------------------------------------------------------- 1 | export { default as InstrumentStorageField } from './InstrumentStorageField'; 2 | -------------------------------------------------------------------------------- /packages/instrument-utils/src/storedInstrument/InstrumentStoreAsDefaultField/index.ts: -------------------------------------------------------------------------------- 1 | export { default as InstrumentStoreAsDefaultField } from './InstrumentStoreAsDefaultField'; 2 | -------------------------------------------------------------------------------- /packages/instrument-utils/src/storedInstrument/ManageAccountInstrumentsTable/index.ts: -------------------------------------------------------------------------------- 1 | export { default as ManageAccountInstrumentsTable } from './ManageAccountInstrumentsTable'; 2 | -------------------------------------------------------------------------------- /packages/instrument-utils/src/storedInstrument/ManageAchInstrumentsTable/index.ts: -------------------------------------------------------------------------------- 1 | export { default as ManageAchInstrumentsTable } from './ManageAchInstrumentsTable'; 2 | -------------------------------------------------------------------------------- /packages/instrument-utils/src/storedInstrument/ManageCardInstrumentsTable/index.ts: -------------------------------------------------------------------------------- 1 | export { default as ManageCardInstrumentsTable } from './ManageCardInstrumentsTable'; 2 | -------------------------------------------------------------------------------- /packages/instrument-utils/src/storedInstrument/ManageInstrumentsAlert/index.ts: -------------------------------------------------------------------------------- 1 | export { default as ManageInstrumentsAlert } from './ManageInstrumentsAlert'; 2 | -------------------------------------------------------------------------------- /packages/instrument-utils/src/storedInstrument/ManageInstrumentsModal/index.ts: -------------------------------------------------------------------------------- 1 | export { default as ManageInstrumentsModal } from './ManageInstrumentsModal'; 2 | -------------------------------------------------------------------------------- /packages/instrument-utils/src/storedInstrument/SignOutLink/index.ts: -------------------------------------------------------------------------------- 1 | export { default as SignOutLink, SignOutLinkProps } from './SignOutLink'; 2 | -------------------------------------------------------------------------------- /packages/instrument-utils/src/storedInstrument/StoreInstrumentFieldset/index.ts: -------------------------------------------------------------------------------- 1 | export { default as StoreInstrumentFieldset } from './StoreInstrumentFieldset'; 2 | -------------------------------------------------------------------------------- /packages/instrument-utils/src/storedInstrument/getInstrumentValidationSchema/index.ts: -------------------------------------------------------------------------------- 1 | export { default as getInstrumentValidationSchema } from './getInstrumentValidationSchema'; 2 | -------------------------------------------------------------------------------- /packages/instrument-utils/src/storedInstrument/mapFromInstrumentCardType/index.ts: -------------------------------------------------------------------------------- 1 | export { default as mapFromInstrumentCardType } from './mapFromInstrumentCardType'; 2 | -------------------------------------------------------------------------------- /packages/instrument-utils/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "references": [ 4 | { 5 | "path": "./tsconfig.spec.json" 6 | } 7 | ], 8 | "files": [ 9 | "./types/card-validator.d.ts" 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /packages/instrument-utils/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "types": ["jest", "node"] 5 | }, 6 | "include": [ 7 | "src/**/*.spec.ts", 8 | "src/**/*.spec.tsx", 9 | "src/**/*.test.ts", 10 | "src/**/*.test.tsx" ] 11 | } 12 | -------------------------------------------------------------------------------- /packages/klarna-integration/src/index.ts: -------------------------------------------------------------------------------- 1 | export { default as KlarnaPaymentMethod } from './klarna/KlarnaPaymentMethod'; 2 | export { default as KlarnaV2PaymentMethod } from './klarnav2/KlarnaV2PaymentMethod'; 3 | -------------------------------------------------------------------------------- /packages/klarna-integration/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "references": [ 4 | { 5 | "path": "./tsconfig.lib.json" 6 | }, 7 | { 8 | "path": "./tsconfig.spec.json" 9 | } 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /packages/klarna-integration/tsconfig.lib.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "include": [ 4 | "src/**/*.ts", 5 | "src/**/*.tsx" 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /packages/legacy-hoc/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../.eslintrc.json"], 3 | "rules": { 4 | "@typescript-eslint/consistent-type-assertions": "off", 5 | "@typescript-eslint/naming-convention": "off", 6 | "@typescript-eslint/no-unnecessary-condition": "off" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/legacy-hoc/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | displayName: 'legacy-hoc', 3 | preset: '../../jest.preset.js', 4 | transform: { 5 | '^.+\\.[tj]sx?$': ['ts-jest', { 6 | tsconfig: '/tsconfig.spec.json', 7 | diagnostics: false, 8 | }], 9 | }, 10 | setupFilesAfterEnv: ['../../jest-setup.ts'], 11 | coverageDirectory: '../../coverage/packages/legacy-hoc', 12 | }; 13 | -------------------------------------------------------------------------------- /packages/legacy-hoc/src/index.ts: -------------------------------------------------------------------------------- 1 | export { default as InjectHoc, MatchedProps } from './InjectHoc'; 2 | export { default as createInjectHoc } from './createInjectHoc'; 3 | export { default as createMappableInjectHoc } from './createMappableInjectHoc'; 4 | export { MapToProps, MapToPropsFactory } from './MappableInjectHoc'; 5 | -------------------------------------------------------------------------------- /packages/legacy-hoc/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "references": [ 4 | { 5 | "path": "./tsconfig.spec.json" 6 | } 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /packages/legacy-hoc/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "types": ["jest", "node"] 5 | }, 6 | "include": ["src/**/*.spec.ts", "src/**/*.spec.tsx"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/locale/README.md: -------------------------------------------------------------------------------- 1 | # locale 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test locale` to execute the unit tests via [Jest](https://jestjs.io). 8 | 9 | ## Running lint 10 | 11 | Run `nx lint locale` to execute the lint via [ESLint](https://eslint.org/). 12 | -------------------------------------------------------------------------------- /packages/locale/src/LanguageWindow.ts: -------------------------------------------------------------------------------- 1 | import { LanguageConfig } from '@bigcommerce/checkout-sdk'; 2 | 3 | export default interface LanguageWindow { 4 | language: Pick; 5 | } 6 | 7 | export function isLanguageWindow(window: Window | LanguageWindow): window is LanguageWindow { 8 | return 'language' in window && typeof window.language === 'object'; 9 | } 10 | -------------------------------------------------------------------------------- /packages/locale/src/masterpassFormatLocale.ts: -------------------------------------------------------------------------------- 1 | export default function masterpassFormatLocale(localeLanguage: string): string { 2 | return localeLanguage.replace('-', '_').toLowerCase(); 3 | } 4 | -------------------------------------------------------------------------------- /packages/locale/src/translations/index.ts: -------------------------------------------------------------------------------- 1 | import FALLBACK_TRANSLATIONS from './en.json'; 2 | 3 | export const FALLBACK_LOCALE = 'en'; 4 | 5 | export { FALLBACK_TRANSLATIONS }; 6 | -------------------------------------------------------------------------------- /packages/locale/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "references": [ 4 | { 5 | "path": "./tsconfig.lib.json" 6 | }, 7 | { 8 | "path": "./tsconfig.spec.json" 9 | } 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /packages/locale/tsconfig.lib.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "include": ["src/**/*.ts", "src/**/*.tsx"] 4 | } 5 | -------------------------------------------------------------------------------- /packages/locale/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "types": ["jest", "node"] 5 | }, 6 | "include": [ 7 | "src/**/*.test.ts", 8 | "src/**/*.test.tsx" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /packages/mollie-integration/README.md: -------------------------------------------------------------------------------- 1 | # mollie-integration 2 | 3 | This package contains the integration layer for the [Mollie](https://www.mollie.com/) provider. 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test mollie-integration` to execute the unit tests via [Jest](https://jestjs.io). 8 | 9 | ## Running lint 10 | 11 | Run `nx lint mollie-integration` to execute the lint via [ESLint](https://eslint.org/). 12 | -------------------------------------------------------------------------------- /packages/mollie-integration/src/index.ts: -------------------------------------------------------------------------------- 1 | export { default as MolliePaymentMethod } from './MolliePaymentMethod'; 2 | -------------------------------------------------------------------------------- /packages/mollie-integration/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "references": [ 4 | { 5 | "path": "./tsconfig.lib.json" 6 | }, 7 | { 8 | "path": "./tsconfig.spec.json" 9 | } 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /packages/mollie-integration/tsconfig.lib.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "include": [ 4 | "src/**/*.ts", 5 | "src/**/*.tsx" 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /packages/moneris-integration/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../.eslintrc.json"], 3 | "overrides": [ 4 | { 5 | "files": ["*.tsx"], 6 | "rules": { 7 | "@typescript-eslint/no-unsafe-assignment": "off" 8 | } 9 | } 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /packages/moneris-integration/src/index.ts: -------------------------------------------------------------------------------- 1 | export { default as MonerisPaymentMethod } from './MonerisPaymentMethod'; 2 | -------------------------------------------------------------------------------- /packages/moneris-integration/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "references": [ 4 | { 5 | "path": "./tsconfig.lib.json" 6 | }, 7 | { 8 | "path": "./tsconfig.spec.json" 9 | } 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /packages/offline-payment-integration/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../.eslintrc.json"] 3 | } 4 | -------------------------------------------------------------------------------- /packages/offline-payment-integration/README.md: -------------------------------------------------------------------------------- 1 | # offline-payment-integration 2 | 3 | This package contains offline payment method component. 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test offline-payment-integration` to execute the unit tests via [Jest](https://jestjs.io). 8 | 9 | ## Running lint 10 | 11 | Run `nx lint offline-payment-integration` to execute the lint via [ESLint](https://eslint.org/). 12 | -------------------------------------------------------------------------------- /packages/offline-payment-integration/src/index.ts: -------------------------------------------------------------------------------- 1 | export { default as OfflinePaymentMethod } from './OfflinePaymentMethod'; 2 | -------------------------------------------------------------------------------- /packages/offline-payment-integration/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "references": [ 4 | { 5 | "path": "./tsconfig.spec.json" 6 | } 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /packages/offline-payment-integration/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "types": ["jest", "node"] 5 | }, 6 | "include": [ 7 | "**/*.spec.ts", 8 | "**/*.spec.tsx" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /packages/payment-integration-api/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../.eslintrc.json"] 3 | } 4 | -------------------------------------------------------------------------------- /packages/payment-integration-api/README.md: -------------------------------------------------------------------------------- 1 | # payment-integration-api 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | 6 | ## Running unit tests 7 | 8 | Run `nx test payment-integration-api` to execute the unit tests via [Jest](https://jestjs.io). 9 | 10 | 11 | ## Running lint 12 | 13 | Run `nx lint payment-integration-api` to execute the lint via [ESLint](https://eslint.org/). 14 | 15 | -------------------------------------------------------------------------------- /packages/payment-integration-api/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | displayName: 'payment-integration-api', 3 | preset: '../../jest.preset.js', 4 | transform: { 5 | '^.+\\.[tj]sx?$': ['ts-jest', { 6 | tsconfig: '/tsconfig.spec.json', 7 | diagnostics: false, 8 | }], 9 | }, 10 | setupFilesAfterEnv: ['../../jest-setup.ts'], 11 | coverageDirectory: '../../coverage/packages/payment-integration-api' 12 | }; 13 | -------------------------------------------------------------------------------- /packages/payment-integration-api/src/CardInstrumentFieldsetValues.ts: -------------------------------------------------------------------------------- 1 | export default interface CardInstrumentFieldsetValues { 2 | instrumentId: string; 3 | } 4 | -------------------------------------------------------------------------------- /packages/payment-integration-api/src/CheckoutButtonResolveId.ts: -------------------------------------------------------------------------------- 1 | import RequireAtLeastOne from './RequireAtLeastOne'; 2 | 3 | type CheckoutButtonResolveId = RequireAtLeastOne<{ 4 | id?: string; 5 | gateway?: string; 6 | default?: boolean; 7 | }>; 8 | 9 | export default CheckoutButtonResolveId; 10 | -------------------------------------------------------------------------------- /packages/payment-integration-api/src/CheckoutRootWrapperIds.ts: -------------------------------------------------------------------------------- 1 | export const CHECKOUT_ROOT_NODE_ID = 'checkout-app'; 2 | export const MICRO_APP_NG_CHECKOUT_ROOT_NODE_ID = 'micro-app-ng-checkout'; 3 | -------------------------------------------------------------------------------- /packages/payment-integration-api/src/PaymentFormErrors.ts: -------------------------------------------------------------------------------- 1 | export default interface PaymentFormErrors { 2 | [key: string]: unknown; 3 | } 4 | -------------------------------------------------------------------------------- /packages/payment-integration-api/src/PaymentFormValues.ts: -------------------------------------------------------------------------------- 1 | export default interface PaymentFormValues { 2 | [key: string]: unknown; 3 | paymentProviderRadio: string; // TODO: Give this property a better name. We need to keep it for now because of legacy reasons. 4 | shouldSaveInstrument?: boolean; 5 | terms?: boolean; 6 | } 7 | -------------------------------------------------------------------------------- /packages/payment-integration-api/src/PaymentMethodResolveId.ts: -------------------------------------------------------------------------------- 1 | import RequireAtLeastOne from './RequireAtLeastOne'; 2 | 3 | type PaymentMethodResolveId = RequireAtLeastOne<{ 4 | id?: string; 5 | gateway?: string; 6 | type?: string; 7 | }>; 8 | 9 | export default PaymentMethodResolveId; 10 | -------------------------------------------------------------------------------- /packages/payment-integration-api/src/RequireAtLeastOne.ts: -------------------------------------------------------------------------------- 1 | type RequireAtLeastOne = Pick> & 2 | { 3 | [K in Keys]-?: Required> & Partial>>; 4 | }[Keys]; 5 | 6 | export default RequireAtLeastOne; 7 | -------------------------------------------------------------------------------- /packages/payment-integration-api/src/ResolvableComponent.ts: -------------------------------------------------------------------------------- 1 | import { ComponentType } from 'react'; 2 | 3 | type ResolvableComponent = ComponentType & { 4 | resolveIds: TIdentifier[]; 5 | }; 6 | 7 | export default ResolvableComponent; 8 | -------------------------------------------------------------------------------- /packages/payment-integration-api/src/TranslateValidationErrorFunction.ts: -------------------------------------------------------------------------------- 1 | export type TranslateValidationErrorFunction = ( 2 | validationType: 'max' | 'min' | 'required' | 'invalid', 3 | field: { 4 | name: string; 5 | label: string; 6 | min?: number; 7 | max?: number; 8 | }, 9 | ) => string | undefined; 10 | -------------------------------------------------------------------------------- /packages/payment-integration-api/src/contexts/checkout-context/index.ts: -------------------------------------------------------------------------------- 1 | export { default as CheckoutContext, CheckoutContextProps, useCheckout } from './CheckoutContext'; 2 | export { default as CheckoutProvider } from './CheckoutProvider'; 3 | -------------------------------------------------------------------------------- /packages/payment-integration-api/src/contexts/index.ts: -------------------------------------------------------------------------------- 1 | export { 2 | CheckoutContext, 3 | CheckoutProvider, 4 | CheckoutContextProps, 5 | useCheckout, 6 | } from './checkout-context'; 7 | export { 8 | PaymentFormContextProps, 9 | PaymentFormContext, 10 | PaymentFormProvider, 11 | usePaymentFormContext, 12 | } from './payment-form-context'; 13 | -------------------------------------------------------------------------------- /packages/payment-integration-api/src/contexts/payment-form-context/index.ts: -------------------------------------------------------------------------------- 1 | export { 2 | PaymentFormContextProps, 3 | PaymentFormContext, 4 | usePaymentFormContext, 5 | } from './PaymentFormContext'; 6 | 7 | export { PaymentFormProvider } from './PaymentFormProvider'; 8 | -------------------------------------------------------------------------------- /packages/payment-integration-api/src/errors/custom-error-types.ts: -------------------------------------------------------------------------------- 1 | export default interface SpecificError extends Error { 2 | errors?: ErrorElement[]; 3 | status?: string; 4 | } 5 | 6 | interface ErrorElement { 7 | code: string; 8 | message: string; 9 | // eslint-disable-next-line @typescript-eslint/naming-convention 10 | provider_error?: { 11 | code: string; 12 | }; 13 | } 14 | -------------------------------------------------------------------------------- /packages/payment-integration-api/src/errors/index.ts: -------------------------------------------------------------------------------- 1 | export { default as CustomError } from './CustomError'; 2 | export { default as EmbeddedCheckoutUnsupportedError } from './EmbeddedCheckoutUnsupportedError'; 3 | export { default as SpecificError } from './custom-error-types'; 4 | -------------------------------------------------------------------------------- /packages/payment-integration-api/src/getUniquePaymentMethodId.ts: -------------------------------------------------------------------------------- 1 | import { compact } from 'lodash'; 2 | 3 | export default function getUniquePaymentMethodId(methodId: string, gatewayId?: string): string { 4 | return compact([gatewayId, methodId]).join('-'); 5 | } 6 | -------------------------------------------------------------------------------- /packages/payment-integration-api/src/isEmbedded.ts: -------------------------------------------------------------------------------- 1 | export default function isEmbedded(pathname: string = document.location.pathname): boolean { 2 | const basePath = `/${pathname.split('/')[1]}`; 3 | 4 | return basePath === '/embedded-checkout'; 5 | } 6 | -------------------------------------------------------------------------------- /packages/payment-integration-api/src/isResolvableComponent.ts: -------------------------------------------------------------------------------- 1 | import { ComponentType } from 'react'; 2 | 3 | import { ResolvableComponent } from '.'; 4 | 5 | export default function isResolvableComponent( 6 | // eslint-disable-next-line @typescript-eslint/naming-convention 7 | Component: ComponentType, 8 | ): Component is ResolvableComponent { 9 | return 'resolveIds' in Component; 10 | } 11 | -------------------------------------------------------------------------------- /packages/payment-integration-api/src/parseUniquePaymentMethodId.ts: -------------------------------------------------------------------------------- 1 | export default function parseUniquePaymentMethodId(value: string): { 2 | methodId: string; 3 | gatewayId?: string; 4 | } { 5 | const [gatewayId, methodId] = value.indexOf('-') > -1 ? value.split('-') : [undefined, value]; 6 | 7 | return { gatewayId, methodId }; 8 | } 9 | -------------------------------------------------------------------------------- /packages/payment-integration-api/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "include": [ 4 | "src/**/*.ts", 5 | "src/**/*.tsx" 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /packages/payment-integration-api/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "types": ["jest", "node"] 5 | }, 6 | "include": [ 7 | "**/*.spec.ts", 8 | "**/*.spec.tsx" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /packages/paypal-commerce-integration/README.md: -------------------------------------------------------------------------------- 1 | # paypal-commerce-integration 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test paypal-commerce-integration` to execute the unit tests via [Jest](https://jestjs.io). 8 | 9 | ## Running lint 10 | 11 | Run `nx lint paypal-commerce-integration` to execute the lint via [ESLint](https://eslint.org/). 12 | -------------------------------------------------------------------------------- /packages/paypal-commerce-integration/src/PayPalCommerce/__snapshots__/PayPalCommercePaymentMethod.test.tsx.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`PayPalCommercePaymentMethod renders component with provided props 1`] = `
`; 4 | -------------------------------------------------------------------------------- /packages/paypal-commerce-integration/src/PayPalCommerceAPMs/__snapshots__/PayPalCommerceAPMsPaymentMethod.test.tsx.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`PayPalCommerceAPMsPaymentMethod renders component with provided props 1`] = ` 4 |
5 |
9 |
10 | `; 11 | -------------------------------------------------------------------------------- /packages/paypal-commerce-integration/src/PayPalCommerceCredit/__snapshots__/PayPalCommerceCreditPaymentMethod.test.tsx.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`PayPalCommerceCreditPaymentMethod renders component with provided props 1`] = `
`; 4 | -------------------------------------------------------------------------------- /packages/paypal-commerce-integration/src/PayPalCommerceFastlane/components/PayPalCommerceFastlaneCreditCardForm.scss: -------------------------------------------------------------------------------- 1 | .paypal-commerce-fastlane-cc-form-container { 2 | font-weight: initial; 3 | padding-bottom: 1rem; 4 | } 5 | -------------------------------------------------------------------------------- /packages/paypal-commerce-integration/src/PayPalCommerceFastlane/index.ts: -------------------------------------------------------------------------------- 1 | import PayPalCommerceFastlanePaymentMethod from './PayPalCommerceFastlanePaymentMethod'; 2 | 3 | export default PayPalCommerceFastlanePaymentMethod; 4 | -------------------------------------------------------------------------------- /packages/paypal-commerce-integration/src/PayPalCommerceVenmo/__snapshots__/PayPalCommerceVenmoPaymentMethod.test.tsx.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`PayPalCommerceVenmoPaymentMethod renders component with provided props 1`] = `
`; 4 | -------------------------------------------------------------------------------- /packages/paypal-commerce-integration/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "references": [ 4 | { 5 | "path": "./tsconfig.spec.json" 6 | } 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /packages/paypal-express-integration/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../.eslintrc.json"], 3 | "overrides": [ 4 | { 5 | "files": ["*.test.tsx"], 6 | "rules": { 7 | "@typescript-eslint/consistent-type-assertions": "off" 8 | } 9 | } 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /packages/paypal-express-integration/README.md: -------------------------------------------------------------------------------- 1 | # paypal-express-integration 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test paypal-express-integration` to execute the unit tests via [Jest](https://jestjs.io). 8 | 9 | ## Running lint 10 | 11 | Run `nx lint paypal-express-integration` to execute the lint via [ESLint](https://eslint.org/). 12 | -------------------------------------------------------------------------------- /packages/paypal-express-integration/src/index.ts: -------------------------------------------------------------------------------- 1 | export { default as PaypalExpressPaymentMethod } from './PaypalExpressPaymentMethod'; 2 | -------------------------------------------------------------------------------- /packages/paypal-express-integration/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "references": [ 4 | { 5 | "path": "./tsconfig.spec.json" 6 | } 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /packages/paypal-fastlane-integration/src/PayPalFastlaneWatermark.scss: -------------------------------------------------------------------------------- 1 | .paypalFastlaneWatermark-container { 2 | display: flex; 3 | justify-content: end; 4 | } 5 | -------------------------------------------------------------------------------- /packages/paypal-fastlane-integration/src/PoweredByPayPalFastlaneLabel.scss: -------------------------------------------------------------------------------- 1 | .powered-by-paypal-fastlane { 2 | padding: 0.5rem 0 0.5rem 0; 3 | height: 2rem; 4 | width: 7.4rem; 5 | 6 | & > .icon { 7 | height: 100%; 8 | width: 100%; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/paypal-fastlane-integration/src/is-fastlane-window.ts: -------------------------------------------------------------------------------- 1 | import { FastlaneHostWindow } from './types'; 2 | 3 | export default function isFastlaneHostWindow(window: Window): window is FastlaneHostWindow { 4 | /* eslint-disable no-prototype-builtins */ 5 | return window.hasOwnProperty('paypalFastlane') || window.hasOwnProperty('braintreeFastlane'); 6 | } 7 | -------------------------------------------------------------------------------- /packages/paypal-fastlane-integration/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "files": [], 4 | "include": [], 5 | "references": [ 6 | { 7 | "path": "./tsconfig.spec.json" 8 | } 9 | ], 10 | "compilerOptions": { 11 | "forceConsistentCasingInFileNames": true, 12 | "strict": true, 13 | "noImplicitReturns": true, 14 | "noFallthroughCasesInSwitch": true 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /packages/paypal-fastlane-integration/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "types": ["jest", "node"] 5 | }, 6 | "include": [ 7 | "src/**/*.spec.ts", 8 | "src/**/*.spec.tsx" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /packages/paypal-utils/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../.eslintrc.json"], 3 | "ignorePatterns": ["!**/*"], 4 | "overrides": [ 5 | { 6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], 7 | "rules": {} 8 | }, 9 | { 10 | "files": ["*.ts", "*.tsx"], 11 | "rules": {} 12 | }, 13 | { 14 | "files": ["*.js", "*.jsx"], 15 | "rules": {} 16 | } 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /packages/paypal-utils/README.md: -------------------------------------------------------------------------------- 1 | # paypal-utils 2 | 3 | This package consists of components that do not need to be placed to any integration packages for PPCP and Braintree providers. 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test paypal-utils` to execute the unit tests via [Jest](https://jestjs.io). 8 | 9 | ## Running lint 10 | 11 | Run `nx lint paypal-utils` to execute the lint via [ESLint](https://eslint.org/). 12 | -------------------------------------------------------------------------------- /packages/paypal-utils/src/index.ts: -------------------------------------------------------------------------------- 1 | export { default as PaypalCommerceCreditBanner } from './PaypalCommerceCreditBanner'; 2 | export { default as BraintreePaypalCreditBanner } from './BraintreePaypalCreditBanner'; 3 | -------------------------------------------------------------------------------- /packages/paypal-utils/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "references": [ 4 | { 5 | "path": "./tsconfig.spec.json" 6 | } 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /packages/paypal-utils/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "types": ["jest", "node"] 5 | }, 6 | "include": [ 7 | "src/**/*.spec.ts", 8 | "src/**/*.spec.tsx", 9 | "src/**/*.test.ts", 10 | "src/**/*.test.tsx" ] 11 | } 12 | -------------------------------------------------------------------------------- /packages/squarev2-integration/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../.eslintrc.json"], 3 | "overrides": [ 4 | { 5 | "files": ["*.spec.tsx"], 6 | "rules": { 7 | "@typescript-eslint/consistent-type-assertions": "off", 8 | "@typescript-eslint/no-unsafe-assignment": "off" 9 | } 10 | } 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /packages/squarev2-integration/README.md: -------------------------------------------------------------------------------- 1 | # squarev2-integration 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test squarev2-integration` to execute the unit tests via [Jest](https://jestjs.io). 8 | 9 | ## Running lint 10 | 11 | Run `nx lint squarev2-integration` to execute the lint via [ESLint](https://eslint.org/). 12 | -------------------------------------------------------------------------------- /packages/squarev2-integration/src/index.ts: -------------------------------------------------------------------------------- 1 | export { default as SquareV2PaymentMethod } from './SquareV2PaymentMethod'; 2 | -------------------------------------------------------------------------------- /packages/squarev2-integration/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "references": [ 4 | { 5 | "path": "./tsconfig.lib.json" 6 | }, 7 | { 8 | "path": "./tsconfig.spec.json" 9 | } 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /packages/squarev2-integration/tsconfig.lib.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "include": [ 4 | "src/**/*.ts", 5 | "src/**/*.tsx" 6 | ], 7 | "composite": true, 8 | } 9 | -------------------------------------------------------------------------------- /packages/stripe-integration/e2e/support/checkout.php.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Your test have reached `<%= storeUrl %>/checkout.php`. 8 | 9 | 10 | -------------------------------------------------------------------------------- /packages/stripe-integration/src/index.ts: -------------------------------------------------------------------------------- 1 | export { default as StripeOCSPaymentMethod } from './stripe-ocs/StripeOCSPaymentMethod'; 2 | export { default as StripeUPEPaymentMethod } from './stripe-upe/StripeUPEPaymentMethod'; 3 | export { default as StripeV3PaymentMethod } from './stripev3/StripeV3PaymentMethod'; 4 | -------------------------------------------------------------------------------- /packages/stripe-integration/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "references": [ 4 | { 5 | "path": "./tsconfig.lib.json" 6 | }, 7 | { 8 | "path": "./tsconfig.spec.json" 9 | } 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /packages/stripe-integration/tsconfig.lib.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "include": [ 4 | "src/**/*.ts", 5 | "src/**/*.tsx" 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /packages/td-bank-integration/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../.eslintrc.json"], 3 | "ignorePatterns": ["!**/*"], 4 | "overrides": [ 5 | { 6 | "files": ["*.ts", "*.tsx"], 7 | "rules": {} 8 | } 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /packages/td-bank-integration/README.md: -------------------------------------------------------------------------------- 1 | # td-bank-integration 2 | 3 | This package contains the integration layer for the [TD Bank](https://www.td.com/) provider. 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test td-bank-integration` to execute the unit tests via [Jest](https://jestjs.io). 8 | 9 | ## Running lint 10 | 11 | Run `nx lint td-bank-integration` to execute the lint via [ESLint](https://eslint.org/). 12 | -------------------------------------------------------------------------------- /packages/td-bank-integration/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | displayName: 'td-bank-integration', 3 | preset: '../../jest.preset.js', 4 | transform: { 5 | '^.+\\.[tj]sx?$': ['ts-jest', { 6 | tsconfig: '/tsconfig.spec.json', 7 | diagnostics: false, 8 | }], 9 | }, 10 | setupFilesAfterEnv: ['../../jest-setup.ts'], 11 | coverageDirectory: '../../coverage/packages/td-bank-integration', 12 | }; 13 | -------------------------------------------------------------------------------- /packages/td-bank-integration/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigcommerce/checkout-js/787c37937c5aa1fa6081ccdc4c51dddd5d2edcfc/packages/td-bank-integration/src/index.ts -------------------------------------------------------------------------------- /packages/td-bank-integration/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "references": [ 4 | { 5 | "path": "./tsconfig.spec.json" 6 | } 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /packages/test-framework/README.md: -------------------------------------------------------------------------------- 1 | # test-framework 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | 6 | ## Running unit tests 7 | 8 | Run `nx test test-framework` to execute the unit tests via [Jest](https://jestjs.io). 9 | 10 | 11 | ## Running lint 12 | 13 | Run `nx lint test-framework` to execute the lint via [ESLint](https://eslint.org/). 14 | 15 | -------------------------------------------------------------------------------- /packages/test-framework/pollyConfig.js: -------------------------------------------------------------------------------- 1 | const matchRequestsBy = { 2 | method: true, 3 | url: true, 4 | order: true, 5 | headers: false, 6 | body: true, 7 | }; 8 | 9 | exports.matchRequestsBy = matchRequestsBy; 10 | -------------------------------------------------------------------------------- /packages/test-framework/src/fixture/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @internal 3 | */ 4 | export { Assertions } from './pageObject/Assertions'; 5 | export { Checkout } from './pageObject/Checkout'; 6 | export { getStoreUrl } from './StoreUrlHelper'; 7 | -------------------------------------------------------------------------------- /packages/test-framework/src/fixture/pageObject/index.ts: -------------------------------------------------------------------------------- 1 | export { PlaywrightHelper } from './playwright/PlaywrightHelper'; 2 | -------------------------------------------------------------------------------- /packages/test-framework/src/fixture/pageObject/playwright/ServerSideRender.ts: -------------------------------------------------------------------------------- 1 | import ejs from 'ejs'; 2 | 3 | /** 4 | * @internal 5 | */ 6 | export class ServerSideRender { 7 | renderFile(filePath: string, data?: Record): Promise { 8 | return ejs.renderFile(filePath, data); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/test-framework/src/fixture/pagePreset/CheckoutPagePreset.ts: -------------------------------------------------------------------------------- 1 | import { Page } from '@playwright/test'; 2 | 3 | export interface CheckoutPagePreset { 4 | apply(page: Page): Promise; 5 | } 6 | -------------------------------------------------------------------------------- /packages/test-framework/src/fixture/pagePreset/types.ts: -------------------------------------------------------------------------------- 1 | export enum Locales { 2 | US = 'en_US', 3 | AU = 'en_AU', 4 | } 5 | -------------------------------------------------------------------------------- /packages/test-framework/src/index.ts: -------------------------------------------------------------------------------- 1 | export { expect, test } from './fixture/CheckoutFixtures'; 2 | export * from './fixture/pagePreset'; 3 | export * from './react-testing-library-support'; 4 | -------------------------------------------------------------------------------- /packages/test-framework/src/react-testing-library-support/index.ts: -------------------------------------------------------------------------------- 1 | export { CheckoutPageNodeObject } from './CheckoutPageNodeObject'; 2 | export * from './mocks'; 3 | -------------------------------------------------------------------------------- /packages/test-framework/src/react-testing-library-support/mocks/index.ts: -------------------------------------------------------------------------------- 1 | export * from './checkout.mock'; 2 | export * from './checkout-settings.mock'; 3 | export { applepayMethod } from './payment-method.mock'; 4 | export { countries } from './countries'; 5 | export { formFields, customFormFields } from './form-fields'; 6 | export { payments } from './payments'; 7 | export { orderResponse } from './order'; 8 | -------------------------------------------------------------------------------- /packages/test-framework/src/support/product.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigcommerce/checkout-js/787c37937c5aa1fa6081ccdc4c51dddd5d2edcfc/packages/test-framework/src/support/product.png -------------------------------------------------------------------------------- /packages/test-framework/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "include": [ 4 | "src/**/*.ts", 5 | "src/**/*.tsx" 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /packages/test-mocks/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../.eslintrc.json"] 3 | } 4 | -------------------------------------------------------------------------------- /packages/test-mocks/README.md: -------------------------------------------------------------------------------- 1 | # test-mocks 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test test-mocks` to execute the unit tests via [Jest](https://jestjs.io). 8 | 9 | ## Running lint 10 | 11 | Run `nx lint test-mocks` to execute the lint via [ESLint](https://eslint.org/). 12 | -------------------------------------------------------------------------------- /packages/test-mocks/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | displayName: 'test-mocks', 3 | preset: '../../jest.preset.js', 4 | transform: { 5 | '^.+\\.[tj]sx?$': ['ts-jest', { 6 | tsconfig: '/tsconfig.spec.json', 7 | 8 | }], 9 | }, 10 | moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'], 11 | coverageDirectory: '../../coverage/packages/test-mocks', 12 | }; 13 | -------------------------------------------------------------------------------- /packages/test-mocks/src/getYear.ts: -------------------------------------------------------------------------------- 1 | export function getYear(offset: number): string { 2 | return (new Date().getFullYear() + offset).toString(); 3 | } 4 | -------------------------------------------------------------------------------- /packages/test-mocks/src/promotion.mock.ts: -------------------------------------------------------------------------------- 1 | import { Promotion } from '@bigcommerce/checkout-sdk'; 2 | 3 | export function getPromotion(): Promotion { 4 | return { 5 | banners: [ 6 | { type: 'upsell', text: 'Get a discount if you order more' }, 7 | { type: 'eligible', text: 'You are eligible for a discount' }, 8 | ], 9 | }; 10 | } 11 | -------------------------------------------------------------------------------- /packages/test-mocks/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json" 3 | } 4 | -------------------------------------------------------------------------------- /packages/test-utils/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../.eslintrc.json"] 3 | } 4 | -------------------------------------------------------------------------------- /packages/test-utils/README.md: -------------------------------------------------------------------------------- 1 | # test-utils 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test test-utils` to execute the unit tests via [Jest](https://jestjs.io). 8 | 9 | ## Running lint 10 | 11 | Run `nx lint test-utils` to execute the lint via [ESLint](https://eslint.org/). 12 | -------------------------------------------------------------------------------- /packages/test-utils/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | displayName: 'test-utils', 3 | preset: '../../jest.preset.js', 4 | transform: { 5 | '^.+\\.[tj]sx?$': ['ts-jest', { 6 | tsconfig: '/tsconfig.spec.json', 7 | }], 8 | }, 9 | moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'], 10 | coverageDirectory: '../../coverage/packages/test-utils', 11 | }; 12 | -------------------------------------------------------------------------------- /packages/test-utils/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './TestWrapper'; 2 | -------------------------------------------------------------------------------- /packages/test-utils/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json" 3 | } 4 | -------------------------------------------------------------------------------- /packages/ui/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../.eslintrc.json"], 3 | "rules": { 4 | "jsx-a11y/anchor-is-valid": "off", 5 | "@typescript-eslint/naming-convention": "off", 6 | "@typescript-eslint/consistent-type-assertions": "off", 7 | "@typescript-eslint/no-unsafe-call": "off" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/ui/README.md: -------------------------------------------------------------------------------- 1 | # ui 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test ui` to execute the unit tests via [Jest](https://jestjs.io). 8 | 9 | ## Running lint 10 | 11 | Run `nx lint ui` to execute the lint via [ESLint](https://eslint.org/). 12 | -------------------------------------------------------------------------------- /packages/ui/src/Base.scss: -------------------------------------------------------------------------------- 1 | @import '../../../node_modules/@bigcommerce/citadel/src/tools/toolkit'; 2 | @import '../../../node_modules/@bigcommerce/citadel/src/settings/global/global'; 3 | @import '../../core/src/scss/settings/foundation/foundation'; 4 | 5 | $global-radius: 4px; 6 | -------------------------------------------------------------------------------- /packages/ui/src/accordion/AccordionContext.tsx: -------------------------------------------------------------------------------- 1 | import { noop } from 'lodash'; 2 | import { createContext } from 'react'; 3 | 4 | export interface AccordionContextProps { 5 | selectedItemId?: string; 6 | onToggle(id: string): void; 7 | } 8 | 9 | const AccordionContext = createContext({ onToggle: noop }); 10 | 11 | export default AccordionContext; 12 | -------------------------------------------------------------------------------- /packages/ui/src/accordion/index.ts: -------------------------------------------------------------------------------- 1 | export { default as Accordion, AccordionProps } from './Accordion'; 2 | export { 3 | default as AccordionItem, 4 | AccordionItemHeaderProps, 5 | AccordionItemProps, 6 | } from './AccordionItem'; 7 | export { default as AccordionContext, AccordionContextProps } from './AccordionContext'; 8 | -------------------------------------------------------------------------------- /packages/ui/src/alert/index.ts: -------------------------------------------------------------------------------- 1 | export { default as Alert, AlertType, AlertProps } from './Alert'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/button/index.ts: -------------------------------------------------------------------------------- 1 | export { default as Button, ButtonSize, ButtonVariant, ButtonProps } from './Button'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/dropdown/index.ts: -------------------------------------------------------------------------------- 1 | export { default as DropdownTrigger } from './DropdownTrigger'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/form/BasicFormField/index.ts: -------------------------------------------------------------------------------- 1 | export { default as BasicFormField } from './BasicFormField'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/form/CheckboxFormField/index.ts: -------------------------------------------------------------------------------- 1 | export { default as CheckboxFormField } from './CheckboxFormField'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/form/CheckboxInput/index.ts: -------------------------------------------------------------------------------- 1 | export { default as CheckboxInput } from './CheckboxInput'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/form/ChecklistItemInput/index.ts: -------------------------------------------------------------------------------- 1 | export { default as ChecklistItemInput } from './ChecklistItemInput'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/form/DynamicFormField/DynamicFormFieldType.ts: -------------------------------------------------------------------------------- 1 | enum DynamicFormFieldType { 2 | TELEPHONE = 'tel', 3 | DROPDOWM = 'dropdown', 4 | NUMBER = 'number', 5 | PASSWORD = 'password', 6 | CHECKBOX = 'checkbox', 7 | MULTILINE = 'multiline', 8 | DATE = 'date', 9 | RADIO = 'radio', 10 | TEXT = 'text', 11 | } 12 | 13 | export default DynamicFormFieldType; 14 | -------------------------------------------------------------------------------- /packages/ui/src/form/DynamicFormField/MultiCheckboxControl.scss: -------------------------------------------------------------------------------- 1 | @import '../../Base.scss'; 2 | 3 | .multiCheckbox--controls { 4 | list-style: none; 5 | margin: 0 0 spacing("half"); 6 | padding: 0; 7 | } 8 | 9 | .multiCheckbox--control { 10 | display: inline-block; 11 | margin-right: spacing("quarter"); 12 | } 13 | -------------------------------------------------------------------------------- /packages/ui/src/form/DynamicFormField/index.ts: -------------------------------------------------------------------------------- 1 | export { default as DynamicFormField } from './DynamicFormField'; 2 | export { default as DynamicInput } from './DynamicInput'; 3 | export { default as DynamicFormFieldType } from './DynamicFormFieldType'; 4 | -------------------------------------------------------------------------------- /packages/ui/src/form/Fieldset/index.ts: -------------------------------------------------------------------------------- 1 | export { default as Fieldset } from './Fieldset'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/form/Form/index.ts: -------------------------------------------------------------------------------- 1 | export { default as Form } from './Form'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/form/FormField/index.ts: -------------------------------------------------------------------------------- 1 | export { default as FormField } from './FormField'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/form/FormFieldContainer/index.ts: -------------------------------------------------------------------------------- 1 | export { default as FormFieldContainer } from './FormFieldContainer'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/form/FormFieldError/index.ts: -------------------------------------------------------------------------------- 1 | export { default as FormFieldError } from './FormFieldError'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/form/Input/Input.tsx: -------------------------------------------------------------------------------- 1 | import React, { forwardRef, InputHTMLAttributes, Ref } from 'react'; 2 | 3 | export interface InputProps extends InputHTMLAttributes { 4 | testId?: string; 5 | } 6 | 7 | const Input = forwardRef(({ testId, ...rest }: InputProps, ref: Ref) => ( 8 | 9 | )); 10 | 11 | export default Input; 12 | -------------------------------------------------------------------------------- /packages/ui/src/form/Input/index.ts: -------------------------------------------------------------------------------- 1 | export { default as Input, InputProps } from './Input'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/form/Label/index.ts: -------------------------------------------------------------------------------- 1 | export { default as Label } from './Label'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/form/Legend/index.ts: -------------------------------------------------------------------------------- 1 | export { default as Legend } from './Legend'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/form/LoadingSkeleton/index.ts: -------------------------------------------------------------------------------- 1 | export { default as AddressFormSkeleton } from './AddressFormSkeleton'; 2 | export { default as ChecklistSkeleton } from './ChecklistSkeleton'; 3 | export { default as CustomerSkeleton } from './CustomerSkeleton'; 4 | export { default as WalletButtonsContainerSkeleton } from './WalletButtonContainerSkeleton'; 5 | -------------------------------------------------------------------------------- /packages/ui/src/form/RadioInput/index.ts: -------------------------------------------------------------------------------- 1 | export { default as RadioInput } from './RadioInput'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/form/TextArea/index.ts: -------------------------------------------------------------------------------- 1 | export { default as TextArea } from './TextArea'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/form/TextInput/index.ts: -------------------------------------------------------------------------------- 1 | export { default as TextInput } from './TextInput'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/form/TextInputIframeContainer/index.ts: -------------------------------------------------------------------------------- 1 | export { default as TextInputIframeContainer } from './TextInputIframeContainer'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/form/contexts/index.ts: -------------------------------------------------------------------------------- 1 | export { default as FormContext, FormContextType, FormProvider } from './FormContext'; 2 | -------------------------------------------------------------------------------- /packages/ui/src/icon/IconCheck.tsx: -------------------------------------------------------------------------------- 1 | import React, { FunctionComponent } from 'react'; 2 | 3 | import withIconContainer from './withIconContainer'; 4 | 5 | const IconCheck: FunctionComponent = () => ( 6 | 7 | 8 | 9 | ); 10 | 11 | export default withIconContainer(IconCheck); 12 | -------------------------------------------------------------------------------- /packages/ui/src/icon/IconChevronUp.tsx: -------------------------------------------------------------------------------- 1 | import React, { FunctionComponent } from 'react'; 2 | 3 | import withIconContainer from './withIconContainer'; 4 | 5 | const IconChevronUp: FunctionComponent = () => ( 6 | 7 | 8 | 9 | ); 10 | 11 | export default withIconContainer(IconChevronUp); 12 | -------------------------------------------------------------------------------- /packages/ui/src/loading/LazyContainer.scss: -------------------------------------------------------------------------------- 1 | @import '../Base'; 2 | 3 | .lazyContainer-error { 4 | padding: spacing("double"); 5 | text-align: center; 6 | } 7 | -------------------------------------------------------------------------------- /packages/ui/src/loading/index.ts: -------------------------------------------------------------------------------- 1 | export { default as LazyContainer } from './LazyContainer'; 2 | export { default as LoadingNotification } from './LoadingNotification'; 3 | export { default as LoadingOverlay } from './LoadingOverlay'; 4 | export { default as LoadingSpinner } from './LoadingSpinner'; 5 | -------------------------------------------------------------------------------- /packages/ui/src/modal/ModalLink.scss: -------------------------------------------------------------------------------- 1 | @import '../Base'; 2 | 3 | .modal--withText { 4 | padding-bottom: spacing("half"); 5 | padding-top: 0; 6 | } 7 | -------------------------------------------------------------------------------- /packages/ui/src/modal/index.ts: -------------------------------------------------------------------------------- 1 | export { default as ModalLink } from './ModalLink'; 2 | export { default as Modal, ModalProps } from './Modal'; 3 | export { default as ModalHeader } from './ModalHeader'; 4 | export { default as ModalTrigger, ModalTriggerModalProps, ModalTriggerProps } from './ModalTrigger'; 5 | export { default as ConfirmationModal } from './ConfirmationModal'; 6 | -------------------------------------------------------------------------------- /packages/ui/src/tooltip/Tooltip.scss: -------------------------------------------------------------------------------- 1 | .tooltip--basic { 2 | display: block; 3 | left: auto; 4 | position: relative; 5 | visibility: inherit; 6 | width: auto; 7 | } 8 | -------------------------------------------------------------------------------- /packages/ui/src/tooltip/index.ts: -------------------------------------------------------------------------------- 1 | export { default as Tooltip, TooltipProps } from './Tooltip'; 2 | export { default as TooltipTrigger, TooltipTriggerProps } from './TooltipTrigger'; 3 | -------------------------------------------------------------------------------- /packages/ui/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "references": [ 4 | { 5 | "path": "./tsconfig.lib.json" 6 | }, 7 | { 8 | "path": "./tsconfig.spec.json" 9 | } 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /packages/ui/tsconfig.lib.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "include": ["src/**/*.ts", "src/**/*.tsx"] 4 | } 5 | -------------------------------------------------------------------------------- /packages/utility/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../.eslintrc.json"] 3 | } 4 | -------------------------------------------------------------------------------- /packages/utility/README.md: -------------------------------------------------------------------------------- 1 | # utility 2 | 3 | This library was generated with [Nx](https://nx.dev) and used to contain different utility functions that can be used across the application. 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test utility` to execute the unit tests via [Jest](https://jestjs.io). 8 | 9 | ## Running lint 10 | 11 | Run `nx lint utility` to execute the lint via [ESLint](https://eslint.org/). 12 | -------------------------------------------------------------------------------- /packages/utility/src/index.ts: -------------------------------------------------------------------------------- 1 | export { default as isBuyNowCart } from './isBuyNowCart'; 2 | export { default as navigateToOrderConfirmation } from './navigateToOrderConfirmation'; 3 | -------------------------------------------------------------------------------- /packages/utility/src/isBuyNowCart.ts: -------------------------------------------------------------------------------- 1 | export default function isBuyNowCart(): boolean { 2 | const lastPathName = window.location.pathname.split('/').pop(); 3 | 4 | return !(lastPathName === 'checkout' || lastPathName === 'embedded-checkout'); 5 | } 6 | -------------------------------------------------------------------------------- /packages/utility/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "references": [ 4 | { 5 | "path": "./tsconfig.lib.json" 6 | }, 7 | { 8 | "path": "./tsconfig.spec.json" 9 | } 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /packages/utility/tsconfig.lib.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "include": ["src/**/*.ts", "src/**/*.tsx"] 4 | } 5 | -------------------------------------------------------------------------------- /packages/utility/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "include": [ 9 | "**/*.test.ts", 10 | "**/*.spec.ts", 11 | "**/*.test.tsx", 12 | "**/*.spec.tsx", 13 | "**/*.d.ts" 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /packages/wallet-button-integration/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../.eslintrc.json"], 3 | "ignorePatterns": ["!**/*"], 4 | "overrides": [ 5 | { 6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], 7 | "rules": {} 8 | }, 9 | { 10 | "files": ["*.ts", "*.tsx"], 11 | "rules": {} 12 | }, 13 | { 14 | "files": ["*.js", "*.jsx"], 15 | "rules": {} 16 | } 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /packages/wallet-button-integration/README.md: -------------------------------------------------------------------------------- 1 | # wallet-button-integration 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test wallet-button-integration` to execute the unit tests via [Jest](https://jestjs.io). 8 | 9 | ## Running lint 10 | 11 | Run `nx lint wallet-button-integration` to execute the lint via [ESLint](https://eslint.org/). 12 | -------------------------------------------------------------------------------- /packages/wallet-button-integration/src/index.ts: -------------------------------------------------------------------------------- 1 | import WalletButtonPaymentMethodComponent, { 2 | WalletButtonPaymentMethodProps, 3 | } from './WalletButtonPaymentMethodComponent'; 4 | 5 | export { WalletButtonPaymentMethodComponent, WalletButtonPaymentMethodProps }; 6 | -------------------------------------------------------------------------------- /packages/wallet-button-integration/tsconfig.lib.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../dist/out-tsc", 5 | "declaration": true, 6 | "types": [] 7 | }, 8 | "include": ["**/*.ts"], 9 | "exclude": ["**/*.spec.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /packages/workspace-tools/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "../../.eslintrc.json" 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /packages/workspace-tools/README.md: -------------------------------------------------------------------------------- 1 | # workspace-tools 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | 6 | 7 | ## Building 8 | 9 | Run `nx build workspace-tools` to build the library. 10 | 11 | 12 | 13 | 14 | 15 | ## Running unit tests 16 | 17 | Run `nx test workspace-tools` to execute the unit tests via [Jest](https://jestjs.io). 18 | 19 | 20 | -------------------------------------------------------------------------------- /packages/workspace-tools/executors.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/schema", 3 | "executors": { 4 | "build": { 5 | "implementation": "./src/executors/build/executor", 6 | "schema": "./src/executors/build/schema.json", 7 | "description": "build executor" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/workspace-tools/generators.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/schema", 3 | "name": "workspace-tools", 4 | "version": "0.0.1", 5 | "generators": { 6 | "auto-export": { 7 | "factory": "./src/generators/auto-export/generator", 8 | "schema": "./src/generators/auto-export/schema.json", 9 | "description": "auto-export generator" 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /packages/workspace-tools/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | displayName: 'workspace-tools', 3 | preset: '../../jest.preset.js', 4 | transform: { 5 | '^.+\\.[tj]sx?$': ['ts-jest', { 6 | tsconfig: '/tsconfig.spec.json', 7 | }], 8 | }, 9 | coverageDirectory: '../../coverage/packages/workspace-tools' 10 | }; 11 | -------------------------------------------------------------------------------- /packages/workspace-tools/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@bigcommerce/checkout/workspace-tools", 3 | "version": "0.0.1", 4 | "main": "src/index.js", 5 | "generators": "./generators.json", 6 | "executors": "./executors.json" 7 | } 8 | -------------------------------------------------------------------------------- /packages/workspace-tools/src/generators/auto-export/__fixtures__/function-a/function-a.ts: -------------------------------------------------------------------------------- 1 | export default function functionA() { 2 | return true; 3 | } 4 | -------------------------------------------------------------------------------- /packages/workspace-tools/src/generators/auto-export/__fixtures__/function-a/index.ts: -------------------------------------------------------------------------------- 1 | export { default as functionA } from './function-a'; 2 | -------------------------------------------------------------------------------- /packages/workspace-tools/src/generators/auto-export/__fixtures__/strategy-a/index.ts: -------------------------------------------------------------------------------- 1 | export { default as StrategyA } from './strategy-a'; 2 | -------------------------------------------------------------------------------- /packages/workspace-tools/src/generators/auto-export/__fixtures__/strategy-a/strategy-a.ts: -------------------------------------------------------------------------------- 1 | export default class StrategyA { 2 | execute(): boolean { 3 | return true; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/workspace-tools/src/generators/auto-export/__fixtures__/strategy-b/constants.ts: -------------------------------------------------------------------------------- 1 | export const A = 'A'; 2 | export const B = 'B'; 3 | -------------------------------------------------------------------------------- /packages/workspace-tools/src/generators/auto-export/__fixtures__/strategy-b/index.ts: -------------------------------------------------------------------------------- 1 | export { default as StrategyB } from './strategy-b'; 2 | export * from './constants'; 3 | -------------------------------------------------------------------------------- /packages/workspace-tools/src/generators/auto-export/__fixtures__/strategy-b/strategy-b.ts: -------------------------------------------------------------------------------- 1 | export default class StrategyB { 2 | execute(): boolean { 3 | return true; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/workspace-tools/src/generators/auto-export/__snapshots__/auto-export.test.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`autoExport() export matching members from files to another file 1`] = ` 4 | "export { StrategyA } from '@bigcommerce/strategy-a'; 5 | export { StrategyB } from '@bigcommerce/strategy-b'; 6 | " 7 | `; 8 | 9 | exports[`autoExport() handles scenario where no matching member is found 1`] = `""`; 10 | -------------------------------------------------------------------------------- /packages/workspace-tools/src/generators/auto-export/auto-export-config.ts: -------------------------------------------------------------------------------- 1 | export default interface AutoExportConfig { 2 | entries: AutoExportConfigEntry[]; 3 | tsConfigPath: string; 4 | } 5 | 6 | export interface AutoExportConfigEntry { 7 | inputPath: string; 8 | outputPath: string; 9 | memberPattern: string; 10 | } 11 | -------------------------------------------------------------------------------- /packages/workspace-tools/src/generators/auto-export/schema.d.ts: -------------------------------------------------------------------------------- 1 | export interface AutoExportGeneratorSchema { 2 | config: string; 3 | projectName: string; 4 | } 5 | -------------------------------------------------------------------------------- /packages/workspace-tools/src/generators/auto-export/templates/__outputName__: -------------------------------------------------------------------------------- 1 | <%- content %> 2 | -------------------------------------------------------------------------------- /packages/workspace-tools/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigcommerce/checkout-js/787c37937c5aa1fa6081ccdc4c51dddd5d2edcfc/packages/workspace-tools/src/index.ts -------------------------------------------------------------------------------- /packages/workspace-tools/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "module": "commonjs", 5 | "lib": [ 6 | "esnext" 7 | ], 8 | "target": "esnext" 9 | }, 10 | "files": [], 11 | "include": [], 12 | "references": [ 13 | { 14 | "path": "./tsconfig.lib.json" 15 | }, 16 | { 17 | "path": "./tsconfig.spec.json" 18 | } 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /packages/workspace-tools/tsconfig.lib.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../dist-spec", 5 | "declaration": true, 6 | "types": [] 7 | }, 8 | "include": ["**/*.ts"], 9 | "exclude": ["**/*.spec.ts", "**/*.test.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /packages/workspace-tools/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../dist-spec", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "include": [ 9 | "**/*.test.ts", 10 | "**/*.spec.ts", 11 | "**/*.d.ts" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /packages/worldpay-access-integration/src/index.ts: -------------------------------------------------------------------------------- 1 | export { default as WorldpayCreditCardPaymentMethod } from './WorldpayCreditCardPaymentMethod'; 2 | -------------------------------------------------------------------------------- /packages/worldpay-access-integration/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "references": [ 4 | { 5 | "path": "./tsconfig.spec.json" 6 | } 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /packages/worldpay-access-integration/tsconfig.lib.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "include": [ 4 | "src/**/*.ts", 5 | "src/**/*.tsx" 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /scripts/jest/file-transformer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | process: () => 'module.exports = {};', 3 | }; 4 | 5 | -------------------------------------------------------------------------------- /scripts/jest/style-transformer.js: -------------------------------------------------------------------------------- 1 | const cwd = `${process.cwd()}/`; 2 | 3 | module.exports = { 4 | process: (src, filename) => `module.exports = '${filename.replace(cwd, '')}';`, 5 | }; 6 | 7 | -------------------------------------------------------------------------------- /scripts/standard-version/prebump.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | const { appVersion } = require('../../dist/manifest.json'); 3 | 4 | process.stdout.write(appVersion); 5 | -------------------------------------------------------------------------------- /scripts/webpack/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | AsyncHookPlugin: require('./async-hook-plugin'), 3 | BuildHookPlugin: require('./build-hook-plugin'), 4 | getNextVersion: require('./get-next-version'), 5 | transformManifest: require('./transform-manifest'), 6 | mergeManifests: require('./merge-manifests'), 7 | getLoaderPackages: require('./get-loader-packages'), 8 | }; 9 | --------------------------------------------------------------------------------