├── .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 |
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 |
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 |
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 |
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 |
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 |
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 |
--------------------------------------------------------------------------------