+
+// Define the HOC function
+const withCurrency = (WrappedComponent: React.ComponentType
) => {
+ const WithCurrency: React.FC
= (props: WithCurrencyProps) => {
+ const {site, locale} = useMultiSite()
+ const {l10n} = site
+
+ return (
+
+
+
+ )
+ }
+
+ return WithCurrency
+}
+
+export default withCurrency
diff --git a/packages/template-retail-react-app/app/components/shared/ui/Accordion/index.jsx b/packages/template-chakra-storefront/src/components/with-layout/index.js
similarity index 66%
rename from packages/template-retail-react-app/app/components/shared/ui/Accordion/index.jsx
rename to packages/template-chakra-storefront/src/components/with-layout/index.js
index dd7e256740..847b099b07 100644
--- a/packages/template-retail-react-app/app/components/shared/ui/Accordion/index.jsx
+++ b/packages/template-chakra-storefront/src/components/with-layout/index.js
@@ -1,8 +1,8 @@
/*
- * Copyright (c) 2023, salesforce.com, inc.
+ * Copyright (c) 2024, Salesforce, Inc.
* All rights reserved.
* SPDX-License-Identifier: BSD-3-Clause
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
-export {Accordion} from '@chakra-ui/react'
+export {default as withLayout} from './with-layout'
diff --git a/packages/template-retail-react-app/app/components/with-registration/index.jsx b/packages/template-chakra-storefront/src/components/with-registration/index.jsx
similarity index 87%
rename from packages/template-retail-react-app/app/components/with-registration/index.jsx
rename to packages/template-chakra-storefront/src/components/with-registration/index.jsx
index 985da2ce73..060bfdc8b6 100644
--- a/packages/template-retail-react-app/app/components/with-registration/index.jsx
+++ b/packages/template-chakra-storefront/src/components/with-registration/index.jsx
@@ -5,13 +5,13 @@
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
import React from 'react'
-import {AuthModal, useAuthModal} from '@salesforce/retail-react-app/app/hooks/use-auth-modal'
+import {AuthModal, useAuthModal} from '../../hooks/use-auth-modal'
import PropTypes from 'prop-types'
-import {noop} from '@salesforce/retail-react-app/app/utils/utils'
+import {noop} from '../../utils/utils'
import {useIntl} from 'react-intl'
import {useLocation} from 'react-router-dom'
-import {useToast} from '@salesforce/retail-react-app/app/hooks/use-toast'
-import {useCurrentCustomer} from '@salesforce/retail-react-app/app/hooks/use-current-customer'
+import {useToast} from '../../hooks/use-toast'
+import {useCurrentCustomer} from '../../hooks/use-current-customer'
/**
* Higher-order component that modifies the given component's `onClick` to show the login form if
diff --git a/packages/template-retail-react-app/app/components/with-registration/index.test.js b/packages/template-chakra-storefront/src/components/with-registration/index.test.js
similarity index 88%
rename from packages/template-retail-react-app/app/components/with-registration/index.test.js
rename to packages/template-chakra-storefront/src/components/with-registration/index.test.js
index 941702e995..9927734cb2 100644
--- a/packages/template-retail-react-app/app/components/with-registration/index.test.js
+++ b/packages/template-chakra-storefront/src/components/with-registration/index.test.js
@@ -5,13 +5,13 @@
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
import React from 'react'
-import {Button} from '@salesforce/retail-react-app/app/components/shared/ui'
+import {Button} from '@chakra-ui/react'
import {screen, waitFor} from '@testing-library/react'
-import withRegistration from '@salesforce/retail-react-app/app/components/with-registration/index'
-import {renderWithProviders} from '@salesforce/retail-react-app/app/utils/test-utils'
+import withRegistration from './index'
+import {renderWithProviders} from '../../utils/test-utils'
import userEvent from '@testing-library/user-event'
import {rest} from 'msw'
-import {mockedGuestCustomer} from '@salesforce/retail-react-app/app/mocks/mock-data'
+import {mockedGuestCustomer} from '../../../mocks/mock-data'
const ButtonWithRegistration = withRegistration(Button)
diff --git a/packages/template-retail-react-app/app/components/shared/theme/index.jsx b/packages/template-chakra-storefront/src/components/with-storefront-preview/index.js
similarity index 61%
rename from packages/template-retail-react-app/app/components/shared/theme/index.jsx
rename to packages/template-chakra-storefront/src/components/with-storefront-preview/index.js
index b62411dbfa..eefd1138a7 100644
--- a/packages/template-retail-react-app/app/components/shared/theme/index.jsx
+++ b/packages/template-chakra-storefront/src/components/with-storefront-preview/index.js
@@ -1,10 +1,8 @@
/*
- * Copyright (c) 2023, salesforce.com, inc.
+ * Copyright (c) 2024, Salesforce, Inc.
* All rights reserved.
* SPDX-License-Identifier: BSD-3-Clause
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
-import {theme} from '@chakra-ui/theme'
-
-export default theme
+export {default as withStorefrontPreview} from './with-storefront-preview'
diff --git a/packages/template-chakra-storefront/src/components/with-storefront-preview/with-storefront-preview.tsx b/packages/template-chakra-storefront/src/components/with-storefront-preview/with-storefront-preview.tsx
new file mode 100644
index 0000000000..f1358111b9
--- /dev/null
+++ b/packages/template-chakra-storefront/src/components/with-storefront-preview/with-storefront-preview.tsx
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2024, salesforce.com, inc.
+ * All rights reserved.
+ * SPDX-License-Identifier: BSD-3-Clause
+ * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
+ */
+
+import React from 'react'
+
+// Platform Imports
+import {StorefrontPreview} from '@salesforce/commerce-sdk-react/components'
+import {useAccessToken} from '@salesforce/commerce-sdk-react'
+
+// Define a type for the HOC props
+// TODO: update the type to have site, locale, and buildUrl
+type WithStorefrontPreviewProps = React.ComponentPropsWithoutRef
+
+// Define the HOC function
+const withStorefrontPreview = (WrappedComponent: React.ComponentType
) => {
+ const WithStorefrontPreview: React.FC
= (props: WithStorefrontPreviewProps) => {
+ const {getTokenWhenReady} = useAccessToken()
+ return (
+
+
+
+ )
+ }
+
+ return WithStorefrontPreview
+}
+
+export default withStorefrontPreview
diff --git a/packages/template-chakra-storefront/src/config/constants.js b/packages/template-chakra-storefront/src/config/constants.js
new file mode 100644
index 0000000000..124a7cc1a9
--- /dev/null
+++ b/packages/template-chakra-storefront/src/config/constants.js
@@ -0,0 +1,198 @@
+/*
+ * Copyright (c) 2022, Salesforce, Inc.
+ * All rights reserved.
+ * SPDX-License-Identifier: BSD-3-Clause
+ * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
+ */
+
+import {defineMessage} from 'react-intl'
+import {noop} from '../src/utils/utils'
+
+// Default details of badge labels and the corresponding product custom properties that enable badges.
+export const PRODUCT_BADGE_DETAILS = [
+ {
+ propertyName: 'c_isNew',
+ label: defineMessage({
+ id: 'product_tile.badge.label.new',
+ defaultMessage: 'New'
+ }),
+ color: 'green'
+ },
+ {
+ propertyName: 'c_isSale',
+ label: defineMessage({
+ id: 'product_tile.badge.label.sale',
+ defaultMessage: 'Sale'
+ }),
+ color: 'yellow'
+ }
+]
+
+export const API_ERROR_MESSAGE = defineMessage({
+ id: 'global.error.something_went_wrong',
+ defaultMessage: 'Something went wrong. Try again!'
+})
+export const INVALID_TOKEN_ERROR_MESSAGE = defineMessage({
+ defaultMessage: 'Invalid token, please try again.',
+ id: 'global.error.invalid_token'
+})
+export const FEATURE_UNAVAILABLE_ERROR_MESSAGE = defineMessage({
+ defaultMessage: 'This feature is not currently available.',
+ id: 'global.error.feature_unavailable'
+})
+export const CREATE_ACCOUNT_FIRST_ERROR_MESSAGE = defineMessage({
+ defaultMessage:
+ 'This feature is not currently available. You must create an account to access this feature.',
+ id: 'global.error.create_account'
+})
+
+export const urlPartPositions = {
+ PATH: 'path',
+ QUERY_PARAM: 'query_param',
+ NONE: 'none'
+}
+
+// Toast messages exist outside the scope of the base IntlProvider. This means
+// that commonly used components that require localization cannot easily be
+// extracted into a hook/helper. However, we can still extract the message
+// definitions to a common location (here), so that each message is only defined
+// once.
+
+export const TOAST_MESSAGE_ADDED_TO_WISHLIST = defineMessage({
+ id: 'global.info.added_to_wishlist',
+ defaultMessage: '{quantity} {quantity, plural, one {item} other {items}} added to wishlist'
+})
+
+export const TOAST_MESSAGE_ALREADY_IN_WISHLIST = defineMessage({
+ id: 'global.info.already_in_wishlist',
+ defaultMessage: 'Item is already in wishlist'
+})
+
+export const TOAST_MESSAGE_REMOVED_ITEM_FROM_CART = defineMessage({
+ defaultMessage: 'Item removed from cart',
+ id: 'cart.info.removed_from_cart'
+})
+
+export const TOAST_ACTION_VIEW_WISHLIST = defineMessage({
+ defaultMessage: 'View',
+ id: 'global.link.added_to_wishlist.view_wishlist'
+})
+
+export const TOAST_MESSAGE_REMOVED_FROM_WISHLIST = defineMessage({
+ id: 'global.info.removed_from_wishlist',
+ defaultMessage: 'Item removed from wishlist'
+})
+
+// Einstein recommender constants used in
+export const EINSTEIN_RECOMMENDERS = {
+ ADD_TO_CART_MODAL: 'pdp-similar-items',
+ CART_RECENTLY_VIEWED: 'viewed-recently-einstein',
+ CART_MAY_ALSO_LIKE: 'product-to-product-einstein',
+ PDP_COMPLETE_SET: 'complete-the-set',
+ PDP_MIGHT_ALSO_LIKE: 'pdp-similar-items',
+ PDP_RECENTLY_VIEWED: 'viewed-recently-einstein',
+ EMPTY_SEARCH_RESULTS_TOP_SELLERS: 'home-top-revenue-for-category',
+ EMPTY_SEARCH_RESULTS_MOST_VIEWED: 'products-in-all-categories'
+}
+
+export const SHIPPING_COUNTRY_CODES = [
+ {value: 'CA', label: 'Canada'},
+ {value: 'US', label: 'United States'}
+]
+
+export const REMOVE_UNAVAILABLE_CART_ITEM_DIALOG_CONFIG = {
+ dialogTitle: defineMessage({
+ defaultMessage: 'Items Unavailable',
+ id: 'confirmation_modal.remove_cart_item.title.items_unavailable'
+ }),
+ confirmationMessage: defineMessage({
+ defaultMessage:
+ 'Some items are no longer available online and will be removed from your cart.',
+ id: 'confirmation_modal.remove_cart_item.message.need_to_remove_due_to_unavailability'
+ }),
+ primaryActionLabel: defineMessage({
+ defaultMessage: 'Remove',
+ id: 'confirmation_modal.remove_cart_item.action.remove'
+ }),
+ primaryActionAriaLabel: defineMessage({
+ defaultMessage: 'Remove unavailable products',
+ id: 'confirmation_modal.remove_cart_item.assistive_msg.remove'
+ }),
+ onPrimaryAction: noop
+}
+export const SUPPORTED_STORE_LOCATOR_COUNTRIES = [
+ {
+ countryCode: 'US',
+ countryName: defineMessage({
+ defaultMessage: 'United States',
+ id: 'store_locator.dropdown.united_states'
+ })
+ },
+ {
+ countryCode: 'DE',
+ countryName: defineMessage({
+ defaultMessage: 'Germany',
+ id: 'store_locator.dropdown.germany'
+ })
+ }
+]
+
+export const DEFAULT_STORE_LOCATOR_COUNTRY = {
+ countryCode: 'DE',
+ countryName: defineMessage({
+ defaultMessage: 'Germany',
+ id: 'store_locator.dropdown.germany'
+ })
+}
+export const DEFAULT_STORE_LOCATOR_POSTAL_CODE = '10178'
+export const STORE_LOCATOR_DISTANCE = 100
+export const STORE_LOCATOR_NUM_STORES_PER_LOAD = 10
+export const STORE_LOCATOR_DISTANCE_UNIT = 'km'
+export const STORE_LOCATOR_IS_ENABLED = true
+
+// Constants for shopper context
+// Supported non-string field types used in SHOPPER_CONTEXT_SEARCH_PARAMS below.
+// Only non-string types need to be identified using the "type" field.
+// If no "type" field is present, the value will be parsed as a string by default.
+export const SHOPPER_CONTEXT_FIELD_TYPES = {
+ INT: 'int',
+ DOUBLE: 'double',
+ ARRAY: 'array'
+}
+export const SHOPPER_CONTEXT_SEARCH_PARAMS = {
+ sourceCode: {paramName: 'sourceCode'},
+ geoLocation: {
+ city: {paramName: 'city'},
+ country: {paramName: 'country'},
+ countryCode: {paramName: 'countryCode'},
+ latitude: {paramName: 'latitude', type: SHOPPER_CONTEXT_FIELD_TYPES.DOUBLE},
+ longitude: {paramName: 'longitude', type: SHOPPER_CONTEXT_FIELD_TYPES.DOUBLE},
+ metroCode: {paramName: 'metroCode'},
+ postalCode: {paramName: 'postalCode'},
+ region: {paramName: 'region'},
+ regionCode: {paramName: 'regionCode'}
+ },
+ customQualifiers: {
+ // Add custom qualifiers here
+ },
+ assignmentQualifiers: {
+ // Add assignment qualifiers here
+ }
+}
+
+// Constants for Login
+export const LOGIN_TYPES = {
+ PASSWORD: 'password',
+ PASSWORDLESS: 'passwordless',
+ SOCIAL: 'social'
+}
+
+export const PASSWORDLESS_ERROR_MESSAGES = [
+ /callback_uri doesn't match/i,
+ /passwordless permissions error/i,
+ /client secret is not provided/i
+]
+
+export const INVALID_TOKEN_ERROR = /invalid token/i
+
+export const USER_NOT_FOUND_ERROR = /user not found/i
diff --git a/packages/template-retail-react-app/app/contexts/index.js b/packages/template-chakra-storefront/src/contexts/index.js
similarity index 100%
rename from packages/template-retail-react-app/app/contexts/index.js
rename to packages/template-chakra-storefront/src/contexts/index.js
diff --git a/packages/template-retail-react-app/app/hooks/einstein-mock-data.js b/packages/template-chakra-storefront/src/hooks/einstein-mock-data.js
similarity index 100%
rename from packages/template-retail-react-app/app/hooks/einstein-mock-data.js
rename to packages/template-chakra-storefront/src/hooks/einstein-mock-data.js
diff --git a/packages/template-chakra-storefront/src/hooks/index.js b/packages/template-chakra-storefront/src/hooks/index.js
new file mode 100644
index 0000000000..158b6cfda9
--- /dev/null
+++ b/packages/template-chakra-storefront/src/hooks/index.js
@@ -0,0 +1,19 @@
+/*
+ * Copyright (c) 2021, salesforce.com, inc.
+ * All rights reserved.
+ * SPDX-License-Identifier: BSD-3-Clause
+ * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
+ */
+
+/* istanbul ignore file */
+export {useSearchParams} from './use-search-params'
+export {useLimitUrls} from './use-limit-urls'
+export {usePageUrls} from './use-page-urls'
+export {useSortUrls} from './use-sort-urls'
+export {useVariant} from './use-variant'
+export {useVariationAttributes} from './use-variation-attributes'
+export {useVariationParams} from './use-variation-params'
+export {useDerivedProduct} from './use-derived-product'
+export {useCurrency} from './use-currency'
+export {useCurrentCustomer} from './use-current-customer'
+export {useCurrentBasket} from './use-current-basket'
diff --git a/packages/template-retail-react-app/app/hooks/use-active-data.js b/packages/template-chakra-storefront/src/hooks/use-active-data.js
similarity index 94%
rename from packages/template-retail-react-app/app/hooks/use-active-data.js
rename to packages/template-chakra-storefront/src/hooks/use-active-data.js
index bebe77c87b..4b7906cbe9 100644
--- a/packages/template-retail-react-app/app/hooks/use-active-data.js
+++ b/packages/template-chakra-storefront/src/hooks/use-active-data.js
@@ -5,14 +5,16 @@
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
/*global dw*/
-import {ACTIVE_DATA_ENABLED} from '@salesforce/retail-react-app/app/constants'
import {proxyBasePath} from '@salesforce/pwa-kit-runtime/utils/ssr-namespace-paths'
-import logger from '@salesforce/retail-react-app/app/utils/logger-instance'
+import logger from '../utils/logger-instance'
+import {getConfig} from '@salesforce/pwa-kit-runtime/utils/ssr-config'
const useActiveData = () => {
// Returns true when the feature flag is enabled and the tracking scripts have been executed
// This MUST be called before using the `dw` variable, otherwise a ReferenceError will be thrown
- const canTrack = () => ACTIVE_DATA_ENABLED && typeof dw !== 'undefined'
+ const {activeDataEnabled = false} = getConfig()
+
+ const canTrack = () => activeDataEnabled && typeof dw !== 'undefined'
return {
async sendViewProduct(category, product, type) {
if (!canTrack()) return
diff --git a/packages/template-chakra-storefront/src/hooks/use-active-data.test.js b/packages/template-chakra-storefront/src/hooks/use-active-data.test.js
new file mode 100644
index 0000000000..79ec281f12
--- /dev/null
+++ b/packages/template-chakra-storefront/src/hooks/use-active-data.test.js
@@ -0,0 +1,250 @@
+/*
+ * Copyright (c) 2023, Salesforce, Inc.
+ * All rights reserved.
+ * SPDX-License-Identifier: BSD-3-Clause
+ * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
+ */
+/*global dw*/
+
+import React, {useEffect, useState} from 'react'
+import PropTypes from 'prop-types'
+import {act, screen, waitFor} from '@testing-library/react'
+
+import {renderWithProviders} from '../utils/test-utils'
+import useActiveData from './use-active-data'
+import {mockCategory, mockProduct, mockSearchResults} from './einstein-mock-data'
+import mockConfig from '../../mock-config'
+const DEFAULT_SEARCH_PARAMS = mockConfig.search.defaultSearchParams
+jest.mock('@salesforce/pwa-kit-runtime/utils/ssr-config', () => {
+ const original = jest.requireActual('@salesforce/pwa-kit-runtime/utils/ssr-config')
+ return {
+ ...original,
+ getConfig: jest.fn(() => require('../../mock-config'))
+ }
+})
+
+const MockComponent = ({action, args}) => {
+ const [loading, setLoading] = useState(true)
+ const activeDataApi = useActiveData()
+
+ useEffect(() => {
+ ;(async () => {
+ await activeDataApi?.[action](...args)
+ act(() => {
+ setLoading(false)
+ })
+ })()
+ }, [])
+
+ return
{JSON.stringify(loading)}
+}
+
+MockComponent.propTypes = {
+ action: PropTypes.string.isRequired,
+ args: PropTypes.arrayOf[PropTypes.any]
+}
+
+beforeAll(() => {
+ window.dw = {
+ ac: {
+ applyContext: jest.fn(),
+ _capture: jest.fn(),
+ _scheduleDataSubmission: jest.fn(),
+ _setSiteCurrency: jest.fn(),
+ setDWAnalytics: jest.fn()
+ },
+ __dwAnalytics: {
+ getTracker: jest.fn()
+ }
+ }
+
+ window.matchMedia = (query) => ({
+ matches: false,
+ media: query,
+ onchange: null,
+ addListener: jest.fn(), // Deprecated
+ removeListener: jest.fn(), // Deprecated
+ addEventListener: jest.fn(),
+ removeEventListener: jest.fn(),
+ dispatchEvent: jest.fn()
+ })
+})
+
+afterAll(() => {
+ delete window.dw
+})
+
+describe('useDerivedProduct hook', () => {
+ beforeEach(() => {
+ jest.clearAllMocks()
+ })
+
+ test('viewProduct captures expected product', async () => {
+ mockConfig.activeDataEnabled = true
+
+ // Render the mock component that calls the active data endpoint via a hook
+ renderWithProviders(
+
+ )
+
+ // Wait for the call to finish.
+ await waitFor(() => {
+ expect(JSON.parse(screen.getByTestId('active-data-loading-state').innerHTML)).toBe(
+ false
+ )
+ })
+
+ // Run checks
+ expect(dw.ac.applyContext).toHaveBeenCalledWith({category: mockCategory.id})
+ expect(dw.ac._capture).toHaveBeenCalledWith({id: mockProduct.id, type: 'detail'})
+ expect(dw.ac._scheduleDataSubmission).toHaveBeenCalledWith()
+ })
+
+ test('viewProduct does nothing if active data is disabled', async () => {
+ mockConfig.activeDataEnabled = false
+
+ // Render the mock component that calls the active data endpoint via a hook
+ renderWithProviders(
+
+ )
+
+ // Wait for the call to finish.
+ await waitFor(() => {
+ expect(JSON.parse(screen.getByTestId('active-data-loading-state').innerHTML)).toBe(
+ false
+ )
+ })
+
+ // Run checks
+ expect(dw.ac.applyContext).toHaveBeenCalledTimes(0)
+ expect(dw.ac._capture).toHaveBeenCalledTimes(0)
+ expect(dw.ac._scheduleDataSubmission).toHaveBeenCalledTimes(0)
+ })
+
+ test('viewSearch applies search context and captures expected data', async () => {
+ mockConfig.activeDataEnabled = true
+
+ // Render the mock component that calls the active data endpoint via a hook
+ renderWithProviders(
+
+ )
+
+ // Wait for the call to finish.
+ await waitFor(() => {
+ expect(JSON.parse(screen.getByTestId('active-data-loading-state').innerHTML)).toBe(
+ false
+ )
+ })
+
+ expect(dw.ac.applyContext).toHaveBeenCalledWith({searchData: DEFAULT_SEARCH_PARAMS})
+ })
+
+ test('viewSearch does nothing if active data is disabled', async () => {
+ mockConfig.activeDataEnabled = false
+
+ // Render the mock component that calls the active data endpoint via a hook
+ renderWithProviders(
+
+ )
+
+ // Wait for the call to finish.
+ await waitFor(() => {
+ expect(JSON.parse(screen.getByTestId('active-data-loading-state').innerHTML)).toBe(
+ false
+ )
+ })
+
+ expect(dw.ac.applyContext).toHaveBeenCalledTimes(0)
+ })
+
+ test('viewCategory applies category context and captures expected data', async () => {
+ mockConfig.activeDataEnabled = true
+
+ // Render the mock component that calls the active data endpoint via a hook
+ renderWithProviders(
+
+ )
+
+ // Wait for the call to finish.
+ await waitFor(() => {
+ expect(JSON.parse(screen.getByTestId('active-data-loading-state').innerHTML)).toBe(
+ false
+ )
+ })
+
+ expect(dw.ac.applyContext).toHaveBeenCalledWith({
+ category: mockCategory.id,
+ searchData: DEFAULT_SEARCH_PARAMS
+ })
+ expect(dw.ac._scheduleDataSubmission).toHaveBeenCalledWith()
+ })
+
+ test('viewCategory does nothing if active data is disabled', async () => {
+ mockConfig.activeDataEnabled = false
+
+ // Render the mock component that calls the active data endpoint via a hook
+ renderWithProviders(
+
+ )
+
+ // Wait for the call to finish.
+ await waitFor(() => {
+ expect(JSON.parse(screen.getByTestId('active-data-loading-state').innerHTML)).toBe(
+ false
+ )
+ })
+
+ expect(dw.ac.applyContext).toHaveBeenCalledTimes(0)
+ expect(dw.ac._scheduleDataSubmission).toHaveBeenCalledTimes(0)
+ })
+
+ test('trackPage sets expected DW analytics', async () => {
+ mockConfig.activeDataEnabled = true
+
+ // Render the mock component that calls the active data endpoint via a hook
+ renderWithProviders(
+
+ )
+
+ // Wait for the call to finish.
+ await waitFor(() => {
+ expect(JSON.parse(screen.getByTestId('active-data-loading-state').innerHTML)).toBe(
+ false
+ )
+ })
+
+ expect(dw.__dwAnalytics.getTracker).toHaveBeenCalledWith(
+ '/mobify/proxy/ocapi/on/demandware.store/Sites-test-site-id-Site/en-US/__Analytics-Start'
+ )
+ })
+
+ test('trackPage does nothing if active data is disabled', async () => {
+ mockConfig.activeDataEnabled = false
+
+ // Render the mock component that calls the active data endpoint via a hook
+ renderWithProviders(
+
+ )
+
+ // Wait for the call to finish.
+ await waitFor(() => {
+ expect(JSON.parse(screen.getByTestId('active-data-loading-state').innerHTML)).toBe(
+ false
+ )
+ })
+
+ expect(dw.__dwAnalytics.getTracker).toHaveBeenCalledTimes(0)
+ })
+})
diff --git a/packages/template-retail-react-app/app/hooks/use-add-to-cart-modal.js b/packages/template-chakra-storefront/src/hooks/use-add-to-cart-modal.js
similarity index 96%
rename from packages/template-retail-react-app/app/hooks/use-add-to-cart-modal.js
rename to packages/template-chakra-storefront/src/hooks/use-add-to-cart-modal.js
index a885a4f915..e03268c244 100644
--- a/packages/template-retail-react-app/app/hooks/use-add-to-cart-modal.js
+++ b/packages/template-chakra-storefront/src/hooks/use-add-to-cart-modal.js
@@ -24,18 +24,15 @@ import {
ModalOverlay,
Stack,
useBreakpointValue
-} from '@salesforce/retail-react-app/app/components/shared/ui'
-import {useCurrentBasket} from '@salesforce/retail-react-app/app/hooks/use-current-basket'
-import Link from '@salesforce/retail-react-app/app/components/link'
-import RecommendedProducts from '@salesforce/retail-react-app/app/components/recommended-products'
-import {LockIcon} from '@salesforce/retail-react-app/app/components/icons'
-import {findImageGroupBy} from '@salesforce/retail-react-app/app/utils/image-groups-utils'
-import {
- getPriceData,
- getDisplayVariationValues
-} from '@salesforce/retail-react-app/app/utils/product-utils'
-import {EINSTEIN_RECOMMENDERS} from '@salesforce/retail-react-app/app/constants'
-import DisplayPrice from '@salesforce/retail-react-app/app/components/display-price'
+} from '@chakra-ui/react'
+import {useCurrentBasket} from './use-current-basket'
+import Link from '../components/link'
+import RecommendedProducts from '../components/recommended-products'
+import {LockIcon} from '../components/icons'
+import {findImageGroupBy} from '../utils/image-groups-utils'
+import {getPriceData, getDisplayVariationValues} from '../utils/product-utils'
+import {EINSTEIN_RECOMMENDERS} from '../../config/constants'
+import DisplayPrice from '../components/display-price'
/**
* This is the context for managing the AddToCartModal.
diff --git a/packages/template-retail-react-app/app/hooks/use-add-to-cart-modal.test.js b/packages/template-chakra-storefront/src/hooks/use-add-to-cart-modal.test.js
similarity index 97%
rename from packages/template-retail-react-app/app/hooks/use-add-to-cart-modal.test.js
rename to packages/template-chakra-storefront/src/hooks/use-add-to-cart-modal.test.js
index 2ecad30538..b93b57a03d 100644
--- a/packages/template-retail-react-app/app/hooks/use-add-to-cart-modal.test.js
+++ b/packages/template-chakra-storefront/src/hooks/use-add-to-cart-modal.test.js
@@ -5,19 +5,13 @@
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
import React from 'react'
-import {
- AddToCartModal,
- AddToCartModalContext
-} from '@salesforce/retail-react-app/app/hooks/use-add-to-cart-modal'
-import {renderWithProviders} from '@salesforce/retail-react-app/app/utils/test-utils'
+import {AddToCartModal, AddToCartModalContext} from './use-add-to-cart-modal'
+import {renderWithProviders} from '../utils/test-utils'
import {screen} from '@testing-library/react'
import {rest} from 'msw'
-import {mockCustomerBaskets} from '@salesforce/retail-react-app/app/mocks/mock-data'
-import {
- mockProductBundle,
- mockBundleItemsAdded
-} from '@salesforce/retail-react-app/app/mocks/product-bundle'
-import {getDisplayVariationValues} from '@salesforce/retail-react-app/app/utils/product-utils'
+import {mockCustomerBaskets} from '../../mocks/mock-data'
+import {mockProductBundle, mockBundleItemsAdded} from '../../mocks/product-bundle'
+import {getDisplayVariationValues} from '../utils/product-utils'
const MOCK_PRODUCT = {
currency: 'USD',
diff --git a/packages/template-chakra-storefront/src/hooks/use-app-config.js b/packages/template-chakra-storefront/src/hooks/use-app-config.js
new file mode 100644
index 0000000000..ffd01539b1
--- /dev/null
+++ b/packages/template-chakra-storefront/src/hooks/use-app-config.js
@@ -0,0 +1,20 @@
+/*
+ * Copyright (c) 2021, salesforce.com, inc.
+ * All rights reserved.
+ * SPDX-License-Identifier: BSD-3-Clause
+ * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
+ */
+import {useContext} from 'react'
+import {AppConfigContext} from '../contexts'
+
+/**
+ * Custom React hook to get the currency for the active locale and to change it to a different currency
+ * @returns {{currency: string, setCurrency: function}[]}
+ */
+export const useAppConfig = () => {
+ const context = useContext(AppConfigContext)
+ if (context === undefined) {
+ throw new Error('useAppConfig must be used within AppConfigProvider')
+ }
+ return context
+}
diff --git a/packages/template-retail-react-app/app/hooks/use-app-origin.js b/packages/template-chakra-storefront/src/hooks/use-app-origin.js
similarity index 100%
rename from packages/template-retail-react-app/app/hooks/use-app-origin.js
rename to packages/template-chakra-storefront/src/hooks/use-app-origin.js
diff --git a/packages/template-retail-react-app/app/hooks/use-auth-modal.js b/packages/template-chakra-storefront/src/hooks/use-auth-modal.js
similarity index 91%
rename from packages/template-retail-react-app/app/hooks/use-auth-modal.js
rename to packages/template-chakra-storefront/src/hooks/use-auth-modal.js
index 77a9ccc569..958d8f6997 100644
--- a/packages/template-retail-react-app/app/hooks/use-auth-modal.js
+++ b/packages/template-chakra-storefront/src/hooks/use-auth-modal.js
@@ -16,7 +16,7 @@ import {
ModalOverlay,
useDisclosure,
useToast
-} from '@salesforce/retail-react-app/app/components/shared/ui'
+} from '@chakra-ui/react'
import {
AuthHelpers,
useAuthHelper,
@@ -26,11 +26,11 @@ import {
useCustomerBaskets,
useShopperBasketsMutation
} from '@salesforce/commerce-sdk-react'
-import LoginForm from '@salesforce/retail-react-app/app/components/login'
-import ResetPasswordForm from '@salesforce/retail-react-app/app/components/reset-password'
-import RegisterForm from '@salesforce/retail-react-app/app/components/register'
-import PasswordlessEmailConfirmation from '@salesforce/retail-react-app/app/components/email-confirmation/index'
-import {noop} from '@salesforce/retail-react-app/app/utils/utils'
+import LoginForm from '../components/login'
+import ResetPasswordForm from '../components/reset-password'
+import RegisterForm from '../components/register'
+import PasswordlessEmailConfirmation from '../components/email-confirmation/index'
+import {noop} from '../utils/utils'
import {
API_ERROR_MESSAGE,
CREATE_ACCOUNT_FIRST_ERROR_MESSAGE,
@@ -38,14 +38,14 @@ import {
LOGIN_TYPES,
PASSWORDLESS_ERROR_MESSAGES,
USER_NOT_FOUND_ERROR
-} from '@salesforce/retail-react-app/app/constants'
-import useNavigation from '@salesforce/retail-react-app/app/hooks/use-navigation'
-import {usePrevious} from '@salesforce/retail-react-app/app/hooks/use-previous'
-import {usePasswordReset} from '@salesforce/retail-react-app/app/hooks/use-password-reset'
-import {isServer} from '@salesforce/retail-react-app/app/utils/utils'
+} from '../../config/constants'
+import useNavigation from './use-navigation'
+import {usePrevious} from './use-previous'
+import {usePasswordReset} from './use-password-reset'
+import {isServer} from '../utils/utils'
+import {isAbsoluteURL} from '../page-designer/utils'
+import {useAppOrigin} from './use-app-origin'
import {getConfig} from '@salesforce/pwa-kit-runtime/utils/ssr-config'
-import {isAbsoluteURL} from '@salesforce/retail-react-app/app/page-designer/utils'
-import {useAppOrigin} from '@salesforce/retail-react-app/app/hooks/use-app-origin'
export const LOGIN_VIEW = 'login'
export const REGISTER_VIEW = 'register'
@@ -87,12 +87,13 @@ export const AuthModal = ({
const login = useAuthHelper(AuthHelpers.LoginRegisteredUserB2C)
const register = useAuthHelper(AuthHelpers.Register)
const appOrigin = useAppOrigin()
+ const config = getConfig()
const [loginType, setLoginType] = useState(LOGIN_TYPES.PASSWORD)
const [passwordlessLoginEmail, setPasswordlessLoginEmail] = useState(initialEmail)
const {getPasswordResetToken} = usePasswordReset()
const authorizePasswordlessLogin = useAuthHelper(AuthHelpers.AuthorizePasswordless)
- const passwordlessConfigCallback = getConfig().app.login?.passwordless?.callbackURI
+ const passwordlessConfigCallback = config.login?.passwordless?.callbackURI
const callbackURL = isAbsoluteURL(passwordlessConfigCallback)
? passwordlessConfigCallback
: `${appOrigin}${passwordlessConfigCallback}`
@@ -361,7 +362,8 @@ AuthModal.propTypes = {
*/
export const useAuthModal = (initialView = LOGIN_VIEW) => {
const {isOpen, onOpen, onClose} = useDisclosure()
- const {passwordless = {}, social = {}} = getConfig().app.login || {}
+ const {login} = getConfig()
+ const {passwordless = {}, social = {}} = login
return {
initialView,
diff --git a/packages/template-retail-react-app/app/hooks/use-auth-modal.test.js b/packages/template-chakra-storefront/src/hooks/use-auth-modal.test.js
similarity index 97%
rename from packages/template-retail-react-app/app/hooks/use-auth-modal.test.js
rename to packages/template-chakra-storefront/src/hooks/use-auth-modal.test.js
index 8c5a8775e4..a9c13b4f75 100644
--- a/packages/template-retail-react-app/app/hooks/use-auth-modal.test.js
+++ b/packages/template-chakra-storefront/src/hooks/use-auth-modal.test.js
@@ -6,18 +6,14 @@
*/
import React from 'react'
import PropTypes from 'prop-types'
-import {screen, within, waitFor} from '@testing-library/react'
+import {act, screen, within, waitFor} from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-import {
- renderWithProviders,
- createPathWithDefaults,
- guestToken
-} from '@salesforce/retail-react-app/app/utils/test-utils'
-import {AuthModal, useAuthModal} from '@salesforce/retail-react-app/app/hooks/use-auth-modal'
+import {renderWithProviders, createPathWithDefaults, guestToken} from '../utils/test-utils'
+import {AuthModal, useAuthModal} from './use-auth-modal'
import {BrowserRouter as Router, Route} from 'react-router-dom'
-import Account from '@salesforce/retail-react-app/app/pages/account'
+import Account from '../pages/account'
import {rest} from 'msw'
-import {mockedRegisteredCustomer} from '@salesforce/retail-react-app/app/mocks/mock-data'
+import {mockedRegisteredCustomer} from '../../mocks/mock-data'
import * as ReactHookForm from 'react-hook-form'
import {AuthHelpers} from '@salesforce/commerce-sdk-react'
@@ -192,20 +188,25 @@ describe('Passwordless enabled', () => {
// open the modal
const trigger = screen.getByText(/open modal/i)
- await user.click(trigger)
+ await act(async () => {
+ await user.click(trigger)
+ })
await waitFor(() => {
expect(screen.getByText(/continue securely/i)).toBeInTheDocument()
})
// enter a valid email address
- await user.type(screen.getByLabelText('Email'), validEmail)
+ await act(async () => {
+ await user.type(screen.getByLabelText('Email'), validEmail)
+ })
// initiate passwordless login
const passwordlessLoginButton = screen.getByText(/continue securely/i)
// Click the button twice as the isPasswordlessLoginClicked state doesn't change after the first click
await user.click(passwordlessLoginButton)
await user.click(passwordlessLoginButton)
+
expect(
mockAuthHelperFunctions[AuthHelpers.AuthorizePasswordless].mutateAsync
).toHaveBeenCalledWith({
diff --git a/packages/template-retail-react-app/app/hooks/use-currency.js b/packages/template-chakra-storefront/src/hooks/use-currency.js
similarity index 89%
rename from packages/template-retail-react-app/app/hooks/use-currency.js
rename to packages/template-chakra-storefront/src/hooks/use-currency.js
index eb27a3f5f5..5527d8c6f2 100644
--- a/packages/template-retail-react-app/app/hooks/use-currency.js
+++ b/packages/template-chakra-storefront/src/hooks/use-currency.js
@@ -5,7 +5,7 @@
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
import {useContext} from 'react'
-import {CurrencyContext} from '@salesforce/retail-react-app/app/contexts'
+import {CurrencyContext} from '../contexts'
/**
* Custom React hook to get the currency for the active locale and to change it to a different currency
diff --git a/packages/template-retail-react-app/app/hooks/use-currency.test.js b/packages/template-chakra-storefront/src/hooks/use-currency.test.js
similarity index 82%
rename from packages/template-retail-react-app/app/hooks/use-currency.test.js
rename to packages/template-chakra-storefront/src/hooks/use-currency.test.js
index 5fbee02510..99eb28c695 100644
--- a/packages/template-retail-react-app/app/hooks/use-currency.test.js
+++ b/packages/template-chakra-storefront/src/hooks/use-currency.test.js
@@ -7,9 +7,9 @@
import React from 'react'
import {renderHook} from '@testing-library/react'
-import {useCurrency} from '@salesforce/retail-react-app/app/hooks/use-currency'
-import {CurrencyProvider} from '@salesforce/retail-react-app/app/contexts'
-import {DEFAULT_CURRENCY} from '@salesforce/retail-react-app/app/constants'
+import {useCurrency} from './use-currency'
+import {CurrencyProvider} from '../contexts'
+import {DEFAULT_CURRENCY} from '../../config/constants'
const wrapper = ({children}) => {children}
diff --git a/packages/template-retail-react-app/app/hooks/use-current-basket.js b/packages/template-chakra-storefront/src/hooks/use-current-basket.js
similarity index 95%
rename from packages/template-retail-react-app/app/hooks/use-current-basket.js
rename to packages/template-chakra-storefront/src/hooks/use-current-basket.js
index 559060eee4..42c4d85025 100644
--- a/packages/template-retail-react-app/app/hooks/use-current-basket.js
+++ b/packages/template-chakra-storefront/src/hooks/use-current-basket.js
@@ -5,7 +5,7 @@
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
import {useCustomerId, useCustomerBaskets} from '@salesforce/commerce-sdk-react'
-import {isServer} from '@salesforce/retail-react-app/app/utils/utils'
+import {isServer} from '../utils/utils'
/**
* This hook combine some commerce-react-sdk hooks to provide more derived data for Retail App baskets
diff --git a/packages/template-retail-react-app/app/hooks/use-current-basket.test.js b/packages/template-chakra-storefront/src/hooks/use-current-basket.test.js
similarity index 86%
rename from packages/template-retail-react-app/app/hooks/use-current-basket.test.js
rename to packages/template-chakra-storefront/src/hooks/use-current-basket.test.js
index faa7bd23ca..761f0fbc77 100644
--- a/packages/template-retail-react-app/app/hooks/use-current-basket.test.js
+++ b/packages/template-chakra-storefront/src/hooks/use-current-basket.test.js
@@ -7,11 +7,17 @@
import React from 'react'
import {screen} from '@testing-library/react'
-import {useCurrentBasket} from '@salesforce/retail-react-app/app/hooks/use-current-basket'
-import {renderWithProviders} from '@salesforce/retail-react-app/app/utils/test-utils'
+import {useCurrentBasket} from './use-current-basket'
+import {renderWithProviders} from '../utils/test-utils'
import {useCustomerBaskets} from '@salesforce/commerce-sdk-react'
-import {mockCustomerBaskets} from '@salesforce/retail-react-app/app/mocks/mock-data'
-
+import {mockCustomerBaskets} from '../../mocks/mock-data'
+jest.mock('@salesforce/pwa-kit-runtime/utils/ssr-config', () => {
+ const original = jest.requireActual('@salesforce/pwa-kit-runtime/utils/ssr-config')
+ return {
+ ...original,
+ getConfig: jest.fn(() => require('../../mock-config'))
+ }
+})
const MOCK_USE_QUERY_RESULT = {
data: undefined,
dataUpdatedAt: 0,
diff --git a/packages/template-retail-react-app/app/hooks/use-current-customer.js b/packages/template-chakra-storefront/src/hooks/use-current-customer.js
similarity index 100%
rename from packages/template-retail-react-app/app/hooks/use-current-customer.js
rename to packages/template-chakra-storefront/src/hooks/use-current-customer.js
diff --git a/packages/template-retail-react-app/app/hooks/use-datacloud.js b/packages/template-chakra-storefront/src/hooks/use-datacloud.js
similarity index 97%
rename from packages/template-retail-react-app/app/hooks/use-datacloud.js
rename to packages/template-chakra-storefront/src/hooks/use-datacloud.js
index 007d16cfd4..b30eaba504 100644
--- a/packages/template-retail-react-app/app/hooks/use-datacloud.js
+++ b/packages/template-chakra-storefront/src/hooks/use-datacloud.js
@@ -6,12 +6,12 @@
*/
import {useMemo} from 'react'
import Cookies from 'js-cookie'
-import logger from '@salesforce/retail-react-app/app/utils/logger-instance'
+import logger from '../utils/logger-instance'
import {initDataCloudSdk} from '@salesforce/cc-datacloud-typescript'
-import {getConfig} from '@salesforce/pwa-kit-runtime/utils/ssr-config'
import {useUsid, useCustomerType, useDNT} from '@salesforce/commerce-sdk-react'
-import useMultiSite from '@salesforce/retail-react-app/app/hooks/use-multi-site'
-import {useCurrentCustomer} from '@salesforce/retail-react-app/app/hooks/use-current-customer'
+import useMultiSite from './use-multi-site'
+import {useCurrentCustomer} from './use-current-customer'
+import {getConfig} from '@salesforce/pwa-kit-runtime/utils/ssr-config'
export class DataCloudApi {
constructor({siteId, appSourceId, tenantId, dnt}) {
@@ -436,10 +436,8 @@ const useDataCloud = () => {
}
}
- // Grab Data Cloud configuration values and intialize the sdk
- const {
- app: {dataCloudAPI: config}
- } = getConfig()
+ // Grab Data Cloud configuration values and initialize the sdk
+ const {dataCloudAPI: config} = getConfig()
const {appSourceId, tenantId} = config
diff --git a/packages/template-retail-react-app/app/hooks/use-datacloud.test.js b/packages/template-chakra-storefront/src/hooks/use-datacloud.test.js
similarity index 55%
rename from packages/template-retail-react-app/app/hooks/use-datacloud.test.js
rename to packages/template-chakra-storefront/src/hooks/use-datacloud.test.js
index 8d8427f5eb..6b33d72175 100644
--- a/packages/template-retail-react-app/app/hooks/use-datacloud.test.js
+++ b/packages/template-chakra-storefront/src/hooks/use-datacloud.test.js
@@ -5,10 +5,12 @@
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
-import React from 'react'
-import {renderHook, waitFor} from '@testing-library/react'
-import useDataCloud from '@salesforce/retail-react-app/app/hooks/use-datacloud'
-import {useCurrentCustomer} from '@salesforce/retail-react-app/app/hooks/use-current-customer'
+import React, {useEffect} from 'react'
+import PropTypes from 'prop-types'
+import Cookies from 'js-cookie'
+import {waitFor} from '@testing-library/react'
+import useDataCloud from './use-datacloud'
+import {useCurrentCustomer} from './use-current-customer'
import {useDNT} from '@salesforce/commerce-sdk-react'
import {
mockLoginViewPageEvent,
@@ -21,29 +23,14 @@ import {
mockCategorySearchParams,
mockRecommendationIds,
mockLoginViewPageEventDNT
-} from '@salesforce/retail-react-app/app/mocks/datacloud-mock-data'
+} from '../../mocks/datacloud-mock-data'
import {
mockProduct,
mockCategory,
mockSearchResults,
mockRecommenderDetails
-} from '@salesforce/retail-react-app/app/hooks/einstein-mock-data'
-
-const dataCloudConfig = {
- app: {
- dataCloudAPI: {
- appSourceId: '6ebc532a-2247-48e9-8300-d8c2b84eb463',
- tenantId: 'mvst0mlfmrsd8zbwg8zgmytbg1'
- },
- defaultSite: 'test-site'
- }
-}
-
-jest.mock('@salesforce/pwa-kit-runtime/utils/ssr-config', () => {
- return {
- getConfig: jest.fn(() => dataCloudConfig)
- }
-})
+} from './einstein-mock-data'
+import {renderWithProviders} from '../utils/test-utils'
jest.mock('@salesforce/commerce-sdk-react', () => {
const originalModule = jest.requireActual('@salesforce/commerce-sdk-react')
@@ -65,7 +52,7 @@ jest.mock('@salesforce/commerce-sdk-react', () => {
}
})
-jest.mock('@salesforce/retail-react-app/app/hooks/use-current-customer', () => ({
+jest.mock('./use-current-customer', () => ({
useCurrentCustomer: jest.fn(() => {
return {
data: {
@@ -77,9 +64,9 @@ jest.mock('@salesforce/retail-react-app/app/hooks/use-current-customer', () => (
}
})
}))
-jest.mock('js-cookie', () => ({
- get: jest.fn(() => 'mockCookieValue')
-}))
+
+jest.mock('js-cookie')
+
const mockWebEventsAppSourceIdPost = jest.fn()
jest.mock('@salesforce/cc-datacloud-typescript', () => {
return {
@@ -91,17 +78,41 @@ jest.mock('@salesforce/cc-datacloud-typescript', () => {
}
})
-const mockUseContext = jest.fn().mockImplementation(() => ({site: {id: 'RefArch'}}))
-React.useContext = mockUseContext
+const MockComponent = ({event, args}) => {
+ const dataCloud = useDataCloud()
+
+ // Trigger configured event on mount.
+ useEffect(() => {
+ dataCloud[event](...args)
+ }, [])
+
+ return <>>
+}
+
+MockComponent.propTypes = {
+ event: PropTypes.string,
+ args: PropTypes.array
+}
+
describe('useDataCloud', function () {
+ beforeAll(() => {
+ Cookies.get.mockImplementation((key) => {
+ return key === 'sid' ? 'mocked-sessionId' : undefined
+ })
+ })
beforeEach(() => {
jest.clearAllMocks()
})
test('sendViewPage', async () => {
- const {result} = renderHook(() => useDataCloud())
- expect(result.current).toBeDefined()
- result.current.sendViewPage('/login')
+ renderWithProviders( , {
+ wrapperProps: {
+ site: {
+ id: 'RefArch'
+ }
+ }
+ })
+
await waitFor(() => {
expect(mockWebEventsAppSourceIdPost).toHaveBeenCalledWith(mockLoginViewPageEvent)
})
@@ -111,18 +122,27 @@ describe('useDataCloud', function () {
useDNT.mockReturnValueOnce({
effectiveDnt: true
})
- const {result} = renderHook(() => useDataCloud())
- expect(result.current).toBeDefined()
- result.current.sendViewPage('/login')
+ renderWithProviders( , {
+ wrapperProps: {
+ site: {
+ id: 'RefArch'
+ }
+ }
+ })
await waitFor(() => {
expect(mockWebEventsAppSourceIdPost).toHaveBeenCalledWith(mockLoginViewPageEventDNT)
})
})
test('sendViewProduct', async () => {
- const {result} = renderHook(() => useDataCloud())
- expect(result.current).toBeDefined()
- result.current.sendViewProduct(mockProduct)
+ renderWithProviders( , {
+ wrapperProps: {
+ site: {
+ id: 'RefArch'
+ }
+ }
+ })
+
await waitFor(() => {
expect(mockWebEventsAppSourceIdPost).toHaveBeenCalledWith(mockViewProductEvent)
})
@@ -136,27 +156,61 @@ describe('useDataCloud', function () {
lastName: 'Smith'
}
})
- const {result} = renderHook(() => useDataCloud())
- expect(result.current).toBeDefined()
- result.current.sendViewCategory(mockCategorySearchParams, mockCategory, mockSearchResults)
+
+ renderWithProviders(
+ ,
+ {
+ wrapperProps: {
+ site: {
+ id: 'RefArch'
+ }
+ }
+ }
+ )
+
await waitFor(() => {
expect(mockWebEventsAppSourceIdPost).toHaveBeenCalledWith(mockViewCategoryEvent)
})
})
test('sendViewSearchResults with no email', async () => {
- const {result} = renderHook(() => useDataCloud())
- expect(result.current).toBeDefined()
- result.current.sendViewSearchResults(mockSearchParam, mockGloveSearchResult)
+ renderWithProviders(
+ ,
+ {
+ wrapperProps: {
+ site: {
+ id: 'RefArch'
+ }
+ }
+ }
+ )
+
await waitFor(() => {
expect(mockWebEventsAppSourceIdPost).toHaveBeenCalledWith(mockViewSearchResultsEvent)
})
})
test('sendViewRecommendations with non email', async () => {
- const {result} = renderHook(() => useDataCloud())
- expect(result.current).toBeDefined()
- result.current.sendViewRecommendations(mockRecommenderDetails, mockRecommendationIds)
+ renderWithProviders(
+ ,
+ {
+ wrapperProps: {
+ site: {
+ id: 'RefArch'
+ }
+ }
+ }
+ )
+
await waitFor(() => {
expect(mockWebEventsAppSourceIdPost).toHaveBeenCalledWith(mockViewRecommendationsEvent)
})
diff --git a/packages/template-retail-react-app/app/hooks/use-derived-product.js b/packages/template-chakra-storefront/src/hooks/use-derived-product.js
similarity index 93%
rename from packages/template-retail-react-app/app/hooks/use-derived-product.js
rename to packages/template-chakra-storefront/src/hooks/use-derived-product.js
index 664183e887..3fc95d40fc 100644
--- a/packages/template-retail-react-app/app/hooks/use-derived-product.js
+++ b/packages/template-chakra-storefront/src/hooks/use-derived-product.js
@@ -6,10 +6,10 @@
*/
import {useEffect, useState} from 'react'
-import {useVariant} from '@salesforce/retail-react-app/app/hooks/use-variant'
+import {useVariant} from './use-variant'
import {useIntl} from 'react-intl'
-import {useVariationParams} from '@salesforce/retail-react-app/app/hooks/use-variation-params'
-import {useVariationAttributes} from '@salesforce/retail-react-app/app/hooks/use-variation-attributes'
+import {useVariationParams} from './use-variation-params'
+import {useVariationAttributes} from './use-variation-attributes'
const OUT_OF_STOCK = 'OUT_OF_STOCK'
const UNFULFILLABLE = 'UNFULFILLABLE'
diff --git a/packages/template-retail-react-app/app/hooks/use-derived-product.test.js b/packages/template-chakra-storefront/src/hooks/use-derived-product.test.js
similarity index 87%
rename from packages/template-retail-react-app/app/hooks/use-derived-product.test.js
rename to packages/template-chakra-storefront/src/hooks/use-derived-product.test.js
index 8feeddbd9a..9f151fa1bf 100644
--- a/packages/template-retail-react-app/app/hooks/use-derived-product.test.js
+++ b/packages/template-chakra-storefront/src/hooks/use-derived-product.test.js
@@ -10,9 +10,9 @@ import PropTypes from 'prop-types'
import {screen} from '@testing-library/react'
import {createMemoryHistory} from 'history'
-import {useDerivedProduct} from '@salesforce/retail-react-app/app/hooks/use-derived-product'
-import mockProductDetail from '@salesforce/retail-react-app/app/mocks/variant-750518699578M'
-import {renderWithProviders} from '@salesforce/retail-react-app/app/utils/test-utils'
+import {useDerivedProduct} from './use-derived-product'
+import mockProductDetail from '../../mocks/variant-750518699578M'
+import {renderWithProviders} from '../utils/test-utils'
const MockComponent = ({product}) => {
const {inventoryMessage, quantity, variationParams, variant} = useDerivedProduct(product)
diff --git a/packages/template-retail-react-app/app/hooks/use-dnt-notification.js b/packages/template-chakra-storefront/src/hooks/use-dnt-notification.js
similarity index 97%
rename from packages/template-retail-react-app/app/hooks/use-dnt-notification.js
rename to packages/template-chakra-storefront/src/hooks/use-dnt-notification.js
index 92ba1ae747..a5ef310f4e 100644
--- a/packages/template-retail-react-app/app/hooks/use-dnt-notification.js
+++ b/packages/template-chakra-storefront/src/hooks/use-dnt-notification.js
@@ -19,8 +19,8 @@ import {
Text,
Box,
Flex
-} from '@salesforce/retail-react-app/app/components/shared/ui'
-import {HideOnDesktop, HideOnMobile} from '@salesforce/retail-react-app/app/components/responsive'
+} from '@chakra-ui/react'
+import {HideOnDesktop, HideOnMobile} from '../components/responsive'
import {useDNT} from '@salesforce/commerce-sdk-react'
import {useLocation} from 'react-router-dom'
diff --git a/packages/template-retail-react-app/app/hooks/use-dnt-notification.test.js b/packages/template-chakra-storefront/src/hooks/use-dnt-notification.test.js
similarity index 91%
rename from packages/template-retail-react-app/app/hooks/use-dnt-notification.test.js
rename to packages/template-chakra-storefront/src/hooks/use-dnt-notification.test.js
index e81c35a2de..fa332f2df3 100644
--- a/packages/template-retail-react-app/app/hooks/use-dnt-notification.test.js
+++ b/packages/template-chakra-storefront/src/hooks/use-dnt-notification.test.js
@@ -6,11 +6,8 @@
*/
import React from 'react'
import {screen, waitFor} from '@testing-library/react'
-import {renderWithProviders} from '@salesforce/retail-react-app/app/utils/test-utils'
-import {
- DntNotification,
- useDntNotification
-} from '@salesforce/retail-react-app/app/hooks/use-dnt-notification'
+import {renderWithProviders} from '../utils/test-utils'
+import {DntNotification, useDntNotification} from './use-dnt-notification'
const mockUpdateDNT = jest.fn()
jest.mock('@salesforce/commerce-sdk-react', () => {
diff --git a/packages/template-retail-react-app/app/hooks/use-einstein.js b/packages/template-chakra-storefront/src/hooks/use-einstein.js
similarity index 98%
rename from packages/template-retail-react-app/app/hooks/use-einstein.js
rename to packages/template-chakra-storefront/src/hooks/use-einstein.js
index e7f6d1a6bd..13e30d9be1 100644
--- a/packages/template-retail-react-app/app/hooks/use-einstein.js
+++ b/packages/template-chakra-storefront/src/hooks/use-einstein.js
@@ -5,7 +5,7 @@
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
import {useMemo, useState} from 'react'
-import {getConfig} from '@salesforce/pwa-kit-runtime/utils/ssr-config'
+
import {
useCommerceApi,
useAccessToken,
@@ -14,8 +14,9 @@ import {
useCustomerType,
useDNT
} from '@salesforce/commerce-sdk-react'
-import {keysToCamel} from '@salesforce/retail-react-app/app/utils/utils'
-import logger from '@salesforce/retail-react-app/app/utils/logger-instance'
+import {getConfig} from '@salesforce/pwa-kit-runtime/utils/ssr-config'
+import {keysToCamel} from '../utils/utils'
+import logger from '../utils/logger-instance'
export class EinsteinAPI {
constructor({host, einsteinId, siteId, isProduction, dnt}) {
@@ -394,9 +395,7 @@ const useEinstein = () => {
const api = useCommerceApi()
const {effectiveDnt} = useDNT()
const {getTokenWhenReady} = useAccessToken()
- const {
- app: {einsteinAPI: config}
- } = getConfig()
+ const {einsteinAPI: config} = getConfig()
const {host, einsteinId, siteId, isProduction} = config
const {getUsidWhenReady} = useUsid()
diff --git a/packages/template-retail-react-app/app/hooks/use-einstein.test.js b/packages/template-chakra-storefront/src/hooks/use-einstein.test.js
similarity index 98%
rename from packages/template-retail-react-app/app/hooks/use-einstein.test.js
rename to packages/template-chakra-storefront/src/hooks/use-einstein.test.js
index c8c5abfcf2..71609801aa 100644
--- a/packages/template-retail-react-app/app/hooks/use-einstein.test.js
+++ b/packages/template-chakra-storefront/src/hooks/use-einstein.test.js
@@ -4,7 +4,7 @@
* SPDX-License-Identifier: BSD-3-Clause
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
-import {EinsteinAPI} from '@salesforce/retail-react-app/app/hooks/use-einstein'
+import {EinsteinAPI} from './use-einstein'
import {
mockAddToCartProduct,
mockProduct,
@@ -13,7 +13,7 @@ import {
mockBasket,
mockRecommenderDetails,
mockNoSearchResults
-} from '@salesforce/retail-react-app/app/hooks/einstein-mock-data'
+} from './einstein-mock-data'
import fetchMock from 'jest-fetch-mock'
const einsteinApi = new EinsteinAPI({
diff --git a/packages/template-retail-react-app/app/hooks/use-intersection-observer.js b/packages/template-chakra-storefront/src/hooks/use-intersection-observer.js
similarity index 100%
rename from packages/template-retail-react-app/app/hooks/use-intersection-observer.js
rename to packages/template-chakra-storefront/src/hooks/use-intersection-observer.js
diff --git a/packages/template-retail-react-app/app/hooks/use-limit-urls.js b/packages/template-chakra-storefront/src/hooks/use-limit-urls.js
similarity index 60%
rename from packages/template-retail-react-app/app/hooks/use-limit-urls.js
rename to packages/template-chakra-storefront/src/hooks/use-limit-urls.js
index 27d785f10b..118c19c7a0 100644
--- a/packages/template-retail-react-app/app/hooks/use-limit-urls.js
+++ b/packages/template-chakra-storefront/src/hooks/use-limit-urls.js
@@ -8,11 +8,9 @@
import {useMemo} from 'react'
import {useLocation} from 'react-router-dom'
-// Constants
-import {DEFAULT_LIMIT_VALUES} from '@salesforce/retail-react-app/app/constants'
-
// Utils
-import {buildUrlSet} from '@salesforce/retail-react-app/app/utils/url'
+import {buildUrlSet} from '../utils/url'
+import {getConfig} from '@salesforce/pwa-kit-runtime/utils/ssr-config'
/*
* Generate a memoized list of page size urls. Chaning the page size will reset
@@ -20,12 +18,17 @@ import {buildUrlSet} from '@salesforce/retail-react-app/app/utils/url'
*/
export const useLimitUrls = () => {
const location = useLocation()
-
+ const {search: searchConfig} = getConfig()
return useMemo(
() =>
- buildUrlSet(`${location.pathname}${location.search}`, 'limit', DEFAULT_LIMIT_VALUES, {
- offset: 0
- }),
+ buildUrlSet(
+ `${location.pathname}${location.search}`,
+ 'limit',
+ searchConfig.defaultLimitValues,
+ {
+ offset: 0
+ }
+ ),
[location.search, location.pathname]
)
}
diff --git a/packages/template-retail-react-app/app/hooks/use-limit-urls.test.js b/packages/template-chakra-storefront/src/hooks/use-limit-urls.test.js
similarity index 68%
rename from packages/template-retail-react-app/app/hooks/use-limit-urls.test.js
rename to packages/template-chakra-storefront/src/hooks/use-limit-urls.test.js
index 69d1c1e8ed..631c414166 100644
--- a/packages/template-retail-react-app/app/hooks/use-limit-urls.test.js
+++ b/packages/template-chakra-storefront/src/hooks/use-limit-urls.test.js
@@ -6,12 +6,18 @@
*/
import React from 'react'
-import {Router} from 'react-router'
+import {Router} from 'react-router-dom'
-import {render} from '@testing-library/react'
import {createMemoryHistory} from 'history'
-import {useLimitUrls} from '@salesforce/retail-react-app/app/hooks/use-limit-urls'
-
+import {useLimitUrls} from './use-limit-urls'
+import {renderWithProviders} from '../utils/test-utils'
+jest.mock('@salesforce/pwa-kit-runtime/utils/ssr-config', () => {
+ const original = jest.requireActual('@salesforce/pwa-kit-runtime/utils/ssr-config')
+ return {
+ ...original,
+ getConfig: jest.fn(() => require('../../mock-config'))
+ }
+})
const MockComponent = () => {
const urls = useLimitUrls()
@@ -27,7 +33,7 @@ describe('The useLimitUrls', () => {
const history = createMemoryHistory()
history.push('/test/path')
- const wrapper = render(
+ const wrapper = renderWithProviders(
diff --git a/packages/template-retail-react-app/app/hooks/use-multi-site.js b/packages/template-chakra-storefront/src/hooks/use-multi-site.js
similarity index 93%
rename from packages/template-retail-react-app/app/hooks/use-multi-site.js
rename to packages/template-chakra-storefront/src/hooks/use-multi-site.js
index bddcf1ccc5..d7ece3893f 100644
--- a/packages/template-retail-react-app/app/hooks/use-multi-site.js
+++ b/packages/template-chakra-storefront/src/hooks/use-multi-site.js
@@ -6,7 +6,7 @@
*/
import {useCallback, useContext} from 'react'
-import {MultiSiteContext} from '@salesforce/retail-react-app/app/contexts'
+import {MultiSiteContext} from '../contexts'
/**
* Custom React hook to get the function that returns usefule multi-site values, the site, the locale and
diff --git a/packages/template-retail-react-app/app/hooks/use-multi-site.test.js b/packages/template-chakra-storefront/src/hooks/use-multi-site.test.js
similarity index 78%
rename from packages/template-retail-react-app/app/hooks/use-multi-site.test.js
rename to packages/template-chakra-storefront/src/hooks/use-multi-site.test.js
index bc3e54b2e2..295fb820e9 100644
--- a/packages/template-retail-react-app/app/hooks/use-multi-site.test.js
+++ b/packages/template-chakra-storefront/src/hooks/use-multi-site.test.js
@@ -7,10 +7,10 @@
import React from 'react'
import {renderHook} from '@testing-library/react'
-import useMultiSite from '@salesforce/retail-react-app/app/hooks/use-multi-site'
-import {MultiSiteProvider} from '@salesforce/retail-react-app/app/contexts'
-import mockConfig from '@salesforce/retail-react-app/config/mocks/default'
-import {DEFAULT_LOCALE} from '@salesforce/retail-react-app/app/utils/test-utils'
+import useMultiSite from './use-multi-site'
+import {MultiSiteProvider} from '../contexts'
+import mockConfig from '../../mock-config'
+import {DEFAULT_LOCALE} from '../utils/test-utils'
const wrapper = ({children}) => {children}
@@ -21,7 +21,7 @@ beforeEach(() => {
})
const site = {
- ...mockConfig.app.sites[0],
+ ...mockConfig.sites[0],
alias: 'uk'
}
diff --git a/packages/template-retail-react-app/app/hooks/use-navigation.js b/packages/template-chakra-storefront/src/hooks/use-navigation.js
similarity index 85%
rename from packages/template-retail-react-app/app/hooks/use-navigation.js
rename to packages/template-chakra-storefront/src/hooks/use-navigation.js
index 6be14234bc..55e01049c5 100644
--- a/packages/template-retail-react-app/app/hooks/use-navigation.js
+++ b/packages/template-chakra-storefront/src/hooks/use-navigation.js
@@ -5,9 +5,9 @@
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
import {useCallback} from 'react'
-import {useHistory} from 'react-router'
-import useMultiSite from '@salesforce/retail-react-app/app/hooks/use-multi-site'
-import {removeSiteLocaleFromPath} from '@salesforce/retail-react-app/app/utils/url'
+import {useHistory} from 'react-router-dom'
+import useMultiSite from './use-multi-site'
+import {removeSiteLocaleFromPath} from '../utils/url'
/**
* A convenience hook for programmatic navigation uses history's `push` or `replace`. The proper locale
diff --git a/packages/template-retail-react-app/app/hooks/use-navigation.test.js b/packages/template-chakra-storefront/src/hooks/use-navigation.test.js
similarity index 72%
rename from packages/template-retail-react-app/app/hooks/use-navigation.test.js
rename to packages/template-chakra-storefront/src/hooks/use-navigation.test.js
index f35edc733b..c7509edfe4 100644
--- a/packages/template-retail-react-app/app/hooks/use-navigation.test.js
+++ b/packages/template-chakra-storefront/src/hooks/use-navigation.test.js
@@ -6,22 +6,15 @@
*/
import React from 'react'
import userEvent from '@testing-library/user-event'
-import useNavigation from '@salesforce/retail-react-app/app/hooks/use-navigation'
-import mockConfig from '@salesforce/retail-react-app/config/mocks/default'
-import {renderWithProviders} from '@salesforce/retail-react-app/app/utils/test-utils'
-import {getConfig} from '@salesforce/pwa-kit-runtime/utils/ssr-config'
-
-jest.mock('@salesforce/pwa-kit-runtime/utils/ssr-config', () => {
- return {
- getConfig: jest.fn()
- }
-})
+import useNavigation from './use-navigation'
+import mockConfig from '../../mock-config'
+import {renderWithProviders} from '../utils/test-utils'
const mockHistoryPush = jest.fn()
const mockHistoryReplace = jest.fn()
-jest.mock('react-router', () => {
- const original = jest.requireActual('react-router')
+jest.mock('react-router-dom', () => {
+ const original = jest.requireActual('react-router-dom')
return {
...original,
@@ -52,58 +45,52 @@ const TestComponent = () => {
test('prepends locale and site and calls history.push', async () => {
const user = userEvent.setup()
-
- getConfig.mockImplementation(() => mockConfig)
const {getByTestId} = renderWithProviders( , {
wrapperProps: {siteAlias: 'uk', appConfig: mockConfig.app}
})
+
await user.click(getByTestId('page1-link'))
+
expect(mockHistoryPush).toHaveBeenCalledWith('/uk/en-GB/page1')
})
test('append locale as path and site as query and calls history.push', async () => {
const user = userEvent.setup()
-
const newConfig = {
...mockConfig,
- app: {
- ...mockConfig.app,
- url: {
- locale: 'path',
- site: 'query_param',
- showDefaults: true
- }
+ url: {
+ locale: 'path',
+ site: 'query_param',
+ showDefaults: true
}
}
- getConfig.mockImplementation(() => newConfig)
const {getByTestId} = renderWithProviders( , {
- wrapperProps: {siteAlias: 'uk', appConfig: newConfig.app}
+ wrapperProps: {siteAlias: 'uk', config: newConfig}
})
+
await user.click(getByTestId('page1-link'))
+
expect(mockHistoryPush).toHaveBeenCalledWith('/en-GB/page1?site=uk')
})
test('works for any history method and args', async () => {
const user = userEvent.setup()
-
- getConfig.mockImplementation(() => mockConfig)
-
const {getByTestId} = renderWithProviders( , {
wrapperProps: {siteAlias: 'uk', appConfig: mockConfig.app}
})
await user.click(getByTestId('page2-link'))
+
expect(mockHistoryReplace).toHaveBeenCalledWith('/uk/en-GB/page2', {})
})
test('if given the path to root or homepage, will not prepend the locale', async () => {
const user = userEvent.setup()
-
- getConfig.mockImplementation(() => mockConfig)
-
const {getByTestId} = renderWithProviders( , {
wrapperProps: {siteAlias: 'us', locale: 'en-US'}
})
+
await user.click(getByTestId('page4-link'))
+
expect(mockHistoryPush).toHaveBeenCalledWith('/')
})
diff --git a/packages/template-retail-react-app/app/hooks/use-page-urls.js b/packages/template-chakra-storefront/src/hooks/use-page-urls.js
similarity index 85%
rename from packages/template-retail-react-app/app/hooks/use-page-urls.js
rename to packages/template-chakra-storefront/src/hooks/use-page-urls.js
index 608f95b588..9284ce1141 100644
--- a/packages/template-retail-react-app/app/hooks/use-page-urls.js
+++ b/packages/template-chakra-storefront/src/hooks/use-page-urls.js
@@ -9,10 +9,10 @@ import {useMemo} from 'react'
import {useLocation} from 'react-router-dom'
// Utils
-import {buildUrlSet} from '@salesforce/retail-react-app/app/utils/url'
+import {buildUrlSet} from '../utils/url'
// Hooks
-import {useSearchParams} from '@salesforce/retail-react-app/app/hooks/use-search-params'
+import {useSearchParams} from './use-search-params'
/*
* Generate a memoized list of page size urls. Chaning the page size will reset
diff --git a/packages/template-retail-react-app/app/hooks/use-page-urls.test.js b/packages/template-chakra-storefront/src/hooks/use-page-urls.test.js
similarity index 70%
rename from packages/template-retail-react-app/app/hooks/use-page-urls.test.js
rename to packages/template-chakra-storefront/src/hooks/use-page-urls.test.js
index 412ce31cc2..d7da5541d4 100644
--- a/packages/template-retail-react-app/app/hooks/use-page-urls.test.js
+++ b/packages/template-chakra-storefront/src/hooks/use-page-urls.test.js
@@ -5,12 +5,18 @@
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
import React from 'react'
-import {Router} from 'react-router'
+import {Router} from 'react-router-dom'
-import {render} from '@testing-library/react'
import {createMemoryHistory} from 'history'
-import {usePageUrls} from '@salesforce/retail-react-app/app/hooks/use-page-urls'
-
+import {usePageUrls} from './use-page-urls'
+import {renderWithProviders} from '../utils/test-utils'
+jest.mock('@salesforce/pwa-kit-runtime/utils/ssr-config', () => {
+ const original = jest.requireActual('@salesforce/pwa-kit-runtime/utils/ssr-config')
+ return {
+ ...original,
+ getConfig: jest.fn(() => require('../../mock-config'))
+ }
+})
const MockComponent = () => {
const urls = usePageUrls({total: 100})
@@ -26,7 +32,7 @@ describe('The usePageUrls', () => {
const history = createMemoryHistory()
history.push('/test/path?limit=25')
- const wrapper = render(
+ const wrapper = renderWithProviders(
diff --git a/packages/template-retail-react-app/app/hooks/use-password-reset.js b/packages/template-chakra-storefront/src/hooks/use-password-reset.js
similarity index 85%
rename from packages/template-retail-react-app/app/hooks/use-password-reset.js
rename to packages/template-chakra-storefront/src/hooks/use-password-reset.js
index 5348a21459..0a835523f1 100644
--- a/packages/template-retail-react-app/app/hooks/use-password-reset.js
+++ b/packages/template-chakra-storefront/src/hooks/use-password-reset.js
@@ -5,11 +5,11 @@
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
import {AuthHelpers, useAuthHelper} from '@salesforce/commerce-sdk-react'
-import {useToast} from '@salesforce/retail-react-app/app/hooks/use-toast'
+import {useToast} from './use-toast'
import {useIntl} from 'react-intl'
-import {useAppOrigin} from '@salesforce/retail-react-app/app/hooks/use-app-origin'
+import {useAppOrigin} from './use-app-origin'
import {getConfig} from '@salesforce/pwa-kit-runtime/utils/ssr-config'
-import {isAbsoluteURL} from '@salesforce/retail-react-app/app/page-designer/utils'
+import {isAbsoluteURL} from '../page-designer/utils'
/**
* This hook provides commerce-react-sdk hooks to simplify the reset password flow.
@@ -20,7 +20,7 @@ export const usePasswordReset = () => {
const appOrigin = useAppOrigin()
const config = getConfig()
const resetPasswordCallback =
- config.app.login?.resetPassword?.callbackURI || '/reset-password-callback'
+ config.login?.resetPassword?.callbackURI || '/reset-password-callback'
const callbackURI = isAbsoluteURL(resetPasswordCallback)
? resetPasswordCallback
: `${appOrigin}${resetPasswordCallback}`
diff --git a/packages/template-retail-react-app/app/hooks/use-password-reset.test.js b/packages/template-chakra-storefront/src/hooks/use-password-reset.test.js
similarity index 91%
rename from packages/template-retail-react-app/app/hooks/use-password-reset.test.js
rename to packages/template-chakra-storefront/src/hooks/use-password-reset.test.js
index e58f52cb02..891bb94f72 100644
--- a/packages/template-retail-react-app/app/hooks/use-password-reset.test.js
+++ b/packages/template-chakra-storefront/src/hooks/use-password-reset.test.js
@@ -7,8 +7,9 @@
import React from 'react'
import {fireEvent, screen, waitFor} from '@testing-library/react'
import {useAuthHelper, AuthHelpers} from '@salesforce/commerce-sdk-react'
-import {renderWithProviders} from '@salesforce/retail-react-app/app/utils/test-utils'
-import {usePasswordReset} from '@salesforce/retail-react-app/app/hooks/use-password-reset'
+import {renderWithProviders} from '../utils/test-utils'
+import {usePasswordReset} from './use-password-reset'
+import mockConfig from '../../mock-config'
const mockEmail = 'test@email.com'
const mockToken = '123456'
@@ -69,7 +70,7 @@ describe('usePasswordReset', () => {
expect(getPasswordResetToken.mutateAsync).toHaveBeenCalled()
expect(getPasswordResetToken.mutateAsync).toHaveBeenCalledWith({
user_id: mockEmail,
- callback_uri: 'https://www.domain.com/reset-password-callback'
+ callback_uri: mockConfig.login.resetPassword.callbackURI
})
})
})
diff --git a/packages/template-retail-react-app/app/hooks/use-pdp-search-params.js b/packages/template-chakra-storefront/src/hooks/use-pdp-search-params.js
similarity index 100%
rename from packages/template-retail-react-app/app/hooks/use-pdp-search-params.js
rename to packages/template-chakra-storefront/src/hooks/use-pdp-search-params.js
diff --git a/packages/template-retail-react-app/app/hooks/use-pdp-search-params.test.js b/packages/template-chakra-storefront/src/hooks/use-pdp-search-params.test.js
similarity index 90%
rename from packages/template-retail-react-app/app/hooks/use-pdp-search-params.test.js
rename to packages/template-chakra-storefront/src/hooks/use-pdp-search-params.test.js
index a1c1ce2dd0..67136b08ee 100644
--- a/packages/template-retail-react-app/app/hooks/use-pdp-search-params.test.js
+++ b/packages/template-chakra-storefront/src/hooks/use-pdp-search-params.test.js
@@ -8,8 +8,8 @@
import React from 'react'
import {screen} from '@testing-library/react'
import PropTypes from 'prop-types'
-import {usePDPSearchParams} from '@salesforce/retail-react-app/app/hooks/use-pdp-search-params'
-import {renderWithProviders} from '@salesforce/retail-react-app/app/utils/test-utils'
+import {usePDPSearchParams} from './use-pdp-search-params'
+import {renderWithProviders} from '../utils/test-utils'
const MockComponent = ({productId} = {}) => {
const [allParams, productParams] = usePDPSearchParams(productId)
diff --git a/packages/template-retail-react-app/app/hooks/use-previous.js b/packages/template-chakra-storefront/src/hooks/use-previous.js
similarity index 100%
rename from packages/template-retail-react-app/app/hooks/use-previous.js
rename to packages/template-chakra-storefront/src/hooks/use-previous.js
diff --git a/packages/template-retail-react-app/app/hooks/use-product-view-modal.js b/packages/template-chakra-storefront/src/hooks/use-product-view-modal.js
similarity index 89%
rename from packages/template-retail-react-app/app/hooks/use-product-view-modal.js
rename to packages/template-chakra-storefront/src/hooks/use-product-view-modal.js
index 50d5fb0ef0..71f434b542 100644
--- a/packages/template-retail-react-app/app/hooks/use-product-view-modal.js
+++ b/packages/template-chakra-storefront/src/hooks/use-product-view-modal.js
@@ -6,12 +6,12 @@
*/
import {useEffect, useState} from 'react'
-import {removeQueryParamsFromPath} from '@salesforce/retail-react-app/app/utils/url'
+import {removeQueryParamsFromPath} from '../utils/url'
import {useHistory, useLocation} from 'react-router-dom'
-import {useVariant} from '@salesforce/retail-react-app/app/hooks/use-variant'
-import {useToast} from '@salesforce/retail-react-app/app/hooks/use-toast'
+import {useVariant} from './use-variant'
+import {useToast} from './use-toast'
import {useIntl} from 'react-intl'
-import {API_ERROR_MESSAGE} from '@salesforce/retail-react-app/app/constants'
+import {API_ERROR_MESSAGE} from '../../config/constants'
import {useProduct} from '@salesforce/commerce-sdk-react'
/**
diff --git a/packages/template-retail-react-app/app/hooks/use-product-view-modal.test.js b/packages/template-chakra-storefront/src/hooks/use-product-view-modal.test.js
similarity index 92%
rename from packages/template-retail-react-app/app/hooks/use-product-view-modal.test.js
rename to packages/template-chakra-storefront/src/hooks/use-product-view-modal.test.js
index db255b57c0..b208d689e3 100644
--- a/packages/template-retail-react-app/app/hooks/use-product-view-modal.test.js
+++ b/packages/template-chakra-storefront/src/hooks/use-product-view-modal.test.js
@@ -12,13 +12,10 @@ import {screen, fireEvent, waitFor} from '@testing-library/react'
import {createMemoryHistory} from 'history'
import {IntlProvider} from 'react-intl'
-import mockProductDetail from '@salesforce/retail-react-app/app/mocks/variant-750518699578M'
-import {useProductViewModal} from '@salesforce/retail-react-app/app/hooks/use-product-view-modal'
-import {
- DEFAULT_LOCALE,
- renderWithProviders
-} from '@salesforce/retail-react-app/app/utils/test-utils'
-import messages from '@salesforce/retail-react-app/app/static/translations/compiled/en-GB.json'
+import mockProductDetail from '../../mocks/variant-750518699578M'
+import {useProductViewModal} from './use-product-view-modal'
+import {DEFAULT_LOCALE, renderWithProviders} from '../utils/test-utils'
+import messages from '../static/translations/compiled/en-GB.json'
import {rest} from 'msw'
jest.mock('@salesforce/commerce-sdk-react', () => {
diff --git a/packages/template-retail-react-app/app/hooks/use-search-params.js b/packages/template-chakra-storefront/src/hooks/use-search-params.js
similarity index 90%
rename from packages/template-retail-react-app/app/hooks/use-search-params.js
rename to packages/template-chakra-storefront/src/hooks/use-search-params.js
index 82dc43d80a..9d58d47d5b 100644
--- a/packages/template-retail-react-app/app/hooks/use-search-params.js
+++ b/packages/template-chakra-storefront/src/hooks/use-search-params.js
@@ -8,8 +8,7 @@
import {useLocation} from 'react-router-dom'
import queryString from 'query-string'
-// Constants
-import {DEFAULT_SEARCH_PARAMS} from '@salesforce/retail-react-app/app/constants'
+import {getConfig} from '@salesforce/pwa-kit-runtime/utils/ssr-config'
const PARSE_OPTIONS = {
parseBooleans: true,
@@ -20,9 +19,12 @@ const PARSE_OPTIONS = {
* This hook will return all the location search params pertinant
* to the product list page.
*/
-export const useSearchParams = (searchParams = DEFAULT_SEARCH_PARAMS, parseRefine = true) => {
+export const useSearchParams = (searchParams, parseRefine = true) => {
const {search} = useLocation()
-
+ const {search: searchConfig} = getConfig()
+ if (!searchParams) {
+ searchParams = searchConfig.defaultSearchParams
+ }
// Encode the search query, including preset values.
const searchParamsObject = {
...searchParams,
diff --git a/packages/template-retail-react-app/app/hooks/use-search-params.test.js b/packages/template-chakra-storefront/src/hooks/use-search-params.test.js
similarity index 90%
rename from packages/template-retail-react-app/app/hooks/use-search-params.test.js
rename to packages/template-chakra-storefront/src/hooks/use-search-params.test.js
index 177b342006..263698ffc5 100644
--- a/packages/template-retail-react-app/app/hooks/use-search-params.test.js
+++ b/packages/template-chakra-storefront/src/hooks/use-search-params.test.js
@@ -6,15 +6,11 @@
*/
import React from 'react'
-import {Router} from 'react-router'
+import {Router} from 'react-router-dom'
-import {render} from '@testing-library/react'
import {createMemoryHistory} from 'history'
-import {
- useSearchParams,
- stringify,
- parse
-} from '@salesforce/retail-react-app/app/hooks/use-search-params'
+import {useSearchParams, stringify, parse} from './use-search-params'
+import {renderWithProviders} from '../utils/test-utils'
const MockComponent = () => {
const [params] = useSearchParams()
@@ -31,7 +27,7 @@ describe('The useSearchParams', () => {
const history = createMemoryHistory()
history.push('/test/path')
- const wrapper = render(
+ const wrapper = renderWithProviders(
@@ -48,7 +44,7 @@ describe('The useSearchParams', () => {
'/test/path?limit=25&offset=0&refine=c_refinementColor%3DBlack%7CPurple&sort=best-matches'
)
- const wrapper = render(
+ const wrapper = renderWithProviders(
diff --git a/packages/template-retail-react-app/app/hooks/use-shopper-context-search-params.js b/packages/template-chakra-storefront/src/hooks/use-shopper-context-search-params.js
similarity index 96%
rename from packages/template-retail-react-app/app/hooks/use-shopper-context-search-params.js
rename to packages/template-chakra-storefront/src/hooks/use-shopper-context-search-params.js
index 9cb12147a4..640127641b 100644
--- a/packages/template-retail-react-app/app/hooks/use-shopper-context-search-params.js
+++ b/packages/template-chakra-storefront/src/hooks/use-shopper-context-search-params.js
@@ -9,10 +9,7 @@ import {useMemo} from 'react'
import {useLocation} from 'react-router-dom'
// Constants
-import {
- SHOPPER_CONTEXT_SEARCH_PARAMS,
- SHOPPER_CONTEXT_FIELD_TYPES
-} from '@salesforce/retail-react-app/app/constants'
+import {SHOPPER_CONTEXT_SEARCH_PARAMS, SHOPPER_CONTEXT_FIELD_TYPES} from '../../config/constants'
/**
* This hook will return a shopper context object when search params related
diff --git a/packages/template-retail-react-app/app/hooks/use-shopper-context-search-params.test.js b/packages/template-chakra-storefront/src/hooks/use-shopper-context-search-params.test.js
similarity index 96%
rename from packages/template-retail-react-app/app/hooks/use-shopper-context-search-params.test.js
rename to packages/template-chakra-storefront/src/hooks/use-shopper-context-search-params.test.js
index 89b5afd1c0..4761586dfa 100644
--- a/packages/template-retail-react-app/app/hooks/use-shopper-context-search-params.test.js
+++ b/packages/template-chakra-storefront/src/hooks/use-shopper-context-search-params.test.js
@@ -12,11 +12,8 @@ import {createMemoryHistory} from 'history'
import {
useShopperContextSearchParams,
getShopperContextFromSearchParams
-} from '@salesforce/retail-react-app/app/hooks/use-shopper-context-search-params'
-import {
- SHOPPER_CONTEXT_FIELD_TYPES,
- SHOPPER_CONTEXT_SEARCH_PARAMS
-} from '@salesforce/retail-react-app/app/constants'
+} from './use-shopper-context-search-params'
+import {SHOPPER_CONTEXT_FIELD_TYPES, SHOPPER_CONTEXT_SEARCH_PARAMS} from '../../config/constants'
afterEach(() => {
jest.clearAllMocks()
diff --git a/packages/template-retail-react-app/app/hooks/use-sort-urls.js b/packages/template-chakra-storefront/src/hooks/use-sort-urls.js
similarity index 92%
rename from packages/template-retail-react-app/app/hooks/use-sort-urls.js
rename to packages/template-chakra-storefront/src/hooks/use-sort-urls.js
index 2e44d9cc80..dc78343806 100644
--- a/packages/template-retail-react-app/app/hooks/use-sort-urls.js
+++ b/packages/template-chakra-storefront/src/hooks/use-sort-urls.js
@@ -9,7 +9,7 @@ import {useMemo} from 'react'
import {useLocation} from 'react-router-dom'
// Utils
-import {buildUrlSet} from '@salesforce/retail-react-app/app/utils/url'
+import {buildUrlSet} from '../utils/url'
/*
* Generate a memoized list of page size urls. Chaning the page size will reset
diff --git a/packages/template-retail-react-app/app/hooks/use-sort-urls.test.js b/packages/template-chakra-storefront/src/hooks/use-sort-urls.test.js
similarity index 90%
rename from packages/template-retail-react-app/app/hooks/use-sort-urls.test.js
rename to packages/template-chakra-storefront/src/hooks/use-sort-urls.test.js
index 439fcded4b..70b0ce5ee7 100644
--- a/packages/template-retail-react-app/app/hooks/use-sort-urls.test.js
+++ b/packages/template-chakra-storefront/src/hooks/use-sort-urls.test.js
@@ -6,11 +6,11 @@
*/
import React from 'react'
-import {Router} from 'react-router'
+import {Router} from 'react-router-dom'
import {render} from '@testing-library/react'
import {createMemoryHistory} from 'history'
-import {useSortUrls} from '@salesforce/retail-react-app/app/hooks/use-sort-urls'
+import {useSortUrls} from './use-sort-urls'
const MOCK_SORT_OPTIONS = [{id: 'high-to-low'}, {id: 'low-to-high'}]
diff --git a/packages/template-retail-react-app/app/hooks/use-toast.js b/packages/template-chakra-storefront/src/hooks/use-toast.js
similarity index 97%
rename from packages/template-retail-react-app/app/hooks/use-toast.js
rename to packages/template-chakra-storefront/src/hooks/use-toast.js
index 9228b04239..2b1bdf20ec 100644
--- a/packages/template-retail-react-app/app/hooks/use-toast.js
+++ b/packages/template-chakra-storefront/src/hooks/use-toast.js
@@ -12,7 +12,7 @@ import {
CloseButton,
Spacer,
useToast as useChakraToast
-} from '@salesforce/retail-react-app/app/components/shared/ui'
+} from '@chakra-ui/react'
/**
* Display a toast message on the screen.
diff --git a/packages/template-retail-react-app/app/hooks/use-toast.test.js b/packages/template-chakra-storefront/src/hooks/use-toast.test.js
similarity index 81%
rename from packages/template-retail-react-app/app/hooks/use-toast.test.js
rename to packages/template-chakra-storefront/src/hooks/use-toast.test.js
index 4418de0201..2ae6cfa52d 100644
--- a/packages/template-retail-react-app/app/hooks/use-toast.test.js
+++ b/packages/template-chakra-storefront/src/hooks/use-toast.test.js
@@ -5,12 +5,18 @@
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
import React from 'react'
-import {useToast} from '@salesforce/retail-react-app/app/hooks/use-toast'
-import {Button} from '@salesforce/retail-react-app/app/components/shared/ui'
-import {renderWithProviders} from '@salesforce/retail-react-app/app/utils/test-utils'
+import {useToast} from './use-toast'
+import {Button} from '@chakra-ui/react'
+import {renderWithProviders} from '../utils/test-utils'
import {screen, waitFor} from '@testing-library/react'
import userEvent from '@testing-library/user-event'
-
+jest.mock('@salesforce/pwa-kit-runtime/utils/ssr-config', () => {
+ const original = jest.requireActual('@salesforce/pwa-kit-runtime/utils/ssr-config')
+ return {
+ ...original,
+ getConfig: jest.fn(() => require('../../mock-config'))
+ }
+})
jest.setTimeout(60000)
const MockedComponent = (props) => {
const showToast = useToast()
diff --git a/packages/template-retail-react-app/app/hooks/use-update-shopper-context.js b/packages/template-chakra-storefront/src/hooks/use-update-shopper-context.js
similarity index 88%
rename from packages/template-retail-react-app/app/hooks/use-update-shopper-context.js
rename to packages/template-chakra-storefront/src/hooks/use-update-shopper-context.js
index 0a1d1a8c51..83f93f42cb 100644
--- a/packages/template-retail-react-app/app/hooks/use-update-shopper-context.js
+++ b/packages/template-chakra-storefront/src/hooks/use-update-shopper-context.js
@@ -12,14 +12,14 @@ import {
useShopperContext,
useShopperContextsMutation
} from '@salesforce/commerce-sdk-react'
-import {isServer, isHydrated} from '@salesforce/retail-react-app/app/utils/utils'
+import {isServer, isHydrated} from '../utils/utils'
import {useQueryClient} from '@tanstack/react-query'
// Hooks
-import useMultiSite from '@salesforce/retail-react-app/app/hooks/use-multi-site'
+import useMultiSite from './use-multi-site'
// Constants
-import {useShopperContextSearchParams} from '@salesforce/retail-react-app/app/hooks/use-shopper-context-search-params'
+import {useShopperContextSearchParams} from './use-shopper-context-search-params'
/*
* This hook will set the shopper context when search params pertinant
diff --git a/packages/template-retail-react-app/app/hooks/use-update-shopper-context.test.js b/packages/template-chakra-storefront/src/hooks/use-update-shopper-context.test.js
similarity index 96%
rename from packages/template-retail-react-app/app/hooks/use-update-shopper-context.test.js
rename to packages/template-chakra-storefront/src/hooks/use-update-shopper-context.test.js
index 93f85ca485..7cbc761636 100644
--- a/packages/template-retail-react-app/app/hooks/use-update-shopper-context.test.js
+++ b/packages/template-chakra-storefront/src/hooks/use-update-shopper-context.test.js
@@ -9,9 +9,9 @@ import React from 'react'
import {Router} from 'react-router'
import {useShopperContext, useShopperContextsMutation} from '@salesforce/commerce-sdk-react'
-import {renderWithProviders} from '@salesforce/retail-react-app/app/utils/test-utils'
+import {renderWithProviders} from '../utils/test-utils'
import {createMemoryHistory} from 'history'
-import {useUpdateShopperContext} from '@salesforce/retail-react-app/app/hooks/use-update-shopper-context'
+import {useUpdateShopperContext} from './use-update-shopper-context'
const usid = 'test-usid'
jest.mock('@salesforce/commerce-sdk-react', () => {
diff --git a/packages/template-retail-react-app/app/hooks/use-variant.js b/packages/template-chakra-storefront/src/hooks/use-variant.js
similarity index 93%
rename from packages/template-retail-react-app/app/hooks/use-variant.js
rename to packages/template-chakra-storefront/src/hooks/use-variant.js
index 0ef245a71f..2b87815564 100644
--- a/packages/template-retail-react-app/app/hooks/use-variant.js
+++ b/packages/template-chakra-storefront/src/hooks/use-variant.js
@@ -6,7 +6,7 @@
*/
// Hooks
-import {useVariationParams} from '@salesforce/retail-react-app/app/hooks/use-variation-params'
+import {useVariationParams} from './use-variation-params'
/**
* This hook returns the currently selected
diff --git a/packages/template-retail-react-app/app/hooks/use-variant.test.js b/packages/template-chakra-storefront/src/hooks/use-variant.test.js
similarity index 95%
rename from packages/template-retail-react-app/app/hooks/use-variant.test.js
rename to packages/template-chakra-storefront/src/hooks/use-variant.test.js
index 0179c4f16f..b49619afc4 100644
--- a/packages/template-retail-react-app/app/hooks/use-variant.test.js
+++ b/packages/template-chakra-storefront/src/hooks/use-variant.test.js
@@ -6,11 +6,11 @@
*/
import React from 'react'
-import {Router} from 'react-router'
+import {Router} from 'react-router-dom'
import {render} from '@testing-library/react'
import {createMemoryHistory} from 'history'
-import {useVariant} from '@salesforce/retail-react-app/app/hooks/use-variant'
+import {useVariant} from './use-variant'
// Below is a partial product used for mocking purposes. Note: only the properties
// that are used in the hook at defined.
diff --git a/packages/template-retail-react-app/app/hooks/use-variation-attributes.js b/packages/template-chakra-storefront/src/hooks/use-variation-attributes.js
similarity index 93%
rename from packages/template-retail-react-app/app/hooks/use-variation-attributes.js
rename to packages/template-chakra-storefront/src/hooks/use-variation-attributes.js
index 75b66b8d6a..ac457a7fe3 100644
--- a/packages/template-retail-react-app/app/hooks/use-variation-attributes.js
+++ b/packages/template-chakra-storefront/src/hooks/use-variation-attributes.js
@@ -9,12 +9,12 @@ import {useMemo} from 'react'
import {useLocation} from 'react-router-dom'
// Other Hooks
-import {useVariationParams} from '@salesforce/retail-react-app/app/hooks/use-variation-params'
+import {useVariationParams} from './use-variation-params'
// Utils
-import {updateSearchParams} from '@salesforce/retail-react-app/app/utils/url'
-import {usePDPSearchParams} from '@salesforce/retail-react-app/app/hooks/use-pdp-search-params'
-import {filterImageGroups} from '@salesforce/retail-react-app/app/utils/product-utils'
+import {updateSearchParams} from '../utils/url'
+import {usePDPSearchParams} from './use-pdp-search-params'
+import {filterImageGroups} from '../utils/product-utils'
/**
* Return the first image in the `swatch` type image group for a given
* variation value of a product.
diff --git a/packages/template-retail-react-app/app/hooks/use-variation-attributes.test.js b/packages/template-chakra-storefront/src/hooks/use-variation-attributes.test.js
similarity index 96%
rename from packages/template-retail-react-app/app/hooks/use-variation-attributes.test.js
rename to packages/template-chakra-storefront/src/hooks/use-variation-attributes.test.js
index e4a8f3fbc9..322f14c48d 100644
--- a/packages/template-retail-react-app/app/hooks/use-variation-attributes.test.js
+++ b/packages/template-chakra-storefront/src/hooks/use-variation-attributes.test.js
@@ -6,11 +6,11 @@
*/
import React from 'react'
-import {Router} from 'react-router'
+import {Router} from 'react-router-dom'
import {render} from '@testing-library/react'
import {createMemoryHistory} from 'history'
-import {useVariationAttributes} from '@salesforce/retail-react-app/app/hooks/use-variation-attributes'
+import {useVariationAttributes} from './use-variation-attributes'
// Below is a partial product used for mocking purposes. Note: only the properties
// that are used in the hook at defined.
diff --git a/packages/template-retail-react-app/app/hooks/use-variation-params.js b/packages/template-chakra-storefront/src/hooks/use-variation-params.js
similarity index 92%
rename from packages/template-retail-react-app/app/hooks/use-variation-params.js
rename to packages/template-chakra-storefront/src/hooks/use-variation-params.js
index e0beb71716..1b71035cd0 100644
--- a/packages/template-retail-react-app/app/hooks/use-variation-params.js
+++ b/packages/template-chakra-storefront/src/hooks/use-variation-params.js
@@ -5,7 +5,7 @@
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
-import {usePDPSearchParams} from '@salesforce/retail-react-app/app/hooks/use-pdp-search-params'
+import {usePDPSearchParams} from './use-pdp-search-params'
/*
* This hook will return only the params that are also product attributes for the
diff --git a/packages/template-retail-react-app/app/hooks/use-variation-params.test.js b/packages/template-chakra-storefront/src/hooks/use-variation-params.test.js
similarity index 94%
rename from packages/template-retail-react-app/app/hooks/use-variation-params.test.js
rename to packages/template-chakra-storefront/src/hooks/use-variation-params.test.js
index 486361a69e..218ca69b17 100644
--- a/packages/template-retail-react-app/app/hooks/use-variation-params.test.js
+++ b/packages/template-chakra-storefront/src/hooks/use-variation-params.test.js
@@ -6,11 +6,11 @@
*/
import React from 'react'
-import {Router} from 'react-router'
+import {Router} from 'react-router-dom'
import {render} from '@testing-library/react'
import {createMemoryHistory} from 'history'
-import {useVariationParams} from '@salesforce/retail-react-app/app/hooks/use-variation-params'
+import {useVariationParams} from './use-variation-params'
// Below is a partial product used for mocking purposes. Note: only the properties
// that are used in the hook at defined.
diff --git a/packages/template-retail-react-app/app/hooks/use-wish-list.js b/packages/template-chakra-storefront/src/hooks/use-wish-list.js
similarity index 94%
rename from packages/template-retail-react-app/app/hooks/use-wish-list.js
rename to packages/template-chakra-storefront/src/hooks/use-wish-list.js
index 326992678b..ee89a9faa9 100644
--- a/packages/template-retail-react-app/app/hooks/use-wish-list.js
+++ b/packages/template-chakra-storefront/src/hooks/use-wish-list.js
@@ -6,7 +6,7 @@
*/
import {useCustomerProductLists, useShopperCustomersMutation} from '@salesforce/commerce-sdk-react'
-import {useCurrentCustomer} from '@salesforce/retail-react-app/app/hooks/use-current-customer'
+import {useCurrentCustomer} from './use-current-customer'
const onClient = typeof window !== 'undefined'
// TODO: remove `listId` input -> use the first list of type wish_list instead
// (mimic the logic in the other older hook 'use-wishlist.js')
diff --git a/packages/template-retail-react-app/app/main.jsx b/packages/template-chakra-storefront/src/main.jsx
similarity index 100%
rename from packages/template-retail-react-app/app/main.jsx
rename to packages/template-chakra-storefront/src/main.jsx
diff --git a/packages/template-retail-react-app/app/page-designer/README.md b/packages/template-chakra-storefront/src/page-designer/README.md
similarity index 98%
rename from packages/template-retail-react-app/app/page-designer/README.md
rename to packages/template-chakra-storefront/src/page-designer/README.md
index 1e793e454a..2abc038165 100644
--- a/packages/template-retail-react-app/app/page-designer/README.md
+++ b/packages/template-chakra-storefront/src/page-designer/README.md
@@ -34,7 +34,7 @@ Create a new file called `app/pages/page-viewer/index.jsx`, and add the followin
import React from 'react'
import {useParams} from 'react-router-dom'
-import {Box} from '@salesforce/retail-react-app/app/components/shared/ui'
+import {Box} from '@chakra-ui/react'
import {usePage} from '@salesforce/commerce-sdk-react'
import {Page} from '@salesforce/commerce-sdk-react/components'
import {ImageTile, ImageWithText} from '../../page-designer/assets'
diff --git a/packages/template-retail-react-app/app/page-designer/assets/image-tile/index.jsx b/packages/template-chakra-storefront/src/page-designer/assets/image-tile/index.jsx
similarity index 95%
rename from packages/template-retail-react-app/app/page-designer/assets/image-tile/index.jsx
rename to packages/template-chakra-storefront/src/page-designer/assets/image-tile/index.jsx
index d3c08d6993..2fddd39b6d 100644
--- a/packages/template-retail-react-app/app/page-designer/assets/image-tile/index.jsx
+++ b/packages/template-chakra-storefront/src/page-designer/assets/image-tile/index.jsx
@@ -6,7 +6,7 @@
*/
import React from 'react'
import PropTypes from 'prop-types'
-import {Box, Image} from '@salesforce/retail-react-app/app/components/shared/ui'
+import {Box, Image} from '@chakra-ui/react'
/**
* Simple ImageTile component that can be used inside any Layout component.
diff --git a/packages/template-retail-react-app/app/page-designer/assets/image-tile/index.test.js b/packages/template-chakra-storefront/src/page-designer/assets/image-tile/index.test.js
similarity index 82%
rename from packages/template-retail-react-app/app/page-designer/assets/image-tile/index.test.js
rename to packages/template-chakra-storefront/src/page-designer/assets/image-tile/index.test.js
index 7ff3e9b1d9..81a1687794 100644
--- a/packages/template-retail-react-app/app/page-designer/assets/image-tile/index.test.js
+++ b/packages/template-chakra-storefront/src/page-designer/assets/image-tile/index.test.js
@@ -5,8 +5,8 @@
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
import React from 'react'
-import {renderWithProviders} from '@salesforce/retail-react-app/app/utils/test-utils'
-import ImageTile from '@salesforce/retail-react-app/app/page-designer/assets/image-tile/index'
+import {renderWithProviders} from '../../../utils/test-utils'
+import ImageTile from './index'
import {getAssetUrl} from '@salesforce/pwa-kit-react-sdk/ssr/universal/utils'
test('ImageTile renders without errors', () => {
diff --git a/packages/template-retail-react-app/app/page-designer/assets/image-with-text/index.jsx b/packages/template-chakra-storefront/src/page-designer/assets/image-with-text/index.jsx
similarity index 95%
rename from packages/template-retail-react-app/app/page-designer/assets/image-with-text/index.jsx
rename to packages/template-chakra-storefront/src/page-designer/assets/image-with-text/index.jsx
index 8011258faf..d089de9ec5 100644
--- a/packages/template-retail-react-app/app/page-designer/assets/image-with-text/index.jsx
+++ b/packages/template-chakra-storefront/src/page-designer/assets/image-with-text/index.jsx
@@ -6,14 +6,9 @@
*/
import React from 'react'
import PropTypes from 'prop-types'
-import {
- Box,
- Image,
- Link as ChakraLink,
- Text
-} from '@salesforce/retail-react-app/app/components/shared/ui'
-import Link from '@salesforce/retail-react-app/app/components/link'
-import {isAbsoluteURL} from '@salesforce/retail-react-app/app/page-designer/utils'
+import {Box, Image, Link as ChakraLink, Text} from '@chakra-ui/react'
+import Link from '../../../components/link'
+import {isAbsoluteURL} from '../../utils'
/**
* Image with text component
diff --git a/packages/template-retail-react-app/app/page-designer/assets/image-with-text/index.test.js b/packages/template-chakra-storefront/src/page-designer/assets/image-with-text/index.test.js
similarity index 75%
rename from packages/template-retail-react-app/app/page-designer/assets/image-with-text/index.test.js
rename to packages/template-chakra-storefront/src/page-designer/assets/image-with-text/index.test.js
index 378907fb06..3f328fe999 100644
--- a/packages/template-retail-react-app/app/page-designer/assets/image-with-text/index.test.js
+++ b/packages/template-chakra-storefront/src/page-designer/assets/image-with-text/index.test.js
@@ -5,9 +5,9 @@
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
import React from 'react'
-import ImageWithText from '@salesforce/retail-react-app/app/page-designer/assets/image-with-text/index'
-import {renderWithProviders} from '@salesforce/retail-react-app/app/utils/test-utils'
-import {mockImageWithText} from '@salesforce/retail-react-app/app/mocks/page-designer'
+import ImageWithText from './index'
+import {renderWithProviders} from '../../../utils/test-utils'
+import {mockImageWithText} from '../../../../mocks/page-designer'
test('Page renders correct component', () => {
const {getByText, getByRole} = renderWithProviders( )
diff --git a/packages/template-retail-react-app/app/page-designer/assets/index.js b/packages/template-chakra-storefront/src/page-designer/assets/index.js
similarity index 100%
rename from packages/template-retail-react-app/app/page-designer/assets/index.js
rename to packages/template-chakra-storefront/src/page-designer/assets/index.js
diff --git a/packages/template-retail-react-app/app/page-designer/index.js b/packages/template-chakra-storefront/src/page-designer/index.js
similarity index 100%
rename from packages/template-retail-react-app/app/page-designer/index.js
rename to packages/template-chakra-storefront/src/page-designer/index.js
diff --git a/packages/template-retail-react-app/app/page-designer/layouts/carousel/index.jsx b/packages/template-chakra-storefront/src/page-designer/layouts/carousel/index.jsx
similarity index 98%
rename from packages/template-retail-react-app/app/page-designer/layouts/carousel/index.jsx
rename to packages/template-chakra-storefront/src/page-designer/layouts/carousel/index.jsx
index 92b1839011..2a634e1174 100644
--- a/packages/template-retail-react-app/app/page-designer/layouts/carousel/index.jsx
+++ b/packages/template-chakra-storefront/src/page-designer/layouts/carousel/index.jsx
@@ -14,9 +14,9 @@ import {
Stack,
useBreakpoint,
useBreakpointValue
-} from '@salesforce/retail-react-app/app/components/shared/ui'
+} from '@chakra-ui/react'
import {Component, regionPropType} from '@salesforce/commerce-sdk-react/components'
-import {ChevronLeftIcon, ChevronRightIcon} from '@salesforce/retail-react-app/app/components/icons'
+import {ChevronLeftIcon, ChevronRightIcon} from '../../../components/icons'
import {useEffect} from 'react'
import {useIntl} from 'react-intl'
diff --git a/packages/template-retail-react-app/app/page-designer/layouts/carousel/index.test.js b/packages/template-chakra-storefront/src/page-designer/layouts/carousel/index.test.js
similarity index 76%
rename from packages/template-retail-react-app/app/page-designer/layouts/carousel/index.test.js
rename to packages/template-chakra-storefront/src/page-designer/layouts/carousel/index.test.js
index 1c6c11e4ee..5a4c8c8112 100644
--- a/packages/template-retail-react-app/app/page-designer/layouts/carousel/index.test.js
+++ b/packages/template-chakra-storefront/src/page-designer/layouts/carousel/index.test.js
@@ -5,12 +5,15 @@
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
import React from 'react'
-import {
- renderWithProviders,
- withPageProvider
-} from '@salesforce/retail-react-app/app/utils/test-utils'
-import Carousel from '@salesforce/retail-react-app/app/page-designer/layouts/carousel/index'
-
+import {renderWithProviders, withPageProvider} from '../../../utils/test-utils'
+import Carousel from './index'
+jest.mock('@salesforce/pwa-kit-runtime/utils/ssr-config', () => {
+ const original = jest.requireActual('@salesforce/pwa-kit-runtime/utils/ssr-config')
+ return {
+ ...original,
+ getConfig: jest.fn(() => require('../../../../mock-config'))
+ }
+})
const SAMPLE_REGION = {
id: 'TEST_REGION',
components: [
diff --git a/packages/template-retail-react-app/app/page-designer/layouts/index.js b/packages/template-chakra-storefront/src/page-designer/layouts/index.js
similarity index 100%
rename from packages/template-retail-react-app/app/page-designer/layouts/index.js
rename to packages/template-chakra-storefront/src/page-designer/layouts/index.js
diff --git a/packages/template-retail-react-app/app/page-designer/layouts/mobileGrid1r1c/index.jsx b/packages/template-chakra-storefront/src/page-designer/layouts/mobileGrid1r1c/index.jsx
similarity index 93%
rename from packages/template-retail-react-app/app/page-designer/layouts/mobileGrid1r1c/index.jsx
rename to packages/template-chakra-storefront/src/page-designer/layouts/mobileGrid1r1c/index.jsx
index 1c9c460fcc..8026973be6 100644
--- a/packages/template-retail-react-app/app/page-designer/layouts/mobileGrid1r1c/index.jsx
+++ b/packages/template-chakra-storefront/src/page-designer/layouts/mobileGrid1r1c/index.jsx
@@ -6,7 +6,7 @@
*/
import React from 'react'
import PropTypes from 'prop-types'
-import {SimpleGrid} from '@salesforce/retail-react-app/app/components/shared/ui'
+import {SimpleGrid} from '@chakra-ui/react'
import {Region, regionPropType} from '@salesforce/commerce-sdk-react/components'
/**
diff --git a/packages/template-retail-react-app/app/page-designer/layouts/mobileGrid1r1c/index.test.js b/packages/template-chakra-storefront/src/page-designer/layouts/mobileGrid1r1c/index.test.js
similarity index 72%
rename from packages/template-retail-react-app/app/page-designer/layouts/mobileGrid1r1c/index.test.js
rename to packages/template-chakra-storefront/src/page-designer/layouts/mobileGrid1r1c/index.test.js
index 45400f9ec1..ade0f9f2c6 100644
--- a/packages/template-retail-react-app/app/page-designer/layouts/mobileGrid1r1c/index.test.js
+++ b/packages/template-chakra-storefront/src/page-designer/layouts/mobileGrid1r1c/index.test.js
@@ -5,12 +5,15 @@
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
import React from 'react'
-import {
- renderWithProviders,
- withPageProvider
-} from '@salesforce/retail-react-app/app/utils/test-utils'
-import MobileGrid1r1c from '@salesforce/retail-react-app/app/page-designer/layouts/mobileGrid1r1c/index'
-
+import {renderWithProviders, withPageProvider} from '../../../utils/test-utils'
+import MobileGrid1r1c from './index'
+jest.mock('@salesforce/pwa-kit-runtime/utils/ssr-config', () => {
+ const original = jest.requireActual('@salesforce/pwa-kit-runtime/utils/ssr-config')
+ return {
+ ...original,
+ getConfig: jest.fn(() => require('../../../../mock-config'))
+ }
+})
test('MobileGrid1r1c renders without errors', () => {
const MobileGrid1r1cWithPageProvider = withPageProvider(MobileGrid1r1c)
renderWithProviders(
diff --git a/packages/template-retail-react-app/app/page-designer/layouts/mobileGrid2r1c/index.jsx b/packages/template-chakra-storefront/src/page-designer/layouts/mobileGrid2r1c/index.jsx
similarity index 94%
rename from packages/template-retail-react-app/app/page-designer/layouts/mobileGrid2r1c/index.jsx
rename to packages/template-chakra-storefront/src/page-designer/layouts/mobileGrid2r1c/index.jsx
index 7ce4337af2..10651e972e 100644
--- a/packages/template-retail-react-app/app/page-designer/layouts/mobileGrid2r1c/index.jsx
+++ b/packages/template-chakra-storefront/src/page-designer/layouts/mobileGrid2r1c/index.jsx
@@ -6,7 +6,7 @@
*/
import React from 'react'
import PropTypes from 'prop-types'
-import {SimpleGrid} from '@salesforce/retail-react-app/app/components/shared/ui'
+import {SimpleGrid} from '@chakra-ui/react'
import {Region, regionPropType} from '@salesforce/commerce-sdk-react/components'
/**
diff --git a/packages/template-retail-react-app/app/page-designer/layouts/mobileGrid2r1c/index.test.js b/packages/template-chakra-storefront/src/page-designer/layouts/mobileGrid2r1c/index.test.js
similarity index 79%
rename from packages/template-retail-react-app/app/page-designer/layouts/mobileGrid2r1c/index.test.js
rename to packages/template-chakra-storefront/src/page-designer/layouts/mobileGrid2r1c/index.test.js
index 960391a11b..959a732d07 100644
--- a/packages/template-retail-react-app/app/page-designer/layouts/mobileGrid2r1c/index.test.js
+++ b/packages/template-chakra-storefront/src/page-designer/layouts/mobileGrid2r1c/index.test.js
@@ -5,12 +5,15 @@
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
import React from 'react'
-import {
- renderWithProviders,
- withPageProvider
-} from '@salesforce/retail-react-app/app/utils/test-utils'
-import MobileGrid2r1c from '@salesforce/retail-react-app/app/page-designer/layouts/mobileGrid2r1c/index'
-
+import {renderWithProviders, withPageProvider} from '../../../utils/test-utils'
+import MobileGrid2r1c from './index'
+jest.mock('@salesforce/pwa-kit-runtime/utils/ssr-config', () => {
+ const original = jest.requireActual('@salesforce/pwa-kit-runtime/utils/ssr-config')
+ return {
+ ...original,
+ getConfig: jest.fn(() => require('../../../../mock-config'))
+ }
+})
test('MobileGrid2r1c renders without errors', () => {
const MobileGrid2r1cWithPageProvider = withPageProvider(MobileGrid2r1c)
renderWithProviders(
diff --git a/packages/template-retail-react-app/app/page-designer/layouts/mobileGrid2r2c/index.jsx b/packages/template-chakra-storefront/src/page-designer/layouts/mobileGrid2r2c/index.jsx
similarity index 94%
rename from packages/template-retail-react-app/app/page-designer/layouts/mobileGrid2r2c/index.jsx
rename to packages/template-chakra-storefront/src/page-designer/layouts/mobileGrid2r2c/index.jsx
index da091eead1..9c5691d447 100644
--- a/packages/template-retail-react-app/app/page-designer/layouts/mobileGrid2r2c/index.jsx
+++ b/packages/template-chakra-storefront/src/page-designer/layouts/mobileGrid2r2c/index.jsx
@@ -6,7 +6,7 @@
*/
import React from 'react'
import PropTypes from 'prop-types'
-import {SimpleGrid} from '@salesforce/retail-react-app/app/components/shared/ui'
+import {SimpleGrid} from '@chakra-ui/react'
import {Region, regionPropType} from '@salesforce/commerce-sdk-react/components'
/**
diff --git a/packages/template-retail-react-app/app/page-designer/layouts/mobileGrid2r2c/index.test.js b/packages/template-chakra-storefront/src/page-designer/layouts/mobileGrid2r2c/index.test.js
similarity index 91%
rename from packages/template-retail-react-app/app/page-designer/layouts/mobileGrid2r2c/index.test.js
rename to packages/template-chakra-storefront/src/page-designer/layouts/mobileGrid2r2c/index.test.js
index 20b64d2eb5..a58657b15a 100644
--- a/packages/template-retail-react-app/app/page-designer/layouts/mobileGrid2r2c/index.test.js
+++ b/packages/template-chakra-storefront/src/page-designer/layouts/mobileGrid2r2c/index.test.js
@@ -5,11 +5,8 @@
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
import React from 'react'
-import {
- renderWithProviders,
- withPageProvider
-} from '@salesforce/retail-react-app/app/utils/test-utils'
-import MobileGrid2r2c from '@salesforce/retail-react-app/app/page-designer/layouts/mobileGrid2r2c/index'
+import {renderWithProviders, withPageProvider} from '../../../utils/test-utils'
+import MobileGrid2r2c from './index'
test('MobileGrid2r2c renders without errors', () => {
const MobileGrid2r2cWithPageProvider = withPageProvider(MobileGrid2r2c)
diff --git a/packages/template-retail-react-app/app/page-designer/layouts/mobileGrid2r3c/index.jsx b/packages/template-chakra-storefront/src/page-designer/layouts/mobileGrid2r3c/index.jsx
similarity index 94%
rename from packages/template-retail-react-app/app/page-designer/layouts/mobileGrid2r3c/index.jsx
rename to packages/template-chakra-storefront/src/page-designer/layouts/mobileGrid2r3c/index.jsx
index 33dde95a1c..283b3678d4 100644
--- a/packages/template-retail-react-app/app/page-designer/layouts/mobileGrid2r3c/index.jsx
+++ b/packages/template-chakra-storefront/src/page-designer/layouts/mobileGrid2r3c/index.jsx
@@ -6,7 +6,7 @@
*/
import React from 'react'
import PropTypes from 'prop-types'
-import {SimpleGrid} from '@salesforce/retail-react-app/app/components/shared/ui'
+import {SimpleGrid} from '@chakra-ui/react'
import {Region, regionPropType} from '@salesforce/commerce-sdk-react/components'
/**
diff --git a/packages/template-retail-react-app/app/page-designer/layouts/mobileGrid2r3c/index.test.js b/packages/template-chakra-storefront/src/page-designer/layouts/mobileGrid2r3c/index.test.js
similarity index 89%
rename from packages/template-retail-react-app/app/page-designer/layouts/mobileGrid2r3c/index.test.js
rename to packages/template-chakra-storefront/src/page-designer/layouts/mobileGrid2r3c/index.test.js
index f96d4778a5..36674a5e7d 100644
--- a/packages/template-retail-react-app/app/page-designer/layouts/mobileGrid2r3c/index.test.js
+++ b/packages/template-chakra-storefront/src/page-designer/layouts/mobileGrid2r3c/index.test.js
@@ -5,12 +5,15 @@
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
import React from 'react'
-import {
- renderWithProviders,
- withPageProvider
-} from '@salesforce/retail-react-app/app/utils/test-utils'
-import MobileGrid2r3c from '@salesforce/retail-react-app/app/page-designer/layouts/mobileGrid2r3c/index'
-
+import {renderWithProviders, withPageProvider} from '../../../utils/test-utils'
+import MobileGrid2r3c from './index'
+jest.mock('@salesforce/pwa-kit-runtime/utils/ssr-config', () => {
+ const original = jest.requireActual('@salesforce/pwa-kit-runtime/utils/ssr-config')
+ return {
+ ...original,
+ getConfig: jest.fn(() => require('../../../../mock-config'))
+ }
+})
test('MobileGrid2r3c renders without errors', () => {
const MobileGrid2r3cWithPageProvider = withPageProvider(MobileGrid2r3c)
renderWithProviders(
diff --git a/packages/template-retail-react-app/app/page-designer/layouts/mobileGrid3r1c/index.jsx b/packages/template-chakra-storefront/src/page-designer/layouts/mobileGrid3r1c/index.jsx
similarity index 94%
rename from packages/template-retail-react-app/app/page-designer/layouts/mobileGrid3r1c/index.jsx
rename to packages/template-chakra-storefront/src/page-designer/layouts/mobileGrid3r1c/index.jsx
index 821fd45a65..b977ae9e85 100644
--- a/packages/template-retail-react-app/app/page-designer/layouts/mobileGrid3r1c/index.jsx
+++ b/packages/template-chakra-storefront/src/page-designer/layouts/mobileGrid3r1c/index.jsx
@@ -6,7 +6,7 @@
*/
import React from 'react'
import PropTypes from 'prop-types'
-import {SimpleGrid} from '@salesforce/retail-react-app/app/components/shared/ui'
+import {SimpleGrid} from '@chakra-ui/react'
import {Region, regionPropType} from '@salesforce/commerce-sdk-react/components'
/**
diff --git a/packages/template-retail-react-app/app/page-designer/layouts/mobileGrid3r1c/index.test.js b/packages/template-chakra-storefront/src/page-designer/layouts/mobileGrid3r1c/index.test.js
similarity index 83%
rename from packages/template-retail-react-app/app/page-designer/layouts/mobileGrid3r1c/index.test.js
rename to packages/template-chakra-storefront/src/page-designer/layouts/mobileGrid3r1c/index.test.js
index c9ea4df04f..eb7f7bb41a 100644
--- a/packages/template-retail-react-app/app/page-designer/layouts/mobileGrid3r1c/index.test.js
+++ b/packages/template-chakra-storefront/src/page-designer/layouts/mobileGrid3r1c/index.test.js
@@ -5,11 +5,15 @@
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
import React from 'react'
-import {
- renderWithProviders,
- withPageProvider
-} from '@salesforce/retail-react-app/app/utils/test-utils'
-import MobileGrid3r1c from '@salesforce/retail-react-app/app/page-designer/layouts/mobileGrid3r1c/index'
+import {renderWithProviders, withPageProvider} from '../../../utils/test-utils'
+import MobileGrid3r1c from './index'
+jest.mock('@salesforce/pwa-kit-runtime/utils/ssr-config', () => {
+ const original = jest.requireActual('@salesforce/pwa-kit-runtime/utils/ssr-config')
+ return {
+ ...original,
+ getConfig: jest.fn(() => require('../../../../mock-config'))
+ }
+})
test('MobileGrid3r1c renders without errors', () => {
const MobileGrid3r1cWithPageProvider = withPageProvider(MobileGrid3r1c)
diff --git a/packages/template-retail-react-app/app/page-designer/layouts/mobileGrid3r2c/index.jsx b/packages/template-chakra-storefront/src/page-designer/layouts/mobileGrid3r2c/index.jsx
similarity index 94%
rename from packages/template-retail-react-app/app/page-designer/layouts/mobileGrid3r2c/index.jsx
rename to packages/template-chakra-storefront/src/page-designer/layouts/mobileGrid3r2c/index.jsx
index 09984abd5e..54d947d19b 100644
--- a/packages/template-retail-react-app/app/page-designer/layouts/mobileGrid3r2c/index.jsx
+++ b/packages/template-chakra-storefront/src/page-designer/layouts/mobileGrid3r2c/index.jsx
@@ -6,7 +6,7 @@
*/
import React from 'react'
import PropTypes from 'prop-types'
-import {SimpleGrid} from '@salesforce/retail-react-app/app/components/shared/ui'
+import {SimpleGrid} from '@chakra-ui/react'
import {Region, regionPropType} from '@salesforce/commerce-sdk-react/components'
/**
diff --git a/packages/template-retail-react-app/app/page-designer/layouts/mobileGrid3r2c/index.test.js b/packages/template-chakra-storefront/src/page-designer/layouts/mobileGrid3r2c/index.test.js
similarity index 93%
rename from packages/template-retail-react-app/app/page-designer/layouts/mobileGrid3r2c/index.test.js
rename to packages/template-chakra-storefront/src/page-designer/layouts/mobileGrid3r2c/index.test.js
index 5624e7649f..e6ebe8634d 100644
--- a/packages/template-retail-react-app/app/page-designer/layouts/mobileGrid3r2c/index.test.js
+++ b/packages/template-chakra-storefront/src/page-designer/layouts/mobileGrid3r2c/index.test.js
@@ -5,11 +5,8 @@
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
import React from 'react'
-import {
- renderWithProviders,
- withPageProvider
-} from '@salesforce/retail-react-app/app/utils/test-utils'
-import MobileGrid3r2c from '@salesforce/retail-react-app/app/page-designer/layouts/mobileGrid3r2c/index'
+import {renderWithProviders, withPageProvider} from '../../../utils/test-utils'
+import MobileGrid3r2c from '.'
test('MobileGrid3r2c renders without errors', () => {
const MobileGrid3r2cWithPageProvider = withPageProvider(MobileGrid3r2c)
diff --git a/packages/template-retail-react-app/app/page-designer/utils.js b/packages/template-chakra-storefront/src/page-designer/utils.js
similarity index 100%
rename from packages/template-retail-react-app/app/page-designer/utils.js
rename to packages/template-chakra-storefront/src/page-designer/utils.js
diff --git a/packages/template-retail-react-app/app/pages/account/addresses.jsx b/packages/template-chakra-storefront/src/pages/account/addresses.jsx
similarity index 94%
rename from packages/template-retail-react-app/app/pages/account/addresses.jsx
rename to packages/template-chakra-storefront/src/pages/account/addresses.jsx
index 1d4565ace5..b5658f031e 100644
--- a/packages/template-retail-react-app/app/pages/account/addresses.jsx
+++ b/packages/template-chakra-storefront/src/pages/account/addresses.jsx
@@ -21,21 +21,21 @@ import {
Skeleton,
Stack,
Text
-} from '@salesforce/retail-react-app/app/components/shared/ui'
-import FormActionButtons from '@salesforce/retail-react-app/app/components/forms/form-action-buttons'
+} from '@chakra-ui/react'
+import FormActionButtons from '../../components/forms/form-action-buttons'
import {useForm} from 'react-hook-form'
-import {useToast} from '@salesforce/retail-react-app/app/hooks/use-toast'
+import {useToast} from '../../hooks/use-toast'
-import LoadingSpinner from '@salesforce/retail-react-app/app/components/loading-spinner'
-import {LocationIcon, PlusIcon} from '@salesforce/retail-react-app/app/components/icons'
-import ActionCard from '@salesforce/retail-react-app/app/components/action-card'
-import AddressFields from '@salesforce/retail-react-app/app/components/forms/address-fields'
-import AddressDisplay from '@salesforce/retail-react-app/app/components/address-display'
-import PageActionPlaceHolder from '@salesforce/retail-react-app/app/components/page-action-placeholder'
-import {useCurrentCustomer} from '@salesforce/retail-react-app/app/hooks/use-current-customer'
+import LoadingSpinner from '../../components/loading-spinner'
+import {LocationIcon, PlusIcon} from '../../components/icons'
+import ActionCard from '../../components/action-card'
+import AddressFields from '../../components/forms/address-fields'
+import AddressDisplay from '../../components/address-display'
+import PageActionPlaceHolder from '../../components/page-action-placeholder'
+import {useCurrentCustomer} from '../../hooks/use-current-customer'
import {useShopperCustomersMutation} from '@salesforce/commerce-sdk-react'
import {nanoid} from 'nanoid'
-import {API_ERROR_MESSAGE} from '@salesforce/retail-react-app/app/constants'
+import {API_ERROR_MESSAGE} from '../../../config/constants'
const DEFAULT_SKELETON_COUNT = 3
diff --git a/packages/template-retail-react-app/app/pages/account/addresses.test.js b/packages/template-chakra-storefront/src/pages/account/addresses.test.js
similarity index 95%
rename from packages/template-retail-react-app/app/pages/account/addresses.test.js
rename to packages/template-chakra-storefront/src/pages/account/addresses.test.js
index 7146ea943e..0bcfeff8c4 100644
--- a/packages/template-retail-react-app/app/pages/account/addresses.test.js
+++ b/packages/template-chakra-storefront/src/pages/account/addresses.test.js
@@ -6,19 +6,16 @@
*/
import React from 'react'
import {screen, waitFor} from '@testing-library/react'
-import {
- createPathWithDefaults,
- renderWithProviders
-} from '@salesforce/retail-react-app/app/utils/test-utils'
+import {createPathWithDefaults, renderWithProviders} from '../../utils/test-utils'
import {rest} from 'msw'
-import AccountAddresses from '@salesforce/retail-react-app/app/pages/account/addresses'
+import AccountAddresses from './addresses'
import {
mockedRegisteredCustomerWithNoAddress,
mockedRegisteredCustomer
-} from '@salesforce/retail-react-app/app/mocks/mock-data'
+} from '../../../mocks/mock-data'
import {Route, Switch} from 'react-router-dom'
-import mockConfig from '@salesforce/retail-react-app/config/mocks/default'
+import mockConfig from '../../../mock-config'
let mockCustomer = {}
diff --git a/packages/template-retail-react-app/app/pages/account/constant.js b/packages/template-chakra-storefront/src/pages/account/constant.js
similarity index 93%
rename from packages/template-retail-react-app/app/pages/account/constant.js
rename to packages/template-chakra-storefront/src/pages/account/constant.js
index 70ee1de41b..817e2dacad 100644
--- a/packages/template-retail-react-app/app/pages/account/constant.js
+++ b/packages/template-chakra-storefront/src/pages/account/constant.js
@@ -6,12 +6,7 @@
*/
import {defineMessages} from 'react-intl'
-import {
- AccountIcon,
- LocationIcon,
- ReceiptIcon,
- HeartIcon
-} from '@salesforce/retail-react-app/app/components/icons'
+import {AccountIcon, LocationIcon, ReceiptIcon, HeartIcon} from '../../components/icons'
export const messages = defineMessages({
profile: {defaultMessage: 'Account Details', id: 'global.account.link.account_details'},
diff --git a/packages/template-retail-react-app/app/pages/account/index.jsx b/packages/template-chakra-storefront/src/pages/account/index.jsx
similarity index 86%
rename from packages/template-retail-react-app/app/pages/account/index.jsx
rename to packages/template-chakra-storefront/src/pages/account/index.jsx
index 494b472e66..9480abe80d 100644
--- a/packages/template-retail-react-app/app/pages/account/index.jsx
+++ b/packages/template-chakra-storefront/src/pages/account/index.jsx
@@ -8,7 +8,7 @@
import React, {useEffect, useState} from 'react'
import PropTypes from 'prop-types'
import {FormattedMessage, useIntl} from 'react-intl'
-import {Route, Switch, useRouteMatch, Redirect} from 'react-router'
+import {Route, Switch, Redirect, useLocation, useRouteMatch} from 'react-router-dom'
import {
Accordion,
AccordionButton,
@@ -22,29 +22,24 @@ import {
Stack,
Text,
Divider
-} from '@salesforce/retail-react-app/app/components/shared/ui'
-import Seo from '@salesforce/retail-react-app/app/components/seo'
-import Link from '@salesforce/retail-react-app/app/components/link'
-import {
- ChevronDownIcon,
- ChevronUpIcon,
- SignoutIcon
-} from '@salesforce/retail-react-app/app/components/icons'
-import AccountDetail from '@salesforce/retail-react-app/app/pages/account/profile'
-import AccountAddresses from '@salesforce/retail-react-app/app/pages/account/addresses'
-import AccountOrders from '@salesforce/retail-react-app/app/pages/account/orders'
-import AccountWishlist from '@salesforce/retail-react-app/app/pages/account/wishlist/index'
-import {useLocation} from 'react-router-dom'
-
-import {messages, navLinks} from '@salesforce/retail-react-app/app/pages/account/constant'
-import useNavigation from '@salesforce/retail-react-app/app/hooks/use-navigation'
-import LoadingSpinner from '@salesforce/retail-react-app/app/components/loading-spinner'
-import useMultiSite from '@salesforce/retail-react-app/app/hooks/use-multi-site'
-import useEinstein from '@salesforce/retail-react-app/app/hooks/use-einstein'
-import useDataCloud from '@salesforce/retail-react-app/app/hooks/use-datacloud'
+} from '@chakra-ui/react'
+import Seo from '../../components/seo'
+import Link from '../../components/link'
+import {ChevronDownIcon, ChevronUpIcon, SignoutIcon} from '../../components/icons'
+import AccountDetail from './profile'
+import AccountAddresses from './addresses'
+import AccountOrders from './orders'
+import AccountWishlist from './wishlist/index'
+
+import {messages, navLinks} from './constant'
+import useNavigation from '../../hooks/use-navigation'
+import LoadingSpinner from '../../components/loading-spinner'
+import useMultiSite from '../../hooks/use-multi-site'
+import useEinstein from '../../hooks/use-einstein'
+import useDataCloud from '../../hooks/use-datacloud'
import {useAuthHelper, AuthHelpers} from '@salesforce/commerce-sdk-react'
-import {useCurrentCustomer} from '@salesforce/retail-react-app/app/hooks/use-current-customer'
-import {isHydrated} from '@salesforce/retail-react-app/app/utils/utils'
+import {useCurrentCustomer} from '../../hooks/use-current-customer'
+import {isHydrated} from '../../utils/utils'
const onClient = typeof window !== 'undefined'
const LogoutButton = ({onClick}) => {
diff --git a/packages/template-retail-react-app/app/pages/account/index.test.js b/packages/template-chakra-storefront/src/pages/account/index.test.js
similarity index 96%
rename from packages/template-retail-react-app/app/pages/account/index.test.js
rename to packages/template-chakra-storefront/src/pages/account/index.test.js
index abaadee4e2..a1d0374fe7 100644
--- a/packages/template-retail-react-app/app/pages/account/index.test.js
+++ b/packages/template-chakra-storefront/src/pages/account/index.test.js
@@ -8,22 +8,18 @@ import React from 'react'
import {Route, Switch} from 'react-router-dom'
import {screen, waitFor, within} from '@testing-library/react'
import {rest} from 'msw'
-import {
- renderWithProviders,
- createPathWithDefaults,
- guestToken
-} from '@salesforce/retail-react-app/app/utils/test-utils'
+import {renderWithProviders, createPathWithDefaults, guestToken} from '../../utils/test-utils'
import {
mockOrderHistory,
mockedGuestCustomer,
mockedRegisteredCustomer,
mockOrderProducts,
mockPasswordUpdateFalure
-} from '@salesforce/retail-react-app/app/mocks/mock-data'
+} from '../../../mocks/mock-data'
+import Account from './index'
+import Login from '../login'
+import mockConfig from '../../../mock-config'
import {useCustomerType} from '@salesforce/commerce-sdk-react'
-import Account from '@salesforce/retail-react-app/app/pages/account/index'
-import Login from '@salesforce/retail-react-app/app/pages/login'
-import mockConfig from '@salesforce/retail-react-app/config/mocks/default'
jest.setTimeout(60000)
jest.mock('@salesforce/commerce-sdk-react', () => ({
diff --git a/packages/template-retail-react-app/app/pages/account/order-detail.jsx b/packages/template-chakra-storefront/src/pages/account/order-detail.jsx
similarity index 95%
rename from packages/template-retail-react-app/app/pages/account/order-detail.jsx
rename to packages/template-chakra-storefront/src/pages/account/order-detail.jsx
index c2e6084be8..f42cc5b8a0 100644
--- a/packages/template-retail-react-app/app/pages/account/order-detail.jsx
+++ b/packages/template-chakra-storefront/src/pages/account/order-detail.jsx
@@ -7,7 +7,7 @@
import React, {useEffect, useRef} from 'react'
import {FormattedMessage, useIntl} from 'react-intl'
-import {useHistory, useRouteMatch} from 'react-router'
+import {useHistory, useRouteMatch} from 'react-router-dom'
import {
Box,
Heading,
@@ -20,17 +20,17 @@ import {
Grid,
SimpleGrid,
Skeleton
-} from '@salesforce/retail-react-app/app/components/shared/ui'
-import {getCreditCardIcon} from '@salesforce/retail-react-app/app/utils/cc-utils'
+} from '@chakra-ui/react'
+import {getCreditCardIcon} from '../../utils/cc-utils'
import {useOrder, useProducts} from '@salesforce/commerce-sdk-react'
-import Link from '@salesforce/retail-react-app/app/components/link'
-import {ChevronLeftIcon} from '@salesforce/retail-react-app/app/components/icons'
-import OrderSummary from '@salesforce/retail-react-app/app/components/order-summary'
-import ItemVariantProvider from '@salesforce/retail-react-app/app/components/item-variant'
-import CartItemVariantImage from '@salesforce/retail-react-app/app/components/item-variant/item-image'
-import CartItemVariantName from '@salesforce/retail-react-app/app/components/item-variant/item-name'
-import CartItemVariantAttributes from '@salesforce/retail-react-app/app/components/item-variant/item-attributes'
-import CartItemVariantPrice from '@salesforce/retail-react-app/app/components/item-variant/item-price'
+import Link from '../../components/link'
+import {ChevronLeftIcon} from '../../components/icons'
+import OrderSummary from '../../components/order-summary'
+import ItemVariantProvider from '../../components/item-variant'
+import CartItemVariantImage from '../../components/item-variant/item-image'
+import CartItemVariantName from '../../components/item-variant/item-name'
+import CartItemVariantAttributes from '../../components/item-variant/item-attributes'
+import CartItemVariantPrice from '../../components/item-variant/item-price'
import PropTypes from 'prop-types'
const onClient = typeof window !== 'undefined'
diff --git a/packages/template-retail-react-app/app/pages/account/order-history.jsx b/packages/template-chakra-storefront/src/pages/account/order-history.jsx
similarity index 92%
rename from packages/template-retail-react-app/app/pages/account/order-history.jsx
rename to packages/template-chakra-storefront/src/pages/account/order-history.jsx
index 3fa170dec6..41363f605a 100644
--- a/packages/template-retail-react-app/app/pages/account/order-history.jsx
+++ b/packages/template-chakra-storefront/src/pages/account/order-history.jsx
@@ -7,7 +7,7 @@
import React, {useEffect, useRef} from 'react'
import {FormattedMessage, FormattedNumber, useIntl} from 'react-intl'
-import {useLocation} from 'react-router'
+import {useLocation} from 'react-router-dom'
import {
Box,
Heading,
@@ -21,17 +21,16 @@ import {
AspectRatio,
Img,
Skeleton
-} from '@salesforce/retail-react-app/app/components/shared/ui'
-import {useCurrentCustomer} from '@salesforce/retail-react-app/app/hooks/use-current-customer'
+} from '@chakra-ui/react'
import {useCustomerOrders, useProducts} from '@salesforce/commerce-sdk-react'
-import useNavigation from '@salesforce/retail-react-app/app/hooks/use-navigation'
-import {usePageUrls, useSearchParams} from '@salesforce/retail-react-app/app/hooks'
-import PageActionPlaceHolder from '@salesforce/retail-react-app/app/components/page-action-placeholder'
-import Link from '@salesforce/retail-react-app/app/components/link'
-import {ChevronRightIcon, ReceiptIcon} from '@salesforce/retail-react-app/app/components/icons'
-import Pagination from '@salesforce/retail-react-app/app/components/pagination'
+import useNavigation from '../../hooks/use-navigation'
+import {useCurrentCustomer, usePageUrls, useSearchParams} from '../../hooks'
+import {getConfig} from '@salesforce/pwa-kit-runtime/utils/ssr-config'
+import PageActionPlaceHolder from '../../components/page-action-placeholder'
+import Link from '../../components/link'
+import {ChevronRightIcon, ReceiptIcon} from '../../components/icons'
+import Pagination from '../../components/pagination'
import PropTypes from 'prop-types'
-import {DEFAULT_ORDERS_SEARCH_PARAMS} from '@salesforce/retail-react-app/app/constants'
const OrderProductImages = ({productItems}) => {
const ids = productItems.map((item) => item.productId).join(',') ?? ''
@@ -81,11 +80,14 @@ const AccountOrderHistory = () => {
const location = useLocation()
const {formatMessage, formatDate} = useIntl()
const navigate = useNavigation()
+ const {
+ pages: {account: accountConfig}
+ } = getConfig()
const {data: customer} = useCurrentCustomer()
const {customerId} = customer
- const searchParams = useSearchParams(DEFAULT_ORDERS_SEARCH_PARAMS)
+ const searchParams = useSearchParams(accountConfig.orderSearchParam)
const {limit, offset} = searchParams[0]
const {data: {data: orders, ...paging} = {}, isLoading} = useCustomerOrders(
diff --git a/packages/template-retail-react-app/app/pages/account/orders.jsx b/packages/template-chakra-storefront/src/pages/account/orders.jsx
similarity index 74%
rename from packages/template-retail-react-app/app/pages/account/orders.jsx
rename to packages/template-chakra-storefront/src/pages/account/orders.jsx
index 76f716cf94..e7841d5868 100644
--- a/packages/template-retail-react-app/app/pages/account/orders.jsx
+++ b/packages/template-chakra-storefront/src/pages/account/orders.jsx
@@ -6,9 +6,9 @@
*/
import React from 'react'
-import {Route, Switch, useRouteMatch} from 'react-router'
-import OrderHistory from '@salesforce/retail-react-app/app/pages/account/order-history'
-import OrderDetail from '@salesforce/retail-react-app/app/pages/account/order-detail'
+import {Route, Switch, useRouteMatch} from 'react-router-dom'
+import OrderHistory from './order-history'
+import OrderDetail from './order-detail'
const AccountOrders = () => {
const {path} = useRouteMatch()
diff --git a/packages/template-retail-react-app/app/pages/account/orders.test.js b/packages/template-chakra-storefront/src/pages/account/orders.test.js
similarity index 85%
rename from packages/template-retail-react-app/app/pages/account/orders.test.js
rename to packages/template-chakra-storefront/src/pages/account/orders.test.js
index de57b529a5..abe4cb7d99 100644
--- a/packages/template-retail-react-app/app/pages/account/orders.test.js
+++ b/packages/template-chakra-storefront/src/pages/account/orders.test.js
@@ -8,18 +8,17 @@ import React from 'react'
import {Route, Switch} from 'react-router-dom'
import {screen} from '@testing-library/react'
import {rest} from 'msw'
-import {
- renderWithProviders,
- createPathWithDefaults
-} from '@salesforce/retail-react-app/app/utils/test-utils'
-import {
- mockCustomerBaskets,
- mockOrderHistory,
- mockOrderProducts
-} from '@salesforce/retail-react-app/app/mocks/mock-data'
-import Orders from '@salesforce/retail-react-app/app/pages/account/orders'
-import mockConfig from '@salesforce/retail-react-app/config/mocks/default'
-
+import {renderWithProviders, createPathWithDefaults} from '../../utils/test-utils'
+import {mockCustomerBaskets, mockOrderHistory, mockOrderProducts} from '../../../mocks/mock-data'
+import Orders from './orders'
+import mockConfig from '../../../mock-config'
+jest.mock('@salesforce/pwa-kit-runtime/utils/ssr-config', () => {
+ const original = jest.requireActual('@salesforce/pwa-kit-runtime/utils/ssr-config')
+ return {
+ ...original,
+ getConfig: jest.fn(() => require('../../../mock-config'))
+ }
+})
const MockedComponent = () => {
return (
diff --git a/packages/template-retail-react-app/app/pages/account/profile.jsx b/packages/template-chakra-storefront/src/pages/account/profile.jsx
similarity index 95%
rename from packages/template-retail-react-app/app/pages/account/profile.jsx
rename to packages/template-chakra-storefront/src/pages/account/profile.jsx
index 85ce237076..b42e6dd1de 100644
--- a/packages/template-retail-react-app/app/pages/account/profile.jsx
+++ b/packages/template-chakra-storefront/src/pages/account/profile.jsx
@@ -18,24 +18,20 @@ import {
Stack,
Text,
useToast
-} from '@salesforce/retail-react-app/app/components/shared/ui'
+} from '@chakra-ui/react'
import {useForm} from 'react-hook-form'
-import {AlertIcon} from '@salesforce/retail-react-app/app/components/icons'
-import {
- ToggleCard,
- ToggleCardEdit,
- ToggleCardSummary
-} from '@salesforce/retail-react-app/app/components/toggle-card'
-import ProfileFields from '@salesforce/retail-react-app/app/components/forms/profile-fields'
-import UpdatePasswordFields from '@salesforce/retail-react-app/app/components/forms/update-password-fields'
-import FormActionButtons from '@salesforce/retail-react-app/app/components/forms/form-action-buttons'
+import {AlertIcon} from '../../components/icons'
+import {ToggleCard, ToggleCardEdit, ToggleCardSummary} from '../../components/toggle-card'
+import ProfileFields from '../../components/forms/profile-fields'
+import UpdatePasswordFields from '../../components/forms/update-password-fields'
+import FormActionButtons from '../../components/forms/form-action-buttons'
import {
useShopperCustomersMutation,
useAuthHelper,
AuthHelpers,
useCustomerType
} from '@salesforce/commerce-sdk-react'
-import {useCurrentCustomer} from '@salesforce/retail-react-app/app/hooks/use-current-customer'
+import {useCurrentCustomer} from '../../hooks/use-current-customer'
/**
* This is a specialized Skeleton component that which uses the customers authtype as the
diff --git a/packages/template-retail-react-app/app/pages/account/profile.test.js b/packages/template-chakra-storefront/src/pages/account/profile.test.js
similarity index 87%
rename from packages/template-retail-react-app/app/pages/account/profile.test.js
rename to packages/template-chakra-storefront/src/pages/account/profile.test.js
index 8a1ad392bf..ab6500287d 100644
--- a/packages/template-retail-react-app/app/pages/account/profile.test.js
+++ b/packages/template-chakra-storefront/src/pages/account/profile.test.js
@@ -6,23 +6,17 @@
*/
import React from 'react'
import {screen, waitFor, within} from '@testing-library/react'
-import {
- createPathWithDefaults,
- renderWithProviders
-} from '@salesforce/retail-react-app/app/utils/test-utils'
+import {createPathWithDefaults, renderWithProviders} from '../../utils/test-utils'
import {rest} from 'msw'
-import AccountDetail from '@salesforce/retail-react-app/app/pages/account/profile'
+import AccountDetail from './profile'
import {
mockedRegisteredCustomerWithNoNumber,
mockedRegisteredCustomer
-} from '@salesforce/retail-react-app/app/mocks/mock-data'
-
+} from '../../../mocks/mock-data'
import {Route, Switch} from 'react-router-dom'
-import mockConfig from '@salesforce/retail-react-app/config/mocks/default'
+import mockConfig from '../../../mock-config'
import * as sdk from '@salesforce/commerce-sdk-react'
-let mockCustomer = {}
-
const MockedComponent = () => {
return (
@@ -65,7 +59,7 @@ test('Allows customer to edit phone number', async () => {
)
)
const {user} = renderWithProviders( , {
- wrapperProps: {siteAlias: 'uk', appConfig: mockConfig.app}
+ wrapperProps: {siteAlias: 'uk', appConfig: mockConfig}
})
await waitFor(() => {
@@ -103,7 +97,7 @@ test('Non ECOM user cannot see the password card', async () => {
)
)
renderWithProviders( , {
- wrapperProps: {siteAlias: 'uk', appConfig: mockConfig.app}
+ wrapperProps: {siteAlias: 'uk', appConfig: mockConfig}
})
await waitFor(() => {
diff --git a/packages/template-retail-react-app/app/pages/account/wishlist/index.jsx b/packages/template-chakra-storefront/src/pages/account/wishlist/index.jsx
similarity index 87%
rename from packages/template-retail-react-app/app/pages/account/wishlist/index.jsx
rename to packages/template-chakra-storefront/src/pages/account/wishlist/index.jsx
index 0c2ec4ef78..cf08ecbe4c 100644
--- a/packages/template-retail-react-app/app/pages/account/wishlist/index.jsx
+++ b/packages/template-chakra-storefront/src/pages/account/wishlist/index.jsx
@@ -6,28 +6,22 @@
*/
import React, {useState, useEffect, useRef} from 'react'
import {FormattedMessage, useIntl} from 'react-intl'
-import {
- Box,
- Flex,
- Skeleton,
- Stack,
- Heading
-} from '@salesforce/retail-react-app/app/components/shared/ui'
+import {Box, Stack, Heading, Flex, Skeleton} from '@chakra-ui/react'
import {useProducts, useShopperCustomersMutation} from '@salesforce/commerce-sdk-react'
-import useNavigation from '@salesforce/retail-react-app/app/hooks/use-navigation'
-import {useToast} from '@salesforce/retail-react-app/app/hooks/use-toast'
-import {useWishList} from '@salesforce/retail-react-app/app/hooks/use-wish-list'
+import useNavigation from '../../../hooks/use-navigation'
+import {useToast} from '../../../hooks/use-toast'
+import {useWishList} from '../../../hooks/use-wish-list'
-import PageActionPlaceHolder from '@salesforce/retail-react-app/app/components/page-action-placeholder'
-import {HeartIcon} from '@salesforce/retail-react-app/app/components/icons'
-import ProductItem from '@salesforce/retail-react-app/app/components/product-item'
-import WishlistPrimaryAction from '@salesforce/retail-react-app/app/pages/account/wishlist/partials/wishlist-primary-action'
-import WishlistSecondaryButtonGroup from '@salesforce/retail-react-app/app/pages/account/wishlist/partials/wishlist-secondary-button-group'
+import PageActionPlaceHolder from '../../../components/page-action-placeholder'
+import {HeartIcon} from '../../../components/icons'
+import ProductItem from '../../../components/product-item'
+import WishlistPrimaryAction from './partials/wishlist-primary-action'
+import WishlistSecondaryButtonGroup from './partials/wishlist-secondary-button-group'
-import {API_ERROR_MESSAGE} from '@salesforce/retail-react-app/app/constants'
-import {useCurrentCustomer} from '@salesforce/retail-react-app/app/hooks/use-current-customer'
-import UnavailableProductConfirmationModal from '@salesforce/retail-react-app/app/components/unavailable-product-confirmation-modal'
+import {API_ERROR_MESSAGE} from '../../../../config/constants'
+import {useCurrentCustomer} from '../../../hooks/use-current-customer'
+import UnavailableProductConfirmationModal from '../../../components/unavailable-product-confirmation-modal'
const numberOfSkeletonItems = 3
diff --git a/packages/template-retail-react-app/app/pages/account/wishlist/index.mock.js b/packages/template-chakra-storefront/src/pages/account/wishlist/index.mock.js
similarity index 100%
rename from packages/template-retail-react-app/app/pages/account/wishlist/index.mock.js
rename to packages/template-chakra-storefront/src/pages/account/wishlist/index.mock.js
diff --git a/packages/template-retail-react-app/app/pages/account/wishlist/index.test.js b/packages/template-chakra-storefront/src/pages/account/wishlist/index.test.js
similarity index 93%
rename from packages/template-retail-react-app/app/pages/account/wishlist/index.test.js
rename to packages/template-chakra-storefront/src/pages/account/wishlist/index.test.js
index 0442ca767e..947012487e 100644
--- a/packages/template-retail-react-app/app/pages/account/wishlist/index.test.js
+++ b/packages/template-chakra-storefront/src/pages/account/wishlist/index.test.js
@@ -6,7 +6,7 @@
*/
import React from 'react'
import AccountWishlist from '.'
-import {renderWithProviders} from '@salesforce/retail-react-app/app/utils/test-utils'
+import {renderWithProviders} from '../../../utils/test-utils'
import {screen, waitFor} from '@testing-library/react'
import {rest} from 'msw'
import {
@@ -14,7 +14,7 @@ import {
mockedEmptyWishList,
mockedProductLists,
mockedWishListProducts
-} from '@salesforce/retail-react-app/app/pages/account/wishlist/index.mock'
+} from './index.mock'
beforeEach(() => {
jest.resetModules()
diff --git a/packages/template-retail-react-app/app/pages/account/wishlist/partials/wishlist-primary-action.jsx b/packages/template-chakra-storefront/src/pages/account/wishlist/partials/wishlist-primary-action.jsx
similarity index 93%
rename from packages/template-retail-react-app/app/pages/account/wishlist/partials/wishlist-primary-action.jsx
rename to packages/template-chakra-storefront/src/pages/account/wishlist/partials/wishlist-primary-action.jsx
index 5adadab379..1c71bce19d 100644
--- a/packages/template-retail-react-app/app/pages/account/wishlist/partials/wishlist-primary-action.jsx
+++ b/packages/template-chakra-storefront/src/pages/account/wishlist/partials/wishlist-primary-action.jsx
@@ -5,13 +5,13 @@
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
import React, {useState} from 'react'
-import {Button, useDisclosure} from '@salesforce/retail-react-app/app/components/shared/ui'
+import {Button, useDisclosure} from '@chakra-ui/react'
import {FormattedMessage, useIntl} from 'react-intl'
-import {useItemVariant} from '@salesforce/retail-react-app/app/components/item-variant'
-import ProductViewModal from '@salesforce/retail-react-app/app/components/product-view-modal'
-import {useToast} from '@salesforce/retail-react-app/app/hooks/use-toast'
-import {API_ERROR_MESSAGE} from '@salesforce/retail-react-app/app/constants'
-import Link from '@salesforce/retail-react-app/app/components/link'
+import {useItemVariant} from '../../../../components/item-variant'
+import ProductViewModal from '../../../../components/product-view-modal'
+import {useToast} from '../../../../hooks/use-toast'
+import {API_ERROR_MESSAGE} from '../../../../../config/constants'
+import Link from '../../../../components/link'
import {useShopperBasketsMutationHelper} from '@salesforce/commerce-sdk-react'
/**
diff --git a/packages/template-retail-react-app/app/pages/account/wishlist/partials/wishlist-primary-action.mock.js b/packages/template-chakra-storefront/src/pages/account/wishlist/partials/wishlist-primary-action.mock.js
similarity index 100%
rename from packages/template-retail-react-app/app/pages/account/wishlist/partials/wishlist-primary-action.mock.js
rename to packages/template-chakra-storefront/src/pages/account/wishlist/partials/wishlist-primary-action.mock.js
diff --git a/packages/template-retail-react-app/app/pages/account/wishlist/partials/wishlist-primary-action.test.js b/packages/template-chakra-storefront/src/pages/account/wishlist/partials/wishlist-primary-action.test.js
similarity index 83%
rename from packages/template-retail-react-app/app/pages/account/wishlist/partials/wishlist-primary-action.test.js
rename to packages/template-chakra-storefront/src/pages/account/wishlist/partials/wishlist-primary-action.test.js
index 40719d19ac..1012fe2ba0 100644
--- a/packages/template-retail-react-app/app/pages/account/wishlist/partials/wishlist-primary-action.test.js
+++ b/packages/template-chakra-storefront/src/pages/account/wishlist/partials/wishlist-primary-action.test.js
@@ -5,15 +5,15 @@
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
import React from 'react'
-import {mockWishListDetails} from '@salesforce/retail-react-app/app/pages/account/wishlist/partials/wishlist-primary-action.mock'
-import ItemVariantProvider from '@salesforce/retail-react-app/app/components/item-variant'
-import {renderWithProviders} from '@salesforce/retail-react-app/app/utils/test-utils'
-import WishlistPrimaryAction from '@salesforce/retail-react-app/app/pages/account/wishlist/partials/wishlist-primary-action'
+import {mockWishListDetails} from './wishlist-primary-action.mock'
+import ItemVariantProvider from '../../../../components/item-variant'
+import {renderWithProviders} from '../../../../utils/test-utils'
+import WishlistPrimaryAction from './wishlist-primary-action'
import {screen, waitFor} from '@testing-library/react'
import PropTypes from 'prop-types'
import {rest} from 'msw'
-import {basketWithProductSet} from '@salesforce/retail-react-app/app/pages/product-detail/index.mock'
-import {mockProductBundle} from '@salesforce/retail-react-app/app/mocks/product-bundle'
+import {basketWithProductSet} from '../../../product-detail/index.mock'
+import {mockProductBundle} from '../../../../../mocks/product-bundle'
const MockedComponent = ({variant}) => {
return (
diff --git a/packages/template-retail-react-app/app/pages/account/wishlist/partials/wishlist-secondary-button-group.jsx b/packages/template-chakra-storefront/src/pages/account/wishlist/partials/wishlist-secondary-button-group.jsx
similarity index 87%
rename from packages/template-retail-react-app/app/pages/account/wishlist/partials/wishlist-secondary-button-group.jsx
rename to packages/template-chakra-storefront/src/pages/account/wishlist/partials/wishlist-secondary-button-group.jsx
index 894b72395a..0c074946f2 100644
--- a/packages/template-retail-react-app/app/pages/account/wishlist/partials/wishlist-secondary-button-group.jsx
+++ b/packages/template-chakra-storefront/src/pages/account/wishlist/partials/wishlist-secondary-button-group.jsx
@@ -6,22 +6,18 @@
*/
import React from 'react'
import PropTypes from 'prop-types'
-import {
- Button,
- ButtonGroup,
- useDisclosure
-} from '@salesforce/retail-react-app/app/components/shared/ui'
+import {Button, ButtonGroup, useDisclosure} from '@chakra-ui/react'
import {useIntl, defineMessage, FormattedMessage} from 'react-intl'
import {useShopperCustomersMutation} from '@salesforce/commerce-sdk-react'
-import {useToast} from '@salesforce/retail-react-app/app/hooks/use-toast'
-import {useCurrentCustomer} from '@salesforce/retail-react-app/app/hooks/use-current-customer'
-import {useWishList} from '@salesforce/retail-react-app/app/hooks/use-wish-list'
+import {useToast} from '../../../../hooks/use-toast'
+import {useCurrentCustomer} from '../../../../hooks/use-current-customer'
+import {useWishList} from '../../../../hooks/use-wish-list'
-import ConfirmationModal from '@salesforce/retail-react-app/app/components/confirmation-modal/index'
-import {useItemVariant} from '@salesforce/retail-react-app/app/components/item-variant'
-import {noop} from '@salesforce/retail-react-app/app/utils/utils'
-import {API_ERROR_MESSAGE} from '@salesforce/retail-react-app/app/constants'
+import ConfirmationModal from '../../../../components/confirmation-modal/index'
+import {useItemVariant} from '../../../../components/item-variant'
+import {noop} from '../../../../utils/utils'
+import {API_ERROR_MESSAGE} from '../../../../../config/constants'
export const REMOVE_WISHLIST_ITEM_CONFIRMATION_DIALOG_CONFIG = {
dialogTitle: defineMessage({
diff --git a/packages/template-retail-react-app/app/pages/account/wishlist/partials/wishlist-secondary-button-group.test.js b/packages/template-chakra-storefront/src/pages/account/wishlist/partials/wishlist-secondary-button-group.test.js
similarity index 97%
rename from packages/template-retail-react-app/app/pages/account/wishlist/partials/wishlist-secondary-button-group.test.js
rename to packages/template-chakra-storefront/src/pages/account/wishlist/partials/wishlist-secondary-button-group.test.js
index 10c988e192..591b78884b 100644
--- a/packages/template-retail-react-app/app/pages/account/wishlist/partials/wishlist-secondary-button-group.test.js
+++ b/packages/template-chakra-storefront/src/pages/account/wishlist/partials/wishlist-secondary-button-group.test.js
@@ -5,16 +5,13 @@
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
import React from 'react'
-import ItemVariantProvider from '@salesforce/retail-react-app/app/components/item-variant'
-import {renderWithProviders} from '@salesforce/retail-react-app/app/utils/test-utils'
-import WishlistSecondaryButtonGroup from '@salesforce/retail-react-app/app/pages/account/wishlist/partials/wishlist-secondary-button-group'
+import ItemVariantProvider from '../../../../components/item-variant'
+import {renderWithProviders} from '../../../../utils/test-utils'
+import WishlistSecondaryButtonGroup from './wishlist-secondary-button-group'
import {screen, waitFor} from '@testing-library/react'
import user from '@testing-library/user-event'
import {rest} from 'msw'
-import {
- mockedProductLists,
- mockedWishListProducts
-} from '@salesforce/retail-react-app/app/pages/account/wishlist/index.mock'
+import {mockedProductLists, mockedWishListProducts} from '../index.mock'
const mockData = {
creationDate: '2021-09-13T23:29:23.396Z',
diff --git a/packages/template-retail-react-app/app/pages/cart/cart.mock.js b/packages/template-chakra-storefront/src/pages/cart/cart.mock.js
similarity index 100%
rename from packages/template-retail-react-app/app/pages/cart/cart.mock.js
rename to packages/template-chakra-storefront/src/pages/cart/cart.mock.js
diff --git a/packages/template-retail-react-app/app/pages/cart/index.jsx b/packages/template-chakra-storefront/src/pages/cart/index.jsx
similarity index 93%
rename from packages/template-retail-react-app/app/pages/cart/index.jsx
rename to packages/template-chakra-storefront/src/pages/cart/index.jsx
index af29588766..abae9619e2 100644
--- a/packages/template-retail-react-app/app/pages/cart/index.jsx
+++ b/packages/template-chakra-storefront/src/pages/cart/index.jsx
@@ -8,33 +8,25 @@ import React, {useState, useMemo} from 'react'
import {FormattedMessage, useIntl} from 'react-intl'
// Chakra Components
-import {
- Box,
- Stack,
- Grid,
- GridItem,
- Container,
- useDisclosure,
- Button
-} from '@salesforce/retail-react-app/app/components/shared/ui'
+import {Box, Stack, Grid, GridItem, Container, useDisclosure, Button} from '@chakra-ui/react'
// Project Components
-import CartCta from '@salesforce/retail-react-app/app/pages/cart/partials/cart-cta'
-import CartSecondaryButtonGroup from '@salesforce/retail-react-app/app/pages/cart/partials/cart-secondary-button-group'
-import CartSkeleton from '@salesforce/retail-react-app/app/pages/cart/partials/cart-skeleton'
-import CartTitle from '@salesforce/retail-react-app/app/pages/cart/partials/cart-title'
-import ConfirmationModal from '@salesforce/retail-react-app/app/components/confirmation-modal'
-import EmptyCart from '@salesforce/retail-react-app/app/pages/cart/partials/empty-cart'
-import OrderSummary from '@salesforce/retail-react-app/app/components/order-summary'
-import ProductItem from '@salesforce/retail-react-app/app/components/product-item'
-import ProductViewModal from '@salesforce/retail-react-app/app/components/product-view-modal'
-import BundleProductViewModal from '@salesforce/retail-react-app/app/components/product-view-modal/bundle'
-import RecommendedProducts from '@salesforce/retail-react-app/app/components/recommended-products'
+import CartCta from './partials/cart-cta'
+import CartSecondaryButtonGroup from './partials/cart-secondary-button-group'
+import CartSkeleton from './partials/cart-skeleton'
+import CartTitle from './partials/cart-title'
+import ConfirmationModal from '../../components/confirmation-modal'
+import EmptyCart from './partials/empty-cart'
+import OrderSummary from '../../components/order-summary'
+import ProductItem from '../../components/product-item'
+import ProductViewModal from '../../components/product-view-modal'
+import BundleProductViewModal from '../../components/product-view-modal/bundle'
+import RecommendedProducts from '../../components/recommended-products'
// Hooks
-import {useToast} from '@salesforce/retail-react-app/app/hooks/use-toast'
-import useNavigation from '@salesforce/retail-react-app/app/hooks/use-navigation'
-import {useWishList} from '@salesforce/retail-react-app/app/hooks/use-wish-list'
+import {useToast} from '../../hooks/use-toast'
+import useNavigation from '../../hooks/use-navigation'
+import {useWishList} from '../../hooks/use-wish-list'
// Constants
import {
@@ -44,21 +36,21 @@ import {
TOAST_MESSAGE_ADDED_TO_WISHLIST,
TOAST_MESSAGE_REMOVED_ITEM_FROM_CART,
TOAST_MESSAGE_ALREADY_IN_WISHLIST
-} from '@salesforce/retail-react-app/app/constants'
-import {REMOVE_CART_ITEM_CONFIRMATION_DIALOG_CONFIG} from '@salesforce/retail-react-app/app/pages/cart/partials/cart-secondary-button-group'
+} from '../../../config/constants'
+import {REMOVE_CART_ITEM_CONFIRMATION_DIALOG_CONFIG} from './partials/cart-secondary-button-group'
// Utilities
import debounce from 'lodash/debounce'
-import {useCurrentBasket} from '@salesforce/retail-react-app/app/hooks/use-current-basket'
+import {useCurrentBasket} from '../../hooks/use-current-basket'
import {
useShopperBasketsMutation,
useShippingMethodsForShipment,
useProducts,
useShopperCustomersMutation
} from '@salesforce/commerce-sdk-react'
-import {useCurrentCustomer} from '@salesforce/retail-react-app/app/hooks/use-current-customer'
-import UnavailableProductConfirmationModal from '@salesforce/retail-react-app/app/components/unavailable-product-confirmation-modal'
-import {getUpdateBundleChildArray} from '@salesforce/retail-react-app/app/utils/product-utils'
+import {useCurrentCustomer} from '../../hooks/use-current-customer'
+import UnavailableProductConfirmationModal from '../../components/unavailable-product-confirmation-modal'
+import {getUpdateBundleChildArray} from '../../utils/product-utils'
const DEBOUNCE_WAIT = 750
const Cart = () => {
diff --git a/packages/template-retail-react-app/app/pages/cart/index.test.js b/packages/template-chakra-storefront/src/pages/cart/index.test.js
similarity index 98%
rename from packages/template-retail-react-app/app/pages/cart/index.test.js
rename to packages/template-chakra-storefront/src/pages/cart/index.test.js
index 7b9914cc10..dd7dad9ffe 100644
--- a/packages/template-retail-react-app/app/pages/cart/index.test.js
+++ b/packages/template-chakra-storefront/src/pages/cart/index.test.js
@@ -7,27 +7,24 @@
import React from 'react'
import {screen, within, fireEvent, waitFor, act} from '@testing-library/react'
-import {renderWithProviders} from '@salesforce/retail-react-app/app/utils/test-utils'
-import Cart from '@salesforce/retail-react-app/app/pages/cart/index'
+import {renderWithProviders} from '../../utils/test-utils'
+import Cart from './index'
import {
mockShippingMethods,
mockCustomerBaskets,
mockEmptyBasket,
mockCartVariant,
mockedCustomerProductLists
-} from '@salesforce/retail-react-app/app/mocks/mock-data'
-import mockVariant from '@salesforce/retail-react-app/app/mocks/variant-750518699578M'
+} from '../../../mocks/mock-data'
+import mockVariant from '../../../mocks/variant-750518699578M'
import {rest} from 'msw'
import {
mockProductBundle,
mockGetBundleChildrenProducts,
basketWithProductBundle
-} from '@salesforce/retail-react-app/app/mocks/product-bundle'
-import {prependHandlersToServer} from '@salesforce/retail-react-app/jest-setup'
-import {
- baskets as mockBaskets,
- products as mockProducts
-} from '@salesforce/retail-react-app/app/pages/cart/cart.mock'
+} from '../../../mocks/product-bundle'
+import {prependHandlersToServer} from '../../../jest-setup'
+import {baskets as mockBaskets, products as mockProducts} from './cart.mock'
const mockProduct = {
...mockVariant,
diff --git a/packages/template-retail-react-app/app/pages/cart/partials/cart-cta.jsx b/packages/template-chakra-storefront/src/pages/cart/partials/cart-cta.jsx
similarity index 79%
rename from packages/template-retail-react-app/app/pages/cart/partials/cart-cta.jsx
rename to packages/template-chakra-storefront/src/pages/cart/partials/cart-cta.jsx
index 4f7fae0f4c..285881b932 100644
--- a/packages/template-retail-react-app/app/pages/cart/partials/cart-cta.jsx
+++ b/packages/template-chakra-storefront/src/pages/cart/partials/cart-cta.jsx
@@ -6,15 +6,9 @@
*/
import React, {Fragment} from 'react'
import {FormattedMessage} from 'react-intl'
-import {Flex, Button} from '@salesforce/retail-react-app/app/components/shared/ui'
-import {
- AmexIcon,
- DiscoverIcon,
- LockIcon,
- MastercardIcon,
- VisaIcon
-} from '@salesforce/retail-react-app/app/components/icons'
-import Link from '@salesforce/retail-react-app/app/components/link'
+import {Flex, Button} from '@chakra-ui/react'
+import {AmexIcon, DiscoverIcon, LockIcon, MastercardIcon, VisaIcon} from '../../../components/icons'
+import Link from '../../../components/link'
const CartCta = () => {
return (
diff --git a/packages/template-retail-react-app/app/pages/cart/partials/cart-secondary-button-group.jsx b/packages/template-chakra-storefront/src/pages/cart/partials/cart-secondary-button-group.jsx
similarity index 91%
rename from packages/template-retail-react-app/app/pages/cart/partials/cart-secondary-button-group.jsx
rename to packages/template-chakra-storefront/src/pages/cart/partials/cart-secondary-button-group.jsx
index 22e85b6a23..03dbfd5003 100644
--- a/packages/template-retail-react-app/app/pages/cart/partials/cart-secondary-button-group.jsx
+++ b/packages/template-chakra-storefront/src/pages/cart/partials/cart-secondary-button-group.jsx
@@ -6,20 +6,12 @@
*/
import React from 'react'
import PropTypes from 'prop-types'
-import {
- Button,
- ButtonGroup,
- Checkbox,
- Divider,
- Flex,
- Stack,
- useDisclosure
-} from '@salesforce/retail-react-app/app/components/shared/ui'
+import {Button, ButtonGroup, Checkbox, Divider, Flex, Stack, useDisclosure} from '@chakra-ui/react'
import {defineMessage, FormattedMessage} from 'react-intl'
-import {useItemVariant} from '@salesforce/retail-react-app/app/components/item-variant'
-import ConfirmationModal from '@salesforce/retail-react-app/app/components/confirmation-modal/index'
-import {noop} from '@salesforce/retail-react-app/app/utils/utils'
-import {useCurrentCustomer} from '@salesforce/retail-react-app/app/hooks/use-current-customer'
+import {useItemVariant} from '../../../components/item-variant'
+import ConfirmationModal from '../../../components/confirmation-modal/index'
+import {noop} from '../../../utils/utils'
+import {useCurrentCustomer} from '../../../hooks/use-current-customer'
export const REMOVE_CART_ITEM_CONFIRMATION_DIALOG_CONFIG = {
dialogTitle: defineMessage({
diff --git a/packages/template-retail-react-app/app/pages/cart/partials/cart-secondary-button-group.test.js b/packages/template-chakra-storefront/src/pages/cart/partials/cart-secondary-button-group.test.js
similarity index 86%
rename from packages/template-retail-react-app/app/pages/cart/partials/cart-secondary-button-group.test.js
rename to packages/template-chakra-storefront/src/pages/cart/partials/cart-secondary-button-group.test.js
index 162b304cbc..899553c931 100644
--- a/packages/template-retail-react-app/app/pages/cart/partials/cart-secondary-button-group.test.js
+++ b/packages/template-chakra-storefront/src/pages/cart/partials/cart-secondary-button-group.test.js
@@ -6,12 +6,12 @@
*/
import React from 'react'
import PropTypes from 'prop-types'
-import {mockedCustomerProductListsDetails} from '@salesforce/retail-react-app/app/mocks/mock-data'
-import ItemVariantProvider from '@salesforce/retail-react-app/app/components/item-variant'
-import {renderWithProviders} from '@salesforce/retail-react-app/app/utils/test-utils'
-import CartSecondaryButtonGroup from '@salesforce/retail-react-app/app/pages/cart/partials/cart-secondary-button-group'
+import {mockedCustomerProductListsDetails} from '../../../../mocks/mock-data'
+import ItemVariantProvider from '../../../components/item-variant'
+import {renderWithProviders} from '../../../utils/test-utils'
+import CartSecondaryButtonGroup from './cart-secondary-button-group'
import {screen, waitFor} from '@testing-library/react'
-import {noop} from '@salesforce/retail-react-app/app/utils/utils'
+import {noop} from '../../../utils/utils'
const MockedComponent = ({
onAddToWishlistClick = noop,
diff --git a/packages/template-retail-react-app/app/pages/cart/partials/cart-skeleton.jsx b/packages/template-chakra-storefront/src/pages/cart/partials/cart-skeleton.jsx
similarity index 98%
rename from packages/template-retail-react-app/app/pages/cart/partials/cart-skeleton.jsx
rename to packages/template-chakra-storefront/src/pages/cart/partials/cart-skeleton.jsx
index 2f4ed15368..ef3896ac1d 100644
--- a/packages/template-retail-react-app/app/pages/cart/partials/cart-skeleton.jsx
+++ b/packages/template-chakra-storefront/src/pages/cart/partials/cart-skeleton.jsx
@@ -15,7 +15,7 @@ import {
Text,
Heading,
Box
-} from '@salesforce/retail-react-app/app/components/shared/ui'
+} from '@chakra-ui/react'
import {FormattedMessage} from 'react-intl'
const CartItemSkeleton = () => {
diff --git a/packages/template-retail-react-app/app/pages/cart/partials/cart-title.jsx b/packages/template-chakra-storefront/src/pages/cart/partials/cart-title.jsx
similarity index 82%
rename from packages/template-retail-react-app/app/pages/cart/partials/cart-title.jsx
rename to packages/template-chakra-storefront/src/pages/cart/partials/cart-title.jsx
index 6718a1d1a2..8e022289b3 100644
--- a/packages/template-retail-react-app/app/pages/cart/partials/cart-title.jsx
+++ b/packages/template-chakra-storefront/src/pages/cart/partials/cart-title.jsx
@@ -6,8 +6,8 @@
*/
import React from 'react'
import {FormattedMessage} from 'react-intl'
-import {Heading} from '@salesforce/retail-react-app/app/components/shared/ui'
-import {useCurrentBasket} from '@salesforce/retail-react-app/app/hooks/use-current-basket'
+import {Heading} from '@chakra-ui/react'
+import {useCurrentBasket} from '../../../hooks/use-current-basket'
const CartTitle = () => {
const {
diff --git a/packages/template-retail-react-app/app/pages/cart/partials/empty-cart.jsx b/packages/template-chakra-storefront/src/pages/cart/partials/empty-cart.jsx
similarity index 93%
rename from packages/template-retail-react-app/app/pages/cart/partials/empty-cart.jsx
rename to packages/template-chakra-storefront/src/pages/cart/partials/empty-cart.jsx
index 94528693ca..87de810c18 100644
--- a/packages/template-retail-react-app/app/pages/cart/partials/empty-cart.jsx
+++ b/packages/template-chakra-storefront/src/pages/cart/partials/empty-cart.jsx
@@ -7,15 +7,9 @@
import React from 'react'
import PropTypes from 'prop-types'
import {FormattedMessage} from 'react-intl'
-import {
- Box,
- Button,
- Stack,
- Center,
- Text
-} from '@salesforce/retail-react-app/app/components/shared/ui'
-import {AccountIcon, BasketIcon} from '@salesforce/retail-react-app/app/components/icons'
-import Link from '@salesforce/retail-react-app/app/components/link'
+import {Box, Button, Stack, Center, Text} from '@chakra-ui/react'
+import {AccountIcon, BasketIcon} from '../../../components/icons'
+import Link from '../../../components/link'
const EmptyCart = ({isRegistered}) => {
return (
diff --git a/packages/template-retail-react-app/app/pages/checkout/confirmation.jsx b/packages/template-chakra-storefront/src/pages/checkout/confirmation.jsx
similarity index 95%
rename from packages/template-retail-react-app/app/pages/checkout/confirmation.jsx
rename to packages/template-chakra-storefront/src/pages/checkout/confirmation.jsx
index f84ae0284a..d828a09ad9 100644
--- a/packages/template-retail-react-app/app/pages/checkout/confirmation.jsx
+++ b/packages/template-chakra-storefront/src/pages/checkout/confirmation.jsx
@@ -19,24 +19,24 @@ import {
Alert,
AlertIcon,
Divider
-} from '@salesforce/retail-react-app/app/components/shared/ui'
+} from '@chakra-ui/react'
import {useForm} from 'react-hook-form'
import {useParams} from 'react-router-dom'
import {useOrder, useProducts, useAuthHelper, AuthHelpers} from '@salesforce/commerce-sdk-react'
-import {getCreditCardIcon} from '@salesforce/retail-react-app/app/utils/cc-utils'
-import useNavigation from '@salesforce/retail-react-app/app/hooks/use-navigation'
-import Link from '@salesforce/retail-react-app/app/components/link'
-import AddressDisplay from '@salesforce/retail-react-app/app/components/address-display'
-import PostCheckoutRegistrationFields from '@salesforce/retail-react-app/app/components/forms/post-checkout-registration-fields'
-import PromoPopover from '@salesforce/retail-react-app/app/components/promo-popover'
-import ItemVariantProvider from '@salesforce/retail-react-app/app/components/item-variant'
-import CartItemVariantImage from '@salesforce/retail-react-app/app/components/item-variant/item-image'
-import CartItemVariantName from '@salesforce/retail-react-app/app/components/item-variant/item-name'
-import CartItemVariantAttributes from '@salesforce/retail-react-app/app/components/item-variant/item-attributes'
-import CartItemVariantPrice from '@salesforce/retail-react-app/app/components/item-variant/item-price'
-import {useCurrentCustomer} from '@salesforce/retail-react-app/app/hooks/use-current-customer'
-import {API_ERROR_MESSAGE} from '@salesforce/retail-react-app/app/constants'
-import {useCurrency} from '@salesforce/retail-react-app/app/hooks'
+import {getCreditCardIcon} from '../../utils/cc-utils'
+import useNavigation from '../../hooks/use-navigation'
+import Link from '../../components/link'
+import AddressDisplay from '../../components/address-display'
+import PostCheckoutRegistrationFields from '../../components/forms/post-checkout-registration-fields'
+import PromoPopover from '../../components/promo-popover'
+import ItemVariantProvider from '../../components/item-variant'
+import CartItemVariantImage from '../../components/item-variant/item-image'
+import CartItemVariantName from '../../components/item-variant/item-name'
+import CartItemVariantAttributes from '../../components/item-variant/item-attributes'
+import CartItemVariantPrice from '../../components/item-variant/item-price'
+import {useCurrentCustomer} from '../../hooks/use-current-customer'
+import {API_ERROR_MESSAGE} from '../../../config/constants'
+import {useCurrency} from '../../hooks'
const onClient = typeof window !== 'undefined'
diff --git a/packages/template-retail-react-app/app/pages/checkout/confirmation.mock.js b/packages/template-chakra-storefront/src/pages/checkout/confirmation.mock.js
similarity index 100%
rename from packages/template-retail-react-app/app/pages/checkout/confirmation.mock.js
rename to packages/template-chakra-storefront/src/pages/checkout/confirmation.mock.js
diff --git a/packages/template-retail-react-app/app/pages/checkout/confirmation.test.js b/packages/template-chakra-storefront/src/pages/checkout/confirmation.test.js
similarity index 82%
rename from packages/template-retail-react-app/app/pages/checkout/confirmation.test.js
rename to packages/template-chakra-storefront/src/pages/checkout/confirmation.test.js
index bb0c35a0ef..d0c29fa320 100644
--- a/packages/template-retail-react-app/app/pages/checkout/confirmation.test.js
+++ b/packages/template-chakra-storefront/src/pages/checkout/confirmation.test.js
@@ -6,18 +6,20 @@
*/
import React from 'react'
-import {screen, waitFor} from '@testing-library/react'
+import {act, screen, waitFor} from '@testing-library/react'
import {Route, Switch} from 'react-router-dom'
import {rest} from 'msw'
-import {
- renderWithProviders,
- createPathWithDefaults
-} from '@salesforce/retail-react-app/app/utils/test-utils'
-import Confirmation from '@salesforce/retail-react-app/app/pages/checkout/confirmation'
-import {
- mockOrder,
- mockProducts
-} from '@salesforce/retail-react-app/app/pages/checkout/confirmation.mock'
+import {renderWithProviders, createPathWithDefaults} from '../../utils/test-utils'
+import Confirmation from './confirmation'
+import {mockOrder, mockProducts} from './confirmation.mock'
+import mockConfig from '../../../mock-config'
+import {getConfig} from '@salesforce/pwa-kit-runtime/utils/ssr-config'
+
+jest.mock('@salesforce/pwa-kit-runtime/utils/ssr-config', () => {
+ return {
+ getConfig: jest.fn()
+ }
+})
const MockedComponent = () => {
return (
@@ -30,6 +32,8 @@ const MockedComponent = () => {
}
beforeEach(() => {
+ // Mock the config
+ getConfig.mockImplementation(() => mockConfig)
global.server.use(
rest.get('*/orders/:orderId', (req, res, ctx) => {
return res(ctx.delay(0), ctx.json(mockOrder))
@@ -105,8 +109,10 @@ test('Create Account form - successful submission results in redirect to the Acc
const createAccountButton = await screen.findByRole('button', {name: /create account/i})
const password = screen.getByLabelText('Password')
- await user.type(password, 'P4ssword!')
- await user.click(createAccountButton)
+ await act(async () => {
+ await user.type(password, 'P4ssword!')
+ await user.click(createAccountButton)
+ })
await waitFor(() => {
expect(window.location.pathname).toBe('/uk/en-GB/account')
diff --git a/packages/template-retail-react-app/app/pages/checkout/index.jsx b/packages/template-chakra-storefront/src/pages/checkout/index.jsx
similarity index 80%
rename from packages/template-retail-react-app/app/pages/checkout/index.jsx
rename to packages/template-chakra-storefront/src/pages/checkout/index.jsx
index fa4e8303a2..784b565b6e 100644
--- a/packages/template-retail-react-app/app/pages/checkout/index.jsx
+++ b/packages/template-chakra-storefront/src/pages/checkout/index.jsx
@@ -6,38 +6,23 @@
*/
import React, {useEffect, useState} from 'react'
import {FormattedMessage, useIntl} from 'react-intl'
-import {
- Alert,
- AlertIcon,
- Box,
- Button,
- Container,
- Grid,
- GridItem,
- Stack
-} from '@salesforce/retail-react-app/app/components/shared/ui'
-import useNavigation from '@salesforce/retail-react-app/app/hooks/use-navigation'
-import {
- CheckoutProvider,
- useCheckout
-} from '@salesforce/retail-react-app/app/pages/checkout/util/checkout-context'
-import ContactInfo from '@salesforce/retail-react-app/app/pages/checkout/partials/contact-info'
-import ShippingAddress from '@salesforce/retail-react-app/app/pages/checkout/partials/shipping-address'
-import ShippingOptions from '@salesforce/retail-react-app/app/pages/checkout/partials/shipping-options'
-import Payment from '@salesforce/retail-react-app/app/pages/checkout/partials/payment'
-import OrderSummary from '@salesforce/retail-react-app/app/components/order-summary'
-import {useCurrentCustomer} from '@salesforce/retail-react-app/app/hooks/use-current-customer'
-import {useCurrentBasket} from '@salesforce/retail-react-app/app/hooks/use-current-basket'
-import CheckoutSkeleton from '@salesforce/retail-react-app/app/pages/checkout/partials/checkout-skeleton'
+import {Alert, AlertIcon, Box, Button, Container, Grid, GridItem, Stack} from '@chakra-ui/react'
+import useNavigation from '../../hooks/use-navigation'
+import {CheckoutProvider, useCheckout} from './util/checkout-context'
+import ContactInfo from './partials/contact-info'
+import ShippingAddress from './partials/shipping-address'
+import ShippingOptions from './partials/shipping-options'
+import Payment from './partials/payment'
+import OrderSummary from '../../components/order-summary'
+import {useCurrentCustomer} from '../../hooks/use-current-customer'
+import {useCurrentBasket} from '../../hooks/use-current-basket'
+import CheckoutSkeleton from './partials/checkout-skeleton'
import {useShopperOrdersMutation, useShopperBasketsMutation} from '@salesforce/commerce-sdk-react'
-import UnavailableProductConfirmationModal from '@salesforce/retail-react-app/app/components/unavailable-product-confirmation-modal'
-import {
- API_ERROR_MESSAGE,
- TOAST_MESSAGE_REMOVED_ITEM_FROM_CART
-} from '@salesforce/retail-react-app/app/constants'
-import {useToast} from '@salesforce/retail-react-app/app/hooks/use-toast'
-import LoadingSpinner from '@salesforce/retail-react-app/app/components/loading-spinner'
+import UnavailableProductConfirmationModal from '../../components/unavailable-product-confirmation-modal'
+import {API_ERROR_MESSAGE, TOAST_MESSAGE_REMOVED_ITEM_FROM_CART} from '../../../config/constants'
+import {useToast} from '../../hooks/use-toast'
import {getConfig} from '@salesforce/pwa-kit-runtime/utils/ssr-config'
+import LoadingSpinner from '../../components/loading-spinner'
const Checkout = () => {
const {formatMessage} = useIntl()
@@ -47,10 +32,10 @@ const Checkout = () => {
const {data: basket} = useCurrentBasket()
const [isLoading, setIsLoading] = useState(false)
const {mutateAsync: createOrder} = useShopperOrdersMutation('createOrder')
- const {passwordless = {}, social = {}} = getConfig().app.login || {}
- const idps = social?.idps
- const isSocialEnabled = !!social?.enabled
- const isPasswordlessEnabled = !!passwordless?.enabled
+ const {login: loginConfig} = getConfig()
+ const isSocialEnabled = !!loginConfig?.social?.enabled
+ const isPasswordlessEnabled = !!loginConfig?.passwordless?.enabled
+ const idps = loginConfig?.social?.idps || []
useEffect(() => {
if (error || step === 4) {
diff --git a/packages/template-retail-react-app/app/pages/checkout/index.test.js b/packages/template-chakra-storefront/src/pages/checkout/index.test.js
similarity index 97%
rename from packages/template-retail-react-app/app/pages/checkout/index.test.js
rename to packages/template-chakra-storefront/src/pages/checkout/index.test.js
index 19ddcc10a9..e43c214fba 100644
--- a/packages/template-retail-react-app/app/pages/checkout/index.test.js
+++ b/packages/template-chakra-storefront/src/pages/checkout/index.test.js
@@ -5,21 +5,18 @@
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
import React from 'react'
-import Checkout from '@salesforce/retail-react-app/app/pages/checkout/index'
+import Checkout from './index'
import {Route, Switch} from 'react-router-dom'
import {screen, waitFor, within} from '@testing-library/react'
import {rest} from 'msw'
-import {
- renderWithProviders,
- createPathWithDefaults
-} from '@salesforce/retail-react-app/app/utils/test-utils'
+import {renderWithProviders, createPathWithDefaults} from '../../utils/test-utils'
import {
scapiBasketWithItem,
mockShippingMethods,
mockedRegisteredCustomer,
mockedCustomerProductLists
-} from '@salesforce/retail-react-app/app/mocks/mock-data'
-import mockConfig from '@salesforce/retail-react-app/config/mocks/default'
+} from '../../../mocks/mock-data'
+import mockConfig from '../../../mock-config'
// This is a flaky test file!
jest.retryTimes(5)
@@ -313,7 +310,7 @@ test('Can proceed through checkout steps as guest', async () => {
// Set the initial browser router path and render our component tree.
window.history.pushState({}, 'Checkout', createPathWithDefaults('/checkout'))
const {user} = renderWithProviders( , {
- wrapperProps: {isGuest: true, siteAlias: 'uk', appConfig: mockConfig.app}
+ wrapperProps: {isGuest: true, siteAlias: 'uk', config: mockConfig}
})
// Wait for checkout to load and display first step
@@ -440,7 +437,7 @@ test('Can proceed through checkout as registered customer', async () => {
isGuest: false,
siteAlias: 'uk',
locale: {id: 'en-GB'},
- appConfig: mockConfig.app
+ config: mockConfig
}
})
@@ -544,7 +541,7 @@ test('Can edit address during checkout as a registered customer', async () => {
isGuest: false,
siteAlias: 'uk',
locale: {id: 'en-GB'},
- appConfig: mockConfig.app
+ config: mockConfig
}
})
@@ -587,7 +584,7 @@ test('Can add address during checkout as a registered customer', async () => {
isGuest: false,
siteAlias: 'uk',
locale: {id: 'en-GB'},
- appConfig: mockConfig.app
+ config: mockConfig
}
})
@@ -604,7 +601,9 @@ test('Can add address during checkout as a registered customer', async () => {
await user.click(screen.getByText(/add new address/i))
// Shipping Address Form must be present
- expect(screen.getByLabelText('Shipping Address Form')).toBeInTheDocument()
+ await waitFor(() => {
+ expect(screen.getByLabelText('Shipping Address Form')).toBeInTheDocument()
+ })
const firstName = await screen.findByLabelText(/first name/i)
await user.type(firstName, 'Test2')
diff --git a/packages/template-retail-react-app/app/pages/checkout/partials/cc-radio-group.jsx b/packages/template-chakra-storefront/src/pages/checkout/partials/cc-radio-group.jsx
similarity index 90%
rename from packages/template-retail-react-app/app/pages/checkout/partials/cc-radio-group.jsx
rename to packages/template-chakra-storefront/src/pages/checkout/partials/cc-radio-group.jsx
index dc5195e869..75570c0d23 100644
--- a/packages/template-retail-react-app/app/pages/checkout/partials/cc-radio-group.jsx
+++ b/packages/template-chakra-storefront/src/pages/checkout/partials/cc-radio-group.jsx
@@ -7,19 +7,11 @@
import React from 'react'
import PropTypes from 'prop-types'
import {FormattedMessage} from 'react-intl'
-import {
- Box,
- Button,
- Stack,
- Text,
- SimpleGrid,
- FormControl,
- FormErrorMessage
-} from '@salesforce/retail-react-app/app/components/shared/ui'
-import {PlusIcon} from '@salesforce/retail-react-app/app/components/icons'
-import {RadioCard, RadioCardGroup} from '@salesforce/retail-react-app/app/components/radio-card'
-import {getCreditCardIcon} from '@salesforce/retail-react-app/app/utils/cc-utils'
-import {useCurrentCustomer} from '@salesforce/retail-react-app/app/hooks/use-current-customer'
+import {Box, Button, Stack, Text, SimpleGrid, FormControl, FormErrorMessage} from '@chakra-ui/react'
+import {PlusIcon} from '../../components/icons'
+import {RadioCard, RadioCardGroup} from '../../components/radio-card'
+import {getCreditCardIcon} from '../../utils/cc-utils'
+import {useCurrentCustomer} from '../../hooks/use-current-customer'
const CCRadioGroup = ({
form,
diff --git a/packages/template-retail-react-app/app/pages/checkout/partials/checkout-footer.jsx b/packages/template-chakra-storefront/src/pages/checkout/partials/checkout-footer.jsx
similarity index 92%
rename from packages/template-retail-react-app/app/pages/checkout/partials/checkout-footer.jsx
rename to packages/template-chakra-storefront/src/pages/checkout/partials/checkout-footer.jsx
index b7923cc678..5b6db3e725 100644
--- a/packages/template-retail-react-app/app/pages/checkout/partials/checkout-footer.jsx
+++ b/packages/template-chakra-storefront/src/pages/checkout/partials/checkout-footer.jsx
@@ -17,15 +17,10 @@ import {
Flex,
Spacer,
useStyles
-} from '@salesforce/retail-react-app/app/components/shared/ui'
-import LinksList from '@salesforce/retail-react-app/app/components/links-list'
-import {
- VisaIcon,
- MastercardIcon,
- AmexIcon,
- DiscoverIcon
-} from '@salesforce/retail-react-app/app/components/icons'
-import {HideOnDesktop, HideOnMobile} from '@salesforce/retail-react-app/app/components/responsive'
+} from '@chakra-ui/react'
+import LinksList from '../../../components/links-list'
+import {VisaIcon, MastercardIcon, AmexIcon, DiscoverIcon} from '../../../components/icons'
+import {HideOnDesktop, HideOnMobile} from '../../../components/responsive'
const CheckoutFooter = ({...otherProps}) => {
const styles = useMultiStyleConfig('CheckoutFooter')
diff --git a/packages/template-retail-react-app/app/pages/checkout/partials/checkout-footer.test.js b/packages/template-chakra-storefront/src/pages/checkout/partials/checkout-footer.test.js
similarity index 55%
rename from packages/template-retail-react-app/app/pages/checkout/partials/checkout-footer.test.js
rename to packages/template-chakra-storefront/src/pages/checkout/partials/checkout-footer.test.js
index 6acddf6e2c..13020b182b 100644
--- a/packages/template-retail-react-app/app/pages/checkout/partials/checkout-footer.test.js
+++ b/packages/template-chakra-storefront/src/pages/checkout/partials/checkout-footer.test.js
@@ -7,9 +7,15 @@
import React from 'react'
import {screen} from '@testing-library/react'
-import CheckoutFooter from '@salesforce/retail-react-app/app/pages/checkout/partials/checkout-footer'
-import {renderWithProviders} from '@salesforce/retail-react-app/app/utils/test-utils'
-
+import CheckoutFooter from './checkout-footer'
+import {renderWithProviders} from '../../../utils/test-utils'
+jest.mock('@salesforce/pwa-kit-runtime/utils/ssr-config', () => {
+ const original = jest.requireActual('@salesforce/pwa-kit-runtime/utils/ssr-config')
+ return {
+ ...original,
+ getConfig: jest.fn(() => require('../../../../mock-config'))
+ }
+})
test('renders component', () => {
renderWithProviders( )
expect(screen.getByRole('link', {name: 'Shipping'})).toBeInTheDocument()
diff --git a/packages/template-retail-react-app/app/pages/checkout/partials/checkout-header.jsx b/packages/template-chakra-storefront/src/pages/checkout/partials/checkout-header.jsx
similarity index 81%
rename from packages/template-retail-react-app/app/pages/checkout/partials/checkout-header.jsx
rename to packages/template-chakra-storefront/src/pages/checkout/partials/checkout-header.jsx
index a01341210a..11019ebdb0 100644
--- a/packages/template-retail-react-app/app/pages/checkout/partials/checkout-header.jsx
+++ b/packages/template-chakra-storefront/src/pages/checkout/partials/checkout-header.jsx
@@ -6,28 +6,25 @@
*/
import React from 'react'
import {FormattedMessage, useIntl} from 'react-intl'
-import {
- Badge,
- Box,
- Button,
- Flex,
- Center
-} from '@salesforce/retail-react-app/app/components/shared/ui'
-import Link from '@salesforce/retail-react-app/app/components/link'
-import {BasketIcon, BrandLogo} from '@salesforce/retail-react-app/app/components/icons'
-import {HOME_HREF} from '@salesforce/retail-react-app/app/constants'
-import {useCurrentBasket} from '@salesforce/retail-react-app/app/hooks/use-current-basket'
+import {Badge, Box, Button, Flex, Center} from '@chakra-ui/react'
+import Link from '../../../components/link'
+import {BasketIcon, BrandLogo} from '../../../components/icons'
+import {useCurrentBasket} from '../../../hooks/use-current-basket'
+import {getConfig} from '@salesforce/pwa-kit-runtime/utils/ssr-config'
const CheckoutHeader = () => {
const intl = useIntl()
const {
derivedData: {totalItems}
} = useCurrentBasket()
+ const {
+ pages: {home: homeConfig}
+ } = getConfig()
return (
-
+
{
+ const actualConfig = jest.requireActual('../../../../mock-config')
+ return {
+ getConfig: jest.fn().mockReturnValue(actualConfig)
+ }
+})
test('renders component', () => {
renderWithProviders( )
diff --git a/packages/template-retail-react-app/app/pages/checkout/partials/checkout-skeleton.jsx b/packages/template-chakra-storefront/src/pages/checkout/partials/checkout-skeleton.jsx
similarity index 92%
rename from packages/template-retail-react-app/app/pages/checkout/partials/checkout-skeleton.jsx
rename to packages/template-chakra-storefront/src/pages/checkout/partials/checkout-skeleton.jsx
index 87fefca906..bf0038d80e 100644
--- a/packages/template-retail-react-app/app/pages/checkout/partials/checkout-skeleton.jsx
+++ b/packages/template-chakra-storefront/src/pages/checkout/partials/checkout-skeleton.jsx
@@ -5,14 +5,7 @@
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
import React from 'react'
-import {
- Box,
- Container,
- Grid,
- GridItem,
- Skeleton,
- Stack
-} from '@salesforce/retail-react-app/app/components/shared/ui'
+import {Box, Container, Grid, GridItem, Skeleton, Stack} from '@chakra-ui/react'
const CheckoutSkeleton = () => {
return (
diff --git a/packages/template-retail-react-app/app/pages/checkout/partials/contact-info.jsx b/packages/template-chakra-storefront/src/pages/checkout/partials/contact-info.jsx
similarity index 90%
rename from packages/template-retail-react-app/app/pages/checkout/partials/contact-info.jsx
rename to packages/template-chakra-storefront/src/pages/checkout/partials/contact-info.jsx
index d47b91a734..fb8ed7d859 100644
--- a/packages/template-retail-react-app/app/pages/checkout/partials/contact-info.jsx
+++ b/packages/template-chakra-storefront/src/pages/checkout/partials/contact-info.jsx
@@ -20,38 +20,30 @@ import {
Container,
Stack,
Text
-} from '@salesforce/retail-react-app/app/components/shared/ui'
+} from '@chakra-ui/react'
import {useForm} from 'react-hook-form'
import {FormattedMessage, useIntl} from 'react-intl'
-import {useCheckout} from '@salesforce/retail-react-app/app/pages/checkout/util/checkout-context'
-import useLoginFields from '@salesforce/retail-react-app/app/components/forms/useLoginFields'
-import {
- ToggleCard,
- ToggleCardEdit,
- ToggleCardSummary
-} from '@salesforce/retail-react-app/app/components/toggle-card'
-import Field from '@salesforce/retail-react-app/app/components/field'
-import LoginState from '@salesforce/retail-react-app/app/pages/checkout/partials/login-state'
-import {
- AuthModal,
- EMAIL_VIEW,
- PASSWORD_VIEW,
- useAuthModal
-} from '@salesforce/retail-react-app/app/hooks/use-auth-modal'
-import useNavigation from '@salesforce/retail-react-app/app/hooks/use-navigation'
-import {useCurrentCustomer} from '@salesforce/retail-react-app/app/hooks/use-current-customer'
-import {useCurrentBasket} from '@salesforce/retail-react-app/app/hooks/use-current-basket'
-import {isAbsoluteURL} from '@salesforce/retail-react-app/app/page-designer/utils'
-import {useAppOrigin} from '@salesforce/retail-react-app/app/hooks/use-app-origin'
+import {useCheckout} from '../util/checkout-context'
+import useLoginFields from '../../../components/forms/useLoginFields'
+import {ToggleCard, ToggleCardEdit, ToggleCardSummary} from '../../../components/toggle-card'
+import Field from '../../../components/field'
+import LoginState from './login-state'
+import {AuthModal, EMAIL_VIEW, PASSWORD_VIEW, useAuthModal} from '../../../hooks/use-auth-modal'
+import useNavigation from '../../../hooks/use-navigation'
+import {useCurrentCustomer} from '../../../hooks/use-current-customer'
+import {useCurrentBasket} from '../../../hooks/use-current-basket'
+import {isAbsoluteURL} from '../../../page-designer/utils'
+import {useAppOrigin} from '../../../hooks/use-app-origin'
import {AuthHelpers, useAuthHelper, useShopperBasketsMutation} from '@salesforce/commerce-sdk-react'
import {getConfig} from '@salesforce/pwa-kit-runtime/utils/ssr-config'
+
import {
API_ERROR_MESSAGE,
FEATURE_UNAVAILABLE_ERROR_MESSAGE,
CREATE_ACCOUNT_FIRST_ERROR_MESSAGE,
PASSWORDLESS_ERROR_MESSAGES,
USER_NOT_FOUND_ERROR
-} from '@salesforce/retail-react-app/app/constants'
+} from '../../../../config/constants'
const ContactInfo = ({isSocialEnabled = false, isPasswordlessEnabled = false, idps = []}) => {
const {formatMessage} = useIntl()
@@ -59,6 +51,7 @@ const ContactInfo = ({isSocialEnabled = false, isPasswordlessEnabled = false, id
const {data: customer} = useCurrentCustomer()
const {data: basket} = useCurrentBasket()
const appOrigin = useAppOrigin()
+ const config = getConfig()
const login = useAuthHelper(AuthHelpers.LoginRegisteredUserB2C)
const logout = useAuthHelper(AuthHelpers.Logout)
const authorizePasswordlessLogin = useAuthHelper(AuthHelpers.AuthorizePasswordless)
@@ -81,7 +74,7 @@ const ContactInfo = ({isSocialEnabled = false, isPasswordlessEnabled = false, id
const [authModalView, setAuthModalView] = useState(PASSWORD_VIEW)
const authModal = useAuthModal(authModalView)
const [isPasswordlessLoginClicked, setIsPasswordlessLoginClicked] = useState(false)
- const passwordlessConfigCallback = getConfig().app.login?.passwordless?.callbackURI
+ const passwordlessConfigCallback = config.login?.passwordless?.callbackURI
const callbackURL = isAbsoluteURL(passwordlessConfigCallback)
? passwordlessConfigCallback
: `${appOrigin}${passwordlessConfigCallback}`
diff --git a/packages/template-retail-react-app/app/pages/checkout/partials/contact-info.test.js b/packages/template-chakra-storefront/src/pages/checkout/partials/contact-info.test.js
similarity index 97%
rename from packages/template-retail-react-app/app/pages/checkout/partials/contact-info.test.js
rename to packages/template-chakra-storefront/src/pages/checkout/partials/contact-info.test.js
index 34333b73b5..fca0747b5b 100644
--- a/packages/template-retail-react-app/app/pages/checkout/partials/contact-info.test.js
+++ b/packages/template-chakra-storefront/src/pages/checkout/partials/contact-info.test.js
@@ -6,10 +6,10 @@
*/
import React from 'react'
import {screen, waitFor, within} from '@testing-library/react'
-import ContactInfo from '@salesforce/retail-react-app/app/pages/checkout/partials/contact-info'
-import {renderWithProviders} from '@salesforce/retail-react-app/app/utils/test-utils'
+import ContactInfo from './contact-info'
+import {renderWithProviders} from '../../../utils/test-utils'
import {rest} from 'msw'
-import {scapiBasketWithItem} from '@salesforce/retail-react-app/app/mocks/mock-data'
+import {scapiBasketWithItem} from '../../../../mocks/mock-data'
import {AuthHelpers} from '@salesforce/commerce-sdk-react'
const invalidEmail = 'invalidEmail'
diff --git a/packages/template-retail-react-app/app/pages/checkout/partials/login-state.jsx b/packages/template-chakra-storefront/src/pages/checkout/partials/login-state.jsx
similarity index 95%
rename from packages/template-retail-react-app/app/pages/checkout/partials/login-state.jsx
rename to packages/template-chakra-storefront/src/pages/checkout/partials/login-state.jsx
index 24af933e7d..5026f982d0 100644
--- a/packages/template-retail-react-app/app/pages/checkout/partials/login-state.jsx
+++ b/packages/template-chakra-storefront/src/pages/checkout/partials/login-state.jsx
@@ -6,9 +6,9 @@
*/
import React, {useState} from 'react'
import PropTypes from 'prop-types'
-import {Button, Divider, Text} from '@salesforce/retail-react-app/app/components/shared/ui'
+import {Button, Divider, Text} from '@chakra-ui/react'
import {FormattedMessage} from 'react-intl'
-import SocialLogin from '@salesforce/retail-react-app/app/components/social-login'
+import SocialLogin from '../../../components/social-login'
const LoginState = ({
form,
diff --git a/packages/template-retail-react-app/app/pages/checkout/partials/login-state.test.js b/packages/template-chakra-storefront/src/pages/checkout/partials/login-state.test.js
similarity index 94%
rename from packages/template-retail-react-app/app/pages/checkout/partials/login-state.test.js
rename to packages/template-chakra-storefront/src/pages/checkout/partials/login-state.test.js
index 6b6f38c0bf..3b7cdc2a58 100644
--- a/packages/template-retail-react-app/app/pages/checkout/partials/login-state.test.js
+++ b/packages/template-chakra-storefront/src/pages/checkout/partials/login-state.test.js
@@ -5,8 +5,8 @@
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
import React from 'react'
-import LoginState from '@salesforce/retail-react-app/app/pages/checkout/partials/login-state'
-import {renderWithProviders} from '@salesforce/retail-react-app/app/utils/test-utils'
+import LoginState from './login-state'
+import {renderWithProviders} from '../../../utils/test-utils'
import {useForm} from 'react-hook-form'
const mockTogglePasswordField = jest.fn()
diff --git a/packages/template-retail-react-app/app/pages/checkout/partials/payment-form.jsx b/packages/template-chakra-storefront/src/pages/checkout/partials/payment-form.jsx
similarity index 89%
rename from packages/template-retail-react-app/app/pages/checkout/partials/payment-form.jsx
rename to packages/template-chakra-storefront/src/pages/checkout/partials/payment-form.jsx
index dfe0c42d42..7d006c14bf 100644
--- a/packages/template-retail-react-app/app/pages/checkout/partials/payment-form.jsx
+++ b/packages/template-chakra-storefront/src/pages/checkout/partials/payment-form.jsx
@@ -7,20 +7,11 @@
import React from 'react'
import {FormattedMessage, FormattedNumber, useIntl} from 'react-intl'
import PropTypes from 'prop-types'
-import {
- Box,
- Flex,
- Radio,
- RadioGroup,
- Stack,
- Text,
- Tooltip,
- Heading
-} from '@salesforce/retail-react-app/app/components/shared/ui'
-import {useCurrentBasket} from '@salesforce/retail-react-app/app/hooks/use-current-basket'
-import {LockIcon, PaypalIcon} from '@salesforce/retail-react-app/app/components/icons'
-import CreditCardFields from '@salesforce/retail-react-app/app/components/forms/credit-card-fields'
-import {useCurrency} from '@salesforce/retail-react-app/app/hooks'
+import {Box, Flex, Radio, RadioGroup, Stack, Text, Tooltip} from '@chakra-ui/react'
+import {useCurrentBasket} from '../../../hooks/use-current-basket'
+import {LockIcon, PaypalIcon} from '../../../components/icons'
+import CreditCardFields from '../../../components/forms/credit-card-fields'
+import {useCurrency} from '../../../hooks'
const PaymentForm = ({form, onSubmit}) => {
const {formatMessage} = useIntl()
diff --git a/packages/template-retail-react-app/app/pages/checkout/partials/payment.jsx b/packages/template-chakra-storefront/src/pages/checkout/partials/payment.jsx
similarity index 91%
rename from packages/template-retail-react-app/app/pages/checkout/partials/payment.jsx
rename to packages/template-chakra-storefront/src/pages/checkout/partials/payment.jsx
index 3c07231e5f..826c5914d5 100644
--- a/packages/template-retail-react-app/app/pages/checkout/partials/payment.jsx
+++ b/packages/template-chakra-storefront/src/pages/checkout/partials/payment.jsx
@@ -7,36 +7,23 @@
import React, {useState} from 'react'
import PropTypes from 'prop-types'
import {defineMessage, FormattedMessage, useIntl} from 'react-intl'
-import {
- Box,
- Button,
- Checkbox,
- Container,
- Heading,
- Stack,
- Text,
- Divider
-} from '@salesforce/retail-react-app/app/components/shared/ui'
+import {Box, Button, Checkbox, Container, Heading, Stack, Text, Divider} from '@chakra-ui/react'
import {useForm} from 'react-hook-form'
-import {useToast} from '@salesforce/retail-react-app/app/hooks/use-toast'
+import {useToast} from '../../../hooks/use-toast'
import {useShopperBasketsMutation} from '@salesforce/commerce-sdk-react'
-import {useCurrentBasket} from '@salesforce/retail-react-app/app/hooks/use-current-basket'
-import {useCheckout} from '@salesforce/retail-react-app/app/pages/checkout/util/checkout-context'
+import {useCurrentBasket} from '../../../hooks/use-current-basket'
+import {useCheckout} from '../util/checkout-context'
import {
getPaymentInstrumentCardType,
getMaskCreditCardNumber,
getCreditCardIcon
-} from '@salesforce/retail-react-app/app/utils/cc-utils'
-import {
- ToggleCard,
- ToggleCardEdit,
- ToggleCardSummary
-} from '@salesforce/retail-react-app/app/components/toggle-card'
-import PaymentForm from '@salesforce/retail-react-app/app/pages/checkout/partials/payment-form'
-import ShippingAddressSelection from '@salesforce/retail-react-app/app/pages/checkout/partials/shipping-address-selection'
-import AddressDisplay from '@salesforce/retail-react-app/app/components/address-display'
-import {PromoCode, usePromoCode} from '@salesforce/retail-react-app/app/components/promo-code'
-import {API_ERROR_MESSAGE} from '@salesforce/retail-react-app/app/constants'
+} from '../../../utils/cc-utils'
+import {ToggleCard, ToggleCardEdit, ToggleCardSummary} from '../../../components/toggle-card'
+import PaymentForm from './payment-form'
+import ShippingAddressSelection from './shipping-address-selection'
+import AddressDisplay from '../../../components/address-display'
+import {PromoCode, usePromoCode} from '../../../components/promo-code'
+import {API_ERROR_MESSAGE} from '../../../../config/constants'
const Payment = () => {
const {formatMessage} = useIntl()
diff --git a/packages/template-retail-react-app/app/pages/checkout/partials/shipping-address-selection.jsx b/packages/template-chakra-storefront/src/pages/checkout/partials/shipping-address-selection.jsx
similarity index 95%
rename from packages/template-retail-react-app/app/pages/checkout/partials/shipping-address-selection.jsx
rename to packages/template-chakra-storefront/src/pages/checkout/partials/shipping-address-selection.jsx
index 500852333b..4f50c917c9 100644
--- a/packages/template-retail-react-app/app/pages/checkout/partials/shipping-address-selection.jsx
+++ b/packages/template-chakra-storefront/src/pages/checkout/partials/shipping-address-selection.jsx
@@ -7,24 +7,17 @@
import React, {useState, useEffect} from 'react'
import PropTypes from 'prop-types'
import {defineMessage, FormattedMessage, useIntl} from 'react-intl'
-import {
- Box,
- Button,
- Container,
- Heading,
- SimpleGrid,
- Stack
-} from '@salesforce/retail-react-app/app/components/shared/ui'
+import {Box, Button, Container, Heading, SimpleGrid, Stack} from '@chakra-ui/react'
import {useForm, Controller} from 'react-hook-form'
-import {shallowEquals} from '@salesforce/retail-react-app/app/utils/utils'
-import {RadioCard, RadioCardGroup} from '@salesforce/retail-react-app/app/components/radio-card'
-import ActionCard from '@salesforce/retail-react-app/app/components/action-card'
-import {PlusIcon} from '@salesforce/retail-react-app/app/components/icons'
-import AddressDisplay from '@salesforce/retail-react-app/app/components/address-display'
-import AddressFields from '@salesforce/retail-react-app/app/components/forms/address-fields'
-import FormActionButtons from '@salesforce/retail-react-app/app/components/forms/form-action-buttons'
-import {MESSAGE_PROPTYPE} from '@salesforce/retail-react-app/app/utils/locale'
-import {useCurrentCustomer} from '@salesforce/retail-react-app/app/hooks/use-current-customer'
+import {shallowEquals} from '../../../utils/utils'
+import {RadioCard, RadioCardGroup} from '../../../components/radio-card'
+import ActionCard from '../../../components/action-card'
+import {PlusIcon} from '../../../components/icons'
+import AddressDisplay from '../../../components/address-display'
+import AddressFields from '../../../components/forms/address-fields'
+import FormActionButtons from '../../../components/forms/form-action-buttons'
+import {MESSAGE_PROPTYPE} from '../../../utils/locale'
+import {useCurrentCustomer} from '../../../hooks/use-current-customer'
import {useShopperCustomersMutation} from '@salesforce/commerce-sdk-react'
const saveButtonMessage = defineMessage({
diff --git a/packages/template-retail-react-app/app/pages/checkout/partials/shipping-address.jsx b/packages/template-chakra-storefront/src/pages/checkout/partials/shipping-address.jsx
similarity index 87%
rename from packages/template-retail-react-app/app/pages/checkout/partials/shipping-address.jsx
rename to packages/template-chakra-storefront/src/pages/checkout/partials/shipping-address.jsx
index 63b2b5b83d..bb4f9a0218 100644
--- a/packages/template-retail-react-app/app/pages/checkout/partials/shipping-address.jsx
+++ b/packages/template-chakra-storefront/src/pages/checkout/partials/shipping-address.jsx
@@ -7,20 +7,16 @@
import React, {useState} from 'react'
import {nanoid} from 'nanoid'
import {defineMessage, useIntl} from 'react-intl'
-import {useCheckout} from '@salesforce/retail-react-app/app/pages/checkout/util/checkout-context'
-import {
- ToggleCard,
- ToggleCardEdit,
- ToggleCardSummary
-} from '@salesforce/retail-react-app/app/components/toggle-card'
-import ShippingAddressSelection from '@salesforce/retail-react-app/app/pages/checkout/partials/shipping-address-selection'
-import AddressDisplay from '@salesforce/retail-react-app/app/components/address-display'
+import {useCheckout} from '../util/checkout-context'
+import {ToggleCard, ToggleCardEdit, ToggleCardSummary} from '../../../components/toggle-card'
+import ShippingAddressSelection from './shipping-address-selection'
+import AddressDisplay from '../../../components/address-display'
import {
useShopperCustomersMutation,
useShopperBasketsMutation
} from '@salesforce/commerce-sdk-react'
-import {useCurrentCustomer} from '@salesforce/retail-react-app/app/hooks/use-current-customer'
-import {useCurrentBasket} from '@salesforce/retail-react-app/app/hooks/use-current-basket'
+import {useCurrentCustomer} from '../../../hooks/use-current-customer'
+import {useCurrentBasket} from '../../../hooks/use-current-basket'
const submitButtonMessage = defineMessage({
defaultMessage: 'Continue to Shipping Method',
diff --git a/packages/template-retail-react-app/app/pages/checkout/partials/shipping-options.jsx b/packages/template-chakra-storefront/src/pages/checkout/partials/shipping-options.jsx
similarity index 93%
rename from packages/template-retail-react-app/app/pages/checkout/partials/shipping-options.jsx
rename to packages/template-chakra-storefront/src/pages/checkout/partials/shipping-options.jsx
index 97ec37c5a7..4f216f61ca 100644
--- a/packages/template-retail-react-app/app/pages/checkout/partials/shipping-options.jsx
+++ b/packages/template-chakra-storefront/src/pages/checkout/partials/shipping-options.jsx
@@ -6,30 +6,17 @@
*/
import React, {useEffect} from 'react'
import {FormattedMessage, FormattedNumber, useIntl} from 'react-intl'
-import {
- Box,
- Button,
- Container,
- Flex,
- Radio,
- RadioGroup,
- Stack,
- Text
-} from '@salesforce/retail-react-app/app/components/shared/ui'
+import {Box, Button, Container, Flex, Radio, RadioGroup, Stack, Text} from '@chakra-ui/react'
import {useForm, Controller} from 'react-hook-form'
-import {useCheckout} from '@salesforce/retail-react-app/app/pages/checkout/util/checkout-context'
-import {ChevronDownIcon} from '@salesforce/retail-react-app/app/components/icons'
-import {
- ToggleCard,
- ToggleCardEdit,
- ToggleCardSummary
-} from '@salesforce/retail-react-app/app/components/toggle-card'
+import {useCheckout} from '../util/checkout-context'
+import {ChevronDownIcon} from '../../../components/icons'
+import {ToggleCard, ToggleCardEdit, ToggleCardSummary} from '../../../components/toggle-card'
import {
useShippingMethodsForShipment,
useShopperBasketsMutation
} from '@salesforce/commerce-sdk-react'
-import {useCurrentBasket} from '@salesforce/retail-react-app/app/hooks/use-current-basket'
-import {useCurrency} from '@salesforce/retail-react-app/app/hooks'
+import {useCurrentBasket} from '../../../hooks/use-current-basket'
+import {useCurrency} from '../../../hooks'
export default function ShippingOptions() {
const {formatMessage} = useIntl()
@@ -96,7 +83,7 @@ export default function ShippingOptions() {
})
let shippingPriceLabel = selectedMethodDisplayPrice
- if (selectedMethodDisplayPrice !== shippingItem.price) {
+ if (selectedMethodDisplayPrice !== shippingItem?.price) {
const currentPrice =
selectedMethodDisplayPrice === 0 ? freeLabel : selectedMethodDisplayPrice
@@ -106,7 +93,7 @@ export default function ShippingOptions() {
id: 'checkout_confirmation.label.shipping.strikethrough.price'
},
{
- originalPrice: shippingItem.price,
+ originalPrice: shippingItem?.price,
newPrice: currentPrice
}
)
@@ -230,7 +217,7 @@ export default function ShippingOptions() {
/>
)}
- {selectedMethodDisplayPrice !== shippingItem.price && (
+ {selectedMethodDisplayPrice !== shippingItem?.price && (
)}
diff --git a/packages/template-retail-react-app/app/pages/checkout/util/checkout-context.js b/packages/template-chakra-storefront/src/pages/checkout/util/checkout-context.js
similarity index 90%
rename from packages/template-retail-react-app/app/pages/checkout/util/checkout-context.js
rename to packages/template-chakra-storefront/src/pages/checkout/util/checkout-context.js
index 94a2c5d3fe..b0c0b201e5 100644
--- a/packages/template-retail-react-app/app/pages/checkout/util/checkout-context.js
+++ b/packages/template-chakra-storefront/src/pages/checkout/util/checkout-context.js
@@ -6,9 +6,9 @@
*/
import React, {useEffect, useState} from 'react'
import PropTypes from 'prop-types'
-import useEinstein from '@salesforce/retail-react-app/app/hooks/use-einstein'
-import {useCurrentCustomer} from '@salesforce/retail-react-app/app/hooks/use-current-customer'
-import {useCurrentBasket} from '@salesforce/retail-react-app/app/hooks/use-current-basket'
+import useEinstein from '../../../hooks/use-einstein'
+import {useCurrentCustomer} from '../../../hooks/use-current-customer'
+import {useCurrentBasket} from '../../../hooks/use-current-basket'
const CheckoutContext = React.createContext()
diff --git a/packages/template-retail-react-app/app/pages/home/data.js b/packages/template-chakra-storefront/src/pages/home/data.js
similarity index 98%
rename from packages/template-retail-react-app/app/pages/home/data.js
rename to packages/template-chakra-storefront/src/pages/home/data.js
index ce78495130..18f0c5e8cf 100644
--- a/packages/template-retail-react-app/app/pages/home/data.js
+++ b/packages/template-chakra-storefront/src/pages/home/data.js
@@ -23,7 +23,7 @@ import {
HeartIcon,
LikeIcon,
PlugIcon
-} from '@salesforce/retail-react-app/app/components/icons'
+} from '../../components/icons'
export const heroFeatures = [
{
diff --git a/packages/template-retail-react-app/app/pages/home/index.jsx b/packages/template-chakra-storefront/src/pages/home/index.jsx
similarity index 91%
rename from packages/template-retail-react-app/app/pages/home/index.jsx
rename to packages/template-chakra-storefront/src/pages/home/index.jsx
index 4f3b2dc537..4280b22d35 100644
--- a/packages/template-retail-react-app/app/pages/home/index.jsx
+++ b/packages/template-chakra-storefront/src/pages/home/index.jsx
@@ -21,31 +21,26 @@ import {
Stack,
Container,
Link
-} from '@salesforce/retail-react-app/app/components/shared/ui'
+} from '@chakra-ui/react'
// Project Components
-import Hero from '@salesforce/retail-react-app/app/components/hero'
-import Seo from '@salesforce/retail-react-app/app/components/seo'
-import Section from '@salesforce/retail-react-app/app/components/section'
-import ProductScroller from '@salesforce/retail-react-app/app/components/product-scroller'
+import Hero from '../../components/hero'
+import Seo from '../../components/seo'
+import Section from '../../components/section'
+import ProductScroller from '../../components/product-scroller'
// Others
-import {getAssetUrl} from '@salesforce/pwa-kit-react-sdk/ssr/universal/utils'
-import {heroFeatures, features} from '@salesforce/retail-react-app/app/pages/home/data'
+import {getStaticAssetUrl} from '@salesforce/pwa-kit-react-sdk/ssr/universal/utils'
+import {heroFeatures, features} from './data'
//Hooks
-import useEinstein from '@salesforce/retail-react-app/app/hooks/use-einstein'
-import useDataCloud from '@salesforce/retail-react-app/app/hooks/use-datacloud'
+import useEinstein from '../../hooks/use-einstein'
+import useDataCloud from '../../hooks/use-datacloud'
// Constants
-import {
- HOME_SHOP_PRODUCTS_CATEGORY_ID,
- HOME_SHOP_PRODUCTS_LIMIT,
- MAX_CACHE_AGE,
- STALE_WHILE_REVALIDATE
-} from '@salesforce/retail-react-app/app/constants'
import {useServerContext} from '@salesforce/pwa-kit-react-sdk/ssr/universal/hooks'
import {useProductSearch} from '@salesforce/commerce-sdk-react'
+import {getConfig} from '@salesforce/pwa-kit-runtime/utils/ssr-config'
/**
* This is the home page for Retail React App.
@@ -58,7 +53,13 @@ const Home = () => {
const einstein = useEinstein()
const dataCloud = useDataCloud()
const {pathname} = useLocation()
-
+ const {
+ pages: {
+ home: {productLimit: HOME_PRODUCT_LIMIT, mainCategory: HOME_MAIN_CATEGORY}
+ },
+ maxCacheAge: MAX_CACHE_AGE,
+ staleWhileRevalidate: STALE_WHILE_REVALIDATE
+ } = getConfig()
const {res} = useServerContext()
if (res) {
res.set(
@@ -72,9 +73,9 @@ const Home = () => {
allImages: true,
allVariationProperties: true,
expand: ['promotions', 'variations', 'prices', 'images', 'custom_properties'],
- limit: HOME_SHOP_PRODUCTS_LIMIT,
+ limit: HOME_PRODUCT_LIMIT,
perPricebook: true,
- refine: [`cgid=${HOME_SHOP_PRODUCTS_CATEGORY_ID}`, 'htype=master']
+ refine: [`cgid=${HOME_MAIN_CATEGORY}`, 'htype=master']
}
})
@@ -98,7 +99,9 @@ const Home = () => {
id: 'home.title.react_starter_store'
})}
img={{
- src: getAssetUrl('static/img/hero.png'),
+ src: getStaticAssetUrl('img/hero.png', {
+ appExtensionPackageName: '@salesforce/template-chakra-storefront'
+ }),
alt: 'npx pwa-kit-create-app'
}}
actions={
diff --git a/packages/template-retail-react-app/app/pages/home/index.test.js b/packages/template-chakra-storefront/src/pages/home/index.test.js
similarity index 74%
rename from packages/template-retail-react-app/app/pages/home/index.test.js
rename to packages/template-chakra-storefront/src/pages/home/index.test.js
index 08f69fb081..cc3465e501 100644
--- a/packages/template-retail-react-app/app/pages/home/index.test.js
+++ b/packages/template-chakra-storefront/src/pages/home/index.test.js
@@ -5,10 +5,10 @@
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
import React from 'react'
-import {renderWithProviders} from '@salesforce/retail-react-app/app/utils/test-utils'
-import HomePage from '@salesforce/retail-react-app/app/pages/home'
+import {renderWithProviders} from '../../utils/test-utils'
+import HomePage from '.'
import {rest} from 'msw'
-import {mockProductSearch} from '@salesforce/retail-react-app/app/mocks/mock-data'
+import {mockProductSearch} from '../../../mocks/mock-data'
test('Home Page renders without errors', async () => {
global.server.use(
diff --git a/packages/template-chakra-storefront/src/pages/index.tsx b/packages/template-chakra-storefront/src/pages/index.tsx
new file mode 100644
index 0000000000..79d551491a
--- /dev/null
+++ b/packages/template-chakra-storefront/src/pages/index.tsx
@@ -0,0 +1,73 @@
+/*
+ * Copyright (c) 2024, salesforce.com, inc.
+ * All rights reserved.
+ * SPDX-License-Identifier: BSD-3-Clause
+ * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
+ */
+
+// Third-Party
+import React from 'react'
+import loadable from '@loadable/component'
+
+// Components
+import {Skeleton} from '@chakra-ui/react'
+
+// Page fallback
+const fallback =
+
+// Page Loadables
+const Account = loadable(() => import('./account'), {fallback})
+const Cart = loadable(() => import('./cart'), {fallback})
+const Checkout = loadable(() => import('./checkout'), {
+ fallback
+})
+const CheckoutConfirmation = loadable(() => import('./checkout/confirmation'), {
+ fallback
+})
+const Home = loadable(() => import('./home'), {fallback})
+const Login = loadable(() => import('./login'), {fallback})
+const Registration = loadable(() => import('./registration'), {
+ fallback
+})
+const ResetPassword = loadable(() => import('./reset-password'), {fallback})
+const LoginRedirect = loadable(() => import('./login-redirect'), {fallback})
+const ProductDetail = loadable(() => import('./product-detail'), {fallback})
+const ProductList = loadable(() => import('./product-list'), {
+ fallback
+})
+const SocialLoginRedirect = loadable(() => import('./social-login-redirect'), {
+ fallback
+})
+const Wishlist = loadable(() => import('./account/wishlist'), {
+ fallback
+})
+
+// NOTE: Apply "displayName" for easy filtering. This is a widely use pattern to allow filtering without
+// triggering the loadable logic. Please note that we want to keep these in aligned with name in the
+// component itself.
+Account.displayName = 'Account'
+Cart.displayName = 'Cart'
+Checkout.displayName = 'Checkout'
+CheckoutConfirmation.displayName = 'CheckoutConfirmation'
+Home.displayName = 'Home'
+Login.displayName = 'Login'
+Registration.displayName = 'Registration'
+ResetPassword.displayName = 'ResetPassword'
+LoginRedirect.displayName = 'LoginRedirect'
+ProductDetail.displayName = 'ProductDetail'
+ProductList.displayName = 'ProductList'
+
+export {
+ Account,
+ Cart,
+ Checkout,
+ CheckoutConfirmation,
+ Home,
+ Login,
+ Registration,
+ ResetPassword,
+ LoginRedirect,
+ ProductDetail,
+ ProductList,
+ SocialLoginRedirect
+}
diff --git a/packages/template-retail-react-app/app/pages/login-redirect/index.jsx b/packages/template-chakra-storefront/src/pages/login-redirect/index.jsx
similarity index 100%
rename from packages/template-retail-react-app/app/pages/login-redirect/index.jsx
rename to packages/template-chakra-storefront/src/pages/login-redirect/index.jsx
diff --git a/packages/template-retail-react-app/app/pages/login-redirect/index.test.js b/packages/template-chakra-storefront/src/pages/login-redirect/index.test.js
similarity index 75%
rename from packages/template-retail-react-app/app/pages/login-redirect/index.test.js
rename to packages/template-chakra-storefront/src/pages/login-redirect/index.test.js
index 7cf61ac990..26bde71b37 100644
--- a/packages/template-retail-react-app/app/pages/login-redirect/index.test.js
+++ b/packages/template-chakra-storefront/src/pages/login-redirect/index.test.js
@@ -5,8 +5,8 @@
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
import React from 'react'
-import {renderWithReactIntl} from '@salesforce/retail-react-app/app/utils/test-utils'
-import LoginRedirect from '@salesforce/retail-react-app/app/pages/login-redirect/index'
+import {renderWithReactIntl} from '../../utils/test-utils'
+import LoginRedirect from './index'
test('Login Redirect renders without errors', () => {
const {getByRole} = renderWithReactIntl( )
diff --git a/packages/template-retail-react-app/app/pages/login/index.jsx b/packages/template-chakra-storefront/src/pages/login/index.jsx
similarity index 89%
rename from packages/template-retail-react-app/app/pages/login/index.jsx
rename to packages/template-chakra-storefront/src/pages/login/index.jsx
index f068753810..4c0a432818 100644
--- a/packages/template-retail-react-app/app/pages/login/index.jsx
+++ b/packages/template-chakra-storefront/src/pages/login/index.jsx
@@ -8,7 +8,7 @@
import React, {useEffect, useState} from 'react'
import PropTypes from 'prop-types'
import {useIntl, defineMessage} from 'react-intl'
-import {Box, Container} from '@salesforce/retail-react-app/app/components/shared/ui'
+import {Box, Container} from '@chakra-ui/react'
import {
AuthHelpers,
useAuthHelper,
@@ -17,15 +17,15 @@ import {
useCustomerType,
useShopperBasketsMutation
} from '@salesforce/commerce-sdk-react'
-import useNavigation from '@salesforce/retail-react-app/app/hooks/use-navigation'
-import Seo from '@salesforce/retail-react-app/app/components/seo'
+import useNavigation from '../../hooks/use-navigation'
+import Seo from '../../components/seo'
import {useForm} from 'react-hook-form'
-import {useRouteMatch} from 'react-router'
+import {useRouteMatch} from 'react-router-dom'
import {useLocation} from 'react-router-dom'
-import useEinstein from '@salesforce/retail-react-app/app/hooks/use-einstein'
-import useDataCloud from '@salesforce/retail-react-app/app/hooks/use-datacloud'
-import LoginForm from '@salesforce/retail-react-app/app/components/login'
-import PasswordlessEmailConfirmation from '@salesforce/retail-react-app/app/components/email-confirmation/index'
+import useEinstein from '../../hooks/use-einstein'
+import useDataCloud from '../../hooks/use-datacloud'
+import LoginForm from '../../components/login'
+import PasswordlessEmailConfirmation from '../../components/email-confirmation/index'
import {
API_ERROR_MESSAGE,
CREATE_ACCOUNT_FIRST_ERROR_MESSAGE,
@@ -33,13 +33,12 @@ import {
INVALID_TOKEN_ERROR_MESSAGE,
FEATURE_UNAVAILABLE_ERROR_MESSAGE,
LOGIN_TYPES,
- PASSWORDLESS_LOGIN_LANDING_PATH,
PASSWORDLESS_ERROR_MESSAGES,
USER_NOT_FOUND_ERROR
-} from '@salesforce/retail-react-app/app/constants'
-import {usePrevious} from '@salesforce/retail-react-app/app/hooks/use-previous'
-import {isServer} from '@salesforce/retail-react-app/app/utils/utils'
+} from '../../../config/constants'
+import {usePrevious} from '../../hooks/use-previous'
import {getConfig} from '@salesforce/pwa-kit-runtime/utils/ssr-config'
+import {isServer} from '../../utils/utils'
const LOGIN_ERROR_MESSAGE = defineMessage({
defaultMessage: 'Incorrect username or password, please try again.',
@@ -58,11 +57,12 @@ const Login = ({initialView = LOGIN_VIEW}) => {
const {path} = useRouteMatch()
const einstein = useEinstein()
const dataCloud = useDataCloud()
+ const {login: loginConfig} = getConfig()
const {isRegistered, customerType} = useCustomerType()
const login = useAuthHelper(AuthHelpers.LoginRegisteredUserB2C)
const loginPasswordless = useAuthHelper(AuthHelpers.LoginPasswordlessUser)
const authorizePasswordlessLogin = useAuthHelper(AuthHelpers.AuthorizePasswordless)
- const {passwordless = {}, social = {}} = getConfig().app.login || {}
+ const {passwordless = {}, social = {}} = loginConfig
const isPasswordlessEnabled = !!passwordless?.enabled
const isSocialEnabled = !!social?.enabled
const idps = social?.idps
@@ -151,7 +151,7 @@ const Login = ({initialView = LOGIN_VIEW}) => {
// executing a passwordless login attempt using the token. The process waits for the
// customer baskets to be loaded to guarantee proper basket merging.
useEffect(() => {
- if (path === PASSWORDLESS_LOGIN_LANDING_PATH && isSuccessCustomerBaskets) {
+ if (path === loginConfig.passwordless.landingPath && isSuccessCustomerBaskets) {
const token = decodeURIComponent(queryParams.get('token'))
if (queryParams.get('redirect_url')) {
setRedirectPath(decodeURIComponent(queryParams.get('redirect_url')))
diff --git a/packages/template-retail-react-app/app/pages/login/index.test.js b/packages/template-chakra-storefront/src/pages/login/index.test.js
similarity index 94%
rename from packages/template-retail-react-app/app/pages/login/index.test.js
rename to packages/template-chakra-storefront/src/pages/login/index.test.js
index 8a5ea7e269..13b4091f18 100644
--- a/packages/template-retail-react-app/app/pages/login/index.test.js
+++ b/packages/template-chakra-storefront/src/pages/login/index.test.js
@@ -7,19 +7,14 @@
import React from 'react'
import {screen, waitFor} from '@testing-library/react'
import {rest} from 'msw'
-import {
- renderWithProviders,
- createPathWithDefaults,
- guestToken
-} from '@salesforce/retail-react-app/app/utils/test-utils'
+import {renderWithProviders, createPathWithDefaults, guestToken} from '../../utils/test-utils'
import Login from '.'
import {BrowserRouter as Router, Route} from 'react-router-dom'
-import Account from '@salesforce/retail-react-app/app/pages/account'
-import Registration from '@salesforce/retail-react-app/app/pages/registration'
-import ResetPassword from '@salesforce/retail-react-app/app/pages/reset-password'
-import mockConfig from '@salesforce/retail-react-app/config/mocks/default'
-import {mockedRegisteredCustomer} from '@salesforce/retail-react-app/app/mocks/mock-data'
-
+import Account from '../account'
+import Registration from '../registration'
+import ResetPassword from '../reset-password'
+import mockConfig from '../../../mock-config'
+import {mockedRegisteredCustomer} from '../../../mocks/mock-data'
const mockMergedBasket = {
basketId: 'a10ff320829cb0eef93ca5310a',
currency: 'USD',
@@ -98,7 +93,6 @@ describe('Logging in tests', function () {
})
)
})
-
test('Allows customer to sign in to their account', async () => {
const {user} = renderWithProviders( , {
wrapperProps: {
@@ -215,7 +209,7 @@ describe('Navigate away from login page tests', function () {
wrapperProps: {
siteAlias: 'uk',
locale: {id: 'en-GB'},
- appConfig: mockConfig.app,
+ config: mockConfig,
isGuest: true
}
})
diff --git a/packages/template-retail-react-app/app/pages/login/passwordless-landing.test.js b/packages/template-chakra-storefront/src/pages/login/passwordless-landing.test.js
similarity index 90%
rename from packages/template-retail-react-app/app/pages/login/passwordless-landing.test.js
rename to packages/template-chakra-storefront/src/pages/login/passwordless-landing.test.js
index bf13b00b58..89abd90e33 100644
--- a/packages/template-retail-react-app/app/pages/login/passwordless-landing.test.js
+++ b/packages/template-chakra-storefront/src/pages/login/passwordless-landing.test.js
@@ -7,15 +7,12 @@
import React from 'react'
import {waitFor} from '@testing-library/react'
import {rest} from 'msw'
-import {
- renderWithProviders,
- createPathWithDefaults
-} from '@salesforce/retail-react-app/app/utils/test-utils'
+import {renderWithProviders, createPathWithDefaults} from '../../utils/test-utils'
import Login from '.'
import {BrowserRouter as Router, Route} from 'react-router-dom'
-import Account from '@salesforce/retail-react-app/app/pages/account'
-import mockConfig from '@salesforce/retail-react-app/config/mocks/default'
-import {mockedRegisteredCustomer} from '@salesforce/retail-react-app/app/mocks/mock-data'
+import Account from '../account'
+import mockConfig from '../../../mock-config'
+import {mockedRegisteredCustomer} from '../../../mocks/mock-data'
import {AuthHelpers} from '@salesforce/commerce-sdk-react'
const mockMergedBasket = {
@@ -108,7 +105,7 @@ describe('Passwordless landing tests', function () {
wrapperProps: {
siteAlias: 'uk',
locale: {id: 'en-GB'},
- appConfig: mockConfig.app
+ config: mockConfig
}
})
@@ -137,7 +134,7 @@ describe('Passwordless landing tests', function () {
wrapperProps: {
siteAlias: 'uk',
locale: {id: 'en-GB'},
- appConfig: mockConfig.app
+ config: mockConfig
}
})
diff --git a/packages/template-retail-react-app/app/pages/page-not-found/index.jsx b/packages/template-chakra-storefront/src/pages/page-not-found/index.jsx
similarity index 91%
rename from packages/template-retail-react-app/app/pages/page-not-found/index.jsx
rename to packages/template-chakra-storefront/src/pages/page-not-found/index.jsx
index 06cf676e78..ee552d2e8d 100644
--- a/packages/template-retail-react-app/app/pages/page-not-found/index.jsx
+++ b/packages/template-chakra-storefront/src/pages/page-not-found/index.jsx
@@ -6,20 +6,13 @@
*/
import React from 'react'
-import {
- Box,
- Heading,
- Flex,
- Button,
- Stack,
- Text
-} from '@salesforce/retail-react-app/app/components/shared/ui'
+import {Box, Heading, Flex, Button, Stack, Text} from '@chakra-ui/react'
import {Helmet} from 'react-helmet'
import {useIntl} from 'react-intl'
import {useServerContext} from '@salesforce/pwa-kit-react-sdk/ssr/universal/hooks'
-import {SearchIcon} from '@salesforce/retail-react-app/app/components/icons'
+import {SearchIcon} from '../../components/icons'
import {useHistory} from 'react-router-dom'
-import Link from '@salesforce/retail-react-app/app/components/link'
+import Link from '../../components/link'
const PageNotFound = () => {
const intl = useIntl()
diff --git a/packages/template-retail-react-app/app/pages/page-not-found/index.test.js b/packages/template-chakra-storefront/src/pages/page-not-found/index.test.js
similarity index 83%
rename from packages/template-retail-react-app/app/pages/page-not-found/index.test.js
rename to packages/template-chakra-storefront/src/pages/page-not-found/index.test.js
index 07f40415a2..0691693e0d 100644
--- a/packages/template-retail-react-app/app/pages/page-not-found/index.test.js
+++ b/packages/template-chakra-storefront/src/pages/page-not-found/index.test.js
@@ -5,8 +5,8 @@
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
import React from 'react'
-import PageNotFound from '@salesforce/retail-react-app/app/pages/page-not-found/index'
-import {renderWithProviders} from '@salesforce/retail-react-app/app/utils/test-utils'
+import PageNotFound from './index'
+import {renderWithProviders} from '../../utils/test-utils'
import {screen} from '@testing-library/react'
// Set up and clean up
diff --git a/packages/template-retail-react-app/app/pages/product-detail/index.jsx b/packages/template-chakra-storefront/src/pages/product-detail/index.jsx
similarity index 94%
rename from packages/template-retail-react-app/app/pages/product-detail/index.jsx
rename to packages/template-chakra-storefront/src/pages/product-detail/index.jsx
index 0a64b4129b..01b70ebff0 100644
--- a/packages/template-retail-react-app/app/pages/product-detail/index.jsx
+++ b/packages/template-chakra-storefront/src/pages/product-detail/index.jsx
@@ -9,13 +9,10 @@ import React, {Fragment, useCallback, useEffect, useState} from 'react'
import PropTypes from 'prop-types'
import {Helmet} from 'react-helmet'
import {FormattedMessage, useIntl} from 'react-intl'
-import {
- normalizeSetBundleProduct,
- getUpdateBundleChildArray
-} from '@salesforce/retail-react-app/app/utils/product-utils'
+import {normalizeSetBundleProduct, getUpdateBundleChildArray} from '../../utils/product-utils'
// Components
-import {Box, Button, Stack} from '@salesforce/retail-react-app/app/components/shared/ui'
+import {Box, Button, Stack} from '@chakra-ui/react'
import {
useProduct,
useProducts,
@@ -25,37 +22,35 @@ import {
useCustomerId,
useShopperBasketsMutationHelper
} from '@salesforce/commerce-sdk-react'
-
+import {getConfig} from '@salesforce/pwa-kit-runtime/utils/ssr-config'
// Hooks
-import {useCurrentBasket} from '@salesforce/retail-react-app/app/hooks/use-current-basket'
-import {useVariant} from '@salesforce/retail-react-app/app/hooks'
-import useNavigation from '@salesforce/retail-react-app/app/hooks/use-navigation'
-import useEinstein from '@salesforce/retail-react-app/app/hooks/use-einstein'
-import useDataCloud from '@salesforce/retail-react-app/app/hooks/use-datacloud'
-import useActiveData from '@salesforce/retail-react-app/app/hooks/use-active-data'
+import {useCurrentBasket, useVariant} from '../../hooks'
+
+import useNavigation from '../../hooks/use-navigation'
+import useEinstein from '../../hooks/use-einstein'
+import useDataCloud from '../../hooks/use-datacloud'
+import useActiveData from '../../hooks/use-active-data'
import {useServerContext} from '@salesforce/pwa-kit-react-sdk/ssr/universal/hooks'
// Project Components
-import RecommendedProducts from '@salesforce/retail-react-app/app/components/recommended-products'
-import ProductView from '@salesforce/retail-react-app/app/components/product-view'
-import InformationAccordion from '@salesforce/retail-react-app/app/pages/product-detail/partials/information-accordion'
+import RecommendedProducts from '../../components/recommended-products'
+import ProductView from '../../components/product-view'
+import InformationAccordion from './partials/information-accordion'
import {HTTPNotFound, HTTPError} from '@salesforce/pwa-kit-react-sdk/ssr/universal/errors'
-import logger from '@salesforce/retail-react-app/app/utils/logger-instance'
+import logger from '../../utils/logger-instance'
// constant
import {
API_ERROR_MESSAGE,
EINSTEIN_RECOMMENDERS,
- MAX_CACHE_AGE,
TOAST_ACTION_VIEW_WISHLIST,
TOAST_MESSAGE_ADDED_TO_WISHLIST,
- TOAST_MESSAGE_ALREADY_IN_WISHLIST,
- STALE_WHILE_REVALIDATE
-} from '@salesforce/retail-react-app/app/constants'
-import {rebuildPathWithParams} from '@salesforce/retail-react-app/app/utils/url'
+ TOAST_MESSAGE_ALREADY_IN_WISHLIST
+} from '../../../config/constants'
+import {rebuildPathWithParams} from '../../utils/url'
import {useHistory, useLocation, useParams} from 'react-router-dom'
-import {useToast} from '@salesforce/retail-react-app/app/hooks/use-toast'
-import {useWishList} from '@salesforce/retail-react-app/app/hooks/use-wish-list'
+import {useToast} from '../../hooks/use-toast'
+import {useWishList} from '../../hooks/use-wish-list'
const ProductDetail = () => {
const {formatMessage} = useIntl()
@@ -67,6 +62,7 @@ const ProductDetail = () => {
const toast = useToast()
const navigate = useNavigation()
const customerId = useCustomerId()
+ const {maxCacheAge: MAX_CACHE_AGE, staleWhileRevalidate: STALE_WHILE_REVALIDATE} = getConfig()
/****************************** Basket *********************************/
const {isLoading: isBasketLoading} = useCurrentBasket()
diff --git a/packages/template-retail-react-app/app/pages/product-detail/index.mock.js b/packages/template-chakra-storefront/src/pages/product-detail/index.mock.js
similarity index 100%
rename from packages/template-retail-react-app/app/pages/product-detail/index.mock.js
rename to packages/template-chakra-storefront/src/pages/product-detail/index.mock.js
diff --git a/packages/template-retail-react-app/app/pages/product-detail/index.test.js b/packages/template-chakra-storefront/src/pages/product-detail/index.test.js
similarity index 96%
rename from packages/template-retail-react-app/app/pages/product-detail/index.test.js
rename to packages/template-chakra-storefront/src/pages/product-detail/index.test.js
index 2699837c24..c571c178e2 100644
--- a/packages/template-retail-react-app/app/pages/product-detail/index.test.js
+++ b/packages/template-chakra-storefront/src/pages/product-detail/index.test.js
@@ -6,27 +6,24 @@
*/
import React from 'react'
import {fireEvent, screen, waitFor, within} from '@testing-library/react'
-import {
- mockCustomerBaskets,
- mockedCustomerProductLists
-} from '@salesforce/retail-react-app/app/mocks/mock-data'
+import {mockCustomerBaskets, mockedCustomerProductLists} from '../../../mocks/mock-data'
import {Route, Switch} from 'react-router-dom'
import {rest} from 'msw'
import ProductDetail from '.'
-import {renderWithProviders} from '@salesforce/retail-react-app/app/utils/test-utils'
+import {renderWithProviders} from '../../utils/test-utils'
import {
basketWithProductSet,
mockWishlistWithItem,
einsteinRecommendation,
masterProduct,
productsForEinstein
-} from '@salesforce/retail-react-app/app/pages/product-detail/index.mock'
-import mockedProductSet from '@salesforce/retail-react-app/app/mocks/product-set-winter-lookM'
+} from './index.mock'
+import mockedProductSet from '../../../mocks/product-set-winter-lookM'
import {
mockProductBundle,
basketWithProductBundle,
bundleProductItemsForPDP
-} from '@salesforce/retail-react-app/app/mocks/product-bundle'
+} from '../../../mocks/product-bundle'
jest.setTimeout(60000)
@@ -47,14 +44,6 @@ jest.mock('@salesforce/commerce-sdk-react', () => {
}
})
-jest.mock('@salesforce/retail-react-app/app/constants', () => {
- const originalModule = jest.requireActual('@salesforce/retail-react-app/app/constants')
- return {
- ...originalModule,
- DEFAULT_DNT_STATE: false
- }
-})
-
const MockedComponent = () => {
return (
diff --git a/packages/template-retail-react-app/app/pages/product-detail/partials/information-accordion.jsx b/packages/template-chakra-storefront/src/pages/product-detail/partials/information-accordion.jsx
similarity index 98%
rename from packages/template-retail-react-app/app/pages/product-detail/partials/information-accordion.jsx
rename to packages/template-chakra-storefront/src/pages/product-detail/partials/information-accordion.jsx
index b01d672c82..512b970fac 100644
--- a/packages/template-retail-react-app/app/pages/product-detail/partials/information-accordion.jsx
+++ b/packages/template-chakra-storefront/src/pages/product-detail/partials/information-accordion.jsx
@@ -15,7 +15,7 @@ import {
AccordionIcon,
Box,
Stack
-} from '@salesforce/retail-react-app/app/components/shared/ui'
+} from '@chakra-ui/react'
import {useIntl} from 'react-intl'
const InformationAccordion = ({product}) => {
diff --git a/packages/template-retail-react-app/app/pages/product-list/index.jsx b/packages/template-chakra-storefront/src/pages/product-list/index.jsx
similarity index 92%
rename from packages/template-retail-react-app/app/pages/product-list/index.jsx
rename to packages/template-chakra-storefront/src/pages/product-list/index.jsx
index e449dea784..ab1072d106 100644
--- a/packages/template-retail-react-app/app/pages/product-list/index.jsx
+++ b/packages/template-chakra-storefront/src/pages/product-list/index.jsx
@@ -44,57 +44,46 @@ import {
DrawerOverlay,
DrawerContent,
DrawerCloseButton
-} from '@salesforce/retail-react-app/app/components/shared/ui'
+} from '@chakra-ui/react'
// Project Components
-import Pagination from '@salesforce/retail-react-app/app/components/pagination'
-import ProductTile, {
- Skeleton as ProductTileSkeleton
-} from '@salesforce/retail-react-app/app/components/product-tile'
-import {HideOnDesktop} from '@salesforce/retail-react-app/app/components/responsive'
-import Refinements from '@salesforce/retail-react-app/app/pages/product-list/partials/refinements'
-import CategoryLinks from '@salesforce/retail-react-app/app/pages/product-list/partials/category-links'
-import SelectedRefinements from '@salesforce/retail-react-app/app/pages/product-list/partials/selected-refinements'
-import EmptySearchResults from '@salesforce/retail-react-app/app/pages/product-list/partials/empty-results'
-import PageHeader from '@salesforce/retail-react-app/app/pages/product-list/partials/page-header'
-import AbovePageHeader from '@salesforce/retail-react-app/app/pages/product-list/partials/above-page-header'
-import PageDesignerPromotionalBanner from '@salesforce/retail-react-app/app/pages/product-list/partials/page-designer-promotional-banner'
+import Pagination from '../../components/pagination'
+import ProductTile, {Skeleton as ProductTileSkeleton} from '../../components/product-tile'
+import {HideOnDesktop} from '../../components/responsive'
+import Refinements from './partials/refinements'
+import CategoryLinks from './partials/category-links'
+import SelectedRefinements from './partials/selected-refinements'
+import EmptySearchResults from './partials/empty-results'
+import PageHeader from './partials/page-header'
+import AbovePageHeader from './partials/above-page-header'
+import PageDesignerPromotionalBanner from './partials/page-designer-promotional-banner'
// Icons
-import {FilterIcon, ChevronDownIcon} from '@salesforce/retail-react-app/app/components/icons'
+import {FilterIcon, ChevronDownIcon} from '../../components/icons'
// Hooks
-import {
- useLimitUrls,
- usePageUrls,
- useSortUrls,
- useSearchParams
-} from '@salesforce/retail-react-app/app/hooks'
-import {useToast} from '@salesforce/retail-react-app/app/hooks/use-toast'
-import useEinstein from '@salesforce/retail-react-app/app/hooks/use-einstein'
-import useDataCloud from '@salesforce/retail-react-app/app/hooks/use-datacloud'
-import useActiveData from '@salesforce/retail-react-app/app/hooks/use-active-data'
+import {useLimitUrls, usePageUrls, useSortUrls, useSearchParams} from '../../hooks'
+import {getConfig} from '@salesforce/pwa-kit-runtime/utils/ssr-config'
+import {useToast} from '../../hooks/use-toast'
+import useEinstein from '../../hooks/use-einstein'
+import useActiveData from '../../hooks/use-active-data'
+import useDataCloud from '../../hooks/use-datacloud'
// Others
import {HTTPNotFound, HTTPError} from '@salesforce/pwa-kit-react-sdk/ssr/universal/errors'
-import logger from '@salesforce/retail-react-app/app/utils/logger-instance'
+import logger from '../../utils/logger-instance'
// Constants
import {
- DEFAULT_LIMIT_VALUES,
API_ERROR_MESSAGE,
- MAX_CACHE_AGE,
TOAST_ACTION_VIEW_WISHLIST,
TOAST_MESSAGE_ADDED_TO_WISHLIST,
- TOAST_MESSAGE_REMOVED_FROM_WISHLIST,
- STALE_WHILE_REVALIDATE,
- PRODUCT_LIST_IMAGE_VIEW_TYPE,
- PRODUCT_LIST_SELECTABLE_ATTRIBUTE_ID
-} from '@salesforce/retail-react-app/app/constants'
-import useNavigation from '@salesforce/retail-react-app/app/hooks/use-navigation'
-import LoadingSpinner from '@salesforce/retail-react-app/app/components/loading-spinner'
-import {useWishList} from '@salesforce/retail-react-app/app/hooks/use-wish-list'
-import {isHydrated} from '@salesforce/retail-react-app/app/utils/utils'
+ TOAST_MESSAGE_REMOVED_FROM_WISHLIST
+} from '../../../config/constants'
+import useNavigation from '../../hooks/use-navigation'
+import LoadingSpinner from '../../components/loading-spinner'
+import {useWishList} from '../../hooks/use-wish-list'
+import {isHydrated} from '../../utils/utils'
// NOTE: You can ignore certain refinements on a template level by updating the below
// list of ignored refinements.
@@ -123,7 +112,12 @@ const ProductList = (props) => {
const {res} = useServerContext()
const customerId = useCustomerId()
const [searchParams, {stringify: stringifySearchParams}] = useSearchParams()
-
+ const {
+ pages: {productList: productListConfig},
+ maxCacheAge: MAX_CACHE_AGE,
+ staleWhileRevalidate: STALE_WHILE_REVALIDATE,
+ search: searchConfig
+ } = getConfig()
/**************** Page State ****************/
const [filtersLoading, setFiltersLoading] = useState(false)
const [wishlistLoading, setWishlistLoading] = useState([])
@@ -580,9 +574,9 @@ const ProductList = (props) => {
enableFavourite={true}
isFavourite={isInWishlist}
isRefreshingData={isRefetching && isFetched}
- imageViewType={PRODUCT_LIST_IMAGE_VIEW_TYPE}
+ imageViewType={productListConfig.imageViewType}
selectableAttributeId={
- PRODUCT_LIST_SELECTABLE_ATTRIBUTE_ID
+ productListConfig.selectableAttributeId
}
onClick={() => {
if (searchQuery) {
@@ -636,7 +630,7 @@ const ProductList = (props) => {
>
{limitUrls.map((href, index) => (
- {DEFAULT_LIMIT_VALUES[index]}
+ {searchConfig.defaultLimitValues[index]}
))}
diff --git a/packages/template-retail-react-app/app/pages/product-list/index.test.js b/packages/template-chakra-storefront/src/pages/product-list/index.test.js
similarity index 97%
rename from packages/template-retail-react-app/app/pages/product-list/index.test.js
rename to packages/template-chakra-storefront/src/pages/product-list/index.test.js
index 33f18203e1..eabb4d985a 100644
--- a/packages/template-retail-react-app/app/pages/product-list/index.test.js
+++ b/packages/template-chakra-storefront/src/pages/product-list/index.test.js
@@ -12,15 +12,12 @@ import {
mockProductSearch,
mockedEmptyCustomerProductList,
mockCategories
-} from '@salesforce/retail-react-app/app/mocks/mock-data'
+} from '../../../mocks/mock-data'
import {screen, waitFor} from '@testing-library/react'
import {Route, Switch} from 'react-router-dom'
-import {
- createPathWithDefaults,
- renderWithProviders
-} from '@salesforce/retail-react-app/app/utils/test-utils'
+import {createPathWithDefaults, renderWithProviders} from '../../utils/test-utils'
import ProductList from '.'
-import EmptySearchResults from '@salesforce/retail-react-app/app/pages/product-list/partials/empty-results'
+import EmptySearchResults from './partials/empty-results'
import {useProductSearch, useCategory} from '@salesforce/commerce-sdk-react'
const MOCK_USE_QUERY_RESULT = {
diff --git a/packages/template-retail-react-app/app/pages/product-list/partials/above-page-header.jsx b/packages/template-chakra-storefront/src/pages/product-list/partials/above-page-header.jsx
similarity index 100%
rename from packages/template-retail-react-app/app/pages/product-list/partials/above-page-header.jsx
rename to packages/template-chakra-storefront/src/pages/product-list/partials/above-page-header.jsx
diff --git a/packages/template-retail-react-app/app/pages/product-list/partials/category-links.jsx b/packages/template-chakra-storefront/src/pages/product-list/partials/category-links.jsx
similarity index 89%
rename from packages/template-retail-react-app/app/pages/product-list/partials/category-links.jsx
rename to packages/template-chakra-storefront/src/pages/product-list/partials/category-links.jsx
index cb068dc380..70cdfe698f 100644
--- a/packages/template-retail-react-app/app/pages/product-list/partials/category-links.jsx
+++ b/packages/template-chakra-storefront/src/pages/product-list/partials/category-links.jsx
@@ -15,14 +15,14 @@ import {
AccordionButton,
AccordionPanel,
AccordionIcon,
+ Heading,
Stack,
- Text,
- Heading
-} from '@salesforce/retail-react-app/app/components/shared/ui'
-import Link from '@salesforce/retail-react-app/app/components/link'
+ Text
+} from '@chakra-ui/react'
+import Link from '../../../components/link'
// Others
-import {noop} from '@salesforce/retail-react-app/app/utils/utils'
+import {noop} from '../../../utils/utils'
const CategoryLinks = ({category = {}, onSelect = noop}) => {
const {categories = []} = category
diff --git a/packages/template-retail-react-app/app/pages/product-list/partials/checkbox-refinements.jsx b/packages/template-chakra-storefront/src/pages/product-list/partials/checkbox-refinements.jsx
similarity index 87%
rename from packages/template-retail-react-app/app/pages/product-list/partials/checkbox-refinements.jsx
rename to packages/template-chakra-storefront/src/pages/product-list/partials/checkbox-refinements.jsx
index 9730623fff..edbab99571 100644
--- a/packages/template-retail-react-app/app/pages/product-list/partials/checkbox-refinements.jsx
+++ b/packages/template-chakra-storefront/src/pages/product-list/partials/checkbox-refinements.jsx
@@ -8,11 +8,8 @@
import React from 'react'
import PropTypes from 'prop-types'
import {useIntl} from 'react-intl'
-import {Box, Checkbox, Stack} from '@salesforce/retail-react-app/app/components/shared/ui'
-import {
- ADD_FILTER,
- REMOVE_FILTER
-} from '@salesforce/retail-react-app/app/pages/product-list/partials/refinements-utils'
+import {Box, Checkbox, Stack} from '@chakra-ui/react'
+import {ADD_FILTER, REMOVE_FILTER} from './refinements-utils'
const CheckboxRefinements = ({filter, toggleFilter, selectedFilters}) => {
const {formatMessage} = useIntl()
diff --git a/packages/template-retail-react-app/app/pages/product-list/partials/checkbox-refinements.test.js b/packages/template-chakra-storefront/src/pages/product-list/partials/checkbox-refinements.test.js
similarity index 86%
rename from packages/template-retail-react-app/app/pages/product-list/partials/checkbox-refinements.test.js
rename to packages/template-chakra-storefront/src/pages/product-list/partials/checkbox-refinements.test.js
index f19d6a83ee..2ae35edbc9 100644
--- a/packages/template-retail-react-app/app/pages/product-list/partials/checkbox-refinements.test.js
+++ b/packages/template-chakra-storefront/src/pages/product-list/partials/checkbox-refinements.test.js
@@ -8,8 +8,8 @@
import React from 'react'
import {screen} from '@testing-library/react'
-import {renderWithProviders} from '@salesforce/retail-react-app/app/utils/test-utils'
-import CheckboxRefinements from '@salesforce/retail-react-app/app/pages/product-list/partials/checkbox-refinements'
+import {renderWithProviders} from '../../../utils/test-utils'
+import CheckboxRefinements from './checkbox-refinements'
const data = {
attributeId: 'c_refinementColor',
diff --git a/packages/template-retail-react-app/app/pages/product-list/partials/color-refinements.jsx b/packages/template-chakra-storefront/src/pages/product-list/partials/color-refinements.jsx
similarity index 93%
rename from packages/template-retail-react-app/app/pages/product-list/partials/color-refinements.jsx
rename to packages/template-chakra-storefront/src/pages/product-list/partials/color-refinements.jsx
index 99fc3c6586..ed71d3d006 100644
--- a/packages/template-retail-react-app/app/pages/product-list/partials/color-refinements.jsx
+++ b/packages/template-chakra-storefront/src/pages/product-list/partials/color-refinements.jsx
@@ -13,15 +13,12 @@ import {
Text,
Button,
Center,
- useMultiStyleConfig
-} from '@salesforce/retail-react-app/app/components/shared/ui'
+ useMultiStyleConfig,
+ useTheme
+} from '@chakra-ui/react'
import PropTypes from 'prop-types'
-import {cssColorGroups} from '@salesforce/retail-react-app/app/constants'
import {useIntl} from 'react-intl'
-import {
- ADD_FILTER_HIT_COUNT,
- REMOVE_FILTER_HIT_COUNT
-} from '@salesforce/retail-react-app/app/pages/product-list/partials/refinements-utils'
+import {ADD_FILTER_HIT_COUNT, REMOVE_FILTER_HIT_COUNT} from './refinements-utils'
const ColorRefinements = ({filter, toggleFilter, selectedFilters}) => {
const intl = useIntl()
@@ -29,6 +26,8 @@ const ColorRefinements = ({filter, toggleFilter, selectedFilters}) => {
variant: 'circle',
disabled: false
})
+ const theme = useTheme()
+ const cssColorGroups = theme.colors.cssColorGroups
return (
diff --git a/packages/template-retail-react-app/app/pages/product-list/partials/empty-results.jsx b/packages/template-chakra-storefront/src/pages/product-list/partials/empty-results.jsx
similarity index 92%
rename from packages/template-retail-react-app/app/pages/product-list/partials/empty-results.jsx
rename to packages/template-chakra-storefront/src/pages/product-list/partials/empty-results.jsx
index 9fc8a725c5..d449881e9c 100644
--- a/packages/template-retail-react-app/app/pages/product-list/partials/empty-results.jsx
+++ b/packages/template-chakra-storefront/src/pages/product-list/partials/empty-results.jsx
@@ -6,19 +6,13 @@
*/
import React, {Fragment} from 'react'
-import {
- Button,
- Text,
- Flex,
- Stack,
- Link
-} from '@salesforce/retail-react-app/app/components/shared/ui'
+import {Button, Text, Flex, Stack, Link} from '@chakra-ui/react'
import PropTypes from 'prop-types'
import {Link as RouteLink} from 'react-router-dom'
import {defineMessage, FormattedMessage, useIntl} from 'react-intl'
-import {SearchIcon} from '@salesforce/retail-react-app/app/components/icons'
-import RecommendedProducts from '@salesforce/retail-react-app/app/components/recommended-products'
-import {EINSTEIN_RECOMMENDERS} from '@salesforce/retail-react-app/app/constants'
+import {SearchIcon} from '../../../components/icons'
+import RecommendedProducts from '../../../components/recommended-products'
+import {EINSTEIN_RECOMMENDERS} from '../../../../config/constants'
const contactUsMessage = defineMessage({
id: 'empty_search_results.link.contact_us',
diff --git a/packages/template-retail-react-app/app/pages/product-list/partials/link-refinements.jsx b/packages/template-chakra-storefront/src/pages/product-list/partials/link-refinements.jsx
similarity index 87%
rename from packages/template-retail-react-app/app/pages/product-list/partials/link-refinements.jsx
rename to packages/template-chakra-storefront/src/pages/product-list/partials/link-refinements.jsx
index 1dffa61aa0..9ff771ee64 100644
--- a/packages/template-retail-react-app/app/pages/product-list/partials/link-refinements.jsx
+++ b/packages/template-chakra-storefront/src/pages/product-list/partials/link-refinements.jsx
@@ -6,9 +6,9 @@
*/
import React from 'react'
-import {Stack, Text} from '@salesforce/retail-react-app/app/components/shared/ui'
+import {Stack, Text} from '@chakra-ui/react'
import PropTypes from 'prop-types'
-import Link from '@salesforce/retail-react-app/app/components/link'
+import Link from '../../../components/link'
const LinkRefinements = ({filter}) => {
return (
diff --git a/packages/template-retail-react-app/app/pages/product-list/partials/page-designer-promotional-banner.jsx b/packages/template-chakra-storefront/src/pages/product-list/partials/page-designer-promotional-banner.jsx
similarity index 85%
rename from packages/template-retail-react-app/app/pages/product-list/partials/page-designer-promotional-banner.jsx
rename to packages/template-chakra-storefront/src/pages/product-list/partials/page-designer-promotional-banner.jsx
index d77d39123c..3a7a2df8ca 100644
--- a/packages/template-retail-react-app/app/pages/product-list/partials/page-designer-promotional-banner.jsx
+++ b/packages/template-chakra-storefront/src/pages/product-list/partials/page-designer-promotional-banner.jsx
@@ -8,16 +8,16 @@ import React from 'react'
import {usePage, useUsid, useShopperContext} from '@salesforce/commerce-sdk-react'
// Components
-import {Box} from '@salesforce/retail-react-app/app/components/shared/ui'
+import {Box} from '@chakra-ui/react'
import {Page} from '@salesforce/commerce-sdk-react/components'
// Page Designer Components
-import {ImageWithText} from '@salesforce/retail-react-app/app/page-designer/assets'
-import {MobileGrid1r1c} from '@salesforce/retail-react-app/app/page-designer/layouts'
+import {ImageWithText} from '../../../page-designer/assets'
+import {MobileGrid1r1c} from '../../../page-designer/layouts'
// Hooks
-import {isServer} from '@salesforce/retail-react-app/app/utils/utils'
-import useMultiSite from '@salesforce/retail-react-app/app/hooks/use-multi-site'
+import {isServer} from '../../../utils/utils'
+import useMultiSite from '../../../hooks/use-multi-site'
// Constants
const PROMO_BANNER_DESKTOP_PAGE_ID = 'instagram-promo-banner-desktop'
diff --git a/packages/template-retail-react-app/app/pages/product-list/partials/page-designer-promotional-banner.test.js b/packages/template-chakra-storefront/src/pages/product-list/partials/page-designer-promotional-banner.test.js
similarity index 91%
rename from packages/template-retail-react-app/app/pages/product-list/partials/page-designer-promotional-banner.test.js
rename to packages/template-chakra-storefront/src/pages/product-list/partials/page-designer-promotional-banner.test.js
index 7cc474adaf..dd2304ae00 100644
--- a/packages/template-retail-react-app/app/pages/product-list/partials/page-designer-promotional-banner.test.js
+++ b/packages/template-chakra-storefront/src/pages/product-list/partials/page-designer-promotional-banner.test.js
@@ -7,9 +7,9 @@
import React from 'react'
import {rest} from 'msw'
import {screen} from '@testing-library/react'
-import {renderWithProviders} from '@salesforce/retail-react-app/app/utils/test-utils'
-import {mockImageWithText} from '@salesforce/retail-react-app/app/mocks/page-designer'
-import PageDesignerPromotionalBanner from '@salesforce/retail-react-app/app/pages/product-list/partials/page-designer-promotional-banner'
+import {renderWithProviders} from '../../../utils/test-utils'
+import {mockImageWithText} from '../../../../mocks/page-designer'
+import PageDesignerPromotionalBanner from './page-designer-promotional-banner'
import {useShopperContext} from '@salesforce/commerce-sdk-react'
jest.mock('@salesforce/commerce-sdk-react', () => {
diff --git a/packages/template-retail-react-app/app/pages/product-list/partials/page-header.jsx b/packages/template-chakra-storefront/src/pages/product-list/partials/page-header.jsx
similarity index 87%
rename from packages/template-retail-react-app/app/pages/product-list/partials/page-header.jsx
rename to packages/template-chakra-storefront/src/pages/product-list/partials/page-header.jsx
index ee73482521..df25af8ca2 100644
--- a/packages/template-retail-react-app/app/pages/product-list/partials/page-header.jsx
+++ b/packages/template-chakra-storefront/src/pages/product-list/partials/page-header.jsx
@@ -8,10 +8,10 @@
import React from 'react'
import PropTypes from 'prop-types'
// Components
-import {Box, Heading, Flex, Text, Fade} from '@salesforce/retail-react-app/app/components/shared/ui'
+import {Box, Heading, Flex, Text, Fade} from '@chakra-ui/react'
// Project Components
-import Breadcrumb from '@salesforce/retail-react-app/app/components/breadcrumb'
+import Breadcrumb from '../../../components/breadcrumb'
const PageHeader = ({category, productSearchResult, isLoading, searchQuery, ...otherProps}) => {
return (
diff --git a/packages/template-retail-react-app/app/pages/product-list/partials/radio-refinements.jsx b/packages/template-chakra-storefront/src/pages/product-list/partials/radio-refinements.jsx
similarity index 92%
rename from packages/template-retail-react-app/app/pages/product-list/partials/radio-refinements.jsx
rename to packages/template-chakra-storefront/src/pages/product-list/partials/radio-refinements.jsx
index 7da619c095..7d2be755cc 100644
--- a/packages/template-retail-react-app/app/pages/product-list/partials/radio-refinements.jsx
+++ b/packages/template-chakra-storefront/src/pages/product-list/partials/radio-refinements.jsx
@@ -8,11 +8,8 @@
import React, {useRef} from 'react'
import PropTypes from 'prop-types'
import {useIntl} from 'react-intl'
-import {Box, Text, Radio, Stack} from '@salesforce/retail-react-app/app/components/shared/ui'
-import {
- ADD_FILTER,
- REMOVE_FILTER
-} from '@salesforce/retail-react-app/app/pages/product-list/partials/refinements-utils'
+import {Box, Text, Radio, Stack} from '@chakra-ui/react'
+import {ADD_FILTER, REMOVE_FILTER} from './refinements-utils'
const RadioRefinement = ({filter, value, toggleFilter, isSelected}) => {
const buttonRef = useRef()
diff --git a/packages/template-retail-react-app/app/pages/product-list/partials/refinements-utils.js b/packages/template-chakra-storefront/src/pages/product-list/partials/refinements-utils.js
similarity index 100%
rename from packages/template-retail-react-app/app/pages/product-list/partials/refinements-utils.js
rename to packages/template-chakra-storefront/src/pages/product-list/partials/refinements-utils.js
diff --git a/packages/template-retail-react-app/app/pages/product-list/partials/refinements.jsx b/packages/template-chakra-storefront/src/pages/product-list/partials/refinements.jsx
similarity index 88%
rename from packages/template-retail-react-app/app/pages/product-list/partials/refinements.jsx
rename to packages/template-chakra-storefront/src/pages/product-list/partials/refinements.jsx
index 40a6ce8b3c..f08cb6fcfa 100644
--- a/packages/template-retail-react-app/app/pages/product-list/partials/refinements.jsx
+++ b/packages/template-chakra-storefront/src/pages/product-list/partials/refinements.jsx
@@ -15,15 +15,15 @@ import {
AccordionButton,
AccordionPanel,
AccordionIcon
-} from '@salesforce/retail-react-app/app/components/shared/ui'
+} from '@chakra-ui/react'
import PropTypes from 'prop-types'
-import ColorRefinements from '@salesforce/retail-react-app/app/pages/product-list/partials/color-refinements'
-import SizeRefinements from '@salesforce/retail-react-app/app/pages/product-list/partials/size-refinements'
-import RadioRefinements from '@salesforce/retail-react-app/app/pages/product-list/partials/radio-refinements'
-import CheckboxRefinements from '@salesforce/retail-react-app/app/pages/product-list/partials/checkbox-refinements'
-import LinkRefinements from '@salesforce/retail-react-app/app/pages/product-list/partials/link-refinements'
-import {isServer} from '@salesforce/retail-react-app/app/utils/utils'
-import {FILTER_ACCORDION_SATE} from '@salesforce/retail-react-app/app/constants'
+import ColorRefinements from './color-refinements'
+import SizeRefinements from './size-refinements'
+import RadioRefinements from './radio-refinements'
+import CheckboxRefinements from './checkbox-refinements'
+import LinkRefinements from './link-refinements'
+import {isServer} from '../../../utils/utils'
+import {getConfig} from '@salesforce/pwa-kit-runtime/utils/ssr-config'
/** Map of refinement attribute IDs to the components used to display values as filter options. */
export const componentMap = {
@@ -41,6 +41,10 @@ const Refinements = ({
selectedFilters,
isLoading
}) => {
+ const {
+ pages: {productList: productListConfig}
+ } = getConfig()
+ const FILTER_ACCORDION_STATE = productListConfig.filterAccordionState
// Exclude filters in the exclude list.
if (excludedFilters) {
filters = filters.filter(({attributeId}) => !excludedFilters.includes(attributeId))
@@ -52,7 +56,7 @@ const Refinements = ({
// Use saved state for accordions
if (!isServer) {
// TODO: Change this to `useLocalStorage` hook when localStorage detection is more robust
- const filterAccordionState = window.localStorage.getItem(FILTER_ACCORDION_SATE)
+ const filterAccordionState = window.localStorage.getItem(FILTER_ACCORDION_STATE)
const savedExpandedAccordionIndexes =
filterAccordionState && JSON.parse(filterAccordionState)
@@ -74,7 +78,7 @@ const Refinements = ({
.map((filter) => filter.attributeId)
// TODO: Update when localStorage detection is more robust? useLocalStorage is only a getter
- window.localStorage.setItem(FILTER_ACCORDION_SATE, JSON.stringify(filterState))
+ window.localStorage.setItem(FILTER_ACCORDION_STATE, JSON.stringify(filterState))
}
return (
diff --git a/packages/template-retail-react-app/app/pages/product-list/partials/selected-refinements.jsx b/packages/template-chakra-storefront/src/pages/product-list/partials/selected-refinements.jsx
similarity index 92%
rename from packages/template-retail-react-app/app/pages/product-list/partials/selected-refinements.jsx
rename to packages/template-chakra-storefront/src/pages/product-list/partials/selected-refinements.jsx
index 8528a6e32c..e0f5a05dfd 100644
--- a/packages/template-retail-react-app/app/pages/product-list/partials/selected-refinements.jsx
+++ b/packages/template-chakra-storefront/src/pages/product-list/partials/selected-refinements.jsx
@@ -8,9 +8,9 @@
import React from 'react'
import {FormattedMessage, useIntl} from 'react-intl'
import PropTypes from 'prop-types'
-import {Box, Button, Wrap, WrapItem} from '@salesforce/retail-react-app/app/components/shared/ui'
-import {CloseIcon} from '@salesforce/retail-react-app/app/components/icons'
-import {REMOVE_FILTER} from '@salesforce/retail-react-app/app/pages/product-list/partials/refinements-utils'
+import {Box, Button, Wrap, WrapItem} from '@chakra-ui/react'
+import {CloseIcon} from '../../../components/icons'
+import {REMOVE_FILTER} from './refinements-utils'
const SelectedRefinements = ({toggleFilter, selectedFilterValues, filters, handleReset}) => {
const {formatMessage} = useIntl()
diff --git a/packages/template-retail-react-app/app/pages/product-list/partials/size-refinements.jsx b/packages/template-chakra-storefront/src/pages/product-list/partials/size-refinements.jsx
similarity index 89%
rename from packages/template-retail-react-app/app/pages/product-list/partials/size-refinements.jsx
rename to packages/template-chakra-storefront/src/pages/product-list/partials/size-refinements.jsx
index eb04580ed3..3d70d6cac4 100644
--- a/packages/template-retail-react-app/app/pages/product-list/partials/size-refinements.jsx
+++ b/packages/template-chakra-storefront/src/pages/product-list/partials/size-refinements.jsx
@@ -7,16 +7,8 @@
import React from 'react'
import PropTypes from 'prop-types'
import {useIntl} from 'react-intl'
-import {
- SimpleGrid,
- Button,
- Center,
- useMultiStyleConfig
-} from '@salesforce/retail-react-app/app/components/shared/ui'
-import {
- ADD_FILTER,
- REMOVE_FILTER
-} from '@salesforce/retail-react-app/app/pages/product-list/partials/refinements-utils'
+import {SimpleGrid, Button, Center, useMultiStyleConfig} from '@chakra-ui/react'
+import {ADD_FILTER, REMOVE_FILTER} from './refinements-utils'
const SizeRefinements = ({filter, toggleFilter, selectedFilters}) => {
const {formatMessage} = useIntl()
diff --git a/packages/template-retail-react-app/app/pages/registration/index.jsx b/packages/template-chakra-storefront/src/pages/registration/index.jsx
similarity index 81%
rename from packages/template-retail-react-app/app/pages/registration/index.jsx
rename to packages/template-chakra-storefront/src/pages/registration/index.jsx
index 0bb43b56c6..840d405a3e 100644
--- a/packages/template-retail-react-app/app/pages/registration/index.jsx
+++ b/packages/template-chakra-storefront/src/pages/registration/index.jsx
@@ -8,16 +8,16 @@
import React, {useEffect} from 'react'
import PropTypes from 'prop-types'
import {useIntl} from 'react-intl'
-import {Box, Container} from '@salesforce/retail-react-app/app/components/shared/ui'
+import {Box, Container} from '@chakra-ui/react'
import {AuthHelpers, useAuthHelper, useCustomerType} from '@salesforce/commerce-sdk-react'
import {useForm} from 'react-hook-form'
import {useLocation} from 'react-router-dom'
-import Seo from '@salesforce/retail-react-app/app/components/seo'
-import RegisterForm from '@salesforce/retail-react-app/app/components/register'
-import useNavigation from '@salesforce/retail-react-app/app/hooks/use-navigation'
-import useEinstein from '@salesforce/retail-react-app/app/hooks/use-einstein'
-import useDataCloud from '@salesforce/retail-react-app/app/hooks/use-datacloud'
-import {API_ERROR_MESSAGE} from '@salesforce/retail-react-app/app/constants'
+import Seo from '../../components/seo'
+import RegisterForm from '../../components/register'
+import useNavigation from '../../hooks/use-navigation'
+import useEinstein from '../../hooks/use-einstein'
+import useDataCloud from '../../hooks/use-datacloud'
+import {API_ERROR_MESSAGE} from '../../../config/constants'
const Registration = () => {
const {formatMessage} = useIntl()
diff --git a/packages/template-retail-react-app/app/pages/registration/index.test.jsx b/packages/template-chakra-storefront/src/pages/registration/index.test.jsx
similarity index 91%
rename from packages/template-retail-react-app/app/pages/registration/index.test.jsx
rename to packages/template-chakra-storefront/src/pages/registration/index.test.jsx
index 3528f9a436..70205e45a8 100644
--- a/packages/template-retail-react-app/app/pages/registration/index.test.jsx
+++ b/packages/template-chakra-storefront/src/pages/registration/index.test.jsx
@@ -6,17 +6,13 @@
*/
import React from 'react'
import {screen, within, waitFor} from '@testing-library/react'
-import {
- guestToken,
- registerUserToken,
- renderWithProviders
-} from '@salesforce/retail-react-app/app/utils/test-utils'
+import {guestToken, registerUserToken, renderWithProviders} from '../../utils/test-utils'
import Registration from '.'
import {BrowserRouter as Router, Route} from 'react-router-dom'
-import Account from '@salesforce/retail-react-app/app/pages/account'
-import mockConfig from '@salesforce/retail-react-app/config/mocks/default'
+import Account from '../account'
+import mockConfig from '../../../mock-config'
import {rest} from 'msw'
-import {mockedRegisteredCustomer} from '@salesforce/retail-react-app/app/mocks/mock-data'
+import {mockedRegisteredCustomer} from '../../../mocks/mock-data'
const MockedComponent = () => {
const match = {
diff --git a/packages/template-retail-react-app/app/pages/reset-password/index.jsx b/packages/template-chakra-storefront/src/pages/reset-password/index.jsx
similarity index 69%
rename from packages/template-retail-react-app/app/pages/reset-password/index.jsx
rename to packages/template-chakra-storefront/src/pages/reset-password/index.jsx
index 633a088951..8f7caa2f6f 100644
--- a/packages/template-retail-react-app/app/pages/reset-password/index.jsx
+++ b/packages/template-chakra-storefront/src/pages/reset-password/index.jsx
@@ -8,22 +8,19 @@
import React, {useEffect} from 'react'
import {useIntl} from 'react-intl'
import PropTypes from 'prop-types'
-import {Box, Container} from '@salesforce/retail-react-app/app/components/shared/ui'
+import {Box, Container} from '@chakra-ui/react'
import {useForm} from 'react-hook-form'
-import Seo from '@salesforce/retail-react-app/app/components/seo'
-import ResetPasswordForm from '@salesforce/retail-react-app/app/components/reset-password'
-import ResetPasswordLanding from '@salesforce/retail-react-app/app/pages/reset-password/reset-password-landing'
-import useNavigation from '@salesforce/retail-react-app/app/hooks/use-navigation'
-import useEinstein from '@salesforce/retail-react-app/app/hooks/use-einstein'
-import useDataCloud from '@salesforce/retail-react-app/app/hooks/use-datacloud'
-import {useLocation} from 'react-router-dom'
-import {useRouteMatch} from 'react-router'
-import {usePasswordReset} from '@salesforce/retail-react-app/app/hooks/use-password-reset'
-import {
- RESET_PASSWORD_LANDING_PATH,
- API_ERROR_MESSAGE,
- FEATURE_UNAVAILABLE_ERROR_MESSAGE
-} from '@salesforce/retail-react-app/app/constants'
+import Seo from '../../components/seo'
+import ResetPasswordForm from '../../components/reset-password'
+import ResetPasswordLanding from './reset-password-landing'
+import useNavigation from '../../hooks/use-navigation'
+import useEinstein from '../../hooks/use-einstein'
+import useDataCloud from '../../hooks/use-datacloud'
+import {useLocation, useRouteMatch} from 'react-router-dom'
+import {usePasswordReset} from '../../hooks/use-password-reset'
+import {getConfig} from '@salesforce/pwa-kit-runtime/utils/ssr-config'
+
+import {API_ERROR_MESSAGE, FEATURE_UNAVAILABLE_ERROR_MESSAGE} from '../../../config/constants'
const ResetPassword = () => {
const {formatMessage} = useIntl()
@@ -34,6 +31,7 @@ const ResetPassword = () => {
const {pathname} = useLocation()
const {path} = useRouteMatch()
const {getPasswordResetToken} = usePasswordReset()
+ const {login: loginConfig} = getConfig()
const submitForm = async ({email}) => {
try {
@@ -65,7 +63,7 @@ const ResetPassword = () => {
marginBottom={8}
borderRadius="base"
>
- {path === RESET_PASSWORD_LANDING_PATH ? (
+ {path === loginConfig.resetPassword.landingPath ? (
) : (
{
+ const original = jest.requireActual('@salesforce/pwa-kit-runtime/utils/ssr-config')
+ return {
+ ...original,
+ getConfig: jest.fn(() => require('../../../mock-config'))
+ }
+})
const MockedComponent = () => {
return (
diff --git a/packages/template-retail-react-app/app/pages/reset-password/reset-password-landing.jsx b/packages/template-chakra-storefront/src/pages/reset-password/reset-password-landing.jsx
similarity index 82%
rename from packages/template-retail-react-app/app/pages/reset-password/reset-password-landing.jsx
rename to packages/template-chakra-storefront/src/pages/reset-password/reset-password-landing.jsx
index b8697d466e..7e1e375246 100644
--- a/packages/template-retail-react-app/app/pages/reset-password/reset-password-landing.jsx
+++ b/packages/template-chakra-storefront/src/pages/reset-password/reset-password-landing.jsx
@@ -10,24 +10,18 @@ import PropTypes from 'prop-types'
import {useForm} from 'react-hook-form'
import {useLocation} from 'react-router-dom'
import {useIntl, FormattedMessage} from 'react-intl'
-import {
- Alert,
- Button,
- Container,
- Stack,
- Text
-} from '@salesforce/retail-react-app/app/components/shared/ui'
-import {AlertIcon, BrandLogo} from '@salesforce/retail-react-app/app/components/icons'
-import Field from '@salesforce/retail-react-app/app/components/field'
-import PasswordRequirements from '@salesforce/retail-react-app/app/components/forms/password-requirements'
-import useUpdatePasswordFields from '@salesforce/retail-react-app/app/components/forms/useUpdatePasswordFields'
-import {usePasswordReset} from '@salesforce/retail-react-app/app/hooks/use-password-reset'
-import useNavigation from '@salesforce/retail-react-app/app/hooks/use-navigation'
+import {Alert, Button, Container, Stack, Text} from '@chakra-ui/react'
+import {AlertIcon, BrandLogo} from '../../components/icons'
+import Field from '../../components/field'
+import PasswordRequirements from '../../components/forms/password-requirements'
+import useUpdatePasswordFields from '../../components/forms/useUpdatePasswordFields'
+import {usePasswordReset} from '../../hooks/use-password-reset'
+import useNavigation from '../../hooks/use-navigation'
import {
API_ERROR_MESSAGE,
INVALID_TOKEN_ERROR,
INVALID_TOKEN_ERROR_MESSAGE
-} from '@salesforce/retail-react-app/app/constants'
+} from '../../../config/constants'
const ResetPasswordLanding = () => {
const form = useForm()
diff --git a/packages/template-retail-react-app/app/pages/social-login-redirect/index.jsx b/packages/template-chakra-storefront/src/pages/social-login-redirect/index.jsx
similarity index 84%
rename from packages/template-retail-react-app/app/pages/social-login-redirect/index.jsx
rename to packages/template-chakra-storefront/src/pages/social-login-redirect/index.jsx
index 75605f6698..b40be65398 100644
--- a/packages/template-retail-react-app/app/pages/social-login-redirect/index.jsx
+++ b/packages/template-chakra-storefront/src/pages/social-login-redirect/index.jsx
@@ -7,29 +7,18 @@
import React, {useEffect, useState} from 'react'
import {FormattedMessage, useIntl} from 'react-intl'
-import {
- Alert,
- Box,
- Container,
- Stack,
- Text,
- Spinner
-} from '@salesforce/retail-react-app/app/components/shared/ui'
-import {AlertIcon} from '@salesforce/retail-react-app/app/components/icons'
+import {Alert, Box, Container, Stack, Text, Spinner} from '@chakra-ui/react'
+import {AlertIcon} from '../../components/icons'
// Hooks
-import useNavigation from '@salesforce/retail-react-app/app/hooks/use-navigation'
+import useNavigation from '../../hooks/use-navigation'
import {useAuthHelper, AuthHelpers, useShopperBasketsMutation} from '@salesforce/commerce-sdk-react'
-import {useSearchParams} from '@salesforce/retail-react-app/app/hooks'
-import {useCurrentCustomer} from '@salesforce/retail-react-app/app/hooks/use-current-customer'
+import {useSearchParams} from '../../hooks'
+import {useCurrentCustomer} from '../../hooks/use-current-customer'
+import {useAppOrigin} from '../../hooks/use-app-origin'
import {getConfig} from '@salesforce/pwa-kit-runtime/utils/ssr-config'
-import {useAppOrigin} from '@salesforce/retail-react-app/app/hooks/use-app-origin'
-import {
- getSessionJSONItem,
- clearSessionJSONItem,
- buildRedirectURI
-} from '@salesforce/retail-react-app/app/utils/utils'
-import {API_ERROR_MESSAGE} from '@salesforce/retail-react-app/app/constants'
+import {getSessionJSONItem, clearSessionJSONItem, buildRedirectURI} from '../../utils/utils'
+import {API_ERROR_MESSAGE} from '../../../config/constants'
const SocialLoginRedirect = () => {
const {formatMessage} = useIntl()
@@ -39,7 +28,8 @@ const SocialLoginRedirect = () => {
const {data: customer} = useCurrentCustomer()
// Build redirectURI from config values
const appOrigin = useAppOrigin()
- const redirectPath = getConfig().app.login.social?.redirectURI || ''
+ const {login} = getConfig()
+ const redirectPath = login?.social?.redirectURI || ''
const redirectURI = buildRedirectURI(appOrigin, redirectPath)
const locatedFrom = getSessionJSONItem('returnToPage')
diff --git a/packages/template-retail-react-app/app/pages/social-login-redirect/index.test.jsx b/packages/template-chakra-storefront/src/pages/social-login-redirect/index.test.jsx
similarity index 60%
rename from packages/template-retail-react-app/app/pages/social-login-redirect/index.test.jsx
rename to packages/template-chakra-storefront/src/pages/social-login-redirect/index.test.jsx
index 16a0cb435a..6d222640db 100644
--- a/packages/template-retail-react-app/app/pages/social-login-redirect/index.test.jsx
+++ b/packages/template-chakra-storefront/src/pages/social-login-redirect/index.test.jsx
@@ -6,9 +6,15 @@
*/
import React from 'react'
import {screen} from '@testing-library/react'
-import {renderWithProviders} from '@salesforce/retail-react-app/app/utils/test-utils'
-import SocialLoginRedirect from '@salesforce/retail-react-app/app/pages/social-login-redirect/index'
-
+import {renderWithProviders} from '../../utils/test-utils'
+import SocialLoginRedirect from './index'
+jest.mock('@salesforce/pwa-kit-runtime/utils/ssr-config', () => {
+ const original = jest.requireActual('@salesforce/pwa-kit-runtime/utils/ssr-config')
+ return {
+ ...original,
+ getConfig: jest.fn(() => require('../../../mock-config'))
+ }
+})
test('Social Login Redirect renders without errors', () => {
renderWithProviders(
)
expect(screen.getByText('Authenticating...')).toBeInTheDocument()
diff --git a/packages/template-retail-react-app/app/pages/store-locator/index.jsx b/packages/template-chakra-storefront/src/pages/store-locator/index.jsx
similarity index 74%
rename from packages/template-retail-react-app/app/pages/store-locator/index.jsx
rename to packages/template-chakra-storefront/src/pages/store-locator/index.jsx
index d568a5f807..36af97c19f 100644
--- a/packages/template-retail-react-app/app/pages/store-locator/index.jsx
+++ b/packages/template-chakra-storefront/src/pages/store-locator/index.jsx
@@ -8,15 +8,12 @@
import React from 'react'
// Components
-import {Box, Container} from '@salesforce/retail-react-app/app/components/shared/ui'
-import Seo from '@salesforce/retail-react-app/app/components/seo'
-import StoreLocatorContent from '@salesforce/retail-react-app/app/components/store-locator-modal/store-locator-content'
+import {Box, Container} from '@chakra-ui/react'
+import Seo from '../../components/seo'
+import StoreLocatorContent from '../../components/store-locator-modal/store-locator-content'
// Others
-import {
- StoreLocatorContext,
- useStoreLocator
-} from '@salesforce/retail-react-app/app/components/store-locator-modal/index'
+import {StoreLocatorContext, useStoreLocator} from '../../components/store-locator-modal/index'
const StoreLocator = () => {
const storeLocator = useStoreLocator()
diff --git a/packages/template-retail-react-app/app/pages/store-locator/index.test.jsx b/packages/template-chakra-storefront/src/pages/store-locator/index.test.jsx
similarity index 91%
rename from packages/template-retail-react-app/app/pages/store-locator/index.test.jsx
rename to packages/template-chakra-storefront/src/pages/store-locator/index.test.jsx
index 5d11a1abf8..737646114b 100644
--- a/packages/template-retail-react-app/app/pages/store-locator/index.test.jsx
+++ b/packages/template-chakra-storefront/src/pages/store-locator/index.test.jsx
@@ -7,13 +7,16 @@
import React from 'react'
import {screen, waitFor} from '@testing-library/react'
import {rest} from 'msw'
-import {
- createPathWithDefaults,
- renderWithProviders
-} from '@salesforce/retail-react-app/app/utils/test-utils'
+import {createPathWithDefaults, renderWithProviders} from '../../utils/test-utils'
import StoreLocator from '.'
-import mockConfig from '@salesforce/retail-react-app/config/mocks/default'
-
+import mockConfig from '../../../mock-config'
+jest.mock('@salesforce/pwa-kit-runtime/utils/ssr-config', () => {
+ const original = jest.requireActual('@salesforce/pwa-kit-runtime/utils/ssr-config')
+ return {
+ ...original,
+ getConfig: jest.fn(() => require('../../../mock-config'))
+ }
+})
const mockStores = {
limit: 4,
data: [
@@ -130,7 +133,7 @@ test('Allows customer to go to store locator page', async () => {
// render our test component
const {user} = renderWithProviders(
, {
- wrapperProps: {siteAlias: 'uk', appConfig: mockConfig.app}
+ wrapperProps: {siteAlias: 'uk', appConfig: mockConfig}
})
await user.click(await screen.findByText('Find a Store'))
@@ -152,7 +155,7 @@ test('Show no stores are found if there are no stores', async () => {
// render our test component
renderWithProviders(
, {
- wrapperProps: {siteAlias: 'uk', appConfig: mockConfig.app}
+ wrapperProps: {siteAlias: 'uk', appConfig: mockConfig}
})
await waitFor(() => {
diff --git a/packages/template-retail-react-app/app/routes.jsx b/packages/template-chakra-storefront/src/routes.tsx
similarity index 60%
rename from packages/template-retail-react-app/app/routes.jsx
rename to packages/template-chakra-storefront/src/routes.tsx
index 5927bfc542..f0c70707d3 100644
--- a/packages/template-retail-react-app/app/routes.jsx
+++ b/packages/template-chakra-storefront/src/routes.tsx
@@ -17,44 +17,42 @@ import loadable from '@loadable/component'
import {getConfig} from '@salesforce/pwa-kit-runtime/utils/ssr-config'
// Components
-import {Skeleton} from '@salesforce/retail-react-app/app/components/shared/ui'
-import {configureRoutes} from '@salesforce/retail-react-app/app/utils/routes-utils'
-
-// Constants
-import {
- PASSWORDLESS_LOGIN_LANDING_PATH,
- RESET_PASSWORD_LANDING_PATH
-} from '@salesforce/retail-react-app/app/constants'
+import {Skeleton} from '@chakra-ui/react'
+import {configureRoutes} from '../src/utils/routes-utils'
const fallback =
-const socialRedirectURI = getConfig()?.app?.login?.social?.redirectURI
+const socialRedirectURI = getConfig()?.login?.social?.redirectURI
+const resetPasswordLandingPath = getConfig()?.login?.resetPassword?.landingPath
+const passwordlessLoginLandingPath = getConfig()?.login?.passwordless?.landingPath
// Pages
-const Home = loadable(() => import('./pages/home'), {fallback})
-const Login = loadable(() => import('./pages/login'), {fallback})
-const Registration = loadable(() => import('./pages/registration'), {
+const Home = loadable(() => import('../src/pages/home'), {fallback})
+const Login = loadable(() => import('../src/pages/login'), {fallback})
+const Registration = loadable(() => import('../src/pages/registration'), {
+ fallback
+})
+const ResetPassword = loadable(() => import('../src/pages/reset-password'), {fallback})
+const Account = loadable(() => import('../src/pages/account'), {fallback})
+const Cart = loadable(() => import('../src/pages/cart'), {fallback})
+const Checkout = loadable(() => import('../src/pages/checkout'), {
fallback
})
-const ResetPassword = loadable(() => import('./pages/reset-password'), {fallback})
-const Account = loadable(() => import('./pages/account'), {fallback})
-const Cart = loadable(() => import('./pages/cart'), {fallback})
-const Checkout = loadable(() => import('./pages/checkout'), {
+const CheckoutConfirmation = loadable(() => import('../src/pages/checkout/confirmation'), {
fallback
})
-const CheckoutConfirmation = loadable(() => import('./pages/checkout/confirmation'), {fallback})
-const SocialLoginRedirect = loadable(() => import('./pages/social-login-redirect'), {fallback})
-const LoginRedirect = loadable(() => import('./pages/login-redirect'), {fallback})
-const ProductDetail = loadable(() => import('./pages/product-detail'), {fallback})
-const ProductList = loadable(() => import('./pages/product-list'), {
+const SocialLoginRedirect = loadable(() => import('../src/pages/social-login-redirect'), {fallback})
+const LoginRedirect = loadable(() => import('../src/pages/login-redirect'), {fallback})
+const ProductDetail = loadable(() => import('../src/pages/product-detail'), {fallback})
+const ProductList = loadable(() => import('../src/pages/product-list'), {
fallback
})
-const StoreLocator = loadable(() => import('./pages/store-locator'), {
+const StoreLocator = loadable(() => import('../src/pages/store-locator'), {
fallback
})
-const Wishlist = loadable(() => import('./pages/account/wishlist'), {
+const Wishlist = loadable(() => import('../src/pages/account/wishlist'), {
fallback
})
-const PageNotFound = loadable(() => import('./pages/page-not-found'))
+const PageNotFound = loadable(() => import('../src/pages/page-not-found'))
export const routes = [
{
@@ -78,12 +76,12 @@ export const routes = [
exact: true
},
{
- path: RESET_PASSWORD_LANDING_PATH,
+ path: '/reset-password-landing',
component: ResetPassword,
exact: true
},
{
- path: PASSWORDLESS_LOGIN_LANDING_PATH,
+ path: '/passwordless-login-landing',
component: Login,
exact: true
},
@@ -106,7 +104,7 @@ export const routes = [
exact: true
},
{
- path: socialRedirectURI || '/social-callback',
+ path: '/social-callback',
component: SocialLoginRedirect,
exact: true
},
diff --git a/packages/template-retail-react-app/app/ssr.js b/packages/template-chakra-storefront/src/ssr.js
similarity index 93%
rename from packages/template-retail-react-app/app/ssr.js
rename to packages/template-chakra-storefront/src/ssr.js
index 52833a15cb..434b258b77 100644
--- a/packages/template-retail-react-app/app/ssr.js
+++ b/packages/template-chakra-storefront/src/ssr.js
@@ -5,15 +5,6 @@
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
-/*
- * Developer note! When updating this file, make sure to also update the
- * ssr.js template files in pwa-kit-create-app.
- *
- * In the pwa-kit-create-app, the templates are found under:
- * - assets/bootstrap/js/overrides/app/ssr.js.hbs
- * - assets/templates/@salesforce/retail-react-app/app/ssr.js.hbs
- */
-
'use strict'
import crypto from 'crypto'
@@ -27,7 +18,6 @@ import {getConfig} from '@salesforce/pwa-kit-runtime/utils/ssr-config'
import {getAppOrigin} from '@salesforce/pwa-kit-react-sdk/utils/url'
const config = getConfig()
-
const options = {
// The build directory (an absolute path)
buildDir: path.resolve(process.cwd(), 'build'),
@@ -36,7 +26,7 @@ const options = {
defaultCacheTimeSeconds: 600,
// The contents of the config file for the current environment
- mobify: config,
+ mobify: config.mobify,
// The port that the local dev server listens on
port: 3000,
@@ -182,10 +172,9 @@ export async function emailLink(emailId, templateId, magicLink) {
return await sendMarketingCloudEmail(emailId, marketingCloudConfig)
}
-const resetPasswordCallback =
- config.app.login?.resetPassword?.callbackURI || '/reset-password-callback'
+const resetPasswordCallback = config.login?.resetPassword?.callbackURI || '/reset-password-callback'
const passwordlessLoginCallback =
- config.app.login?.passwordless?.callbackURI || '/passwordless-login-callback'
+ config.login?.passwordless?.callbackURI || '/passwordless-login-callback'
// Reusable function to handle sending a magic link email.
// By default, this implementation uses Marketing Cloud.
@@ -198,11 +187,11 @@ async function sendMagicLinkEmail(req, res, landingPath, emailTemplate, redirect
// Construct the magic link URL
let magicLink = `${base}${landingPath}?token=${encodeURIComponent(token)}`
- if (landingPath === config.app.login?.resetPassword?.landingPath) {
+ if (landingPath === config.login?.resetPassword?.landingPath) {
// Add email query parameter for reset password flow
magicLink += `&email=${encodeURIComponent(email_id)}`
}
- if (landingPath === config.app.login?.passwordless?.landingPath && redirectUrl) {
+ if (landingPath === config.login?.passwordless?.landingPath && redirectUrl) {
magicLink += `&redirect_url=${encodeURIComponent(redirectUrl)}`
}
@@ -345,7 +334,7 @@ const {handler} = runtime.createHandler(options, (app) => {
sendMagicLinkEmail(
req,
res,
- config.app.login?.passwordless?.landingPath,
+ config.login?.passwordless?.landingPath,
process.env.MARKETING_CLOUD_PASSWORDLESS_LOGIN_TEMPLATE,
redirectUrl
)
@@ -362,14 +351,14 @@ const {handler} = runtime.createHandler(options, (app) => {
sendMagicLinkEmail(
req,
res,
- config.app.login?.resetPassword?.landingPath,
+ config.login?.resetPassword?.landingPath,
process.env.MARKETING_CLOUD_RESET_PASSWORD_TEMPLATE
)
})
})
- app.get('/robots.txt', runtime.serveStaticFile('static/robots.txt'))
- app.get('/favicon.ico', runtime.serveStaticFile('static/ico/favicon.ico'))
+ app.get('/robots.txt', runtime.serveStaticFile('../../static/robots.txt'))
+ app.get('/favicon.ico', runtime.serveStaticFile('../../static/ico/favicon.ico'))
app.get('/worker.js(.map)?', runtime.serveServiceWorker)
app.get('*', runtime.render)
diff --git a/packages/pwa-kit-dev/src/configs/webpack/test/overrides/path/nested/icon.svg b/packages/template-chakra-storefront/src/static/README.md
similarity index 100%
rename from packages/pwa-kit-dev/src/configs/webpack/test/overrides/path/nested/icon.svg
rename to packages/template-chakra-storefront/src/static/README.md
diff --git a/packages/template-retail-react-app/app/static/img/global/app-icon-192.png b/packages/template-chakra-storefront/src/static/img/global/app-icon-192.png
similarity index 100%
rename from packages/template-retail-react-app/app/static/img/global/app-icon-192.png
rename to packages/template-chakra-storefront/src/static/img/global/app-icon-192.png
diff --git a/packages/template-retail-react-app/app/static/img/global/app-icon-512.png b/packages/template-chakra-storefront/src/static/img/global/app-icon-512.png
similarity index 100%
rename from packages/template-retail-react-app/app/static/img/global/app-icon-512.png
rename to packages/template-chakra-storefront/src/static/img/global/app-icon-512.png
diff --git a/packages/template-retail-react-app/app/static/img/global/apple-touch-icon.png b/packages/template-chakra-storefront/src/static/img/global/apple-touch-icon.png
similarity index 100%
rename from packages/template-retail-react-app/app/static/img/global/apple-touch-icon.png
rename to packages/template-chakra-storefront/src/static/img/global/apple-touch-icon.png
diff --git a/packages/template-retail-react-app/app/static/img/hero.png b/packages/template-chakra-storefront/src/static/img/hero.png
similarity index 100%
rename from packages/template-retail-react-app/app/static/img/hero.png
rename to packages/template-chakra-storefront/src/static/img/hero.png
diff --git a/packages/template-retail-react-app/app/static/dwac-21.7.js b/packages/template-chakra-storefront/src/static/libs/dwac-21.7.js
similarity index 100%
rename from packages/template-retail-react-app/app/static/dwac-21.7.js
rename to packages/template-chakra-storefront/src/static/libs/dwac-21.7.js
diff --git a/packages/template-retail-react-app/app/static/dwanalytics-22.2.js b/packages/template-chakra-storefront/src/static/libs/dwanalytics-22.2.js
similarity index 100%
rename from packages/template-retail-react-app/app/static/dwanalytics-22.2.js
rename to packages/template-chakra-storefront/src/static/libs/dwanalytics-22.2.js
diff --git a/packages/template-chakra-storefront/src/static/libs/head-active_data.js b/packages/template-chakra-storefront/src/static/libs/head-active_data.js
new file mode 100644
index 0000000000..b8a4eabd5a
--- /dev/null
+++ b/packages/template-chakra-storefront/src/static/libs/head-active_data.js
@@ -0,0 +1,49 @@
+/*
+ * Copyright (c) 2024, Salesforce, Inc.
+ * All rights reserved.
+ * SPDX-License-Identifier: BSD-3-Clause
+ * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
+ */
+var dw = window.dw || {}
+dw.ac = {
+ _analytics: null,
+ _events: [],
+ _category: '',
+ _searchData: '',
+ _anact: '',
+ _anact_nohit_tag: '',
+ _analytics_enabled: 'true',
+ _timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,
+ _capture: function (configs) {
+ if (Object.prototype.toString.call(configs) === '[object Array]') {
+ configs.forEach(captureObject)
+ return
+ }
+ dw.ac._events.push(configs)
+ },
+ capture: function () {
+ dw.ac._capture(arguments)
+ // send to CQ as well:
+ if (window.CQuotient) {
+ window.CQuotient.trackEventsFromAC(arguments)
+ }
+ },
+ EV_PRD_SEARCHHIT: 'searchhit',
+ EV_PRD_DETAIL: 'detail',
+ EV_PRD_RECOMMENDATION: 'recommendation',
+ EV_PRD_SETPRODUCT: 'setproduct',
+ applyContext: function (context) {
+ if (typeof context === 'object' && context.hasOwnProperty('category')) {
+ dw.ac._category = context.category
+ }
+ if (typeof context === 'object' && context.hasOwnProperty('searchData')) {
+ dw.ac._searchData = context.searchData
+ }
+ },
+ setDWAnalytics: function (analytics) {
+ dw.ac._analytics = analytics
+ },
+ eventsIsEmpty: function () {
+ return 0 == dw.ac._events.length
+ }
+}
diff --git a/packages/template-retail-react-app/app/static/translations/compiled/de-DE.json b/packages/template-chakra-storefront/src/static/translations/compiled/de-DE.json
similarity index 99%
rename from packages/template-retail-react-app/app/static/translations/compiled/de-DE.json
rename to packages/template-chakra-storefront/src/static/translations/compiled/de-DE.json
index 0142e85b09..552fbbcb1b 100644
--- a/packages/template-retail-react-app/app/static/translations/compiled/de-DE.json
+++ b/packages/template-chakra-storefront/src/static/translations/compiled/de-DE.json
@@ -1089,12 +1089,6 @@
"value": "Sitemap"
}
],
- "drawer_menu.link.store_locator": [
- {
- "type": 0,
- "value": "Shop-Finder"
- }
- ],
"drawer_menu.link.terms_and_conditions": [
{
"type": 0,
@@ -1271,12 +1265,6 @@
"value": "Sitemap"
}
],
- "footer.link.store_locator": [
- {
- "type": 0,
- "value": "Shop-Finder"
- }
- ],
"footer.link.terms_conditions": [
{
"type": 0,
diff --git a/packages/template-retail-react-app/app/static/translations/compiled/en-GB.json b/packages/template-chakra-storefront/src/static/translations/compiled/en-GB.json
similarity index 89%
rename from packages/template-retail-react-app/app/static/translations/compiled/en-GB.json
rename to packages/template-chakra-storefront/src/static/translations/compiled/en-GB.json
index 19d7a479aa..eb790cf2f7 100644
--- a/packages/template-retail-react-app/app/static/translations/compiled/en-GB.json
+++ b/packages/template-chakra-storefront/src/static/translations/compiled/en-GB.json
@@ -361,40 +361,6 @@
"value": "Close login form"
}
],
- "auth_modal.check_email.button.resend_link": [
- {
- "type": 0,
- "value": "Resend Link"
- }
- ],
- "auth_modal.check_email.description.check_spam_folder": [
- {
- "type": 0,
- "value": "The link may take a few minutes to arrive, check your spam folder if you're having trouble finding it"
- }
- ],
- "auth_modal.check_email.description.just_sent": [
- {
- "type": 0,
- "value": "We just sent a login link to "
- },
- {
- "children": [
- {
- "type": 1,
- "value": "email"
- }
- ],
- "type": 8,
- "value": "b"
- }
- ],
- "auth_modal.check_email.title.check_your_email": [
- {
- "type": 0,
- "value": "Check Your Email"
- }
- ],
"auth_modal.description.now_signed_in": [
{
"type": 0,
@@ -1055,12 +1021,6 @@
"value": "Already have an account? Log in"
}
],
- "contact_info.button.back_to_sign_in_options": [
- {
- "type": 0,
- "value": "Back to Sign In Options"
- }
- ],
"contact_info.button.checkout_as_guest": [
{
"type": 0,
@@ -1073,18 +1033,6 @@
"value": "Log In"
}
],
- "contact_info.button.password": [
- {
- "type": 0,
- "value": "Password"
- }
- ],
- "contact_info.button.secure_link": [
- {
- "type": 0,
- "value": "Secure Link"
- }
- ],
"contact_info.error.incorrect_username_or_password": [
{
"type": 0,
@@ -1097,12 +1045,6 @@
"value": "Forgot password?"
}
],
- "contact_info.message.or_login_with": [
- {
- "type": 0,
- "value": "Or Login With"
- }
- ],
"contact_info.title.contact_info": [
{
"type": 0,
@@ -1177,48 +1119,6 @@
"value": "currentPrice"
}
],
- "dnt_notification.button.accept": [
- {
- "type": 0,
- "value": "Accept"
- }
- ],
- "dnt_notification.button.assistive_msg.accept": [
- {
- "type": 0,
- "value": "Accept tracking"
- }
- ],
- "dnt_notification.button.assistive_msg.close": [
- {
- "type": 0,
- "value": "Close consent tracking form"
- }
- ],
- "dnt_notification.button.assistive_msg.decline": [
- {
- "type": 0,
- "value": "Decline tracking"
- }
- ],
- "dnt_notification.button.decline": [
- {
- "type": 0,
- "value": "Decline"
- }
- ],
- "dnt_notification.description": [
- {
- "type": 0,
- "value": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur."
- }
- ],
- "dnt_notification.title": [
- {
- "type": 0,
- "value": "Tracking Consent"
- }
- ],
"drawer_menu.button.account_details": [
{
"type": 0,
@@ -1249,12 +1149,6 @@
"value": "Order History"
}
],
- "drawer_menu.header.assistive_msg.title": [
- {
- "type": 0,
- "value": "Menu Drawer"
- }
- ],
"drawer_menu.link.about_us": [
{
"type": 0,
@@ -1315,12 +1209,6 @@
"value": "Site Map"
}
],
- "drawer_menu.link.store_locator": [
- {
- "type": 0,
- "value": "Store Locator"
- }
- ],
"drawer_menu.link.terms_and_conditions": [
{
"type": 0,
@@ -1497,12 +1385,6 @@
"value": "Site Map"
}
],
- "footer.link.store_locator": [
- {
- "type": 0,
- "value": "Store Locator"
- }
- ],
"footer.link.terms_conditions": [
{
"type": 0,
@@ -1581,24 +1463,6 @@
"value": "Wishlist"
}
],
- "global.error.create_account": [
- {
- "type": 0,
- "value": "This feature is not currently available. You must create an account to access this feature."
- }
- ],
- "global.error.feature_unavailable": [
- {
- "type": 0,
- "value": "This feature is not currently available."
- }
- ],
- "global.error.invalid_token": [
- {
- "type": 0,
- "value": "Invalid token, please try again."
- }
- ],
"global.error.something_went_wrong": [
{
"type": 0,
@@ -1682,7 +1546,7 @@
"header.button.assistive_msg.my_account": [
{
"type": 0,
- "value": "My Account"
+ "value": "My account"
}
],
"header.button.assistive_msg.my_account_menu": [
@@ -1701,12 +1565,6 @@
"value": "numItems"
}
],
- "header.button.assistive_msg.store_locator": [
- {
- "type": 0,
- "value": "Store Locator"
- }
- ],
"header.button.assistive_msg.wishlist": [
{
"type": 0,
@@ -1945,24 +1803,6 @@
"value": "quantity"
}
],
- "item_variant.quantity.label": [
- {
- "type": 0,
- "value": "Quantity selector for "
- },
- {
- "type": 1,
- "value": "productName"
- },
- {
- "type": 0,
- "value": ". Selected quantity is "
- },
- {
- "type": 1,
- "value": "quantity"
- }
- ],
"lCPCxk": [
{
"type": 0,
@@ -2299,36 +2139,6 @@
"value": "Create account"
}
],
- "login_form.button.apple": [
- {
- "type": 0,
- "value": "Apple"
- }
- ],
- "login_form.button.back": [
- {
- "type": 0,
- "value": "Back to Sign In Options"
- }
- ],
- "login_form.button.continue_securely": [
- {
- "type": 0,
- "value": "Continue Securely"
- }
- ],
- "login_form.button.google": [
- {
- "type": 0,
- "value": "Google"
- }
- ],
- "login_form.button.password": [
- {
- "type": 0,
- "value": "Password"
- }
- ],
"login_form.button.sign_in": [
{
"type": 0,
@@ -2347,12 +2157,6 @@
"value": "Don't have an account?"
}
],
- "login_form.message.or_login_with": [
- {
- "type": 0,
- "value": "Or Login With"
- }
- ],
"login_form.message.welcome_back": [
{
"type": 0,
@@ -2593,12 +2397,6 @@
"value": "1 uppercase letter"
}
],
- "password_reset_success.toast": [
- {
- "type": 0,
- "value": "Password Reset Success"
- }
- ],
"payment_selection.heading.credit_card": [
{
"type": 0,
@@ -2902,21 +2700,13 @@
"product_view.label.assistive_msg.quantity_decrement": [
{
"type": 0,
- "value": "Decrement Quantity for "
- },
- {
- "type": 1,
- "value": "productName"
+ "value": "Decrement Quantity"
}
],
"product_view.label.assistive_msg.quantity_increment": [
{
"type": 0,
- "value": "Increment Quantity for "
- },
- {
- "type": 1,
- "value": "productName"
+ "value": "Increment Quantity"
}
],
"product_view.label.quantity": [
@@ -2985,12 +2775,6 @@
"value": "My Profile"
}
],
- "profile_fields.label.profile_form": [
- {
- "type": 0,
- "value": "Profile Form"
- }
- ],
"promo_code_fields.button.apply": [
{
"type": 0,
@@ -3087,6 +2871,38 @@
"value": "Create an account and get first access to the very best products, inspiration and community."
}
],
+ "reset_password.button.back_to_sign_in": [
+ {
+ "type": 0,
+ "value": "Back to Sign In"
+ }
+ ],
+ "reset_password.info.receive_email_shortly": [
+ {
+ "type": 0,
+ "value": "You will receive an email at "
+ },
+ {
+ "children": [
+ {
+ "type": 1,
+ "value": "email"
+ }
+ ],
+ "type": 8,
+ "value": "b"
+ },
+ {
+ "type": 0,
+ "value": " with a link to reset your password shortly."
+ }
+ ],
+ "reset_password.title.password_reset": [
+ {
+ "type": 0,
+ "value": "Password Reset"
+ }
+ ],
"reset_password_form.action.sign_in": [
{
"type": 0,
@@ -3141,26 +2957,6 @@
"value": "Continue to Shipping Method"
}
],
- "shipping_address.label.edit_button": [
- {
- "type": 0,
- "value": "Edit "
- },
- {
- "type": 1,
- "value": "address"
- }
- ],
- "shipping_address.label.remove_button": [
- {
- "type": 0,
- "value": "Remove "
- },
- {
- "type": 1,
- "value": "address"
- }
- ],
"shipping_address.label.shipping_address_form": [
{
"type": 0,
@@ -3257,166 +3053,6 @@
"value": "Are you sure you want to sign out? You will need to sign back in to proceed with your current order."
}
],
- "social_login_redirect.message.authenticating": [
- {
- "type": 0,
- "value": "Authenticating..."
- }
- ],
- "social_login_redirect.message.redirect_link": [
- {
- "type": 0,
- "value": "If you are not automatically redirected, click "
- },
- {
- "children": [
- {
- "type": 0,
- "value": "this link"
- }
- ],
- "type": 8,
- "value": "link"
- },
- {
- "type": 0,
- "value": " to proceed."
- }
- ],
- "store_locator.action.find": [
- {
- "type": 0,
- "value": "Find"
- }
- ],
- "store_locator.action.select_a_country": [
- {
- "type": 0,
- "value": "Select a country"
- }
- ],
- "store_locator.action.use_my_location": [
- {
- "type": 0,
- "value": "Use My Location"
- }
- ],
- "store_locator.action.viewMore": [
- {
- "type": 0,
- "value": "View More"
- }
- ],
- "store_locator.description.away": [
- {
- "type": 0,
- "value": "away"
- }
- ],
- "store_locator.description.loading_locations": [
- {
- "type": 0,
- "value": "Loading locations..."
- }
- ],
- "store_locator.description.no_locations": [
- {
- "type": 0,
- "value": "Sorry, there are no locations in this area"
- }
- ],
- "store_locator.description.or": [
- {
- "type": 0,
- "value": "Or"
- }
- ],
- "store_locator.description.phone": [
- {
- "type": 0,
- "value": "Phone:"
- }
- ],
- "store_locator.description.viewing_near_postal_code": [
- {
- "type": 0,
- "value": "Viewing stores within "
- },
- {
- "type": 1,
- "value": "distance"
- },
- {
- "type": 1,
- "value": "distanceUnit"
- },
- {
- "type": 0,
- "value": " of "
- },
- {
- "type": 1,
- "value": "postalCode"
- },
- {
- "type": 0,
- "value": " in"
- }
- ],
- "store_locator.description.viewing_near_your_location": [
- {
- "type": 0,
- "value": "Viewing stores near your location"
- }
- ],
- "store_locator.dropdown.germany": [
- {
- "type": 0,
- "value": "Germany"
- }
- ],
- "store_locator.dropdown.united_states": [
- {
- "type": 0,
- "value": "United States"
- }
- ],
- "store_locator.error.agree_to_share_your_location": [
- {
- "type": 0,
- "value": "Please agree to share your location"
- }
- ],
- "store_locator.error.please_enter_a_postal_code": [
- {
- "type": 0,
- "value": "Please enter a postal code."
- }
- ],
- "store_locator.error.please_select_a_country": [
- {
- "type": 0,
- "value": "Please select a country."
- }
- ],
- "store_locator.field.placeholder.enter_postal_code": [
- {
- "type": 0,
- "value": "Enter postal code"
- }
- ],
- "store_locator.pagination.load_more": [
- {
- "type": 0,
- "value": "Load More"
- }
- ],
- "store_locator.title": [
- {
- "type": 0,
- "value": "Find a Store"
- }
- ],
"swatch_group.selected.label": [
{
"type": 1,
@@ -4001,34 +3637,6 @@
"value": "New Password"
}
],
- "wishlist_primary_action.button.addSetToCart.label": [
- {
- "type": 0,
- "value": "Add "
- },
- {
- "type": 1,
- "value": "productName"
- },
- {
- "type": 0,
- "value": " set to cart"
- }
- ],
- "wishlist_primary_action.button.addToCart.label": [
- {
- "type": 0,
- "value": "Add "
- },
- {
- "type": 1,
- "value": "productName"
- },
- {
- "type": 0,
- "value": " to cart"
- }
- ],
"wishlist_primary_action.button.add_set_to_cart": [
{
"type": 0,
@@ -4041,16 +3649,6 @@
"value": "Add to Cart"
}
],
- "wishlist_primary_action.button.viewFullDetails.label": [
- {
- "type": 0,
- "value": "View full details for "
- },
- {
- "type": 1,
- "value": "productName"
- }
- ],
"wishlist_primary_action.button.view_full_details": [
{
"type": 0,
@@ -4063,16 +3661,6 @@
"value": "View Options"
}
],
- "wishlist_primary_action.button.view_options.label": [
- {
- "type": 0,
- "value": "View Options for "
- },
- {
- "type": 1,
- "value": "productName"
- }
- ],
"wishlist_primary_action.info.added_to_cart": [
{
"type": 1,
@@ -4117,16 +3705,6 @@
"value": "Remove"
}
],
- "wishlist_secondary_button_group.info.item.remove.label": [
- {
- "type": 0,
- "value": "Remove "
- },
- {
- "type": 1,
- "value": "productName"
- }
- ],
"wishlist_secondary_button_group.info.item_removed": [
{
"type": 0,
diff --git a/packages/template-retail-react-app/app/static/translations/compiled/en-US.json b/packages/template-chakra-storefront/src/static/translations/compiled/en-US.json
similarity index 89%
rename from packages/template-retail-react-app/app/static/translations/compiled/en-US.json
rename to packages/template-chakra-storefront/src/static/translations/compiled/en-US.json
index 19d7a479aa..eb790cf2f7 100644
--- a/packages/template-retail-react-app/app/static/translations/compiled/en-US.json
+++ b/packages/template-chakra-storefront/src/static/translations/compiled/en-US.json
@@ -361,40 +361,6 @@
"value": "Close login form"
}
],
- "auth_modal.check_email.button.resend_link": [
- {
- "type": 0,
- "value": "Resend Link"
- }
- ],
- "auth_modal.check_email.description.check_spam_folder": [
- {
- "type": 0,
- "value": "The link may take a few minutes to arrive, check your spam folder if you're having trouble finding it"
- }
- ],
- "auth_modal.check_email.description.just_sent": [
- {
- "type": 0,
- "value": "We just sent a login link to "
- },
- {
- "children": [
- {
- "type": 1,
- "value": "email"
- }
- ],
- "type": 8,
- "value": "b"
- }
- ],
- "auth_modal.check_email.title.check_your_email": [
- {
- "type": 0,
- "value": "Check Your Email"
- }
- ],
"auth_modal.description.now_signed_in": [
{
"type": 0,
@@ -1055,12 +1021,6 @@
"value": "Already have an account? Log in"
}
],
- "contact_info.button.back_to_sign_in_options": [
- {
- "type": 0,
- "value": "Back to Sign In Options"
- }
- ],
"contact_info.button.checkout_as_guest": [
{
"type": 0,
@@ -1073,18 +1033,6 @@
"value": "Log In"
}
],
- "contact_info.button.password": [
- {
- "type": 0,
- "value": "Password"
- }
- ],
- "contact_info.button.secure_link": [
- {
- "type": 0,
- "value": "Secure Link"
- }
- ],
"contact_info.error.incorrect_username_or_password": [
{
"type": 0,
@@ -1097,12 +1045,6 @@
"value": "Forgot password?"
}
],
- "contact_info.message.or_login_with": [
- {
- "type": 0,
- "value": "Or Login With"
- }
- ],
"contact_info.title.contact_info": [
{
"type": 0,
@@ -1177,48 +1119,6 @@
"value": "currentPrice"
}
],
- "dnt_notification.button.accept": [
- {
- "type": 0,
- "value": "Accept"
- }
- ],
- "dnt_notification.button.assistive_msg.accept": [
- {
- "type": 0,
- "value": "Accept tracking"
- }
- ],
- "dnt_notification.button.assistive_msg.close": [
- {
- "type": 0,
- "value": "Close consent tracking form"
- }
- ],
- "dnt_notification.button.assistive_msg.decline": [
- {
- "type": 0,
- "value": "Decline tracking"
- }
- ],
- "dnt_notification.button.decline": [
- {
- "type": 0,
- "value": "Decline"
- }
- ],
- "dnt_notification.description": [
- {
- "type": 0,
- "value": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur."
- }
- ],
- "dnt_notification.title": [
- {
- "type": 0,
- "value": "Tracking Consent"
- }
- ],
"drawer_menu.button.account_details": [
{
"type": 0,
@@ -1249,12 +1149,6 @@
"value": "Order History"
}
],
- "drawer_menu.header.assistive_msg.title": [
- {
- "type": 0,
- "value": "Menu Drawer"
- }
- ],
"drawer_menu.link.about_us": [
{
"type": 0,
@@ -1315,12 +1209,6 @@
"value": "Site Map"
}
],
- "drawer_menu.link.store_locator": [
- {
- "type": 0,
- "value": "Store Locator"
- }
- ],
"drawer_menu.link.terms_and_conditions": [
{
"type": 0,
@@ -1497,12 +1385,6 @@
"value": "Site Map"
}
],
- "footer.link.store_locator": [
- {
- "type": 0,
- "value": "Store Locator"
- }
- ],
"footer.link.terms_conditions": [
{
"type": 0,
@@ -1581,24 +1463,6 @@
"value": "Wishlist"
}
],
- "global.error.create_account": [
- {
- "type": 0,
- "value": "This feature is not currently available. You must create an account to access this feature."
- }
- ],
- "global.error.feature_unavailable": [
- {
- "type": 0,
- "value": "This feature is not currently available."
- }
- ],
- "global.error.invalid_token": [
- {
- "type": 0,
- "value": "Invalid token, please try again."
- }
- ],
"global.error.something_went_wrong": [
{
"type": 0,
@@ -1682,7 +1546,7 @@
"header.button.assistive_msg.my_account": [
{
"type": 0,
- "value": "My Account"
+ "value": "My account"
}
],
"header.button.assistive_msg.my_account_menu": [
@@ -1701,12 +1565,6 @@
"value": "numItems"
}
],
- "header.button.assistive_msg.store_locator": [
- {
- "type": 0,
- "value": "Store Locator"
- }
- ],
"header.button.assistive_msg.wishlist": [
{
"type": 0,
@@ -1945,24 +1803,6 @@
"value": "quantity"
}
],
- "item_variant.quantity.label": [
- {
- "type": 0,
- "value": "Quantity selector for "
- },
- {
- "type": 1,
- "value": "productName"
- },
- {
- "type": 0,
- "value": ". Selected quantity is "
- },
- {
- "type": 1,
- "value": "quantity"
- }
- ],
"lCPCxk": [
{
"type": 0,
@@ -2299,36 +2139,6 @@
"value": "Create account"
}
],
- "login_form.button.apple": [
- {
- "type": 0,
- "value": "Apple"
- }
- ],
- "login_form.button.back": [
- {
- "type": 0,
- "value": "Back to Sign In Options"
- }
- ],
- "login_form.button.continue_securely": [
- {
- "type": 0,
- "value": "Continue Securely"
- }
- ],
- "login_form.button.google": [
- {
- "type": 0,
- "value": "Google"
- }
- ],
- "login_form.button.password": [
- {
- "type": 0,
- "value": "Password"
- }
- ],
"login_form.button.sign_in": [
{
"type": 0,
@@ -2347,12 +2157,6 @@
"value": "Don't have an account?"
}
],
- "login_form.message.or_login_with": [
- {
- "type": 0,
- "value": "Or Login With"
- }
- ],
"login_form.message.welcome_back": [
{
"type": 0,
@@ -2593,12 +2397,6 @@
"value": "1 uppercase letter"
}
],
- "password_reset_success.toast": [
- {
- "type": 0,
- "value": "Password Reset Success"
- }
- ],
"payment_selection.heading.credit_card": [
{
"type": 0,
@@ -2902,21 +2700,13 @@
"product_view.label.assistive_msg.quantity_decrement": [
{
"type": 0,
- "value": "Decrement Quantity for "
- },
- {
- "type": 1,
- "value": "productName"
+ "value": "Decrement Quantity"
}
],
"product_view.label.assistive_msg.quantity_increment": [
{
"type": 0,
- "value": "Increment Quantity for "
- },
- {
- "type": 1,
- "value": "productName"
+ "value": "Increment Quantity"
}
],
"product_view.label.quantity": [
@@ -2985,12 +2775,6 @@
"value": "My Profile"
}
],
- "profile_fields.label.profile_form": [
- {
- "type": 0,
- "value": "Profile Form"
- }
- ],
"promo_code_fields.button.apply": [
{
"type": 0,
@@ -3087,6 +2871,38 @@
"value": "Create an account and get first access to the very best products, inspiration and community."
}
],
+ "reset_password.button.back_to_sign_in": [
+ {
+ "type": 0,
+ "value": "Back to Sign In"
+ }
+ ],
+ "reset_password.info.receive_email_shortly": [
+ {
+ "type": 0,
+ "value": "You will receive an email at "
+ },
+ {
+ "children": [
+ {
+ "type": 1,
+ "value": "email"
+ }
+ ],
+ "type": 8,
+ "value": "b"
+ },
+ {
+ "type": 0,
+ "value": " with a link to reset your password shortly."
+ }
+ ],
+ "reset_password.title.password_reset": [
+ {
+ "type": 0,
+ "value": "Password Reset"
+ }
+ ],
"reset_password_form.action.sign_in": [
{
"type": 0,
@@ -3141,26 +2957,6 @@
"value": "Continue to Shipping Method"
}
],
- "shipping_address.label.edit_button": [
- {
- "type": 0,
- "value": "Edit "
- },
- {
- "type": 1,
- "value": "address"
- }
- ],
- "shipping_address.label.remove_button": [
- {
- "type": 0,
- "value": "Remove "
- },
- {
- "type": 1,
- "value": "address"
- }
- ],
"shipping_address.label.shipping_address_form": [
{
"type": 0,
@@ -3257,166 +3053,6 @@
"value": "Are you sure you want to sign out? You will need to sign back in to proceed with your current order."
}
],
- "social_login_redirect.message.authenticating": [
- {
- "type": 0,
- "value": "Authenticating..."
- }
- ],
- "social_login_redirect.message.redirect_link": [
- {
- "type": 0,
- "value": "If you are not automatically redirected, click "
- },
- {
- "children": [
- {
- "type": 0,
- "value": "this link"
- }
- ],
- "type": 8,
- "value": "link"
- },
- {
- "type": 0,
- "value": " to proceed."
- }
- ],
- "store_locator.action.find": [
- {
- "type": 0,
- "value": "Find"
- }
- ],
- "store_locator.action.select_a_country": [
- {
- "type": 0,
- "value": "Select a country"
- }
- ],
- "store_locator.action.use_my_location": [
- {
- "type": 0,
- "value": "Use My Location"
- }
- ],
- "store_locator.action.viewMore": [
- {
- "type": 0,
- "value": "View More"
- }
- ],
- "store_locator.description.away": [
- {
- "type": 0,
- "value": "away"
- }
- ],
- "store_locator.description.loading_locations": [
- {
- "type": 0,
- "value": "Loading locations..."
- }
- ],
- "store_locator.description.no_locations": [
- {
- "type": 0,
- "value": "Sorry, there are no locations in this area"
- }
- ],
- "store_locator.description.or": [
- {
- "type": 0,
- "value": "Or"
- }
- ],
- "store_locator.description.phone": [
- {
- "type": 0,
- "value": "Phone:"
- }
- ],
- "store_locator.description.viewing_near_postal_code": [
- {
- "type": 0,
- "value": "Viewing stores within "
- },
- {
- "type": 1,
- "value": "distance"
- },
- {
- "type": 1,
- "value": "distanceUnit"
- },
- {
- "type": 0,
- "value": " of "
- },
- {
- "type": 1,
- "value": "postalCode"
- },
- {
- "type": 0,
- "value": " in"
- }
- ],
- "store_locator.description.viewing_near_your_location": [
- {
- "type": 0,
- "value": "Viewing stores near your location"
- }
- ],
- "store_locator.dropdown.germany": [
- {
- "type": 0,
- "value": "Germany"
- }
- ],
- "store_locator.dropdown.united_states": [
- {
- "type": 0,
- "value": "United States"
- }
- ],
- "store_locator.error.agree_to_share_your_location": [
- {
- "type": 0,
- "value": "Please agree to share your location"
- }
- ],
- "store_locator.error.please_enter_a_postal_code": [
- {
- "type": 0,
- "value": "Please enter a postal code."
- }
- ],
- "store_locator.error.please_select_a_country": [
- {
- "type": 0,
- "value": "Please select a country."
- }
- ],
- "store_locator.field.placeholder.enter_postal_code": [
- {
- "type": 0,
- "value": "Enter postal code"
- }
- ],
- "store_locator.pagination.load_more": [
- {
- "type": 0,
- "value": "Load More"
- }
- ],
- "store_locator.title": [
- {
- "type": 0,
- "value": "Find a Store"
- }
- ],
"swatch_group.selected.label": [
{
"type": 1,
@@ -4001,34 +3637,6 @@
"value": "New Password"
}
],
- "wishlist_primary_action.button.addSetToCart.label": [
- {
- "type": 0,
- "value": "Add "
- },
- {
- "type": 1,
- "value": "productName"
- },
- {
- "type": 0,
- "value": " set to cart"
- }
- ],
- "wishlist_primary_action.button.addToCart.label": [
- {
- "type": 0,
- "value": "Add "
- },
- {
- "type": 1,
- "value": "productName"
- },
- {
- "type": 0,
- "value": " to cart"
- }
- ],
"wishlist_primary_action.button.add_set_to_cart": [
{
"type": 0,
@@ -4041,16 +3649,6 @@
"value": "Add to Cart"
}
],
- "wishlist_primary_action.button.viewFullDetails.label": [
- {
- "type": 0,
- "value": "View full details for "
- },
- {
- "type": 1,
- "value": "productName"
- }
- ],
"wishlist_primary_action.button.view_full_details": [
{
"type": 0,
@@ -4063,16 +3661,6 @@
"value": "View Options"
}
],
- "wishlist_primary_action.button.view_options.label": [
- {
- "type": 0,
- "value": "View Options for "
- },
- {
- "type": 1,
- "value": "productName"
- }
- ],
"wishlist_primary_action.info.added_to_cart": [
{
"type": 1,
@@ -4117,16 +3705,6 @@
"value": "Remove"
}
],
- "wishlist_secondary_button_group.info.item.remove.label": [
- {
- "type": 0,
- "value": "Remove "
- },
- {
- "type": 1,
- "value": "productName"
- }
- ],
"wishlist_secondary_button_group.info.item_removed": [
{
"type": 0,
diff --git a/packages/template-retail-react-app/app/static/translations/compiled/en-XA.json b/packages/template-chakra-storefront/src/static/translations/compiled/en-XA.json
similarity index 89%
rename from packages/template-retail-react-app/app/static/translations/compiled/en-XA.json
rename to packages/template-chakra-storefront/src/static/translations/compiled/en-XA.json
index fccc43668c..0af5d55e04 100644
--- a/packages/template-retail-react-app/app/static/translations/compiled/en-XA.json
+++ b/packages/template-chakra-storefront/src/static/translations/compiled/en-XA.json
@@ -753,72 +753,6 @@
"value": "]"
}
],
- "auth_modal.check_email.button.resend_link": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Řḗḗşḗḗƞḓ Ŀīƞķ"
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
- "auth_modal.check_email.description.check_spam_folder": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Ŧħḗḗ ŀīƞķ ḿȧȧẏ ŧȧȧķḗḗ ȧȧ ƒḗḗẇ ḿīƞŭŭŧḗḗş ŧǿǿ ȧȧřřīṽḗḗ, ƈħḗḗƈķ ẏǿǿŭŭř şƥȧȧḿ ƒǿǿŀḓḗḗř īƒ ẏǿǿŭŭ'řḗḗ ħȧȧṽīƞɠ ŧřǿǿŭŭƀŀḗḗ ƒīƞḓīƞɠ īŧ"
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
- "auth_modal.check_email.description.just_sent": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Ẇḗḗ ĵŭŭşŧ şḗḗƞŧ ȧȧ ŀǿǿɠīƞ ŀīƞķ ŧǿǿ "
- },
- {
- "children": [
- {
- "type": 1,
- "value": "email"
- }
- ],
- "type": 8,
- "value": "b"
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
- "auth_modal.check_email.title.check_your_email": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Ƈħḗḗƈķ Ẏǿǿŭŭř Ḗḿȧȧīŀ"
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
"auth_modal.description.now_signed_in": [
{
"type": 0,
@@ -2167,20 +2101,6 @@
"value": "]"
}
],
- "contact_info.button.back_to_sign_in_options": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Ɓȧȧƈķ ŧǿǿ Şīɠƞ Īƞ Ǿƥŧīǿǿƞş"
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
"contact_info.button.checkout_as_guest": [
{
"type": 0,
@@ -2209,34 +2129,6 @@
"value": "]"
}
],
- "contact_info.button.password": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Ƥȧȧşşẇǿǿřḓ"
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
- "contact_info.button.secure_link": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Şḗḗƈŭŭřḗḗ Ŀīƞķ"
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
"contact_info.error.incorrect_username_or_password": [
{
"type": 0,
@@ -2265,20 +2157,6 @@
"value": "]"
}
],
- "contact_info.message.or_login_with": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Ǿř Ŀǿǿɠīƞ Ẇīŧħ"
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
"contact_info.title.contact_info": [
{
"type": 0,
@@ -2425,104 +2303,6 @@
"value": "]"
}
],
- "dnt_notification.button.accept": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Ȧƈƈḗḗƥŧ"
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
- "dnt_notification.button.assistive_msg.accept": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Ȧƈƈḗḗƥŧ ŧřȧȧƈķīƞɠ"
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
- "dnt_notification.button.assistive_msg.close": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Ƈŀǿǿşḗḗ ƈǿǿƞşḗḗƞŧ ŧřȧȧƈķīƞɠ ƒǿǿřḿ"
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
- "dnt_notification.button.assistive_msg.decline": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Ḓḗḗƈŀīƞḗḗ ŧřȧȧƈķīƞɠ"
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
- "dnt_notification.button.decline": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Ḓḗḗƈŀīƞḗḗ"
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
- "dnt_notification.description": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Ŀǿǿřḗḗḿ īƥşŭŭḿ ḓǿǿŀǿǿř şīŧ ȧȧḿḗḗŧ, ƈǿǿƞşḗḗƈŧḗḗŧŭŭř ȧȧḓīƥīşƈīƞɠ ḗḗŀīŧ, şḗḗḓ ḓǿǿ ḗḗīŭŭşḿǿǿḓ ŧḗḗḿƥǿǿř īƞƈīḓīḓŭŭƞŧ ŭŭŧ ŀȧȧƀǿǿřḗḗ ḗḗŧ ḓǿǿŀǿǿřḗḗ ḿȧȧɠƞȧȧ ȧȧŀīɋŭŭȧȧ. Ŭŧ ḗḗƞīḿ ȧȧḓ ḿīƞīḿ ṽḗḗƞīȧȧḿ, ɋŭŭīş ƞǿǿşŧřŭŭḓ ḗḗẋḗḗřƈīŧȧȧŧīǿǿƞ ŭŭŀŀȧȧḿƈǿǿ ŀȧȧƀǿǿřīş ƞīşī ŭŭŧ ȧȧŀīɋŭŭīƥ ḗḗẋ ḗḗȧȧ ƈǿǿḿḿǿǿḓǿǿ ƈǿǿƞşḗḗɋŭŭȧȧŧ. Ḓŭŭīş ȧȧŭŭŧḗḗ īřŭŭřḗḗ ḓǿǿŀǿǿř īƞ řḗḗƥřḗḗħḗḗƞḓḗḗřīŧ īƞ ṽǿǿŀŭŭƥŧȧȧŧḗḗ ṽḗḗŀīŧ ḗḗşşḗḗ ƈīŀŀŭŭḿ ḓǿǿŀǿǿřḗḗ ḗḗŭŭ ƒŭŭɠīȧȧŧ ƞŭŭŀŀȧȧ ƥȧȧřīȧȧŧŭŭř."
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
- "dnt_notification.title": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Ŧřȧȧƈķīƞɠ Ƈǿǿƞşḗḗƞŧ"
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
"drawer_menu.button.account_details": [
{
"type": 0,
@@ -2593,20 +2373,6 @@
"value": "]"
}
],
- "drawer_menu.header.assistive_msg.title": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Ḿḗḗƞŭŭ Ḓřȧȧẇḗḗř"
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
"drawer_menu.link.about_us": [
{
"type": 0,
@@ -2747,20 +2513,6 @@
"value": "]"
}
],
- "drawer_menu.link.store_locator": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Şŧǿǿřḗḗ Ŀǿǿƈȧȧŧǿǿř"
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
"drawer_menu.link.terms_and_conditions": [
{
"type": 0,
@@ -3129,20 +2881,6 @@
"value": "]"
}
],
- "footer.link.store_locator": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Şŧǿǿřḗḗ Ŀǿǿƈȧȧŧǿǿř"
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
"footer.link.terms_conditions": [
{
"type": 0,
@@ -3325,74 +3063,32 @@
"value": "]"
}
],
- "global.error.create_account": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Ŧħīş ƒḗḗȧȧŧŭŭřḗḗ īş ƞǿǿŧ ƈŭŭřřḗḗƞŧŀẏ ȧȧṽȧȧīŀȧȧƀŀḗḗ. Ẏǿǿŭŭ ḿŭŭşŧ ƈřḗḗȧȧŧḗḗ ȧȧƞ ȧȧƈƈǿǿŭŭƞŧ ŧǿǿ ȧȧƈƈḗḗşş ŧħīş ƒḗḗȧȧŧŭŭřḗḗ."
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
- "global.error.feature_unavailable": [
+ "global.error.something_went_wrong": [
{
"type": 0,
"value": "["
},
{
"type": 0,
- "value": "Ŧħīş ƒḗḗȧȧŧŭŭřḗḗ īş ƞǿǿŧ ƈŭŭřřḗḗƞŧŀẏ ȧȧṽȧȧīŀȧȧƀŀḗḗ."
+ "value": "Şǿǿḿḗḗŧħīƞɠ ẇḗḗƞŧ ẇřǿǿƞɠ. Ŧřẏ ȧȧɠȧȧīƞ!"
},
{
"type": 0,
"value": "]"
}
],
- "global.error.invalid_token": [
+ "global.info.added_to_wishlist": [
{
"type": 0,
"value": "["
},
{
- "type": 0,
- "value": "Īƞṽȧȧŀīḓ ŧǿǿķḗḗƞ, ƥŀḗḗȧȧşḗḗ ŧřẏ ȧȧɠȧȧīƞ."
+ "type": 1,
+ "value": "quantity"
},
{
"type": 0,
- "value": "]"
- }
- ],
- "global.error.something_went_wrong": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Şǿǿḿḗḗŧħīƞɠ ẇḗḗƞŧ ẇřǿǿƞɠ. Ŧřẏ ȧȧɠȧȧīƞ!"
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
- "global.info.added_to_wishlist": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 1,
- "value": "quantity"
- },
- {
- "type": 0,
- "value": " "
+ "value": " "
},
{
"offset": 0,
@@ -3518,7 +3214,7 @@
},
{
"type": 0,
- "value": "Ḿẏ Ȧƈƈǿǿŭŭƞŧ"
+ "value": "Ḿẏ ȧȧƈƈǿǿŭŭƞŧ"
},
{
"type": 0,
@@ -3557,20 +3253,6 @@
"value": "]"
}
],
- "header.button.assistive_msg.store_locator": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Şŧǿǿřḗḗ Ŀǿǿƈȧȧŧǿǿř"
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
"header.button.assistive_msg.wishlist": [
{
"type": 0,
@@ -4105,32 +3787,6 @@
"value": "]"
}
],
- "item_variant.quantity.label": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Ɋŭŭȧȧƞŧīŧẏ şḗḗŀḗḗƈŧǿǿř ƒǿǿř "
- },
- {
- "type": 1,
- "value": "productName"
- },
- {
- "type": 0,
- "value": ". Şḗḗŀḗḗƈŧḗḗḓ ɋŭŭȧȧƞŧīŧẏ īş "
- },
- {
- "type": 1,
- "value": "quantity"
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
"lCPCxk": [
{
"type": 0,
@@ -4915,76 +4571,6 @@
"value": "]"
}
],
- "login_form.button.apple": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Ȧƥƥŀḗḗ"
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
- "login_form.button.back": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Ɓȧȧƈķ ŧǿǿ Şīɠƞ Īƞ Ǿƥŧīǿǿƞş"
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
- "login_form.button.continue_securely": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Ƈǿǿƞŧīƞŭŭḗḗ Şḗḗƈŭŭřḗḗŀẏ"
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
- "login_form.button.google": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Ɠǿǿǿǿɠŀḗḗ"
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
- "login_form.button.password": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Ƥȧȧşşẇǿǿřḓ"
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
"login_form.button.sign_in": [
{
"type": 0,
@@ -5027,20 +4613,6 @@
"value": "]"
}
],
- "login_form.message.or_login_with": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Ǿř Ŀǿǿɠīƞ Ẇīŧħ"
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
"login_form.message.welcome_back": [
{
"type": 0,
@@ -5545,20 +5117,6 @@
"value": "]"
}
],
- "password_reset_success.toast": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Ƥȧȧşşẇǿǿřḓ Řḗḗşḗḗŧ Şŭŭƈƈḗḗşş"
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
"payment_selection.heading.credit_card": [
{
"type": 0,
@@ -6170,11 +5728,7 @@
},
{
"type": 0,
- "value": "Ḓḗḗƈřḗḗḿḗḗƞŧ Ɋŭŭȧȧƞŧīŧẏ ƒǿǿř "
- },
- {
- "type": 1,
- "value": "productName"
+ "value": "Ḓḗḗƈřḗḗḿḗḗƞŧ Ɋŭŭȧȧƞŧīŧẏ"
},
{
"type": 0,
@@ -6188,11 +5742,7 @@
},
{
"type": 0,
- "value": "Īƞƈřḗḗḿḗḗƞŧ Ɋŭŭȧȧƞŧīŧẏ ƒǿǿř "
- },
- {
- "type": 1,
- "value": "productName"
+ "value": "Īƞƈřḗḗḿḗḗƞŧ Ɋŭŭȧȧƞŧīŧẏ"
},
{
"type": 0,
@@ -6353,20 +5903,6 @@
"value": "]"
}
],
- "profile_fields.label.profile_form": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Ƥřǿǿƒīŀḗḗ Ƒǿǿřḿ"
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
"promo_code_fields.button.apply": [
{
"type": 0,
@@ -6559,63 +6095,77 @@
"value": "]"
}
],
- "reset_password_form.action.sign_in": [
+ "reset_password.button.back_to_sign_in": [
{
"type": 0,
"value": "["
},
{
"type": 0,
- "value": "Şīɠƞ īƞ"
+ "value": "Ɓȧȧƈķ ŧǿǿ Şīɠƞ Īƞ"
},
{
"type": 0,
"value": "]"
}
],
- "reset_password_form.button.reset_password": [
+ "reset_password.info.receive_email_shortly": [
{
"type": 0,
"value": "["
},
{
"type": 0,
- "value": "Řḗḗşḗḗŧ Ƥȧȧşşẇǿǿřḓ"
+ "value": "Ẏǿǿŭŭ ẇīŀŀ řḗḗƈḗḗīṽḗḗ ȧȧƞ ḗḗḿȧȧīŀ ȧȧŧ "
+ },
+ {
+ "children": [
+ {
+ "type": 1,
+ "value": "email"
+ }
+ ],
+ "type": 8,
+ "value": "b"
+ },
+ {
+ "type": 0,
+ "value": " ẇīŧħ ȧȧ ŀīƞķ ŧǿǿ řḗḗşḗḗŧ ẏǿǿŭŭř ƥȧȧşşẇǿǿřḓ şħǿǿřŧŀẏ."
},
{
"type": 0,
"value": "]"
}
],
- "reset_password_form.message.enter_your_email": [
+ "reset_password.title.password_reset": [
{
"type": 0,
"value": "["
},
{
"type": 0,
- "value": "Ḗƞŧḗḗř ẏǿǿŭŭř ḗḗḿȧȧīŀ ŧǿǿ řḗḗƈḗḗīṽḗḗ īƞşŧřŭŭƈŧīǿǿƞş ǿǿƞ ħǿǿẇ ŧǿǿ řḗḗşḗḗŧ ẏǿǿŭŭř ƥȧȧşşẇǿǿřḓ"
+ "value": "Ƥȧȧşşẇǿǿřḓ Řḗḗşḗḗŧ"
},
{
"type": 0,
"value": "]"
}
],
- "reset_password_form.message.return_to_sign_in": [
+ "reset_password_form.action.sign_in": [
{
"type": 0,
"value": "["
},
{
"type": 0,
- "value": "Ǿř řḗḗŧŭŭřƞ ŧǿǿ"
+ "value": "Şīɠƞ īƞ"
},
{
"type": 0,
"value": "]"
}
],
- "reset_password_form.title.reset_password": [
+ "reset_password_form.button.reset_password": [
{
"type": 0,
"value": "["
@@ -6629,92 +6179,98 @@
"value": "]"
}
],
- "search.action.cancel": [
+ "reset_password_form.message.enter_your_email": [
{
"type": 0,
"value": "["
},
{
"type": 0,
- "value": "Ƈȧȧƞƈḗḗŀ"
+ "value": "Ḗƞŧḗḗř ẏǿǿŭŭř ḗḗḿȧȧīŀ ŧǿǿ řḗḗƈḗḗīṽḗḗ īƞşŧřŭŭƈŧīǿǿƞş ǿǿƞ ħǿǿẇ ŧǿǿ řḗḗşḗḗŧ ẏǿǿŭŭř ƥȧȧşşẇǿǿřḓ"
},
{
"type": 0,
"value": "]"
}
],
- "selected_refinements.action.assistive_msg.clear_all": [
+ "reset_password_form.message.return_to_sign_in": [
{
"type": 0,
"value": "["
},
{
"type": 0,
- "value": "Ƈŀḗḗȧȧř ȧȧŀŀ ƒīŀŧḗḗřş"
+ "value": "Ǿř řḗḗŧŭŭřƞ ŧǿǿ"
},
{
"type": 0,
"value": "]"
}
],
- "selected_refinements.action.clear_all": [
+ "reset_password_form.title.reset_password": [
{
"type": 0,
"value": "["
},
{
"type": 0,
- "value": "Ƈŀḗḗȧȧř Ȧŀŀ"
+ "value": "Řḗḗşḗḗŧ Ƥȧȧşşẇǿǿřḓ"
},
{
"type": 0,
"value": "]"
}
],
- "shipping_address.button.continue_to_shipping": [
+ "search.action.cancel": [
{
"type": 0,
"value": "["
},
{
"type": 0,
- "value": "Ƈǿǿƞŧīƞŭŭḗḗ ŧǿǿ Şħīƥƥīƞɠ Ḿḗḗŧħǿǿḓ"
+ "value": "Ƈȧȧƞƈḗḗŀ"
},
{
"type": 0,
"value": "]"
}
],
- "shipping_address.label.edit_button": [
+ "selected_refinements.action.assistive_msg.clear_all": [
{
"type": 0,
"value": "["
},
{
"type": 0,
- "value": "Ḗḓīŧ "
- },
- {
- "type": 1,
- "value": "address"
+ "value": "Ƈŀḗḗȧȧř ȧȧŀŀ ƒīŀŧḗḗřş"
},
{
"type": 0,
"value": "]"
}
],
- "shipping_address.label.remove_button": [
+ "selected_refinements.action.clear_all": [
{
"type": 0,
"value": "["
},
{
"type": 0,
- "value": "Řḗḗḿǿǿṽḗḗ "
+ "value": "Ƈŀḗḗȧȧř Ȧŀŀ"
},
{
- "type": 1,
- "value": "address"
+ "type": 0,
+ "value": "]"
+ }
+ ],
+ "shipping_address.button.continue_to_shipping": [
+ {
+ "type": 0,
+ "value": "["
+ },
+ {
+ "type": 0,
+ "value": "Ƈǿǿƞŧīƞŭŭḗḗ ŧǿǿ Şħīƥƥīƞɠ Ḿḗḗŧħǿǿḓ"
},
{
"type": 0,
@@ -6945,430 +6501,102 @@
"value": "]"
}
],
- "social_login_redirect.message.authenticating": [
+ "swatch_group.selected.label": [
{
"type": 0,
"value": "["
},
+ {
+ "type": 1,
+ "value": "label"
+ },
{
"type": 0,
- "value": "Ȧŭŭŧħḗḗƞŧīƈȧȧŧīƞɠ..."
+ "value": ":"
},
{
"type": 0,
"value": "]"
}
],
- "social_login_redirect.message.redirect_link": [
+ "toggle_card.action.edit": [
{
"type": 0,
"value": "["
},
{
"type": 0,
- "value": "Īƒ ẏǿǿŭŭ ȧȧřḗḗ ƞǿǿŧ ȧȧŭŭŧǿǿḿȧȧŧīƈȧȧŀŀẏ řḗḗḓīřḗḗƈŧḗḗḓ, ƈŀīƈķ "
- },
- {
- "children": [
- {
- "type": 0,
- "value": "ŧħīş ŀīƞķ"
- }
- ],
- "type": 8,
- "value": "link"
- },
- {
- "type": 0,
- "value": " ŧǿǿ ƥřǿǿƈḗḗḗḗḓ."
+ "value": "Ḗḓīŧ"
},
{
"type": 0,
"value": "]"
}
],
- "store_locator.action.find": [
+ "toggle_card.action.editContactInfo": [
{
"type": 0,
"value": "["
},
{
"type": 0,
- "value": "Ƒīƞḓ"
+ "value": "Ḗḓīŧ Ƈǿǿƞŧȧȧƈŧ Īƞƒǿǿ"
},
{
"type": 0,
"value": "]"
}
],
- "store_locator.action.select_a_country": [
+ "toggle_card.action.editPaymentInfo": [
{
"type": 0,
"value": "["
},
{
"type": 0,
- "value": "Şḗḗŀḗḗƈŧ ȧȧ ƈǿǿŭŭƞŧřẏ"
+ "value": "Ḗḓīŧ Ƥȧȧẏḿḗḗƞŧ Īƞƒǿǿ"
},
{
"type": 0,
"value": "]"
}
],
- "store_locator.action.use_my_location": [
+ "toggle_card.action.editShippingAddress": [
{
"type": 0,
"value": "["
},
{
"type": 0,
- "value": "Ŭşḗḗ Ḿẏ Ŀǿǿƈȧȧŧīǿǿƞ"
+ "value": "Ḗḓīŧ Şħīƥƥīƞɠ Ȧḓḓřḗḗşş"
},
{
"type": 0,
"value": "]"
}
],
- "store_locator.action.viewMore": [
+ "toggle_card.action.editShippingOptions": [
{
"type": 0,
"value": "["
},
{
"type": 0,
- "value": "Ṽīḗḗẇ Ḿǿǿřḗḗ"
+ "value": "Ḗḓīŧ Şħīƥƥīƞɠ Ǿƥŧīǿǿƞş"
},
{
"type": 0,
"value": "]"
}
],
- "store_locator.description.away": [
+ "update_password_fields.button.forgot_password": [
{
"type": 0,
"value": "["
},
{
"type": 0,
- "value": "ȧȧẇȧȧẏ"
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
- "store_locator.description.loading_locations": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Ŀǿǿȧȧḓīƞɠ ŀǿǿƈȧȧŧīǿǿƞş..."
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
- "store_locator.description.no_locations": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Şǿǿřřẏ, ŧħḗḗřḗḗ ȧȧřḗḗ ƞǿǿ ŀǿǿƈȧȧŧīǿǿƞş īƞ ŧħīş ȧȧřḗḗȧȧ"
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
- "store_locator.description.or": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Ǿř"
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
- "store_locator.description.phone": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Ƥħǿǿƞḗḗ:"
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
- "store_locator.description.viewing_near_postal_code": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Ṽīḗḗẇīƞɠ şŧǿǿřḗḗş ẇīŧħīƞ "
- },
- {
- "type": 1,
- "value": "distance"
- },
- {
- "type": 1,
- "value": "distanceUnit"
- },
- {
- "type": 0,
- "value": " ǿǿƒ "
- },
- {
- "type": 1,
- "value": "postalCode"
- },
- {
- "type": 0,
- "value": " īƞ"
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
- "store_locator.description.viewing_near_your_location": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Ṽīḗḗẇīƞɠ şŧǿǿřḗḗş ƞḗḗȧȧř ẏǿǿŭŭř ŀǿǿƈȧȧŧīǿǿƞ"
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
- "store_locator.dropdown.germany": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Ɠḗḗřḿȧȧƞẏ"
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
- "store_locator.dropdown.united_states": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Ŭƞīŧḗḗḓ Şŧȧȧŧḗḗş"
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
- "store_locator.error.agree_to_share_your_location": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Ƥŀḗḗȧȧşḗḗ ȧȧɠřḗḗḗḗ ŧǿǿ şħȧȧřḗḗ ẏǿǿŭŭř ŀǿǿƈȧȧŧīǿǿƞ"
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
- "store_locator.error.please_enter_a_postal_code": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Ƥŀḗḗȧȧşḗḗ ḗḗƞŧḗḗř ȧȧ ƥǿǿşŧȧȧŀ ƈǿǿḓḗḗ."
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
- "store_locator.error.please_select_a_country": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Ƥŀḗḗȧȧşḗḗ şḗḗŀḗḗƈŧ ȧȧ ƈǿǿŭŭƞŧřẏ."
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
- "store_locator.field.placeholder.enter_postal_code": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Ḗƞŧḗḗř ƥǿǿşŧȧȧŀ ƈǿǿḓḗḗ"
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
- "store_locator.pagination.load_more": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Ŀǿǿȧȧḓ Ḿǿǿřḗḗ"
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
- "store_locator.title": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Ƒīƞḓ ȧȧ Şŧǿǿřḗḗ"
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
- "swatch_group.selected.label": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 1,
- "value": "label"
- },
- {
- "type": 0,
- "value": ":"
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
- "toggle_card.action.edit": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Ḗḓīŧ"
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
- "toggle_card.action.editContactInfo": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Ḗḓīŧ Ƈǿǿƞŧȧȧƈŧ Īƞƒǿǿ"
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
- "toggle_card.action.editPaymentInfo": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Ḗḓīŧ Ƥȧȧẏḿḗḗƞŧ Īƞƒǿǿ"
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
- "toggle_card.action.editShippingAddress": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Ḗḓīŧ Şħīƥƥīƞɠ Ȧḓḓřḗḗşş"
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
- "toggle_card.action.editShippingOptions": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Ḗḓīŧ Şħīƥƥīƞɠ Ǿƥŧīǿǿƞş"
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
- "update_password_fields.button.forgot_password": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Ƒǿǿřɠǿǿŧ Ƥȧȧşşẇǿǿřḓ?"
+ "value": "Ƒǿǿřɠǿǿŧ Ƥȧȧşşẇǿǿřḓ?"
},
{
"type": 0,
@@ -8593,50 +7821,6 @@
"value": "]"
}
],
- "wishlist_primary_action.button.addSetToCart.label": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Ȧḓḓ "
- },
- {
- "type": 1,
- "value": "productName"
- },
- {
- "type": 0,
- "value": " şḗḗŧ ŧǿǿ ƈȧȧřŧ"
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
- "wishlist_primary_action.button.addToCart.label": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Ȧḓḓ "
- },
- {
- "type": 1,
- "value": "productName"
- },
- {
- "type": 0,
- "value": " ŧǿǿ ƈȧȧřŧ"
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
"wishlist_primary_action.button.add_set_to_cart": [
{
"type": 0,
@@ -8665,24 +7849,6 @@
"value": "]"
}
],
- "wishlist_primary_action.button.viewFullDetails.label": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Ṽīḗḗẇ ƒŭŭŀŀ ḓḗḗŧȧȧīŀş ƒǿǿř "
- },
- {
- "type": 1,
- "value": "productName"
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
"wishlist_primary_action.button.view_full_details": [
{
"type": 0,
@@ -8711,24 +7877,6 @@
"value": "]"
}
],
- "wishlist_primary_action.button.view_options.label": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Ṽīḗḗẇ Ǿƥŧīǿǿƞş ƒǿǿř "
- },
- {
- "type": 1,
- "value": "productName"
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
"wishlist_primary_action.info.added_to_cart": [
{
"type": 0,
@@ -8789,24 +7937,6 @@
"value": "]"
}
],
- "wishlist_secondary_button_group.info.item.remove.label": [
- {
- "type": 0,
- "value": "["
- },
- {
- "type": 0,
- "value": "Řḗḗḿǿǿṽḗḗ "
- },
- {
- "type": 1,
- "value": "productName"
- },
- {
- "type": 0,
- "value": "]"
- }
- ],
"wishlist_secondary_button_group.info.item_removed": [
{
"type": 0,
@@ -8835,4 +7965,4 @@
"value": "]"
}
]
-}
\ No newline at end of file
+}
diff --git a/packages/template-retail-react-app/app/static/translations/compiled/es-MX.json b/packages/template-chakra-storefront/src/static/translations/compiled/es-MX.json
similarity index 99%
rename from packages/template-retail-react-app/app/static/translations/compiled/es-MX.json
rename to packages/template-chakra-storefront/src/static/translations/compiled/es-MX.json
index 53ef078c5d..ed66b06dd9 100644
--- a/packages/template-retail-react-app/app/static/translations/compiled/es-MX.json
+++ b/packages/template-chakra-storefront/src/static/translations/compiled/es-MX.json
@@ -1089,12 +1089,6 @@
"value": "Mapa del sitio"
}
],
- "drawer_menu.link.store_locator": [
- {
- "type": 0,
- "value": "Localizador de tiendas"
- }
- ],
"drawer_menu.link.terms_and_conditions": [
{
"type": 0,
@@ -1271,12 +1265,6 @@
"value": "Mapa del sitio"
}
],
- "footer.link.store_locator": [
- {
- "type": 0,
- "value": "Localizador de tiendas"
- }
- ],
"footer.link.terms_conditions": [
{
"type": 0,
diff --git a/packages/template-retail-react-app/app/static/translations/compiled/fr-FR.json b/packages/template-chakra-storefront/src/static/translations/compiled/fr-FR.json
similarity index 99%
rename from packages/template-retail-react-app/app/static/translations/compiled/fr-FR.json
rename to packages/template-chakra-storefront/src/static/translations/compiled/fr-FR.json
index 45ec55f871..44d7e10ec5 100644
--- a/packages/template-retail-react-app/app/static/translations/compiled/fr-FR.json
+++ b/packages/template-chakra-storefront/src/static/translations/compiled/fr-FR.json
@@ -1089,12 +1089,6 @@
"value": "Plan du site"
}
],
- "drawer_menu.link.store_locator": [
- {
- "type": 0,
- "value": "Localisateur de magasins"
- }
- ],
"drawer_menu.link.terms_and_conditions": [
{
"type": 0,
@@ -1271,12 +1265,6 @@
"value": "Plan du site"
}
],
- "footer.link.store_locator": [
- {
- "type": 0,
- "value": "Localisateur de magasins"
- }
- ],
"footer.link.terms_conditions": [
{
"type": 0,
diff --git a/packages/template-retail-react-app/app/static/translations/compiled/it-IT.json b/packages/template-chakra-storefront/src/static/translations/compiled/it-IT.json
similarity index 99%
rename from packages/template-retail-react-app/app/static/translations/compiled/it-IT.json
rename to packages/template-chakra-storefront/src/static/translations/compiled/it-IT.json
index 73033848dd..224759f630 100644
--- a/packages/template-retail-react-app/app/static/translations/compiled/it-IT.json
+++ b/packages/template-chakra-storefront/src/static/translations/compiled/it-IT.json
@@ -1089,12 +1089,6 @@
"value": "Mappa del sito"
}
],
- "drawer_menu.link.store_locator": [
- {
- "type": 0,
- "value": "Store locator"
- }
- ],
"drawer_menu.link.terms_and_conditions": [
{
"type": 0,
@@ -1271,12 +1265,6 @@
"value": "Mappa del sito"
}
],
- "footer.link.store_locator": [
- {
- "type": 0,
- "value": "Store locator"
- }
- ],
"footer.link.terms_conditions": [
{
"type": 0,
diff --git a/packages/template-retail-react-app/app/static/translations/compiled/ja-JP.json b/packages/template-chakra-storefront/src/static/translations/compiled/ja-JP.json
similarity index 99%
rename from packages/template-retail-react-app/app/static/translations/compiled/ja-JP.json
rename to packages/template-chakra-storefront/src/static/translations/compiled/ja-JP.json
index 64323d1040..ab6ef3eb67 100644
--- a/packages/template-retail-react-app/app/static/translations/compiled/ja-JP.json
+++ b/packages/template-chakra-storefront/src/static/translations/compiled/ja-JP.json
@@ -1089,12 +1089,6 @@
"value": "サイトマップ"
}
],
- "drawer_menu.link.store_locator": [
- {
- "type": 0,
- "value": "店舗検索"
- }
- ],
"drawer_menu.link.terms_and_conditions": [
{
"type": 0,
@@ -1267,12 +1261,6 @@
"value": "サイトマップ"
}
],
- "footer.link.store_locator": [
- {
- "type": 0,
- "value": "店舗検索"
- }
- ],
"footer.link.terms_conditions": [
{
"type": 0,
diff --git a/packages/template-retail-react-app/app/static/translations/compiled/ko-KR.json b/packages/template-chakra-storefront/src/static/translations/compiled/ko-KR.json
similarity index 99%
rename from packages/template-retail-react-app/app/static/translations/compiled/ko-KR.json
rename to packages/template-chakra-storefront/src/static/translations/compiled/ko-KR.json
index f0f158630c..9539b6143e 100644
--- a/packages/template-retail-react-app/app/static/translations/compiled/ko-KR.json
+++ b/packages/template-chakra-storefront/src/static/translations/compiled/ko-KR.json
@@ -1077,12 +1077,6 @@
"value": "사이트 맵"
}
],
- "drawer_menu.link.store_locator": [
- {
- "type": 0,
- "value": "매장 찾기"
- }
- ],
"drawer_menu.link.terms_and_conditions": [
{
"type": 0,
@@ -1247,12 +1241,6 @@
"value": "사이트 맵"
}
],
- "footer.link.store_locator": [
- {
- "type": 0,
- "value": "매장 찾기"
- }
- ],
"footer.link.terms_conditions": [
{
"type": 0,
diff --git a/packages/template-retail-react-app/app/static/translations/compiled/pt-BR.json b/packages/template-chakra-storefront/src/static/translations/compiled/pt-BR.json
similarity index 99%
rename from packages/template-retail-react-app/app/static/translations/compiled/pt-BR.json
rename to packages/template-chakra-storefront/src/static/translations/compiled/pt-BR.json
index bd59d8c0c6..ea9fd942c3 100644
--- a/packages/template-retail-react-app/app/static/translations/compiled/pt-BR.json
+++ b/packages/template-chakra-storefront/src/static/translations/compiled/pt-BR.json
@@ -1093,12 +1093,6 @@
"value": "Mapa do site"
}
],
- "drawer_menu.link.store_locator": [
- {
- "type": 0,
- "value": "Localizador de lojas"
- }
- ],
"drawer_menu.link.terms_and_conditions": [
{
"type": 0,
@@ -1275,12 +1269,6 @@
"value": "Mapa do site"
}
],
- "footer.link.store_locator": [
- {
- "type": 0,
- "value": "Localizador de lojas"
- }
- ],
"footer.link.terms_conditions": [
{
"type": 0,
diff --git a/packages/template-retail-react-app/app/static/translations/compiled/zh-CN.json b/packages/template-chakra-storefront/src/static/translations/compiled/zh-CN.json
similarity index 99%
rename from packages/template-retail-react-app/app/static/translations/compiled/zh-CN.json
rename to packages/template-chakra-storefront/src/static/translations/compiled/zh-CN.json
index d406c55c72..ffef482538 100644
--- a/packages/template-retail-react-app/app/static/translations/compiled/zh-CN.json
+++ b/packages/template-chakra-storefront/src/static/translations/compiled/zh-CN.json
@@ -1089,12 +1089,6 @@
"value": "站点地图"
}
],
- "drawer_menu.link.store_locator": [
- {
- "type": 0,
- "value": "实体店地址搜索"
- }
- ],
"drawer_menu.link.terms_and_conditions": [
{
"type": 0,
@@ -1271,12 +1265,6 @@
"value": "站点地图"
}
],
- "footer.link.store_locator": [
- {
- "type": 0,
- "value": "实体店地址搜索"
- }
- ],
"footer.link.terms_conditions": [
{
"type": 0,
diff --git a/packages/template-retail-react-app/app/static/translations/compiled/zh-TW.json b/packages/template-chakra-storefront/src/static/translations/compiled/zh-TW.json
similarity index 99%
rename from packages/template-retail-react-app/app/static/translations/compiled/zh-TW.json
rename to packages/template-chakra-storefront/src/static/translations/compiled/zh-TW.json
index 3877030193..1c6d1ffa9c 100644
--- a/packages/template-retail-react-app/app/static/translations/compiled/zh-TW.json
+++ b/packages/template-chakra-storefront/src/static/translations/compiled/zh-TW.json
@@ -1085,12 +1085,6 @@
"value": "網站地圖"
}
],
- "drawer_menu.link.store_locator": [
- {
- "type": 0,
- "value": "商店位置搜尋"
- }
- ],
"drawer_menu.link.terms_and_conditions": [
{
"type": 0,
@@ -1267,12 +1261,6 @@
"value": "網站地圖"
}
],
- "footer.link.store_locator": [
- {
- "type": 0,
- "value": "商店位置搜尋"
- }
- ],
"footer.link.terms_conditions": [
{
"type": 0,
diff --git a/packages/template-retail-react-app/app/theme/components/base/accordion.js b/packages/template-chakra-storefront/src/theme/components/base/accordion.js
similarity index 100%
rename from packages/template-retail-react-app/app/theme/components/base/accordion.js
rename to packages/template-chakra-storefront/src/theme/components/base/accordion.js
diff --git a/packages/template-retail-react-app/app/theme/components/base/alert.js b/packages/template-chakra-storefront/src/theme/components/base/alert.js
similarity index 100%
rename from packages/template-retail-react-app/app/theme/components/base/alert.js
rename to packages/template-chakra-storefront/src/theme/components/base/alert.js
diff --git a/packages/template-retail-react-app/app/theme/components/base/badge.js b/packages/template-chakra-storefront/src/theme/components/base/badge.js
similarity index 100%
rename from packages/template-retail-react-app/app/theme/components/base/badge.js
rename to packages/template-chakra-storefront/src/theme/components/base/badge.js
diff --git a/packages/template-retail-react-app/app/theme/components/base/button.js b/packages/template-chakra-storefront/src/theme/components/base/button.js
similarity index 100%
rename from packages/template-retail-react-app/app/theme/components/base/button.js
rename to packages/template-chakra-storefront/src/theme/components/base/button.js
diff --git a/packages/template-retail-react-app/app/theme/components/base/checkbox.js b/packages/template-chakra-storefront/src/theme/components/base/checkbox.js
similarity index 100%
rename from packages/template-retail-react-app/app/theme/components/base/checkbox.js
rename to packages/template-chakra-storefront/src/theme/components/base/checkbox.js
diff --git a/packages/template-retail-react-app/app/theme/components/base/container.js b/packages/template-chakra-storefront/src/theme/components/base/container.js
similarity index 100%
rename from packages/template-retail-react-app/app/theme/components/base/container.js
rename to packages/template-chakra-storefront/src/theme/components/base/container.js
diff --git a/packages/template-retail-react-app/app/theme/components/base/drawer.js b/packages/template-chakra-storefront/src/theme/components/base/drawer.js
similarity index 100%
rename from packages/template-retail-react-app/app/theme/components/base/drawer.js
rename to packages/template-chakra-storefront/src/theme/components/base/drawer.js
diff --git a/packages/template-retail-react-app/app/theme/components/base/formLabel.js b/packages/template-chakra-storefront/src/theme/components/base/formLabel.js
similarity index 100%
rename from packages/template-retail-react-app/app/theme/components/base/formLabel.js
rename to packages/template-chakra-storefront/src/theme/components/base/formLabel.js
diff --git a/packages/template-retail-react-app/app/theme/components/base/icon.js b/packages/template-chakra-storefront/src/theme/components/base/icon.js
similarity index 100%
rename from packages/template-retail-react-app/app/theme/components/base/icon.js
rename to packages/template-chakra-storefront/src/theme/components/base/icon.js
diff --git a/packages/template-retail-react-app/app/theme/components/base/input.js b/packages/template-chakra-storefront/src/theme/components/base/input.js
similarity index 100%
rename from packages/template-retail-react-app/app/theme/components/base/input.js
rename to packages/template-chakra-storefront/src/theme/components/base/input.js
diff --git a/packages/template-retail-react-app/app/theme/components/base/modal.js b/packages/template-chakra-storefront/src/theme/components/base/modal.js
similarity index 100%
rename from packages/template-retail-react-app/app/theme/components/base/modal.js
rename to packages/template-chakra-storefront/src/theme/components/base/modal.js
diff --git a/packages/template-retail-react-app/app/theme/components/base/popover.js b/packages/template-chakra-storefront/src/theme/components/base/popover.js
similarity index 100%
rename from packages/template-retail-react-app/app/theme/components/base/popover.js
rename to packages/template-chakra-storefront/src/theme/components/base/popover.js
diff --git a/packages/template-retail-react-app/app/theme/components/base/radio.js b/packages/template-chakra-storefront/src/theme/components/base/radio.js
similarity index 100%
rename from packages/template-retail-react-app/app/theme/components/base/radio.js
rename to packages/template-chakra-storefront/src/theme/components/base/radio.js
diff --git a/packages/template-retail-react-app/app/theme/components/base/select.js b/packages/template-chakra-storefront/src/theme/components/base/select.js
similarity index 100%
rename from packages/template-retail-react-app/app/theme/components/base/select.js
rename to packages/template-chakra-storefront/src/theme/components/base/select.js
diff --git a/packages/template-retail-react-app/app/theme/components/base/skeleton.js b/packages/template-chakra-storefront/src/theme/components/base/skeleton.js
similarity index 100%
rename from packages/template-retail-react-app/app/theme/components/base/skeleton.js
rename to packages/template-chakra-storefront/src/theme/components/base/skeleton.js
diff --git a/packages/template-retail-react-app/app/theme/components/base/tooltip.js b/packages/template-chakra-storefront/src/theme/components/base/tooltip.js
similarity index 100%
rename from packages/template-retail-react-app/app/theme/components/base/tooltip.js
rename to packages/template-chakra-storefront/src/theme/components/base/tooltip.js
diff --git a/packages/template-retail-react-app/app/theme/components/project/_app.js b/packages/template-chakra-storefront/src/theme/components/project/_app.js
similarity index 88%
rename from packages/template-retail-react-app/app/theme/components/project/_app.js
rename to packages/template-chakra-storefront/src/theme/components/project/_app.js
index 2782ecf95f..437bf0ce42 100644
--- a/packages/template-retail-react-app/app/theme/components/project/_app.js
+++ b/packages/template-chakra-storefront/src/theme/components/project/_app.js
@@ -4,7 +4,7 @@
* SPDX-License-Identifier: BSD-3-Clause
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
-import theme from '@salesforce/retail-react-app/app/components/shared/theme'
+import {theme} from '@chakra-ui/theme'
export default {
baseStyle: {
diff --git a/packages/template-retail-react-app/app/theme/components/project/breadcrumb.js b/packages/template-chakra-storefront/src/theme/components/project/breadcrumb.js
similarity index 100%
rename from packages/template-retail-react-app/app/theme/components/project/breadcrumb.js
rename to packages/template-chakra-storefront/src/theme/components/project/breadcrumb.js
diff --git a/packages/template-retail-react-app/app/theme/components/project/checkout-footer.js b/packages/template-chakra-storefront/src/theme/components/project/checkout-footer.js
similarity index 90%
rename from packages/template-retail-react-app/app/theme/components/project/checkout-footer.js
rename to packages/template-chakra-storefront/src/theme/components/project/checkout-footer.js
index 710fb969be..1c7fcb6680 100644
--- a/packages/template-retail-react-app/app/theme/components/project/checkout-footer.js
+++ b/packages/template-chakra-storefront/src/theme/components/project/checkout-footer.js
@@ -4,7 +4,7 @@
* SPDX-License-Identifier: BSD-3-Clause
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
-import Footer from '@salesforce/retail-react-app/app/theme/components/project/footer'
+import Footer from './footer'
const {baseStyle} = Footer
diff --git a/packages/template-retail-react-app/app/theme/components/project/drawer-menu.js b/packages/template-chakra-storefront/src/theme/components/project/drawer-menu.js
similarity index 100%
rename from packages/template-retail-react-app/app/theme/components/project/drawer-menu.js
rename to packages/template-chakra-storefront/src/theme/components/project/drawer-menu.js
diff --git a/packages/template-retail-react-app/app/theme/components/project/footer.js b/packages/template-chakra-storefront/src/theme/components/project/footer.js
similarity index 100%
rename from packages/template-retail-react-app/app/theme/components/project/footer.js
rename to packages/template-chakra-storefront/src/theme/components/project/footer.js
diff --git a/packages/template-retail-react-app/app/theme/components/project/header.js b/packages/template-chakra-storefront/src/theme/components/project/header.js
similarity index 100%
rename from packages/template-retail-react-app/app/theme/components/project/header.js
rename to packages/template-chakra-storefront/src/theme/components/project/header.js
diff --git a/packages/template-retail-react-app/app/theme/components/project/image-gallery.js b/packages/template-chakra-storefront/src/theme/components/project/image-gallery.js
similarity index 100%
rename from packages/template-retail-react-app/app/theme/components/project/image-gallery.js
rename to packages/template-chakra-storefront/src/theme/components/project/image-gallery.js
diff --git a/packages/template-retail-react-app/app/theme/components/project/links-list.js b/packages/template-chakra-storefront/src/theme/components/project/links-list.js
similarity index 100%
rename from packages/template-retail-react-app/app/theme/components/project/links-list.js
rename to packages/template-chakra-storefront/src/theme/components/project/links-list.js
diff --git a/packages/template-retail-react-app/app/theme/components/project/list-menu.js b/packages/template-chakra-storefront/src/theme/components/project/list-menu.js
similarity index 100%
rename from packages/template-retail-react-app/app/theme/components/project/list-menu.js
rename to packages/template-chakra-storefront/src/theme/components/project/list-menu.js
diff --git a/packages/template-retail-react-app/app/theme/components/project/locale-selector.js b/packages/template-chakra-storefront/src/theme/components/project/locale-selector.js
similarity index 100%
rename from packages/template-retail-react-app/app/theme/components/project/locale-selector.js
rename to packages/template-chakra-storefront/src/theme/components/project/locale-selector.js
diff --git a/packages/template-retail-react-app/app/theme/components/project/nested-accordion.js b/packages/template-chakra-storefront/src/theme/components/project/nested-accordion.js
similarity index 100%
rename from packages/template-retail-react-app/app/theme/components/project/nested-accordion.js
rename to packages/template-chakra-storefront/src/theme/components/project/nested-accordion.js
diff --git a/packages/template-retail-react-app/app/theme/components/project/offline-banner.js b/packages/template-chakra-storefront/src/theme/components/project/offline-banner.js
similarity index 100%
rename from packages/template-retail-react-app/app/theme/components/project/offline-banner.js
rename to packages/template-chakra-storefront/src/theme/components/project/offline-banner.js
diff --git a/packages/template-retail-react-app/app/theme/components/project/pagination.js b/packages/template-chakra-storefront/src/theme/components/project/pagination.js
similarity index 100%
rename from packages/template-retail-react-app/app/theme/components/project/pagination.js
rename to packages/template-chakra-storefront/src/theme/components/project/pagination.js
diff --git a/packages/template-retail-react-app/app/theme/components/project/product-tile.js b/packages/template-chakra-storefront/src/theme/components/project/product-tile.js
similarity index 100%
rename from packages/template-retail-react-app/app/theme/components/project/product-tile.js
rename to packages/template-chakra-storefront/src/theme/components/project/product-tile.js
diff --git a/packages/template-retail-react-app/app/theme/components/project/social-icons.js b/packages/template-chakra-storefront/src/theme/components/project/social-icons.js
similarity index 100%
rename from packages/template-retail-react-app/app/theme/components/project/social-icons.js
rename to packages/template-chakra-storefront/src/theme/components/project/social-icons.js
diff --git a/packages/template-retail-react-app/app/theme/components/project/swatch-group.js b/packages/template-chakra-storefront/src/theme/components/project/swatch-group.js
similarity index 100%
rename from packages/template-retail-react-app/app/theme/components/project/swatch-group.js
rename to packages/template-chakra-storefront/src/theme/components/project/swatch-group.js
diff --git a/packages/template-retail-react-app/app/theme/foundations/colors.js b/packages/template-chakra-storefront/src/theme/foundations/colors.js
similarity index 87%
rename from packages/template-retail-react-app/app/theme/foundations/colors.js
rename to packages/template-chakra-storefront/src/theme/foundations/colors.js
index 811f727d6b..828e2ba986 100644
--- a/packages/template-retail-react-app/app/theme/foundations/colors.js
+++ b/packages/template-chakra-storefront/src/theme/foundations/colors.js
@@ -4,6 +4,7 @@
* SPDX-License-Identifier: BSD-3-Clause
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
+
const colors = {
transparent: 'transparent',
current: 'currentColor',
@@ -164,6 +165,26 @@ const colors = {
700: '#9602C7',
800: '#730394',
900: '#520066'
+ },
+
+ cssColorGroups: {
+ beige: '#d3bca9',
+ black: '#000000',
+ blue: '#4089c0',
+ brown: '#8e6950',
+ green: '#88c290',
+ grey: '#919191',
+ gray: '#919191',
+ silver: '#c0c0c0',
+ navy: '#000080',
+ orange: '#f4995c',
+ pink: '#f5a0ca',
+ purple: '#9873b9',
+ red: '#df5b5b',
+ white: '#FFFFFFF',
+ yellow: '#fbe85a',
+ gold: '#ffd700',
+ miscellaneous: 'linear-gradient(to right, orange , yellow, green, cyan, blue, violet)'
}
}
diff --git a/packages/template-retail-react-app/app/theme/foundations/gradients.js b/packages/template-chakra-storefront/src/theme/foundations/gradients.js
similarity index 100%
rename from packages/template-retail-react-app/app/theme/foundations/gradients.js
rename to packages/template-chakra-storefront/src/theme/foundations/gradients.js
diff --git a/packages/template-retail-react-app/app/theme/foundations/layerStyles.js b/packages/template-chakra-storefront/src/theme/foundations/layerStyles.js
similarity index 100%
rename from packages/template-retail-react-app/app/theme/foundations/layerStyles.js
rename to packages/template-chakra-storefront/src/theme/foundations/layerStyles.js
diff --git a/packages/template-retail-react-app/app/theme/foundations/shadows.js b/packages/template-chakra-storefront/src/theme/foundations/shadows.js
similarity index 100%
rename from packages/template-retail-react-app/app/theme/foundations/shadows.js
rename to packages/template-chakra-storefront/src/theme/foundations/shadows.js
diff --git a/packages/template-retail-react-app/app/theme/foundations/sizes.js b/packages/template-chakra-storefront/src/theme/foundations/sizes.js
similarity index 100%
rename from packages/template-retail-react-app/app/theme/foundations/sizes.js
rename to packages/template-chakra-storefront/src/theme/foundations/sizes.js
diff --git a/packages/template-retail-react-app/app/theme/foundations/space.js b/packages/template-chakra-storefront/src/theme/foundations/space.js
similarity index 100%
rename from packages/template-retail-react-app/app/theme/foundations/space.js
rename to packages/template-chakra-storefront/src/theme/foundations/space.js
diff --git a/packages/template-retail-react-app/app/theme/foundations/styles.js b/packages/template-chakra-storefront/src/theme/foundations/styles.js
similarity index 100%
rename from packages/template-retail-react-app/app/theme/foundations/styles.js
rename to packages/template-chakra-storefront/src/theme/foundations/styles.js
diff --git a/packages/template-chakra-storefront/src/theme/index.js b/packages/template-chakra-storefront/src/theme/index.js
new file mode 100644
index 0000000000..d5fc85edf1
--- /dev/null
+++ b/packages/template-chakra-storefront/src/theme/index.js
@@ -0,0 +1,104 @@
+/*
+ * Copyright (c) 2021, salesforce.com, inc.
+ * All rights reserved.
+ * SPDX-License-Identifier: BSD-3-Clause
+ * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
+ */
+import {extendTheme} from '@chakra-ui/react'
+
+// Foundational style overrides
+import styles from './foundations/styles'
+import colors from './foundations/colors'
+import gradients from './foundations/gradients'
+import sizes from './foundations/sizes'
+import space from './foundations/space'
+import layerStyles from './foundations/layerStyles'
+import shadows from './foundations/shadows'
+
+// Base component style overrides
+import Alert from './components/base/alert'
+import Accordion from './components/base/accordion'
+import Badge from './components/base/badge'
+import Button from './components/base/button'
+import Checkbox from './components/base/checkbox'
+import Container from './components/base/container'
+import Drawer from './components/base/drawer'
+import FormLabel from './components/base/formLabel'
+import Icon from './components/base/icon'
+import Input from './components/base/input'
+import Modal from './components/base/modal'
+import Radio from './components/base/radio'
+import Select from './components/base/select'
+import Skeleton from './components/base/skeleton'
+import Tooltip from './components/base/tooltip'
+import Popover from './components/base/popover'
+
+// Project Component style overrides
+import App from './components/project/_app'
+import Breadcrumb from './components/project/breadcrumb'
+import Header from './components/project/header'
+import ListMenu from './components/project/list-menu'
+import Footer from './components/project/footer'
+import CheckoutFooter from './components/project/checkout-footer'
+import LinksList from './components/project/links-list'
+import DrawerMenu from './components/project/drawer-menu'
+import NestedAccordion from './components/project/nested-accordion'
+import LocaleSelector from './components/project/locale-selector'
+import OfflineBanner from './components/project/offline-banner'
+import Pagination from './components/project/pagination'
+import ProductTile from './components/project/product-tile'
+import SocialIcons from './components/project/social-icons'
+import SwatchGroup from './components/project/swatch-group'
+import ImageGallery from './components/project/image-gallery'
+
+// Please refer to the Chakra-Ui theme customization docs found
+// here https://chakra-ui.com/docs/theming/customize-theme to learn
+// more about extending and overriding themes for your project.
+export const overrides = {
+ styles,
+ layerStyles,
+ colors,
+ sizes,
+ space,
+ gradients,
+ shadows,
+ components: {
+ // base components
+ Accordion,
+ Alert,
+ Badge,
+ Button,
+ Checkbox,
+ Container,
+ Drawer,
+ FormLabel,
+ Icon,
+ Input,
+ Modal,
+ Popover,
+ Radio,
+ Select,
+ Skeleton,
+ Tooltip,
+
+ // project components
+ App,
+ Breadcrumb,
+ Header,
+ Footer,
+ CheckoutFooter,
+ LinksList,
+ ListMenu,
+ DrawerMenu,
+ NestedAccordion,
+ LocaleSelector,
+ OfflineBanner,
+ SocialIcons,
+ Pagination,
+ ProductTile,
+ SwatchGroup,
+ ImageGallery
+ }
+}
+
+export default extendTheme(overrides)
diff --git a/packages/template-chakra-storefront/src/types/config.ts b/packages/template-chakra-storefront/src/types/config.ts
new file mode 100644
index 0000000000..9bd4a76bdc
--- /dev/null
+++ b/packages/template-chakra-storefront/src/types/config.ts
@@ -0,0 +1,174 @@
+/*
+ * Copyright (c) 2024, salesforce.com, inc.
+ * All rights reserved.
+ * SPDX-License-Identifier: BSD-3-Clause
+ * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
+ */
+type Pages = typeof import('../pages')
+
+// Represents a locale with its ID and preferred currency.
+type Locale = {
+ id: string
+ preferredCurrency: string
+}
+
+// Defines localization settings for a site, including currencies and supported locales.
+type Localization = {
+ supportedCurrencies: string[]
+ defaultCurrency: string
+ defaultLocale: string
+ supportedLocales: Locale[]
+}
+
+// Represents a site configuration, including its localization details.
+type Site = {
+ id: string
+ l10n: Localization
+}
+
+// Configuration settings for connecting to the Commerce API.
+type CommerceAPIConfig = {
+ proxyPath: string
+ parameters: {
+ clientId: string
+ organizationId: string
+ shortCode: string
+ siteId: string
+ }
+}
+
+// Configuration settings for connecting to the Einstein API.
+type EinsteinAPI = {
+ host: string
+ einsteinId: string
+ siteId: string
+ isProduction: boolean
+}
+
+// Configuration settings for connecting to the Data Cloud API.
+type DataCloudAPI = {
+ appSourceId: string
+ tenantId: string
+ siteId: string
+ isProduction: boolean
+}
+
+type ShippingCountry = {
+ value: string
+ label: string
+}
+
+// Indicates where a value should be placed in the URL.
+type UrlPlacement = 'path' | 'query_string' | 'none'
+
+// Default configuration type
+// should we keep string | string[] type here??
+type DefaultPageConfig = {
+ path: string
+}
+
+type CustomPageConfigs = {
+ Account: DefaultPageConfig & {
+ orderSearchParam: {
+ limit: number
+ offset: number
+ sort: string
+ refine: []
+ }
+ }
+ Checkout: DefaultPageConfig & {
+ shippingCountryCode: ShippingCountry[]
+ }
+ Home: DefaultPageConfig & {
+ productLimit?: number
+ mainCategory?: string
+ }
+ ProductList: DefaultPageConfig & {
+ imageViewType: 'large'
+ selectableAttributeId: 'color'
+ filterAccordionSate: string
+ }
+}
+
+type IDPValues = 'google' | 'apple'
+type IDPArray = IDPValues[]
+
+// Combine inferred pages with specific configurations
+type PageConfigs = {
+ [K in keyof Pages]: K extends keyof CustomPageConfigs ? CustomPageConfigs[K] : DefaultPageConfig
+}
+/**
+ * This defines how your extension can be configured in the user's project. Please update it to your specific needs!
+ */
+export interface UserConfig {
+ activeDataEnabled?: boolean // default = false
+ commerceAPI: CommerceAPIConfig
+ categoryNav: {
+ defaultNavSsrDepth: number
+ defaultRootCategory: string | number
+ }
+ defaultSite: Site['id']
+ defaultAppLocale: string
+ defaultSiteTitle: string
+ defaultDnt: boolean
+ einsteinAPI: EinsteinAPI
+ dataCloudAPI: DataCloudAPI
+ login: {
+ passwordless: {
+ enabled: false
+ callbackURI: string
+ landingPath: string
+ }
+ social: {
+ enabled: false
+ idps: IDPArray
+ redirectURI: string
+ }
+ resetPassword: {
+ callbackURI: string
+ landingPath: string
+ }
+ }
+ maxCacheAge: number
+ pages?: {
+ [K in keyof PageConfigs]: false | PageConfigs[K]
+ }
+ search: {
+ defaultLimitValues: number[]
+ defaultSearchParams: {
+ limit: number
+ offset: number
+ sort: string
+ refine: []
+ }
+ recentSearchKey: string
+ recentSearchLimit: number
+ recentSearchMinLength: number
+ }
+ siteAliases?: Record
+ sites: Site[]
+ staleWhileRevalidate: number
+ url?: {
+ site: UrlPlacement
+ locale: UrlPlacement
+ showDefaults: boolean
+ interpretPlusSignAsSpace: boolean
+ }
+ // TODO: Add pages to enabled disable easily. ✅
+ // TODO: Move static assets to proper destination. ✅
+ // TODO: Fix getting static image.. we need a way to get the id of the extension. ✅ We need a way to get
+ // TODO: Think about the _error and how it works with extensions, right now I don't think it does
+ // anything. ✅ We are only going to provide the component, it's on your to hook up the error component.
+ // TODO: Add default config value ✅
+ // TODO: Get auto integration of store locator back to working ✅ [Ticket created]
+ // TODO: Test overriding page ✅
+
+ // TODO: Write tests for HOCs
+ // TODO: Write README, including steps to install.
+ // TODO: Fix tests
+}
+
+/**
+ * When instantiating your extension, pwa-kit-extension-sdk will make sure to pass in the "complete" configuration, which has the merged user-defined and default configs.
+ */
+export type Config = Required
diff --git a/packages/pwa-kit-dev/src/configs/webpack/test/overrides/path/data.js b/packages/template-chakra-storefront/src/types/index.ts
similarity index 72%
rename from packages/pwa-kit-dev/src/configs/webpack/test/overrides/path/data.js
rename to packages/template-chakra-storefront/src/types/index.ts
index e4e291ff34..a215db24b2 100644
--- a/packages/pwa-kit-dev/src/configs/webpack/test/overrides/path/data.js
+++ b/packages/template-chakra-storefront/src/types/index.ts
@@ -1,6 +1,8 @@
/*
- * Copyright (c) 2023, Salesforce, Inc.
+ * Copyright (c) 2024, salesforce.com, inc.
* All rights reserved.
* SPDX-License-Identifier: BSD-3-Clause
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
+
+export * from './config'
diff --git a/packages/template-retail-react-app/app/utils/cc-utils.js b/packages/template-chakra-storefront/src/utils/cc-utils.js
similarity index 96%
rename from packages/template-retail-react-app/app/utils/cc-utils.js
rename to packages/template-chakra-storefront/src/utils/cc-utils.js
index e993643166..4dcc62a973 100644
--- a/packages/template-retail-react-app/app/utils/cc-utils.js
+++ b/packages/template-chakra-storefront/src/utils/cc-utils.js
@@ -4,12 +4,7 @@
* SPDX-License-Identifier: BSD-3-Clause
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
-import {
- AmexIcon,
- DiscoverIcon,
- MastercardIcon,
- VisaIcon
-} from '@salesforce/retail-react-app/app/components/icons'
+import {AmexIcon, DiscoverIcon, MastercardIcon, VisaIcon} from '../components/icons'
/**
* Formats a credit card number against given criteria
diff --git a/packages/template-retail-react-app/app/utils/cc-utils.test.js b/packages/template-chakra-storefront/src/utils/cc-utils.test.js
similarity index 96%
rename from packages/template-retail-react-app/app/utils/cc-utils.test.js
rename to packages/template-chakra-storefront/src/utils/cc-utils.test.js
index b1b07c5d53..fd203c5bf9 100644
--- a/packages/template-retail-react-app/app/utils/cc-utils.test.js
+++ b/packages/template-chakra-storefront/src/utils/cc-utils.test.js
@@ -4,7 +4,7 @@
* SPDX-License-Identifier: BSD-3-Clause
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
-import * as utils from '@salesforce/retail-react-app/app/utils/cc-utils'
+import * as utils from './cc-utils'
test('formatCreditCardNumber returns number with proper spaces', () => {
const opts = {
diff --git a/packages/template-chakra-storefront/src/utils/email.js b/packages/template-chakra-storefront/src/utils/email.js
new file mode 100644
index 0000000000..6ab2d89138
--- /dev/null
+++ b/packages/template-chakra-storefront/src/utils/email.js
@@ -0,0 +1,123 @@
+/*
+ * Copyright (c) 2025, salesforce.com, inc.
+ * All rights reserved.
+ * SPDX-License-Identifier: BSD-3-Clause
+ * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
+ */
+
+import crypto from 'crypto'
+
+/**
+ * Tokens are valid for 20 minutes. We store it at the top level scope to reuse
+ * it during the lambda invocation. We'll refresh it after 15 minutes.
+ */
+let marketingCloudToken = ''
+let marketingCloudTokenExpiration = new Date()
+
+/**
+ * Generates a unique ID for the email message.
+ *
+ * @return {string} A unique ID for the email message.
+ */
+function generateUniqueId() {
+ return crypto.randomBytes(16).toString('hex')
+}
+
+/**
+ * Generates a unique ID, constructs an email message URL, and sends the email to the specified contact
+ * using the Marketing Cloud API.
+ *
+ * @param {string} email - The email address of the contact to whom the email will be sent.
+ * @param {string} templateId - The ID of the email template to be used for the email.
+ * @param {string} magicLink - The magic link to be included in the email.
+ *
+ * @return {Promise} A promise that resolves to the response object received from the Marketing Cloud API.
+ */
+export const emailLink = async (emailId, templateId, magicLink) => {
+ if (!templateId) {
+ throw new Error('templateId is required')
+ }
+
+ if (!process.env.MARKETING_CLOUD_CLIENT_ID) {
+ console.warn('MARKETING_CLOUD_CLIENT_ID is not set in the environment variables.')
+ }
+
+ if (!process.env.MARKETING_CLOUD_CLIENT_SECRET) {
+ console.warn(' MARKETING_CLOUD_CLIENT_SECRET is not set in the environment variables.')
+ }
+
+ if (!process.env.MARKETING_CLOUD_SUBDOMAIN) {
+ console.warn('MARKETING_CLOUD_SUBDOMAIN is not set in the environment variables.')
+ }
+
+ const marketingCloudConfig = {
+ clientId: process.env.MARKETING_CLOUD_CLIENT_ID,
+ clientSecret: process.env.MARKETING_CLOUD_CLIENT_SECRET,
+ magicLink: magicLink,
+ subdomain: process.env.MARKETING_CLOUD_SUBDOMAIN,
+ templateId: templateId
+ }
+ return await sendMarketingCloudEmail(emailId, marketingCloudConfig)
+}
+
+/**
+ * Sends an email to a specified contact using the Marketing Cloud API. The template email must have a
+ * `%%magic-link%%` personalization string inserted.
+ * https://help.salesforce.com/s/articleView?id=mktg.mc_es_personalization_strings.htm&type=5
+ *
+ * @param {string} email - The email address of the contact to whom the email will be sent.
+ * @param {string} templateId - The ID of the email template to be used for the email.
+ * @param {string} magicLink - The magic link to be included in the email.
+ *
+ * @return {Promise} A promise that resolves to the response object received from the Marketing Cloud API.
+ */
+export const sendMarketingCloudEmail = async (emailId, marketingCloudConfig) => {
+ // Refresh token if expired
+ if (new Date() > marketingCloudTokenExpiration) {
+ const {clientId, clientSecret, subdomain} = marketingCloudConfig
+ const tokenUrl = `https://${subdomain}.auth.marketingcloudapis.com/v2/token`
+ const tokenResponse = await fetch(tokenUrl, {
+ method: 'POST',
+ headers: {'Content-Type': 'application/json'},
+ body: JSON.stringify({
+ grant_type: 'client_credentials',
+ client_id: clientId,
+ client_secret: clientSecret
+ })
+ })
+
+ if (!tokenResponse.ok)
+ throw new Error(
+ 'Failed to fetch Marketing Cloud access token. Check your Marketing Cloud credentials and try again.'
+ )
+
+ const {access_token} = await tokenResponse.json()
+ marketingCloudToken = access_token
+ // Set expiration to 15 mins
+ marketingCloudTokenExpiration = new Date(Date.now() + 15 * 60 * 1000)
+ }
+
+ // Send the email
+ const emailUrl = `https://${
+ marketingCloudConfig.subdomain
+ }.rest.marketingcloudapis.com/messaging/v1/email/messages/${generateUniqueId()}`
+ const emailResponse = await fetch(emailUrl, {
+ method: 'POST',
+ headers: {
+ Authorization: `Bearer ${marketingCloudToken}`,
+ 'Content-Type': 'application/json'
+ },
+ body: JSON.stringify({
+ definitionKey: marketingCloudConfig.templateId,
+ recipient: {
+ contactKey: emailId,
+ to: emailId,
+ attributes: {'magic-link': marketingCloudConfig.magicLink}
+ }
+ })
+ })
+
+ if (!emailResponse.ok) throw new Error('Failed to send email to Marketing Cloud')
+
+ return await emailResponse.json()
+}
diff --git a/packages/template-retail-react-app/app/utils/image-groups-utils.js b/packages/template-chakra-storefront/src/utils/image-groups-utils.js
similarity index 100%
rename from packages/template-retail-react-app/app/utils/image-groups-utils.js
rename to packages/template-chakra-storefront/src/utils/image-groups-utils.js
diff --git a/packages/template-retail-react-app/app/utils/image-groups-utils.test.js b/packages/template-chakra-storefront/src/utils/image-groups-utils.test.js
similarity index 95%
rename from packages/template-retail-react-app/app/utils/image-groups-utils.test.js
rename to packages/template-chakra-storefront/src/utils/image-groups-utils.test.js
index 37e25a2575..a49be8b1da 100644
--- a/packages/template-retail-react-app/app/utils/image-groups-utils.test.js
+++ b/packages/template-chakra-storefront/src/utils/image-groups-utils.test.js
@@ -5,7 +5,7 @@
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
-import {findImageGroupBy} from '@salesforce/retail-react-app/app/utils/image-groups-utils'
+import {findImageGroupBy} from './image-groups-utils'
it.each([undefined, []])('returns undefined', (groups) => {
expect(findImageGroupBy(groups, {})).toBeUndefined()
diff --git a/packages/template-retail-react-app/app/utils/locale.js b/packages/template-chakra-storefront/src/utils/locale.js
similarity index 92%
rename from packages/template-retail-react-app/app/utils/locale.js
rename to packages/template-chakra-storefront/src/utils/locale.js
index edec3312d1..a034b26e0c 100644
--- a/packages/template-retail-react-app/app/utils/locale.js
+++ b/packages/template-chakra-storefront/src/utils/locale.js
@@ -6,9 +6,9 @@
*/
import PropTypes from 'prop-types'
-import {getAssetUrl} from '@salesforce/pwa-kit-react-sdk/ssr/universal/utils'
+import {getStaticAssetUrl} from '@salesforce/pwa-kit-react-sdk/ssr/universal/utils'
import {getAppOrigin} from '@salesforce/pwa-kit-react-sdk/utils/url'
-import logger from '@salesforce/retail-react-app/app/utils/logger-instance'
+import logger from './logger-instance'
import fetch from 'cross-fetch'
/**
@@ -27,8 +27,8 @@ export const fetchTranslations = async (locale, origin) => {
: locale
try {
- const file = `${origin || getAppOrigin()}${getAssetUrl(
- `static/translations/compiled/${targetLocale}.json`
+ const file = `${origin || getAppOrigin()}${getStaticAssetUrl(
+ `translations/compiled/${targetLocale}.json`
)}`
const response = await fetch(file)
diff --git a/packages/template-retail-react-app/app/utils/locale.test.js b/packages/template-chakra-storefront/src/utils/locale.test.js
similarity index 86%
rename from packages/template-retail-react-app/app/utils/locale.test.js
rename to packages/template-chakra-storefront/src/utils/locale.test.js
index 941680a048..42867e6ba1 100644
--- a/packages/template-retail-react-app/app/utils/locale.test.js
+++ b/packages/template-chakra-storefront/src/utils/locale.test.js
@@ -7,13 +7,9 @@
// CAUTION: This test file relies on config values that may get changed in generated projects
-import {
- determineTargetLocale,
- fetchTranslations,
- getTargetLocale
-} from '@salesforce/retail-react-app/app/utils/locale'
+import {determineTargetLocale, fetchTranslations, getTargetLocale} from './locale'
-import {DEFAULT_LOCALE, SUPPORTED_LOCALES} from '@salesforce/retail-react-app/app/utils/test-utils'
+import {DEFAULT_LOCALE, SUPPORTED_LOCALES} from './test-utils'
jest.mock('cross-fetch', () => {
return async (url) => {
@@ -35,7 +31,7 @@ jest.mock('@salesforce/pwa-kit-react-sdk/utils/url', () => {
return {getAppOrigin: () => ''}
})
jest.mock('@salesforce/pwa-kit-react-sdk/ssr/universal/utils', () => {
- return {getAssetUrl: (url) => url}
+ return {getStaticAssetUrl: (url) => url}
})
const supportedLocales = SUPPORTED_LOCALES.map((locale) => locale.id)
@@ -77,15 +73,6 @@ describe('fetchTranslations', () => {
const messages = await fetchTranslations(supportedLocale)
expect(messages[testId2]).toBeDefined()
})
- test('loading the pseudo locale', async () => {
- const messages = await fetchTranslations('en-XA')
- expect(messages[testId1][1].value).toMatch(/Ƥřīṽȧȧƈẏ Ƥǿǿŀīƈẏ/)
- })
- test('handling a not-found translation file', async () => {
- const messages = await fetchTranslations('xx-XX')
- const emptyMessages = {}
- expect(messages).toEqual(emptyMessages)
- })
})
describe('getTargetLocale', () => {
diff --git a/packages/template-retail-react-app/app/utils/logger-instance.js b/packages/template-chakra-storefront/src/utils/logger-instance.js
similarity index 100%
rename from packages/template-retail-react-app/app/utils/logger-instance.js
rename to packages/template-chakra-storefront/src/utils/logger-instance.js
diff --git a/packages/template-retail-react-app/app/utils/password-utils.js b/packages/template-chakra-storefront/src/utils/password-utils.js
similarity index 100%
rename from packages/template-retail-react-app/app/utils/password-utils.js
rename to packages/template-chakra-storefront/src/utils/password-utils.js
diff --git a/packages/template-retail-react-app/app/utils/phone-utils.js b/packages/template-chakra-storefront/src/utils/phone-utils.js
similarity index 100%
rename from packages/template-retail-react-app/app/utils/phone-utils.js
rename to packages/template-chakra-storefront/src/utils/phone-utils.js
diff --git a/packages/template-retail-react-app/app/utils/phone-utils.test.js b/packages/template-chakra-storefront/src/utils/phone-utils.test.js
similarity index 88%
rename from packages/template-retail-react-app/app/utils/phone-utils.test.js
rename to packages/template-chakra-storefront/src/utils/phone-utils.test.js
index 0d5dd506e0..809cda37b1 100644
--- a/packages/template-retail-react-app/app/utils/phone-utils.test.js
+++ b/packages/template-chakra-storefront/src/utils/phone-utils.test.js
@@ -4,7 +4,7 @@
* SPDX-License-Identifier: BSD-3-Clause
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
-import * as utils from '@salesforce/retail-react-app/app/utils/phone-utils'
+import * as utils from './phone-utils'
test('formats a phone number', () => {
expect(utils.formatPhoneNumber()).toBeUndefined()
diff --git a/packages/template-retail-react-app/app/utils/product-utils.js b/packages/template-chakra-storefront/src/utils/product-utils.js
similarity index 99%
rename from packages/template-retail-react-app/app/utils/product-utils.js
rename to packages/template-chakra-storefront/src/utils/product-utils.js
index fcd646f54a..1ef404f688 100644
--- a/packages/template-retail-react-app/app/utils/product-utils.js
+++ b/packages/template-chakra-storefront/src/utils/product-utils.js
@@ -5,7 +5,7 @@
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
-import {productUrlBuilder, rebuildPathWithParams} from '@salesforce/retail-react-app/app/utils/url'
+import {productUrlBuilder, rebuildPathWithParams} from './url'
/**
* Get the human-friendly version of the variation values that users have selected.
diff --git a/packages/template-retail-react-app/app/utils/product-utils.test.js b/packages/template-chakra-storefront/src/utils/product-utils.test.js
similarity index 98%
rename from packages/template-retail-react-app/app/utils/product-utils.test.js
rename to packages/template-chakra-storefront/src/utils/product-utils.test.js
index 333e4923a9..8eb9d13bf2 100644
--- a/packages/template-retail-react-app/app/utils/product-utils.test.js
+++ b/packages/template-chakra-storefront/src/utils/product-utils.test.js
@@ -13,23 +13,17 @@ import {
filterImageGroups,
normalizeSetBundleProduct,
getUpdateBundleChildArray
-} from '@salesforce/retail-react-app/app/utils/product-utils'
+} from './product-utils'
import {
mockMasterProductHitWithMultipleVariants,
mockMasterProductHitWithOneVariant,
mockProductSetHit,
mockStandardProductHit
-} from '@salesforce/retail-react-app/app/mocks/product-search-hit-data'
-import {
- productSearch,
- getProduct
-} from '@salesforce/retail-react-app/app/components/product-tile/promo-callout.mock'
-import productSetWinterLookM from '@salesforce/retail-react-app/app/mocks/product-set-winter-lookM'
-import {mockProductSearch} from '@salesforce/retail-react-app/app/mocks/mock-data'
-import {
- mockProductBundle,
- mockBundledProductItemsVariant
-} from '@salesforce/retail-react-app/app/mocks/product-bundle.js'
+} from '../../mocks/product-search-hit-data'
+import {productSearch, getProduct} from '../components/product-tile/promo-callout.mock'
+import productSetWinterLookM from '../../mocks/product-set-winter-lookM'
+import {mockProductSearch} from '../../mocks/mock-data'
+import {mockProductBundle, mockBundledProductItemsVariant} from '../../mocks/product-bundle.js'
const imageGroups = [
{
diff --git a/packages/template-retail-react-app/app/utils/responsive-image.js b/packages/template-chakra-storefront/src/utils/responsive-image.js
similarity index 97%
rename from packages/template-retail-react-app/app/utils/responsive-image.js
rename to packages/template-chakra-storefront/src/utils/responsive-image.js
index 36ce3a43ce..d49d2e4695 100644
--- a/packages/template-retail-react-app/app/utils/responsive-image.js
+++ b/packages/template-chakra-storefront/src/utils/responsive-image.js
@@ -5,8 +5,8 @@
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
-import theme from '@salesforce/retail-react-app/app/components/shared/theme'
-import logger from '@salesforce/retail-react-app/app/utils/logger-instance'
+import {theme} from '@chakra-ui/theme'
+import logger from './logger-instance'
/**
* @param {Object} breakpoints
diff --git a/packages/template-retail-react-app/app/utils/responsive-image.test.js b/packages/template-chakra-storefront/src/utils/responsive-image.test.js
similarity index 97%
rename from packages/template-retail-react-app/app/utils/responsive-image.test.js
rename to packages/template-chakra-storefront/src/utils/responsive-image.test.js
index 629ad1cc32..6eb67df07e 100644
--- a/packages/template-retail-react-app/app/utils/responsive-image.test.js
+++ b/packages/template-chakra-storefront/src/utils/responsive-image.test.js
@@ -5,10 +5,7 @@
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
-import {
- getResponsiveImageAttributes,
- getSrc
-} from '@salesforce/retail-react-app/app/utils/responsive-image'
+import {getResponsiveImageAttributes, getSrc} from './responsive-image'
const disImageURL = {
withOptionalParams:
diff --git a/packages/template-retail-react-app/app/utils/routes-utils.js b/packages/template-chakra-storefront/src/utils/routes-utils.js
similarity index 82%
rename from packages/template-retail-react-app/app/utils/routes-utils.js
rename to packages/template-chakra-storefront/src/utils/routes-utils.js
index f4a5fbc170..03b4e95b48 100644
--- a/packages/template-retail-react-app/app/utils/routes-utils.js
+++ b/packages/template-chakra-storefront/src/utils/routes-utils.js
@@ -5,8 +5,7 @@
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
-import {getSites} from '@salesforce/retail-react-app/app/utils/site-utils'
-import {urlPartPositions} from '@salesforce/retail-react-app/app/constants'
+import {urlPartPositions} from '../../config/constants'
/**
* Construct literal routes based on url config
@@ -22,9 +21,18 @@ export const configureRoutes = (routes = [], config, {ignoredRoutes = []}) => {
if (!routes.length) return []
if (!config) return routes
- const {url: urlConfig} = config.app
+ // First, flatten the routes in case there are multiple paths in a route
+ // because the rest of the function expects routes with a single path.
+ routes = flattenRoutes(routes)
- const allSites = getSites()
+ const {url: urlConfig, sites, siteAliases} = config
+ const allSites = sites.map((site) => {
+ const alias = siteAliases[site.id]
+ return {
+ ...site,
+ ...(alias ? {alias} : {})
+ }
+ })
if (!allSites) return routes
let outputRoutes = []
@@ -109,3 +117,18 @@ export const configureRoutes = (routes = [], config, {ignoredRoutes = []}) => {
}, [])
return outputRoutes
}
+
+// Flatten routes with multiple paths
+const flattenRoutes = (routes) => {
+ const flatten = []
+ routes.forEach((route) => {
+ if (Array.isArray(route.path)) {
+ route.path.forEach((path) => {
+ flatten.push({path, component: route.component})
+ })
+ } else {
+ flatten.push(route)
+ }
+ })
+ return flatten
+}
diff --git a/packages/template-retail-react-app/app/utils/routes-utils.test.js b/packages/template-chakra-storefront/src/utils/routes-utils.test.js
similarity index 98%
rename from packages/template-retail-react-app/app/utils/routes-utils.test.js
rename to packages/template-chakra-storefront/src/utils/routes-utils.test.js
index c1b2d9795c..056ca12110 100644
--- a/packages/template-retail-react-app/app/utils/routes-utils.test.js
+++ b/packages/template-chakra-storefront/src/utils/routes-utils.test.js
@@ -5,7 +5,8 @@
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
import React from 'react'
-import {configureRoutes} from '@salesforce/retail-react-app/app/utils/routes-utils'
+import {configureRoutes} from './routes-utils'
+import mockConfig from '../../mock-config'
describe('configureRoutes', function () {
const cases = [
@@ -279,9 +280,8 @@ describe('configureRoutes', function () {
ignoredRoutes.length ? ` and ignore routes ${ignoredRoutes.join(',')}` : ' '
}`, () => {
const config = {
- app: {
- url: urlConfig
- }
+ ...mockConfig,
+ url: urlConfig
}
const configuredRoutes = configureRoutes(routes, config, {ignoredRoutes})
const paths = configuredRoutes.map((route) => route.path)
diff --git a/packages/template-retail-react-app/app/utils/site-utils.js b/packages/template-chakra-storefront/src/utils/site-utils.js
similarity index 96%
rename from packages/template-retail-react-app/app/utils/site-utils.js
rename to packages/template-chakra-storefront/src/utils/site-utils.js
index 740046d007..f2e34e3e97 100644
--- a/packages/template-retail-react-app/app/utils/site-utils.js
+++ b/packages/template-chakra-storefront/src/utils/site-utils.js
@@ -6,6 +6,7 @@
*/
import {getConfig} from '@salesforce/pwa-kit-runtime/utils/ssr-config'
+import {absoluteUrl} from './url'
/**
* This functions takes an url and returns a site object,
@@ -48,14 +49,14 @@ export const resolveSiteFromUrl = (url) => {
* @returns {object} site - a site object from app config
*/
export const getDefaultSite = () => {
- const {app} = getConfig()
+ const {defaultSite} = getConfig()
const sites = getSites()
if (sites.length === 1) {
return sites[0]
}
- return sites.find((site) => site.id === app.defaultSite)
+ return sites.find((site) => site.id === defaultSite)
}
/**
@@ -63,7 +64,8 @@ export const getDefaultSite = () => {
* @return {array} sites - list of sites including their aliases
*/
export const getSites = () => {
- const {sites = [], siteAliases = {}} = getConfig().app || {}
+ const config = getConfig()
+ const {sites = [], siteAliases = {}} = config || {}
if (!sites.length) {
throw new Error("Can't find any sites from the config. Please check your configuration")
@@ -121,11 +123,11 @@ export const getParamsFromPath = (path) => {
* @return {object} - url config
*/
export const getUrlConfig = () => {
- const {app} = getConfig()
- if (!app.url) {
+ const config = getConfig()
+ if (!config.url) {
throw new Error('Cannot find `url` key. Please check your configuration file.')
}
- return app.url
+ return config.url
}
/**
diff --git a/packages/template-retail-react-app/app/utils/site-utils.test.js b/packages/template-chakra-storefront/src/utils/site-utils.test.js
similarity index 74%
rename from packages/template-retail-react-app/app/utils/site-utils.test.js
rename to packages/template-chakra-storefront/src/utils/site-utils.test.js
index 169685c63c..4198fe3bed 100644
--- a/packages/template-retail-react-app/app/utils/site-utils.test.js
+++ b/packages/template-chakra-storefront/src/utils/site-utils.test.js
@@ -5,20 +5,13 @@
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
-import {
- getDefaultSite,
- getSites,
- resolveSiteFromUrl
-} from '@salesforce/retail-react-app/app/utils/site-utils'
+import {getDefaultSite, getSites, resolveSiteFromUrl} from './site-utils'
import {getConfig} from '@salesforce/pwa-kit-runtime/utils/ssr-config'
-import mockConfig from '@salesforce/retail-react-app/config/mocks/default'
-import {
- getParamsFromPath,
- resolveLocaleFromUrl
-} from '@salesforce/retail-react-app/app/utils/site-utils'
+import mockConfig from '../../mock-config'
+import {getParamsFromPath, resolveLocaleFromUrl} from './site-utils'
jest.mock('@salesforce/pwa-kit-runtime/utils/ssr-config', () => {
- const origin = jest.requireActual('@salesforce/pwa-kit-react-sdk/ssr/universal/utils')
+ const origin = jest.requireActual('@salesforce/pwa-kit-runtime/utils/ssr-config')
return {
...origin,
getConfig: jest.fn()
@@ -56,10 +49,7 @@ describe('resolveSiteFromUrl', function () {
// Mock the `default` config to the window global
const newConfig = {
...mockConfig,
- app: {
- ...mockConfig.app,
- defaultSite: 'site-3'
- }
+ defaultSite: 'site-3'
}
getConfig.mockImplementation(() => newConfig)
@@ -69,16 +59,11 @@ describe('resolveSiteFromUrl', function () {
})
test('returns correct site when aliases are not declared in the config', () => {
- getConfig.mockImplementation(() => {
- return {
- ...mockConfig,
- app: {
- ...mockConfig.app,
- siteAliases: {},
- defaultSite: 'site-2'
- }
- }
- })
+ getConfig.mockImplementation(() => ({
+ ...mockConfig,
+ defaultSite: 'site-2',
+ siteAliases: {}
+ }))
const result = resolveSiteFromUrl('https://www.example-site.com/')
expect(result.id).toBe('site-2')
@@ -109,10 +94,8 @@ describe('getDefaultSite', function () {
}
}
getConfig.mockImplementation(() => ({
- app: {
- ...mockConfig.app,
- sites: [siteMock]
- }
+ ...mockConfig,
+ sites: [siteMock]
}))
const defaultSite = getDefaultSite()
@@ -121,10 +104,8 @@ describe('getDefaultSite', function () {
test('returns site-2 as the default site according to the config', () => {
getConfig.mockImplementation(() => ({
- app: {
- ...mockConfig.app,
- defaultSite: 'site-2'
- }
+ ...mockConfig,
+ defaultSite: 'site-2'
}))
const expectedRes = {
@@ -253,60 +234,50 @@ describe('getParamsFromPath', function () {
]
cases.forEach(({path, expectedRes}) => {
test(`return expected values when path is ${path}`, () => {
- getConfig.mockImplementation(() => {
- return {
- ...mockConfig,
- app: {
- ...mockConfig.app,
- sites: [
- {
- id: 'RefArch',
- alias: 'us',
- l10n: {
- supportedCurrencies: ['USD'],
- defaultCurrency: 'USD',
- defaultLocale: 'en-US',
- supportedLocales: [
- {
- id: 'en-US',
- alias: 'en',
- preferredCurrency: 'USD'
- },
- {
- id: 'en-CA',
- alias: 'ca',
- preferredCurrency: 'USD'
- }
- ]
+ const modifiedMockConfig = {
+ ...mockConfig,
+ sites: [
+ {
+ id: 'RefArch',
+ l10n: {
+ defaultLocale: 'en-US',
+ supportedLocales: [
+ {
+ id: 'en-US',
+ alias: 'en',
+ preferredCurrency: 'USD'
}
- },
- {
- id: 'RefArchGlobal',
- alias: 'global',
- l10n: {
- supportedCurrencies: ['GBP', 'EUR', 'CNY', 'JPY'],
- defaultCurrency: 'GBP',
- supportedLocales: [
- {
- id: 'de-DE',
- preferredCurrency: 'EUR'
- },
- {
- id: 'en-GB',
- alias: 'uk',
- preferredCurrency: 'GBP'
- }
- ],
- defaultLocale: 'en-GB'
+ ]
+ }
+ },
+ {
+ ...mockConfig.sites[0]
+ },
+ {
+ ...mockConfig.sites[1],
+ l10n: {
+ ...mockConfig.sites[1].l10n,
+ supportedLocales: [
+ {
+ id: 'en-US',
+ alias: 'en',
+ preferredCurrency: 'USD'
+ },
+ {
+ id: 'en-CA',
+ alias: 'ca',
+ preferredCurrency: 'USD'
}
- }
- ]
+ ]
+ }
}
+ ],
+ siteAliases: {
+ ...mockConfig.siteAliases,
+ RefArch: 'us'
}
- })
- // getSites.mockImplementation(() => {
- // return
- // })
+ }
+ getConfig.mockImplementation(() => modifiedMockConfig)
expect(getParamsFromPath(path)).toEqual(expectedRes)
})
})
diff --git a/packages/template-chakra-storefront/src/utils/slas.js b/packages/template-chakra-storefront/src/utils/slas.js
new file mode 100644
index 0000000000..09403c2cd4
--- /dev/null
+++ b/packages/template-chakra-storefront/src/utils/slas.js
@@ -0,0 +1,74 @@
+/*
+ * Copyright (c) 2025, salesforce.com, inc.
+ * All rights reserved.
+ * SPDX-License-Identifier: BSD-3-Clause
+ * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
+ */
+
+import {getAppOrigin} from '@salesforce/pwa-kit-react-sdk/utils/url'
+
+import {createRemoteJWKSet as joseCreateRemoteJWKSet, jwtVerify, decodeJwt} from 'jose'
+
+const CLAIM = {
+ ISSUER: 'iss'
+}
+
+const DELIMITER = {
+ ISSUER: '/'
+}
+
+/**
+ * Throws a standardized error for SLAS token validation failures.
+ *
+ * @param {string} message - The error message describing the validation failure.
+ * @param {number} code - The HTTP status code associated with the error.
+ * @throws {Error} Always throws an error with the provided message and code.
+ */
+const throwSlasTokenValidationError = (message, code) => {
+ throw new Error(`SLAS Token Validation Error: ${message}`, code)
+}
+
+/**
+ * Creates a remote JSON Web Key Set (JWKS) URL for verifying JWTs.
+ *
+ * @param {string} tenantId - The tenant ID for the authentication request.
+ * @param {string} shortCode - The short code for the Salesforce instance.
+ * @returns {Function} A function that fetches and caches JWKS for JWT verification.
+ */
+export const createRemoteJWKSet = (tenantId, shortCode) => {
+ const appOrigin = getAppOrigin()
+ const JWKS_URI = `${appOrigin}/${shortCode}/${tenantId}/oauth2/jwks`
+
+ return joseCreateRemoteJWKSet(new URL(JWKS_URI))
+}
+
+/**
+ * Validates a SLAS (Salesforce Login and Authentication Service) callback token.
+ *
+ * @param {string} token - The JWT token to be validated.
+ * @param {string} shortCode - The short code for the Salesforce instance.
+ * @param {string} tenantId - The expected tenant ID for validation.
+ * @returns {Promise} Resolves with the decoded JWT payload if valid.
+ * @throws {Error} If the tenant ID does not match or the token is invalid.
+ */
+export const validateSlasCallbackToken = async (token, shortCode, tenantId) => {
+ const payload = decodeJwt(token)
+ const subClaim = payload[CLAIM.ISSUER]
+ const tokens = subClaim.split(DELIMITER.ISSUER)
+ const parsedTenantId = tokens[2]
+
+ // If a configuration object is provided, validate the tenant ID against the configured tenant ID.
+ if (parsedTenantId !== tenantId) {
+ throw new Error(
+ `The tenant ID in your PWA Kit configuration ("${tenantId}") does not match the tenant ID in the SLAS callback token ("${tenantId}").`
+ )
+ }
+
+ try {
+ const jwks = createRemoteJWKSet(tenantId, shortCode)
+ const {payload} = await jwtVerify(token, jwks, {})
+ return payload
+ } catch (error) {
+ throwSlasTokenValidationError(error.message, 401)
+ }
+}
diff --git a/packages/template-retail-react-app/app/utils/test-utils.js b/packages/template-chakra-storefront/src/utils/test-utils.js
similarity index 88%
rename from packages/template-retail-react-app/app/utils/test-utils.js
rename to packages/template-chakra-storefront/src/utils/test-utils.js
index c6105b6f37..4b739b1098 100644
--- a/packages/template-retail-react-app/app/utils/test-utils.js
+++ b/packages/template-chakra-storefront/src/utils/test-utils.js
@@ -7,23 +7,23 @@
import React, {useEffect, useRef} from 'react'
import {render} from '@testing-library/react'
import {BrowserRouter as Router} from 'react-router-dom'
-import {ChakraProvider} from '@salesforce/retail-react-app/app/components/shared/ui'
+import {ChakraProvider} from '@chakra-ui/react'
import PropTypes from 'prop-types'
-import theme from '@salesforce/retail-react-app/app/theme'
-import {AddToCartModalProvider} from '@salesforce/retail-react-app/app/hooks/use-add-to-cart-modal'
+import theme from '../theme'
+import {AddToCartModalProvider} from '../hooks/use-add-to-cart-modal'
import {ServerContext} from '@salesforce/pwa-kit-react-sdk/ssr/universal/contexts'
import {IntlProvider} from 'react-intl'
import {CommerceApiProvider} from '@salesforce/commerce-sdk-react'
import {PageContext, Region} from '@salesforce/commerce-sdk-react/components'
import {withReactQuery} from '@salesforce/pwa-kit-react-sdk/ssr/universal/components/with-react-query'
-import fallbackMessages from '@salesforce/retail-react-app/app/static/translations/compiled/en-GB.json'
-import mockConfig from '@salesforce/retail-react-app/config/mocks/default'
+import fallbackMessages from '../static/translations/compiled/en-GB.json'
+import mockConfig from '../../mock-config'
// Contexts
-import {CurrencyProvider, MultiSiteProvider} from '@salesforce/retail-react-app/app/contexts'
+import {CurrencyProvider, MultiSiteProvider} from '../contexts'
-import {createUrlTemplate} from '@salesforce/retail-react-app/app/utils/url'
-import {getSiteByReference} from '@salesforce/retail-react-app/app/utils/site-utils'
+import {createUrlTemplate} from './url'
+import {getSiteByReference} from './site-utils'
import jwt from 'jsonwebtoken'
import userEvent from '@testing-library/user-event'
// This JWT's payload is special
@@ -96,7 +96,8 @@ export const TestProviders = ({
children,
locale = {id: DEFAULT_LOCALE},
messages = fallbackMessages,
- appConfig = mockConfig.app,
+ config = mockConfig,
+ site,
siteAlias = DEFAULT_SITE,
isGuest = false,
bypassAuth = true
@@ -110,15 +111,11 @@ export const TestProviders = ({
}
}, [])
- const commerceApiConfig = appConfig.commerceAPI
+ // Prioritize the site prop over the siteAlias prop or the default site
+ site = site || getSiteByReference(siteAlias || config.defaultSite)
- const site = getSiteByReference(siteAlias || appConfig.defaultSite)
-
- const buildUrl = createUrlTemplate(
- appConfig,
- site?.alias || site?.id,
- locale.alias || locale.id
- )
+ const commerceApiConfig = config.commerceAPI
+ const buildUrl = createUrlTemplate(config, site?.alias || site?.id, locale.alias || locale.id)
return (
@@ -155,7 +152,8 @@ TestProviders.propTypes = {
initialProductLists: PropTypes.object,
messages: PropTypes.object,
locale: PropTypes.object,
- appConfig: PropTypes.object,
+ config: PropTypes.object,
+ site: PropTypes.object,
siteAlias: PropTypes.string,
bypassAuth: PropTypes.bool,
isGuest: PropTypes.bool
@@ -206,12 +204,12 @@ export const renderWithProviders = (children, options) => {
* @returns {string} URL pathname for the given path
*/
export const createPathWithDefaults = (path) => {
- const {app} = mockConfig
- const defaultSite = app.sites.find((site) => site.id === app.defaultSite)
- const siteAlias = app.siteAliases[defaultSite.id]
+ const {siteAliases, sites} = mockConfig
+ const defaultSite = sites.find((site) => site.id === mockConfig.defaultSite)
+ const siteAlias = siteAliases[defaultSite.id]
const defaultLocale = defaultSite.l10n.defaultLocale
- const buildUrl = createUrlTemplate(app, siteAlias || defaultSite, defaultLocale)
+ const buildUrl = createUrlTemplate(mockConfig, siteAlias || defaultSite, defaultLocale)
const updatedPath = buildUrl(path, siteAlias || defaultSite.id, defaultLocale)
return updatedPath
diff --git a/packages/template-retail-react-app/app/utils/url.js b/packages/template-chakra-storefront/src/utils/url.js
similarity index 93%
rename from packages/template-retail-react-app/app/utils/url.js
rename to packages/template-chakra-storefront/src/utils/url.js
index 1850325eae..6ad45dec5f 100644
--- a/packages/template-retail-react-app/app/utils/url.js
+++ b/packages/template-chakra-storefront/src/utils/url.js
@@ -11,19 +11,22 @@ import {
getParamsFromPath,
getDefaultSite,
getSiteByReference
-} from '@salesforce/retail-react-app/app/utils/site-utils'
-import {HOME_HREF, urlPartPositions} from '@salesforce/retail-react-app/app/constants'
+} from './site-utils'
+import {urlPartPositions} from '../../config/constants'
/**
- * Constructs an absolute URL from a given path and an optional application origin.
+ * A function that takes a path and qualifies it with the current host and protocol.
+ * This function works on the client and on the server.
*
- * @param {string} path - The relative URL path to be appended to the origin.
- * @param {string} [appOrigin] - The optional application origin (e.g., "https://example.com").
- * If not provided, the function will call `getAppOrigin()`.
- * @returns {string} - The fully qualified URL as a string.
+ * @example
+ * absoluteUrl(/women/dresses?color=black)
+ *
+ * // => http(s)://www.site.com/women/dresses?color=black
+ * @param path
+ * @returns {string|*}
*/
-export const absoluteUrl = (path, appOrigin) => {
- return new URL(path, appOrigin || getAppOrigin()).toString()
+export const absoluteUrl = (path) => {
+ return new URL(path, getAppOrigin()).toString()
}
/**
@@ -207,7 +210,7 @@ export const createUrlTemplate = (appConfig, siteRef, localeRef) => {
return (path, site, locale) => {
const isHomeWithDefaultSiteAndLocale =
- path === HOME_HREF &&
+ path === appConfig.pages.home.path &&
(defaultSite.id === site || (defaultSite.alias && defaultSite.alias === site)) &&
(defaultLocale.id === locale || (defaultLocale.alias && defaultLocale.alias === locale))
diff --git a/packages/template-retail-react-app/app/utils/url.test.js b/packages/template-chakra-storefront/src/utils/url.test.js
similarity index 93%
rename from packages/template-retail-react-app/app/utils/url.test.js
rename to packages/template-chakra-storefront/src/utils/url.test.js
index 0045a93247..2b657e4c4f 100644
--- a/packages/template-retail-react-app/app/utils/url.test.js
+++ b/packages/template-chakra-storefront/src/utils/url.test.js
@@ -16,9 +16,9 @@ import {
absoluteUrl,
createUrlTemplate,
removeSiteLocaleFromPath
-} from '@salesforce/retail-react-app/app/utils/url'
-import {getUrlConfig} from '@salesforce/retail-react-app/app/utils/site-utils'
-import mockConfig from '@salesforce/retail-react-app/config/mocks/default'
+} from './url'
+import {getUrlConfig} from './site-utils'
+import mockConfig from '../../mock-config'
afterEach(() => {
jest.clearAllMocks()
@@ -31,8 +31,8 @@ jest.mock('@salesforce/pwa-kit-react-sdk/utils/url', () => {
getAppOrigin: jest.fn(() => 'https://www.example.com')
}
})
-jest.mock('./utils', () => {
- const original = jest.requireActual('./utils')
+jest.mock('@salesforce/pwa-kit-runtime/utils/ssr-config', () => {
+ const original = jest.requireActual('@salesforce/pwa-kit-runtime/utils/ssr-config')
return {
...original,
getConfig: jest.fn(() => mockConfig)
@@ -138,11 +138,11 @@ describe('url builder test', () => {
})
describe('getPathWithLocale', () => {
- getUrlConfig.mockImplementation(() => mockConfig.app.url)
+ getUrlConfig.mockImplementation(() => mockConfig.url)
test('getPathWithLocale returns expected for PLP', () => {
const location = new URL('http://localhost:3000/uk/it-IT/category/newarrivals-womens')
- const buildUrl = createUrlTemplate(mockConfig.app, 'uk', 'it-IT')
+ const buildUrl = createUrlTemplate(mockConfig, 'uk', 'it-IT')
const relativeUrl = getPathWithLocale('fr-FR', buildUrl, {location})
expect(relativeUrl).toBe(`/uk/fr/category/newarrivals-womens`)
@@ -150,7 +150,7 @@ describe('getPathWithLocale', () => {
test('getPathWithLocale uses default site for siteRef when it is no defined in the url', () => {
const location = new URL('http://localhost:3000/category/newarrivals-womens')
- const buildUrl = createUrlTemplate(mockConfig.app, 'uk', 'it-IT')
+ const buildUrl = createUrlTemplate(mockConfig, 'uk', 'it-IT')
const relativeUrl = getPathWithLocale('fr-FR', buildUrl, {location})
expect(relativeUrl).toBe(`/uk/fr/category/newarrivals-womens`)
@@ -160,7 +160,7 @@ describe('getPathWithLocale', () => {
const location = new URL(
'http://localhost:3000/uk/it-IT/category/newarrivals-womens?limit=25&refine=c_refinementColor%3DBianco&sort=best-matches&offset=25'
)
- const buildUrl = createUrlTemplate(mockConfig.app, 'uk', 'it-IT')
+ const buildUrl = createUrlTemplate(mockConfig, 'uk', 'it-IT')
const relativeUrl = getPathWithLocale('fr-FR', buildUrl, {
disallowParams: ['refine'],
@@ -173,7 +173,7 @@ describe('getPathWithLocale', () => {
test('getPathWithLocale returns expected for Homepage', () => {
const location = new URL('http://localhost:3000/uk/it-IT/')
- const buildUrl = createUrlTemplate(mockConfig.app, 'uk', 'it-IT')
+ const buildUrl = createUrlTemplate(mockConfig, 'uk', 'it-IT')
const relativeUrl = getPathWithLocale('fr-FR', buildUrl, {location})
expect(relativeUrl).toBe(`/uk/fr/`)
@@ -181,7 +181,7 @@ describe('getPathWithLocale', () => {
test('getPathWithLocale returns / when both site and locale are default', () => {
const location = new URL('http://localhost:3000/')
- const buildUrl = createUrlTemplate(mockConfig.app, 'uk', 'en-GB')
+ const buildUrl = createUrlTemplate(mockConfig, 'uk', 'en-GB')
const relativeUrl = getPathWithLocale('en-GB', buildUrl, {location})
expect(relativeUrl).toBe(`/`)
@@ -189,12 +189,12 @@ describe('getPathWithLocale', () => {
})
describe('createUrlTemplate tests', () => {
- const defaultSite = mockConfig.app.sites[0]
- const defaultAlias = mockConfig.app.siteAliases[defaultSite.id]
+ const defaultSite = mockConfig.sites[0]
+ const defaultAlias = mockConfig.siteAliases[defaultSite.id]
const defaultSiteMock = {...defaultSite, alias: defaultAlias}
- const nonDefaultSite = mockConfig.app.sites[1]
- const nonDefaultAlias = mockConfig.app.siteAliases[nonDefaultSite.id]
+ const nonDefaultSite = mockConfig.sites[1]
+ const nonDefaultAlias = mockConfig.siteAliases[nonDefaultSite.id]
const nonDefaultSiteMock = {...nonDefaultSite, alias: nonDefaultAlias}
const configValues = ['path', 'query_param', 'none']
@@ -354,13 +354,13 @@ describe('createUrlTemplate tests', () => {
locale?.alias ? `, locale.alias:${locale.alias}` : ''
} and urlConfig:${JSON.stringify(urlConfig)}`, () => {
const buildUrl = createUrlTemplate(
- {url: urlConfig},
+ {url: urlConfig, pages: {home: {path: '/'}}},
site.id,
locale?.alias || locale?.id
)
const resultUrl = buildUrl(
path,
- mockConfig.app.siteAliases[site.id],
+ mockConfig.siteAliases[site.id],
locale?.alias || locale?.id
)
diff --git a/packages/template-retail-react-app/app/utils/utils.js b/packages/template-chakra-storefront/src/utils/utils.js
similarity index 100%
rename from packages/template-retail-react-app/app/utils/utils.js
rename to packages/template-chakra-storefront/src/utils/utils.js
diff --git a/packages/template-retail-react-app/app/utils/utils.test.js b/packages/template-chakra-storefront/src/utils/utils.test.js
similarity index 97%
rename from packages/template-retail-react-app/app/utils/utils.test.js
rename to packages/template-chakra-storefront/src/utils/utils.test.js
index e4a6b64d0e..6115aa530d 100644
--- a/packages/template-retail-react-app/app/utils/utils.test.js
+++ b/packages/template-chakra-storefront/src/utils/utils.test.js
@@ -4,9 +4,9 @@
* SPDX-License-Identifier: BSD-3-Clause
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
-import * as utils from '@salesforce/retail-react-app/app/utils/utils'
+import * as utils from './utils'
import EventEmitter from 'events'
-import {flatten, shallowEquals} from '@salesforce/retail-react-app/app/utils/utils'
+import {flatten, shallowEquals} from './utils'
afterEach(() => {
jest.clearAllMocks()
diff --git a/packages/template-chakra-storefront/tsconfig.json b/packages/template-chakra-storefront/tsconfig.json
new file mode 100644
index 0000000000..081d3af589
--- /dev/null
+++ b/packages/template-chakra-storefront/tsconfig.json
@@ -0,0 +1,36 @@
+{
+ "compilerOptions": {
+ /* Language and Environment */
+ "target": "es2016",
+ "jsx": "react-jsx",
+
+ /* Modules */
+ "module": "esnext",
+ "moduleResolution": "node",
+ "baseUrl": "./",
+
+ /* JavaScript Support */
+ "allowJs": true,
+
+ /* Json Support */
+ "resolveJsonModule": true,
+
+ /* Emit */
+ "declaration": true,
+ "declarationMap": true,
+ "sourceMap": true,
+ "outDir": "./dist",
+
+ /* Interop Constraints */
+ "isolatedModules": true,
+ "esModuleInterop": true,
+ "forceConsistentCasingInFileNames": true,
+
+ /* Type Checking */
+ "strict": true,
+
+ /* Completeness */
+ "skipLibCheck": true
+ },
+ "exclude": ["node_modules", "src/static"]
+}
diff --git a/packages/template-retail-react-app/worker/main.js b/packages/template-chakra-storefront/worker/main.js
similarity index 100%
rename from packages/template-retail-react-app/worker/main.js
rename to packages/template-chakra-storefront/worker/main.js
diff --git a/packages/template-express-minimal/.eslintignore b/packages/template-express-minimal/.eslintignore
index 8fb1b26ee5..672dce937a 100644
--- a/packages/template-express-minimal/.eslintignore
+++ b/packages/template-express-minimal/.eslintignore
@@ -1,7 +1,7 @@
build
coverage
docs
-app/static
+src/static
jest.config.js
webpack
scripts/generator/assets
diff --git a/packages/template-express-minimal/jest.config.js b/packages/template-express-minimal/jest.config.js
index 2c50129d40..8a21ae2beb 100644
--- a/packages/template-express-minimal/jest.config.js
+++ b/packages/template-express-minimal/jest.config.js
@@ -16,5 +16,15 @@ module.exports = {
statements: 85
}
},
- collectCoverageFrom: ['app/**']
+ collectCoverageFrom: ['app/**'],
+
+ // This is a monorepo only issue!
+ // Jest doesn't know how to resolve this dependency unless we upgrade to jest 29
+ // since it's in monorepo, the node_modules folders are not linked
+ // we have to point it to pwa-kit-dev node_modules
+ moduleNameMapper: {
+ 'tsx/cjs/api': '/../pwa-kit-dev/node_modules/tsx/dist/cjs/api/index.cjs'
+ },
+ testEnvironment: 'node'
}
+
diff --git a/packages/template-express-minimal/package-lock.json b/packages/template-express-minimal/package-lock.json
index f96a422db0..89abad2476 100644
--- a/packages/template-express-minimal/package-lock.json
+++ b/packages/template-express-minimal/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "template-express-minimal",
- "version": "3.10.0-dev.1",
+ "version": "4.0.0-extensibility-preview.5",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "template-express-minimal",
- "version": "3.10.0-dev.1",
+ "version": "4.0.0-extensibility-preview.5",
"license": "See license in LICENSE",
"devDependencies": {
"supertest": "^4.0.2"
@@ -16,19 +16,32 @@
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/call-bind": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
- "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
+ "node_modules/call-bind-apply-helpers": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
+ "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "es-define-property": "^1.0.0",
"es-errors": "^1.3.0",
- "function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.4",
- "set-function-length": "^1.2.1"
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/call-bound": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz",
+ "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind-apply-helpers": "^1.0.2",
+ "get-intrinsic": "^1.3.0"
},
"engines": {
"node": ">= 0.4"
@@ -42,6 +55,7 @@
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"delayed-stream": "~1.0.0"
},
@@ -54,6 +68,7 @@
"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz",
"integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==",
"dev": true,
+ "license": "MIT",
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
@@ -62,66 +77,96 @@
"version": "2.1.4",
"resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz",
"integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/core-util-is": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
"integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/debug": {
"version": "3.2.7",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
"integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ms": "^2.1.1"
}
},
- "node_modules/define-data-property": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
- "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
- "dev": true,
- "dependencies": {
- "es-define-property": "^1.0.0",
- "es-errors": "^1.3.0",
- "gopd": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
"integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.4.0"
}
},
- "node_modules/es-define-property": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
- "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
+ "node_modules/dunder-proto": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
+ "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "get-intrinsic": "^1.2.4"
+ "call-bind-apply-helpers": "^1.0.1",
+ "es-errors": "^1.3.0",
+ "gopd": "^1.2.0"
},
"engines": {
"node": ">= 0.4"
}
},
+ "node_modules/es-define-property": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
+ "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/es-errors": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
"integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
"dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-object-atoms": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
+ "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-set-tostringtag": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
+ "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.6",
+ "has-tostringtag": "^1.0.2",
+ "hasown": "^2.0.2"
+ },
"engines": {
"node": ">= 0.4"
}
@@ -130,17 +175,21 @@
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
"integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/form-data": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz",
- "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==",
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.3.tgz",
+ "integrity": "sha512-XHIrMD0NpDrNM/Ckf7XJiBbLl57KEhT3+i3yY+eWm+cqYZJQTZrKo8Y8AWKnuV5GT4scfuUGt9LzNoIx3dU1nQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"asynckit": "^0.4.0",
- "combined-stream": "^1.0.6",
- "mime-types": "^2.1.12"
+ "combined-stream": "^1.0.8",
+ "es-set-tostringtag": "^2.1.0",
+ "mime-types": "^2.1.35",
+ "safe-buffer": "^5.2.1"
},
"engines": {
"node": ">= 0.12"
@@ -152,6 +201,7 @@
"integrity": "sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ==",
"deprecated": "Please upgrade to latest, formidable@v2 or formidable@v3! Check these notes: https://bit.ly/2ZEqIau",
"dev": true,
+ "license": "MIT",
"funding": {
"url": "https://ko-fi.com/tunnckoCore/commissions"
}
@@ -161,21 +211,28 @@
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
"integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
"dev": true,
+ "license": "MIT",
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/get-intrinsic": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
- "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
+ "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
+ "call-bind-apply-helpers": "^1.0.2",
+ "es-define-property": "^1.0.1",
"es-errors": "^1.3.0",
+ "es-object-atoms": "^1.1.1",
"function-bind": "^1.1.2",
- "has-proto": "^1.0.1",
- "has-symbols": "^1.0.3",
- "hasown": "^2.0.0"
+ "get-proto": "^1.0.1",
+ "gopd": "^1.2.0",
+ "has-symbols": "^1.1.0",
+ "hasown": "^2.0.2",
+ "math-intrinsics": "^1.1.0"
},
"engines": {
"node": ">= 0.4"
@@ -184,35 +241,39 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/gopd": {
+ "node_modules/get-proto": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
- "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
+ "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
+ "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "get-intrinsic": "^1.1.3"
+ "dunder-proto": "^1.0.1",
+ "es-object-atoms": "^1.0.0"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "engines": {
+ "node": ">= 0.4"
}
},
- "node_modules/has-property-descriptors": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
- "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
+ "node_modules/gopd": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
+ "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
"dev": true,
- "dependencies": {
- "es-define-property": "^1.0.0"
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/has-proto": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz",
- "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
+ "node_modules/has-symbols": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
+ "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.4"
},
@@ -220,11 +281,15 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/has-symbols": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
- "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
+ "node_modules/has-tostringtag": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
+ "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-symbols": "^1.0.3"
+ },
"engines": {
"node": ">= 0.4"
},
@@ -237,6 +302,7 @@
"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
"integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"function-bind": "^1.1.2"
},
@@ -248,19 +314,32 @@
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/isarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
"integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/math-intrinsics": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
+ "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
},
"node_modules/methods": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
"integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.6"
}
@@ -270,6 +349,7 @@
"resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
"integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
"dev": true,
+ "license": "MIT",
"bin": {
"mime": "cli.js"
},
@@ -282,6 +362,7 @@
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
"integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.6"
}
@@ -291,6 +372,7 @@
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
"integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"mime-db": "1.52.0"
},
@@ -302,13 +384,15 @@
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/object-inspect": {
- "version": "1.13.2",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz",
- "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==",
+ "version": "1.13.4",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
+ "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.4"
},
@@ -320,15 +404,17 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/qs": {
- "version": "6.12.3",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.12.3.tgz",
- "integrity": "sha512-AWJm14H1vVaO/iNZ4/hO+HyaTehuy9nRqVdkTqlJt0HWvBiBIEXFmb4C0DGeYo3Xes9rrEW+TxHsaigCbN5ICQ==",
+ "version": "6.14.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz",
+ "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
- "side-channel": "^1.0.6"
+ "side-channel": "^1.1.0"
},
"engines": {
"node": ">=0.6"
@@ -342,6 +428,7 @@
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
"integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
@@ -352,39 +439,102 @@
"util-deprecate": "~1.0.1"
}
},
- "node_modules/safe-buffer": {
+ "node_modules/readable-stream/node_modules/safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/set-function-length": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
- "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
+ "node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
"dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/side-channel": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
+ "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "define-data-property": "^1.1.4",
"es-errors": "^1.3.0",
- "function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.4",
- "gopd": "^1.0.1",
- "has-property-descriptors": "^1.0.2"
+ "object-inspect": "^1.13.3",
+ "side-channel-list": "^1.0.0",
+ "side-channel-map": "^1.0.1",
+ "side-channel-weakmap": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/side-channel": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz",
- "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
+ "node_modules/side-channel-list": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz",
+ "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.7",
"es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.4",
- "object-inspect": "^1.13.1"
+ "object-inspect": "^1.13.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/side-channel-map": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",
+ "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bound": "^1.0.2",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.5",
+ "object-inspect": "^1.13.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/side-channel-weakmap": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
+ "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bound": "^1.0.2",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.5",
+ "object-inspect": "^1.13.3",
+ "side-channel-map": "^1.0.1"
},
"engines": {
"node": ">= 0.4"
@@ -398,16 +548,25 @@
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"safe-buffer": "~5.1.0"
}
},
+ "node_modules/string_decoder/node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/superagent": {
"version": "3.8.3",
"resolved": "https://registry.npmjs.org/superagent/-/superagent-3.8.3.tgz",
"integrity": "sha512-GLQtLMCoEIK4eDv6OGtkOoSMt3D+oq0y3dsxMuYuDvaNUvuT8eFBuLmfR0iYYzHC1e8hpzC6ZsxbuP6DIalMFA==",
"deprecated": "Please upgrade to v9.0.0+ as we have fixed a public vulnerability with formidable dependency. Note that v9.0.0+ requires Node.js v14.18.0+. See https://github.com/ladjs/superagent/pull/1800 for insight. This project is supported and maintained by the team at Forward Email @ https://forwardemail.net",
"dev": true,
+ "license": "MIT",
"dependencies": {
"component-emitter": "^1.2.0",
"cookiejar": "^2.1.0",
@@ -429,6 +588,7 @@
"resolved": "https://registry.npmjs.org/supertest/-/supertest-4.0.2.tgz",
"integrity": "sha512-1BAbvrOZsGA3YTCWqbmh14L0YEq0EGICX/nBnfkfVJn7SrxQV1I3pMYjSzG9y/7ZU2V9dWqyqk2POwxlb09duQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"methods": "^1.1.2",
"superagent": "^3.8.3"
@@ -441,7 +601,8 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
}
}
}
diff --git a/packages/template-express-minimal/package.json b/packages/template-express-minimal/package.json
index b4564c4c1d..8c394876ce 100644
--- a/packages/template-express-minimal/package.json
+++ b/packages/template-express-minimal/package.json
@@ -1,6 +1,6 @@
{
"name": "template-express-minimal",
- "version": "3.10.0-dev.1",
+ "version": "4.0.0-extensibility-preview.5",
"private": true,
"license": "See license in LICENSE",
"scripts": {
@@ -15,8 +15,8 @@
"test": "pwa-kit-dev test"
},
"devDependencies": {
- "@salesforce/pwa-kit-dev": "3.10.0-dev.1",
- "@salesforce/pwa-kit-runtime": "3.10.0-dev.1",
+ "@salesforce/pwa-kit-dev": "4.0.0-extensibility-preview.5",
+ "@salesforce/pwa-kit-runtime": "4.0.0-extensibility-preview.5",
"supertest": "^4.0.2"
},
"mobify": {
diff --git a/packages/template-express-minimal/app/ssr.js b/packages/template-express-minimal/src/ssr.js
similarity index 100%
rename from packages/template-express-minimal/app/ssr.js
rename to packages/template-express-minimal/src/ssr.js
diff --git a/packages/template-express-minimal/app/ssr.test.js b/packages/template-express-minimal/src/ssr.test.js
similarity index 96%
rename from packages/template-express-minimal/app/ssr.test.js
rename to packages/template-express-minimal/src/ssr.test.js
index 5a002b3bc7..1572774ee2 100644
--- a/packages/template-express-minimal/app/ssr.test.js
+++ b/packages/template-express-minimal/src/ssr.test.js
@@ -9,6 +9,8 @@
const request = require('supertest')
const app = require('./ssr')
+jest.useFakeTimers()
+
describe('server', () => {
afterAll(() => app.server.close())
test('responds with HTML', () => {
diff --git a/packages/template-express-minimal/app/static/favicon.ico b/packages/template-express-minimal/src/static/favicon.ico
similarity index 100%
rename from packages/template-express-minimal/app/static/favicon.ico
rename to packages/template-express-minimal/src/static/favicon.ico
diff --git a/packages/template-mrt-reference-app/.eslintignore b/packages/template-mrt-reference-app/.eslintignore
index 8fb1b26ee5..672dce937a 100644
--- a/packages/template-mrt-reference-app/.eslintignore
+++ b/packages/template-mrt-reference-app/.eslintignore
@@ -1,7 +1,7 @@
build
coverage
docs
-app/static
+src/static
jest.config.js
webpack
scripts/generator/assets
diff --git a/packages/template-mrt-reference-app/package-lock.json b/packages/template-mrt-reference-app/package-lock.json
index b3922c8df0..0f21e13952 100644
--- a/packages/template-mrt-reference-app/package-lock.json
+++ b/packages/template-mrt-reference-app/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "template-mrt-reference-app",
- "version": "3.10.0-dev.1",
+ "version": "4.0.0-extensibility-preview.5",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "template-mrt-reference-app",
- "version": "3.10.0-dev.1",
+ "version": "4.0.0-extensibility-preview.5",
"license": "See license in LICENSE",
"dependencies": {
"@aws-sdk/client-cloudwatch-logs": "^3.450.0",
@@ -30,6 +30,7 @@
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/@aws-crypto/crc32/-/crc32-5.2.0.tgz",
"integrity": "sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==",
+ "license": "Apache-2.0",
"dependencies": {
"@aws-crypto/util": "^5.2.0",
"@aws-sdk/types": "^3.222.0",
@@ -43,6 +44,7 @@
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/@aws-crypto/crc32c/-/crc32c-5.2.0.tgz",
"integrity": "sha512-+iWb8qaHLYKrNvGRbiYRHSdKRWhto5XlZUEBwDjYNf+ly5SVYG6zEoYIdxvf5R3zyeP16w4PLBn3rH1xc74Rag==",
+ "license": "Apache-2.0",
"dependencies": {
"@aws-crypto/util": "^5.2.0",
"@aws-sdk/types": "^3.222.0",
@@ -53,6 +55,7 @@
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/@aws-crypto/sha1-browser/-/sha1-browser-5.2.0.tgz",
"integrity": "sha512-OH6lveCFfcDjX4dbAvCFSYUjJZjDr/3XJ3xHtjn3Oj5b9RjojQo8npoLeA/bNwkOkrSQ0wgrHzXk4tDRxGKJeg==",
+ "license": "Apache-2.0",
"dependencies": {
"@aws-crypto/supports-web-crypto": "^5.2.0",
"@aws-crypto/util": "^5.2.0",
@@ -66,6 +69,7 @@
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz",
"integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==",
+ "license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
},
@@ -77,6 +81,7 @@
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz",
"integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==",
+ "license": "Apache-2.0",
"dependencies": {
"@smithy/is-array-buffer": "^2.2.0",
"tslib": "^2.6.2"
@@ -89,6 +94,7 @@
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz",
"integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==",
+ "license": "Apache-2.0",
"dependencies": {
"@smithy/util-buffer-from": "^2.2.0",
"tslib": "^2.6.2"
@@ -101,6 +107,7 @@
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-5.2.0.tgz",
"integrity": "sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==",
+ "license": "Apache-2.0",
"dependencies": {
"@aws-crypto/sha256-js": "^5.2.0",
"@aws-crypto/supports-web-crypto": "^5.2.0",
@@ -115,6 +122,7 @@
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz",
"integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==",
+ "license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
},
@@ -126,6 +134,7 @@
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz",
"integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==",
+ "license": "Apache-2.0",
"dependencies": {
"@smithy/is-array-buffer": "^2.2.0",
"tslib": "^2.6.2"
@@ -138,6 +147,7 @@
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz",
"integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==",
+ "license": "Apache-2.0",
"dependencies": {
"@smithy/util-buffer-from": "^2.2.0",
"tslib": "^2.6.2"
@@ -150,6 +160,7 @@
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-5.2.0.tgz",
"integrity": "sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==",
+ "license": "Apache-2.0",
"dependencies": {
"@aws-crypto/util": "^5.2.0",
"@aws-sdk/types": "^3.222.0",
@@ -163,6 +174,7 @@
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-5.2.0.tgz",
"integrity": "sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==",
+ "license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
}
@@ -171,6 +183,7 @@
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-5.2.0.tgz",
"integrity": "sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==",
+ "license": "Apache-2.0",
"dependencies": {
"@aws-sdk/types": "^3.222.0",
"@smithy/util-utf8": "^2.0.0",
@@ -181,6 +194,7 @@
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz",
"integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==",
+ "license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
},
@@ -192,6 +206,7 @@
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz",
"integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==",
+ "license": "Apache-2.0",
"dependencies": {
"@smithy/is-array-buffer": "^2.2.0",
"tslib": "^2.6.2"
@@ -204,6 +219,7 @@
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz",
"integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==",
+ "license": "Apache-2.0",
"dependencies": {
"@smithy/util-buffer-from": "^2.2.0",
"tslib": "^2.6.2"
@@ -213,911 +229,884 @@
}
},
"node_modules/@aws-sdk/client-cloudwatch-logs": {
- "version": "3.614.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/client-cloudwatch-logs/-/client-cloudwatch-logs-3.614.0.tgz",
- "integrity": "sha512-StAsLNu6qKBb8GkpFenHl0+pSPACzLwf9ofAxIKZPYUI+7a0amRI/2jVajiCOvTmtZdV5L0Cz39zuWMky0yGjw==",
+ "version": "3.767.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/client-cloudwatch-logs/-/client-cloudwatch-logs-3.767.0.tgz",
+ "integrity": "sha512-s2XEomADqRxBuRsefNj34ce3+bmpe+80jawdOp/pXvOALKE0T9hIMy7uHlrFEQoTFskK8kx+fs7gKL3SZvuMZg==",
+ "license": "Apache-2.0",
"dependencies": {
"@aws-crypto/sha256-browser": "5.2.0",
"@aws-crypto/sha256-js": "5.2.0",
- "@aws-sdk/client-sso-oidc": "3.614.0",
- "@aws-sdk/client-sts": "3.614.0",
- "@aws-sdk/core": "3.614.0",
- "@aws-sdk/credential-provider-node": "3.614.0",
- "@aws-sdk/middleware-host-header": "3.609.0",
- "@aws-sdk/middleware-logger": "3.609.0",
- "@aws-sdk/middleware-recursion-detection": "3.609.0",
- "@aws-sdk/middleware-user-agent": "3.614.0",
- "@aws-sdk/region-config-resolver": "3.614.0",
- "@aws-sdk/types": "3.609.0",
- "@aws-sdk/util-endpoints": "3.614.0",
- "@aws-sdk/util-user-agent-browser": "3.609.0",
- "@aws-sdk/util-user-agent-node": "3.614.0",
- "@smithy/config-resolver": "^3.0.5",
- "@smithy/core": "^2.2.6",
- "@smithy/eventstream-serde-browser": "^3.0.4",
- "@smithy/eventstream-serde-config-resolver": "^3.0.3",
- "@smithy/eventstream-serde-node": "^3.0.4",
- "@smithy/fetch-http-handler": "^3.2.1",
- "@smithy/hash-node": "^3.0.3",
- "@smithy/invalid-dependency": "^3.0.3",
- "@smithy/middleware-content-length": "^3.0.3",
- "@smithy/middleware-endpoint": "^3.0.5",
- "@smithy/middleware-retry": "^3.0.9",
- "@smithy/middleware-serde": "^3.0.3",
- "@smithy/middleware-stack": "^3.0.3",
- "@smithy/node-config-provider": "^3.1.4",
- "@smithy/node-http-handler": "^3.1.2",
- "@smithy/protocol-http": "^4.0.3",
- "@smithy/smithy-client": "^3.1.7",
- "@smithy/types": "^3.3.0",
- "@smithy/url-parser": "^3.0.3",
- "@smithy/util-base64": "^3.0.0",
- "@smithy/util-body-length-browser": "^3.0.0",
- "@smithy/util-body-length-node": "^3.0.0",
- "@smithy/util-defaults-mode-browser": "^3.0.9",
- "@smithy/util-defaults-mode-node": "^3.0.9",
- "@smithy/util-endpoints": "^2.0.5",
- "@smithy/util-middleware": "^3.0.3",
- "@smithy/util-retry": "^3.0.3",
- "@smithy/util-utf8": "^3.0.0",
+ "@aws-sdk/core": "3.758.0",
+ "@aws-sdk/credential-provider-node": "3.758.0",
+ "@aws-sdk/middleware-host-header": "3.734.0",
+ "@aws-sdk/middleware-logger": "3.734.0",
+ "@aws-sdk/middleware-recursion-detection": "3.734.0",
+ "@aws-sdk/middleware-user-agent": "3.758.0",
+ "@aws-sdk/region-config-resolver": "3.734.0",
+ "@aws-sdk/types": "3.734.0",
+ "@aws-sdk/util-endpoints": "3.743.0",
+ "@aws-sdk/util-user-agent-browser": "3.734.0",
+ "@aws-sdk/util-user-agent-node": "3.758.0",
+ "@smithy/config-resolver": "^4.0.1",
+ "@smithy/core": "^3.1.5",
+ "@smithy/eventstream-serde-browser": "^4.0.1",
+ "@smithy/eventstream-serde-config-resolver": "^4.0.1",
+ "@smithy/eventstream-serde-node": "^4.0.1",
+ "@smithy/fetch-http-handler": "^5.0.1",
+ "@smithy/hash-node": "^4.0.1",
+ "@smithy/invalid-dependency": "^4.0.1",
+ "@smithy/middleware-content-length": "^4.0.1",
+ "@smithy/middleware-endpoint": "^4.0.6",
+ "@smithy/middleware-retry": "^4.0.7",
+ "@smithy/middleware-serde": "^4.0.2",
+ "@smithy/middleware-stack": "^4.0.1",
+ "@smithy/node-config-provider": "^4.0.1",
+ "@smithy/node-http-handler": "^4.0.3",
+ "@smithy/protocol-http": "^5.0.1",
+ "@smithy/smithy-client": "^4.1.6",
+ "@smithy/types": "^4.1.0",
+ "@smithy/url-parser": "^4.0.1",
+ "@smithy/util-base64": "^4.0.0",
+ "@smithy/util-body-length-browser": "^4.0.0",
+ "@smithy/util-body-length-node": "^4.0.0",
+ "@smithy/util-defaults-mode-browser": "^4.0.7",
+ "@smithy/util-defaults-mode-node": "^4.0.7",
+ "@smithy/util-endpoints": "^3.0.1",
+ "@smithy/util-middleware": "^4.0.1",
+ "@smithy/util-retry": "^4.0.1",
+ "@smithy/util-utf8": "^4.0.0",
+ "@types/uuid": "^9.0.1",
"tslib": "^2.6.2",
"uuid": "^9.0.1"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/client-cloudwatch-logs/node_modules/@smithy/smithy-client": {
- "version": "3.1.7",
- "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-3.1.7.tgz",
- "integrity": "sha512-nZbJZB0XI3YnaFBWGDBr7kjaew6O0oNYNmopyIz6gKZEbxzrtH7rwvU1GcVxcSFoOwWecLJEe79fxEMljHopFQ==",
+ "version": "4.1.6",
+ "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.1.6.tgz",
+ "integrity": "sha512-UYDolNg6h2O0L+cJjtgSyKKvEKCOa/8FHYJnBobyeoeWDmNpXjwOAtw16ezyeu1ETuuLEOZbrynK0ZY1Lx9Jbw==",
+ "license": "Apache-2.0",
"dependencies": {
- "@smithy/middleware-endpoint": "^3.0.5",
- "@smithy/middleware-stack": "^3.0.3",
- "@smithy/protocol-http": "^4.0.3",
- "@smithy/types": "^3.3.0",
- "@smithy/util-stream": "^3.0.6",
+ "@smithy/core": "^3.1.5",
+ "@smithy/middleware-endpoint": "^4.0.6",
+ "@smithy/middleware-stack": "^4.0.1",
+ "@smithy/protocol-http": "^5.0.1",
+ "@smithy/types": "^4.1.0",
+ "@smithy/util-stream": "^4.1.2",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/client-lambda": {
- "version": "3.614.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/client-lambda/-/client-lambda-3.614.0.tgz",
- "integrity": "sha512-p+4jU1zQEQghvZlQOBN+P3P2no4/xloqjd+D2qETKmb+dl2bhdKpLc42Mfv8H+vJ9QffhRwq+UCNOEzTiN89vg==",
+ "version": "3.771.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/client-lambda/-/client-lambda-3.771.0.tgz",
+ "integrity": "sha512-0/4IGf4Nbc9Dfo6/9P0Qq7O5B1L7DGsfUg6Yl963GTOaM8wwYc8WzZy7F3EqMYIrGPz0M12IdYL9bU0hThnZvA==",
+ "license": "Apache-2.0",
"dependencies": {
"@aws-crypto/sha256-browser": "5.2.0",
"@aws-crypto/sha256-js": "5.2.0",
- "@aws-sdk/client-sso-oidc": "3.614.0",
- "@aws-sdk/client-sts": "3.614.0",
- "@aws-sdk/core": "3.614.0",
- "@aws-sdk/credential-provider-node": "3.614.0",
- "@aws-sdk/middleware-host-header": "3.609.0",
- "@aws-sdk/middleware-logger": "3.609.0",
- "@aws-sdk/middleware-recursion-detection": "3.609.0",
- "@aws-sdk/middleware-user-agent": "3.614.0",
- "@aws-sdk/region-config-resolver": "3.614.0",
- "@aws-sdk/types": "3.609.0",
- "@aws-sdk/util-endpoints": "3.614.0",
- "@aws-sdk/util-user-agent-browser": "3.609.0",
- "@aws-sdk/util-user-agent-node": "3.614.0",
- "@smithy/config-resolver": "^3.0.5",
- "@smithy/core": "^2.2.6",
- "@smithy/eventstream-serde-browser": "^3.0.4",
- "@smithy/eventstream-serde-config-resolver": "^3.0.3",
- "@smithy/eventstream-serde-node": "^3.0.4",
- "@smithy/fetch-http-handler": "^3.2.1",
- "@smithy/hash-node": "^3.0.3",
- "@smithy/invalid-dependency": "^3.0.3",
- "@smithy/middleware-content-length": "^3.0.3",
- "@smithy/middleware-endpoint": "^3.0.5",
- "@smithy/middleware-retry": "^3.0.9",
- "@smithy/middleware-serde": "^3.0.3",
- "@smithy/middleware-stack": "^3.0.3",
- "@smithy/node-config-provider": "^3.1.4",
- "@smithy/node-http-handler": "^3.1.2",
- "@smithy/protocol-http": "^4.0.3",
- "@smithy/smithy-client": "^3.1.7",
- "@smithy/types": "^3.3.0",
- "@smithy/url-parser": "^3.0.3",
- "@smithy/util-base64": "^3.0.0",
- "@smithy/util-body-length-browser": "^3.0.0",
- "@smithy/util-body-length-node": "^3.0.0",
- "@smithy/util-defaults-mode-browser": "^3.0.9",
- "@smithy/util-defaults-mode-node": "^3.0.9",
- "@smithy/util-endpoints": "^2.0.5",
- "@smithy/util-middleware": "^3.0.3",
- "@smithy/util-retry": "^3.0.3",
- "@smithy/util-stream": "^3.0.6",
- "@smithy/util-utf8": "^3.0.0",
- "@smithy/util-waiter": "^3.1.2",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
+ "@aws-sdk/core": "3.758.0",
+ "@aws-sdk/credential-provider-node": "3.758.0",
+ "@aws-sdk/middleware-host-header": "3.734.0",
+ "@aws-sdk/middleware-logger": "3.734.0",
+ "@aws-sdk/middleware-recursion-detection": "3.734.0",
+ "@aws-sdk/middleware-user-agent": "3.758.0",
+ "@aws-sdk/region-config-resolver": "3.734.0",
+ "@aws-sdk/types": "3.734.0",
+ "@aws-sdk/util-endpoints": "3.743.0",
+ "@aws-sdk/util-user-agent-browser": "3.734.0",
+ "@aws-sdk/util-user-agent-node": "3.758.0",
+ "@smithy/config-resolver": "^4.0.1",
+ "@smithy/core": "^3.1.5",
+ "@smithy/eventstream-serde-browser": "^4.0.1",
+ "@smithy/eventstream-serde-config-resolver": "^4.0.1",
+ "@smithy/eventstream-serde-node": "^4.0.1",
+ "@smithy/fetch-http-handler": "^5.0.1",
+ "@smithy/hash-node": "^4.0.1",
+ "@smithy/invalid-dependency": "^4.0.1",
+ "@smithy/middleware-content-length": "^4.0.1",
+ "@smithy/middleware-endpoint": "^4.0.6",
+ "@smithy/middleware-retry": "^4.0.7",
+ "@smithy/middleware-serde": "^4.0.2",
+ "@smithy/middleware-stack": "^4.0.1",
+ "@smithy/node-config-provider": "^4.0.1",
+ "@smithy/node-http-handler": "^4.0.3",
+ "@smithy/protocol-http": "^5.0.1",
+ "@smithy/smithy-client": "^4.1.6",
+ "@smithy/types": "^4.1.0",
+ "@smithy/url-parser": "^4.0.1",
+ "@smithy/util-base64": "^4.0.0",
+ "@smithy/util-body-length-browser": "^4.0.0",
+ "@smithy/util-body-length-node": "^4.0.0",
+ "@smithy/util-defaults-mode-browser": "^4.0.7",
+ "@smithy/util-defaults-mode-node": "^4.0.7",
+ "@smithy/util-endpoints": "^3.0.1",
+ "@smithy/util-middleware": "^4.0.1",
+ "@smithy/util-retry": "^4.0.1",
+ "@smithy/util-stream": "^4.1.2",
+ "@smithy/util-utf8": "^4.0.0",
+ "@smithy/util-waiter": "^4.0.2",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/client-lambda/node_modules/@smithy/smithy-client": {
- "version": "3.1.7",
- "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-3.1.7.tgz",
- "integrity": "sha512-nZbJZB0XI3YnaFBWGDBr7kjaew6O0oNYNmopyIz6gKZEbxzrtH7rwvU1GcVxcSFoOwWecLJEe79fxEMljHopFQ==",
+ "version": "4.1.6",
+ "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.1.6.tgz",
+ "integrity": "sha512-UYDolNg6h2O0L+cJjtgSyKKvEKCOa/8FHYJnBobyeoeWDmNpXjwOAtw16ezyeu1ETuuLEOZbrynK0ZY1Lx9Jbw==",
+ "license": "Apache-2.0",
"dependencies": {
- "@smithy/middleware-endpoint": "^3.0.5",
- "@smithy/middleware-stack": "^3.0.3",
- "@smithy/protocol-http": "^4.0.3",
- "@smithy/types": "^3.3.0",
- "@smithy/util-stream": "^3.0.6",
+ "@smithy/core": "^3.1.5",
+ "@smithy/middleware-endpoint": "^4.0.6",
+ "@smithy/middleware-stack": "^4.0.1",
+ "@smithy/protocol-http": "^5.0.1",
+ "@smithy/types": "^4.1.0",
+ "@smithy/util-stream": "^4.1.2",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/client-s3": {
- "version": "3.614.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.614.0.tgz",
- "integrity": "sha512-9BlhfeBegvyjOqHtcr9kvrT80wiy7EVUiqYyTFiiDv/hJIcG88XHQCZdLU7658XBkQ7aFrr5b8rF2HRD1oroxw==",
+ "version": "3.758.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.758.0.tgz",
+ "integrity": "sha512-f8SlhU9/93OC/WEI6xVJf/x/GoQFj9a/xXK6QCtr5fvCjfSLgMVFmKTiIl/tgtDRzxUDc8YS6EGtbHjJ3Y/atg==",
+ "license": "Apache-2.0",
"dependencies": {
"@aws-crypto/sha1-browser": "5.2.0",
"@aws-crypto/sha256-browser": "5.2.0",
"@aws-crypto/sha256-js": "5.2.0",
- "@aws-sdk/client-sso-oidc": "3.614.0",
- "@aws-sdk/client-sts": "3.614.0",
- "@aws-sdk/core": "3.614.0",
- "@aws-sdk/credential-provider-node": "3.614.0",
- "@aws-sdk/middleware-bucket-endpoint": "3.614.0",
- "@aws-sdk/middleware-expect-continue": "3.609.0",
- "@aws-sdk/middleware-flexible-checksums": "3.614.0",
- "@aws-sdk/middleware-host-header": "3.609.0",
- "@aws-sdk/middleware-location-constraint": "3.609.0",
- "@aws-sdk/middleware-logger": "3.609.0",
- "@aws-sdk/middleware-recursion-detection": "3.609.0",
- "@aws-sdk/middleware-sdk-s3": "3.614.0",
- "@aws-sdk/middleware-signing": "3.609.0",
- "@aws-sdk/middleware-ssec": "3.609.0",
- "@aws-sdk/middleware-user-agent": "3.614.0",
- "@aws-sdk/region-config-resolver": "3.614.0",
- "@aws-sdk/signature-v4-multi-region": "3.614.0",
- "@aws-sdk/types": "3.609.0",
- "@aws-sdk/util-endpoints": "3.614.0",
- "@aws-sdk/util-user-agent-browser": "3.609.0",
- "@aws-sdk/util-user-agent-node": "3.614.0",
- "@aws-sdk/xml-builder": "3.609.0",
- "@smithy/config-resolver": "^3.0.5",
- "@smithy/core": "^2.2.6",
- "@smithy/eventstream-serde-browser": "^3.0.4",
- "@smithy/eventstream-serde-config-resolver": "^3.0.3",
- "@smithy/eventstream-serde-node": "^3.0.4",
- "@smithy/fetch-http-handler": "^3.2.1",
- "@smithy/hash-blob-browser": "^3.1.2",
- "@smithy/hash-node": "^3.0.3",
- "@smithy/hash-stream-node": "^3.1.2",
- "@smithy/invalid-dependency": "^3.0.3",
- "@smithy/md5-js": "^3.0.3",
- "@smithy/middleware-content-length": "^3.0.3",
- "@smithy/middleware-endpoint": "^3.0.5",
- "@smithy/middleware-retry": "^3.0.9",
- "@smithy/middleware-serde": "^3.0.3",
- "@smithy/middleware-stack": "^3.0.3",
- "@smithy/node-config-provider": "^3.1.4",
- "@smithy/node-http-handler": "^3.1.2",
- "@smithy/protocol-http": "^4.0.3",
- "@smithy/smithy-client": "^3.1.7",
- "@smithy/types": "^3.3.0",
- "@smithy/url-parser": "^3.0.3",
- "@smithy/util-base64": "^3.0.0",
- "@smithy/util-body-length-browser": "^3.0.0",
- "@smithy/util-body-length-node": "^3.0.0",
- "@smithy/util-defaults-mode-browser": "^3.0.9",
- "@smithy/util-defaults-mode-node": "^3.0.9",
- "@smithy/util-endpoints": "^2.0.5",
- "@smithy/util-retry": "^3.0.3",
- "@smithy/util-stream": "^3.0.6",
- "@smithy/util-utf8": "^3.0.0",
- "@smithy/util-waiter": "^3.1.2",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
+ "@aws-sdk/core": "3.758.0",
+ "@aws-sdk/credential-provider-node": "3.758.0",
+ "@aws-sdk/middleware-bucket-endpoint": "3.734.0",
+ "@aws-sdk/middleware-expect-continue": "3.734.0",
+ "@aws-sdk/middleware-flexible-checksums": "3.758.0",
+ "@aws-sdk/middleware-host-header": "3.734.0",
+ "@aws-sdk/middleware-location-constraint": "3.734.0",
+ "@aws-sdk/middleware-logger": "3.734.0",
+ "@aws-sdk/middleware-recursion-detection": "3.734.0",
+ "@aws-sdk/middleware-sdk-s3": "3.758.0",
+ "@aws-sdk/middleware-ssec": "3.734.0",
+ "@aws-sdk/middleware-user-agent": "3.758.0",
+ "@aws-sdk/region-config-resolver": "3.734.0",
+ "@aws-sdk/signature-v4-multi-region": "3.758.0",
+ "@aws-sdk/types": "3.734.0",
+ "@aws-sdk/util-endpoints": "3.743.0",
+ "@aws-sdk/util-user-agent-browser": "3.734.0",
+ "@aws-sdk/util-user-agent-node": "3.758.0",
+ "@aws-sdk/xml-builder": "3.734.0",
+ "@smithy/config-resolver": "^4.0.1",
+ "@smithy/core": "^3.1.5",
+ "@smithy/eventstream-serde-browser": "^4.0.1",
+ "@smithy/eventstream-serde-config-resolver": "^4.0.1",
+ "@smithy/eventstream-serde-node": "^4.0.1",
+ "@smithy/fetch-http-handler": "^5.0.1",
+ "@smithy/hash-blob-browser": "^4.0.1",
+ "@smithy/hash-node": "^4.0.1",
+ "@smithy/hash-stream-node": "^4.0.1",
+ "@smithy/invalid-dependency": "^4.0.1",
+ "@smithy/md5-js": "^4.0.1",
+ "@smithy/middleware-content-length": "^4.0.1",
+ "@smithy/middleware-endpoint": "^4.0.6",
+ "@smithy/middleware-retry": "^4.0.7",
+ "@smithy/middleware-serde": "^4.0.2",
+ "@smithy/middleware-stack": "^4.0.1",
+ "@smithy/node-config-provider": "^4.0.1",
+ "@smithy/node-http-handler": "^4.0.3",
+ "@smithy/protocol-http": "^5.0.1",
+ "@smithy/smithy-client": "^4.1.6",
+ "@smithy/types": "^4.1.0",
+ "@smithy/url-parser": "^4.0.1",
+ "@smithy/util-base64": "^4.0.0",
+ "@smithy/util-body-length-browser": "^4.0.0",
+ "@smithy/util-body-length-node": "^4.0.0",
+ "@smithy/util-defaults-mode-browser": "^4.0.7",
+ "@smithy/util-defaults-mode-node": "^4.0.7",
+ "@smithy/util-endpoints": "^3.0.1",
+ "@smithy/util-middleware": "^4.0.1",
+ "@smithy/util-retry": "^4.0.1",
+ "@smithy/util-stream": "^4.1.2",
+ "@smithy/util-utf8": "^4.0.0",
+ "@smithy/util-waiter": "^4.0.2",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/client-s3/node_modules/@smithy/smithy-client": {
- "version": "3.1.7",
- "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-3.1.7.tgz",
- "integrity": "sha512-nZbJZB0XI3YnaFBWGDBr7kjaew6O0oNYNmopyIz6gKZEbxzrtH7rwvU1GcVxcSFoOwWecLJEe79fxEMljHopFQ==",
+ "version": "4.1.6",
+ "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.1.6.tgz",
+ "integrity": "sha512-UYDolNg6h2O0L+cJjtgSyKKvEKCOa/8FHYJnBobyeoeWDmNpXjwOAtw16ezyeu1ETuuLEOZbrynK0ZY1Lx9Jbw==",
+ "license": "Apache-2.0",
"dependencies": {
- "@smithy/middleware-endpoint": "^3.0.5",
- "@smithy/middleware-stack": "^3.0.3",
- "@smithy/protocol-http": "^4.0.3",
- "@smithy/types": "^3.3.0",
- "@smithy/util-stream": "^3.0.6",
+ "@smithy/core": "^3.1.5",
+ "@smithy/middleware-endpoint": "^4.0.6",
+ "@smithy/middleware-stack": "^4.0.1",
+ "@smithy/protocol-http": "^5.0.1",
+ "@smithy/types": "^4.1.0",
+ "@smithy/util-stream": "^4.1.2",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/client-sso": {
- "version": "3.614.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.614.0.tgz",
- "integrity": "sha512-p5pyYaxRzBttjBkqfc8i3K7DzBdTg3ECdVgBo6INIUxfvDy0J8QUE8vNtCgvFIkq+uPw/8M+Eo4zzln7anuO0Q==",
+ "version": "3.758.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.758.0.tgz",
+ "integrity": "sha512-BoGO6IIWrLyLxQG6txJw6RT2urmbtlwfggapNCrNPyYjlXpzTSJhBYjndg7TpDATFd0SXL0zm8y/tXsUXNkdYQ==",
+ "license": "Apache-2.0",
"dependencies": {
"@aws-crypto/sha256-browser": "5.2.0",
"@aws-crypto/sha256-js": "5.2.0",
- "@aws-sdk/core": "3.614.0",
- "@aws-sdk/middleware-host-header": "3.609.0",
- "@aws-sdk/middleware-logger": "3.609.0",
- "@aws-sdk/middleware-recursion-detection": "3.609.0",
- "@aws-sdk/middleware-user-agent": "3.614.0",
- "@aws-sdk/region-config-resolver": "3.614.0",
- "@aws-sdk/types": "3.609.0",
- "@aws-sdk/util-endpoints": "3.614.0",
- "@aws-sdk/util-user-agent-browser": "3.609.0",
- "@aws-sdk/util-user-agent-node": "3.614.0",
- "@smithy/config-resolver": "^3.0.5",
- "@smithy/core": "^2.2.6",
- "@smithy/fetch-http-handler": "^3.2.1",
- "@smithy/hash-node": "^3.0.3",
- "@smithy/invalid-dependency": "^3.0.3",
- "@smithy/middleware-content-length": "^3.0.3",
- "@smithy/middleware-endpoint": "^3.0.5",
- "@smithy/middleware-retry": "^3.0.9",
- "@smithy/middleware-serde": "^3.0.3",
- "@smithy/middleware-stack": "^3.0.3",
- "@smithy/node-config-provider": "^3.1.4",
- "@smithy/node-http-handler": "^3.1.2",
- "@smithy/protocol-http": "^4.0.3",
- "@smithy/smithy-client": "^3.1.7",
- "@smithy/types": "^3.3.0",
- "@smithy/url-parser": "^3.0.3",
- "@smithy/util-base64": "^3.0.0",
- "@smithy/util-body-length-browser": "^3.0.0",
- "@smithy/util-body-length-node": "^3.0.0",
- "@smithy/util-defaults-mode-browser": "^3.0.9",
- "@smithy/util-defaults-mode-node": "^3.0.9",
- "@smithy/util-endpoints": "^2.0.5",
- "@smithy/util-middleware": "^3.0.3",
- "@smithy/util-retry": "^3.0.3",
- "@smithy/util-utf8": "^3.0.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@aws-sdk/client-sso-oidc": {
- "version": "3.614.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.614.0.tgz",
- "integrity": "sha512-BI1NWcpppbHg/28zbUg54dZeckork8BItZIcjls12vxasy+p3iEzrJVG60jcbUTTsk3Qc1tyxNfrdcVqx0y7Ww==",
- "dependencies": {
- "@aws-crypto/sha256-browser": "5.2.0",
- "@aws-crypto/sha256-js": "5.2.0",
- "@aws-sdk/core": "3.614.0",
- "@aws-sdk/credential-provider-node": "3.614.0",
- "@aws-sdk/middleware-host-header": "3.609.0",
- "@aws-sdk/middleware-logger": "3.609.0",
- "@aws-sdk/middleware-recursion-detection": "3.609.0",
- "@aws-sdk/middleware-user-agent": "3.614.0",
- "@aws-sdk/region-config-resolver": "3.614.0",
- "@aws-sdk/types": "3.609.0",
- "@aws-sdk/util-endpoints": "3.614.0",
- "@aws-sdk/util-user-agent-browser": "3.609.0",
- "@aws-sdk/util-user-agent-node": "3.614.0",
- "@smithy/config-resolver": "^3.0.5",
- "@smithy/core": "^2.2.6",
- "@smithy/fetch-http-handler": "^3.2.1",
- "@smithy/hash-node": "^3.0.3",
- "@smithy/invalid-dependency": "^3.0.3",
- "@smithy/middleware-content-length": "^3.0.3",
- "@smithy/middleware-endpoint": "^3.0.5",
- "@smithy/middleware-retry": "^3.0.9",
- "@smithy/middleware-serde": "^3.0.3",
- "@smithy/middleware-stack": "^3.0.3",
- "@smithy/node-config-provider": "^3.1.4",
- "@smithy/node-http-handler": "^3.1.2",
- "@smithy/protocol-http": "^4.0.3",
- "@smithy/smithy-client": "^3.1.7",
- "@smithy/types": "^3.3.0",
- "@smithy/url-parser": "^3.0.3",
- "@smithy/util-base64": "^3.0.0",
- "@smithy/util-body-length-browser": "^3.0.0",
- "@smithy/util-body-length-node": "^3.0.0",
- "@smithy/util-defaults-mode-browser": "^3.0.9",
- "@smithy/util-defaults-mode-node": "^3.0.9",
- "@smithy/util-endpoints": "^2.0.5",
- "@smithy/util-middleware": "^3.0.3",
- "@smithy/util-retry": "^3.0.3",
- "@smithy/util-utf8": "^3.0.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- },
- "peerDependencies": {
- "@aws-sdk/client-sts": "^3.614.0"
- }
- },
- "node_modules/@aws-sdk/client-sso-oidc/node_modules/@smithy/smithy-client": {
- "version": "3.1.7",
- "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-3.1.7.tgz",
- "integrity": "sha512-nZbJZB0XI3YnaFBWGDBr7kjaew6O0oNYNmopyIz6gKZEbxzrtH7rwvU1GcVxcSFoOwWecLJEe79fxEMljHopFQ==",
- "dependencies": {
- "@smithy/middleware-endpoint": "^3.0.5",
- "@smithy/middleware-stack": "^3.0.3",
- "@smithy/protocol-http": "^4.0.3",
- "@smithy/types": "^3.3.0",
- "@smithy/util-stream": "^3.0.6",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
+ "@aws-sdk/core": "3.758.0",
+ "@aws-sdk/middleware-host-header": "3.734.0",
+ "@aws-sdk/middleware-logger": "3.734.0",
+ "@aws-sdk/middleware-recursion-detection": "3.734.0",
+ "@aws-sdk/middleware-user-agent": "3.758.0",
+ "@aws-sdk/region-config-resolver": "3.734.0",
+ "@aws-sdk/types": "3.734.0",
+ "@aws-sdk/util-endpoints": "3.743.0",
+ "@aws-sdk/util-user-agent-browser": "3.734.0",
+ "@aws-sdk/util-user-agent-node": "3.758.0",
+ "@smithy/config-resolver": "^4.0.1",
+ "@smithy/core": "^3.1.5",
+ "@smithy/fetch-http-handler": "^5.0.1",
+ "@smithy/hash-node": "^4.0.1",
+ "@smithy/invalid-dependency": "^4.0.1",
+ "@smithy/middleware-content-length": "^4.0.1",
+ "@smithy/middleware-endpoint": "^4.0.6",
+ "@smithy/middleware-retry": "^4.0.7",
+ "@smithy/middleware-serde": "^4.0.2",
+ "@smithy/middleware-stack": "^4.0.1",
+ "@smithy/node-config-provider": "^4.0.1",
+ "@smithy/node-http-handler": "^4.0.3",
+ "@smithy/protocol-http": "^5.0.1",
+ "@smithy/smithy-client": "^4.1.6",
+ "@smithy/types": "^4.1.0",
+ "@smithy/url-parser": "^4.0.1",
+ "@smithy/util-base64": "^4.0.0",
+ "@smithy/util-body-length-browser": "^4.0.0",
+ "@smithy/util-body-length-node": "^4.0.0",
+ "@smithy/util-defaults-mode-browser": "^4.0.7",
+ "@smithy/util-defaults-mode-node": "^4.0.7",
+ "@smithy/util-endpoints": "^3.0.1",
+ "@smithy/util-middleware": "^4.0.1",
+ "@smithy/util-retry": "^4.0.1",
+ "@smithy/util-utf8": "^4.0.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/client-sso/node_modules/@smithy/smithy-client": {
- "version": "3.1.7",
- "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-3.1.7.tgz",
- "integrity": "sha512-nZbJZB0XI3YnaFBWGDBr7kjaew6O0oNYNmopyIz6gKZEbxzrtH7rwvU1GcVxcSFoOwWecLJEe79fxEMljHopFQ==",
- "dependencies": {
- "@smithy/middleware-endpoint": "^3.0.5",
- "@smithy/middleware-stack": "^3.0.3",
- "@smithy/protocol-http": "^4.0.3",
- "@smithy/types": "^3.3.0",
- "@smithy/util-stream": "^3.0.6",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@aws-sdk/client-sts": {
- "version": "3.614.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.614.0.tgz",
- "integrity": "sha512-i6QmaVA1KHHYNnI2VYQy/sc31rLm4+jSp8b/YbQpFnD0w3aXsrEEHHlxek45uSkHb4Nrj1omFBVy/xp1WVYx2Q==",
- "dependencies": {
- "@aws-crypto/sha256-browser": "5.2.0",
- "@aws-crypto/sha256-js": "5.2.0",
- "@aws-sdk/client-sso-oidc": "3.614.0",
- "@aws-sdk/core": "3.614.0",
- "@aws-sdk/credential-provider-node": "3.614.0",
- "@aws-sdk/middleware-host-header": "3.609.0",
- "@aws-sdk/middleware-logger": "3.609.0",
- "@aws-sdk/middleware-recursion-detection": "3.609.0",
- "@aws-sdk/middleware-user-agent": "3.614.0",
- "@aws-sdk/region-config-resolver": "3.614.0",
- "@aws-sdk/types": "3.609.0",
- "@aws-sdk/util-endpoints": "3.614.0",
- "@aws-sdk/util-user-agent-browser": "3.609.0",
- "@aws-sdk/util-user-agent-node": "3.614.0",
- "@smithy/config-resolver": "^3.0.5",
- "@smithy/core": "^2.2.6",
- "@smithy/fetch-http-handler": "^3.2.1",
- "@smithy/hash-node": "^3.0.3",
- "@smithy/invalid-dependency": "^3.0.3",
- "@smithy/middleware-content-length": "^3.0.3",
- "@smithy/middleware-endpoint": "^3.0.5",
- "@smithy/middleware-retry": "^3.0.9",
- "@smithy/middleware-serde": "^3.0.3",
- "@smithy/middleware-stack": "^3.0.3",
- "@smithy/node-config-provider": "^3.1.4",
- "@smithy/node-http-handler": "^3.1.2",
- "@smithy/protocol-http": "^4.0.3",
- "@smithy/smithy-client": "^3.1.7",
- "@smithy/types": "^3.3.0",
- "@smithy/url-parser": "^3.0.3",
- "@smithy/util-base64": "^3.0.0",
- "@smithy/util-body-length-browser": "^3.0.0",
- "@smithy/util-body-length-node": "^3.0.0",
- "@smithy/util-defaults-mode-browser": "^3.0.9",
- "@smithy/util-defaults-mode-node": "^3.0.9",
- "@smithy/util-endpoints": "^2.0.5",
- "@smithy/util-middleware": "^3.0.3",
- "@smithy/util-retry": "^3.0.3",
- "@smithy/util-utf8": "^3.0.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/@aws-sdk/client-sts/node_modules/@smithy/smithy-client": {
- "version": "3.1.7",
- "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-3.1.7.tgz",
- "integrity": "sha512-nZbJZB0XI3YnaFBWGDBr7kjaew6O0oNYNmopyIz6gKZEbxzrtH7rwvU1GcVxcSFoOwWecLJEe79fxEMljHopFQ==",
+ "version": "4.1.6",
+ "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.1.6.tgz",
+ "integrity": "sha512-UYDolNg6h2O0L+cJjtgSyKKvEKCOa/8FHYJnBobyeoeWDmNpXjwOAtw16ezyeu1ETuuLEOZbrynK0ZY1Lx9Jbw==",
+ "license": "Apache-2.0",
"dependencies": {
- "@smithy/middleware-endpoint": "^3.0.5",
- "@smithy/middleware-stack": "^3.0.3",
- "@smithy/protocol-http": "^4.0.3",
- "@smithy/types": "^3.3.0",
- "@smithy/util-stream": "^3.0.6",
+ "@smithy/core": "^3.1.5",
+ "@smithy/middleware-endpoint": "^4.0.6",
+ "@smithy/middleware-stack": "^4.0.1",
+ "@smithy/protocol-http": "^5.0.1",
+ "@smithy/types": "^4.1.0",
+ "@smithy/util-stream": "^4.1.2",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/core": {
- "version": "3.614.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.614.0.tgz",
- "integrity": "sha512-BUuS5/1YkgmKc4J0bg83XEtMyDHVyqG2QDzfmhYe8gbOIZabUl1FlrFVwhCAthtrrI6MPGTQcERB4BtJKUSplw==",
+ "version": "3.758.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.758.0.tgz",
+ "integrity": "sha512-0RswbdR9jt/XKemaLNuxi2gGr4xGlHyGxkTdhSQzCyUe9A9OPCoLl3rIESRguQEech+oJnbHk/wuiwHqTuP9sg==",
+ "license": "Apache-2.0",
"dependencies": {
- "@smithy/core": "^2.2.6",
- "@smithy/protocol-http": "^4.0.3",
- "@smithy/signature-v4": "^3.1.2",
- "@smithy/smithy-client": "^3.1.7",
- "@smithy/types": "^3.3.0",
- "fast-xml-parser": "4.2.5",
+ "@aws-sdk/types": "3.734.0",
+ "@smithy/core": "^3.1.5",
+ "@smithy/node-config-provider": "^4.0.1",
+ "@smithy/property-provider": "^4.0.1",
+ "@smithy/protocol-http": "^5.0.1",
+ "@smithy/signature-v4": "^5.0.1",
+ "@smithy/smithy-client": "^4.1.6",
+ "@smithy/types": "^4.1.0",
+ "@smithy/util-middleware": "^4.0.1",
+ "fast-xml-parser": "4.4.1",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/core/node_modules/@smithy/smithy-client": {
- "version": "3.1.7",
- "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-3.1.7.tgz",
- "integrity": "sha512-nZbJZB0XI3YnaFBWGDBr7kjaew6O0oNYNmopyIz6gKZEbxzrtH7rwvU1GcVxcSFoOwWecLJEe79fxEMljHopFQ==",
+ "version": "4.1.6",
+ "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.1.6.tgz",
+ "integrity": "sha512-UYDolNg6h2O0L+cJjtgSyKKvEKCOa/8FHYJnBobyeoeWDmNpXjwOAtw16ezyeu1ETuuLEOZbrynK0ZY1Lx9Jbw==",
+ "license": "Apache-2.0",
"dependencies": {
- "@smithy/middleware-endpoint": "^3.0.5",
- "@smithy/middleware-stack": "^3.0.3",
- "@smithy/protocol-http": "^4.0.3",
- "@smithy/types": "^3.3.0",
- "@smithy/util-stream": "^3.0.6",
+ "@smithy/core": "^3.1.5",
+ "@smithy/middleware-endpoint": "^4.0.6",
+ "@smithy/middleware-stack": "^4.0.1",
+ "@smithy/protocol-http": "^5.0.1",
+ "@smithy/types": "^4.1.0",
+ "@smithy/util-stream": "^4.1.2",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/credential-provider-env": {
- "version": "3.609.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.609.0.tgz",
- "integrity": "sha512-v69ZCWcec2iuV9vLVJMa6fAb5xwkzN4jYIT8yjo2c4Ia/j976Q+TPf35Pnz5My48Xr94EFcaBazrWedF+kwfuQ==",
+ "version": "3.758.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.758.0.tgz",
+ "integrity": "sha512-N27eFoRrO6MeUNumtNHDW9WOiwfd59LPXPqDrIa3kWL/s+fOKFHb9xIcF++bAwtcZnAxKkgpDCUP+INNZskE+w==",
+ "license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.609.0",
- "@smithy/property-provider": "^3.1.3",
- "@smithy/types": "^3.3.0",
+ "@aws-sdk/core": "3.758.0",
+ "@aws-sdk/types": "3.734.0",
+ "@smithy/property-provider": "^4.0.1",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/credential-provider-http": {
- "version": "3.614.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.614.0.tgz",
- "integrity": "sha512-YIEjlNUKb3Vo/iTnGAPdsiDC3FUUnNoex2OwU8LmR7AkYZiWdB8nx99DfgkkY+OFMUpw7nKD2PCOtuFONelfGA==",
+ "version": "3.758.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.758.0.tgz",
+ "integrity": "sha512-Xt9/U8qUCiw1hihztWkNeIR+arg6P+yda10OuCHX6kFVx3auTlU7+hCqs3UxqniGU4dguHuftf3mRpi5/GJ33Q==",
+ "license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.609.0",
- "@smithy/fetch-http-handler": "^3.2.1",
- "@smithy/node-http-handler": "^3.1.2",
- "@smithy/property-provider": "^3.1.3",
- "@smithy/protocol-http": "^4.0.3",
- "@smithy/smithy-client": "^3.1.7",
- "@smithy/types": "^3.3.0",
- "@smithy/util-stream": "^3.0.6",
+ "@aws-sdk/core": "3.758.0",
+ "@aws-sdk/types": "3.734.0",
+ "@smithy/fetch-http-handler": "^5.0.1",
+ "@smithy/node-http-handler": "^4.0.3",
+ "@smithy/property-provider": "^4.0.1",
+ "@smithy/protocol-http": "^5.0.1",
+ "@smithy/smithy-client": "^4.1.6",
+ "@smithy/types": "^4.1.0",
+ "@smithy/util-stream": "^4.1.2",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/smithy-client": {
- "version": "3.1.7",
- "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-3.1.7.tgz",
- "integrity": "sha512-nZbJZB0XI3YnaFBWGDBr7kjaew6O0oNYNmopyIz6gKZEbxzrtH7rwvU1GcVxcSFoOwWecLJEe79fxEMljHopFQ==",
+ "version": "4.1.6",
+ "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.1.6.tgz",
+ "integrity": "sha512-UYDolNg6h2O0L+cJjtgSyKKvEKCOa/8FHYJnBobyeoeWDmNpXjwOAtw16ezyeu1ETuuLEOZbrynK0ZY1Lx9Jbw==",
+ "license": "Apache-2.0",
"dependencies": {
- "@smithy/middleware-endpoint": "^3.0.5",
- "@smithy/middleware-stack": "^3.0.3",
- "@smithy/protocol-http": "^4.0.3",
- "@smithy/types": "^3.3.0",
- "@smithy/util-stream": "^3.0.6",
+ "@smithy/core": "^3.1.5",
+ "@smithy/middleware-endpoint": "^4.0.6",
+ "@smithy/middleware-stack": "^4.0.1",
+ "@smithy/protocol-http": "^5.0.1",
+ "@smithy/types": "^4.1.0",
+ "@smithy/util-stream": "^4.1.2",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/credential-provider-ini": {
- "version": "3.614.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.614.0.tgz",
- "integrity": "sha512-KfLuLFGwlvFSZ2MuzYwWGPb1y5TeiwX5okIDe0aQ1h10oD3924FXbN+mabOnUHQ8EFcGAtCaWbrC86mI7ktC6A==",
+ "version": "3.758.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.758.0.tgz",
+ "integrity": "sha512-cymSKMcP5d+OsgetoIZ5QCe1wnp2Q/tq+uIxVdh9MbfdBBEnl9Ecq6dH6VlYS89sp4QKuxHxkWXVnbXU3Q19Aw==",
+ "license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/credential-provider-env": "3.609.0",
- "@aws-sdk/credential-provider-http": "3.614.0",
- "@aws-sdk/credential-provider-process": "3.614.0",
- "@aws-sdk/credential-provider-sso": "3.614.0",
- "@aws-sdk/credential-provider-web-identity": "3.609.0",
- "@aws-sdk/types": "3.609.0",
- "@smithy/credential-provider-imds": "^3.1.4",
- "@smithy/property-provider": "^3.1.3",
- "@smithy/shared-ini-file-loader": "^3.1.4",
- "@smithy/types": "^3.3.0",
+ "@aws-sdk/core": "3.758.0",
+ "@aws-sdk/credential-provider-env": "3.758.0",
+ "@aws-sdk/credential-provider-http": "3.758.0",
+ "@aws-sdk/credential-provider-process": "3.758.0",
+ "@aws-sdk/credential-provider-sso": "3.758.0",
+ "@aws-sdk/credential-provider-web-identity": "3.758.0",
+ "@aws-sdk/nested-clients": "3.758.0",
+ "@aws-sdk/types": "3.734.0",
+ "@smithy/credential-provider-imds": "^4.0.1",
+ "@smithy/property-provider": "^4.0.1",
+ "@smithy/shared-ini-file-loader": "^4.0.1",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
- },
- "peerDependencies": {
- "@aws-sdk/client-sts": "^3.614.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/credential-provider-node": {
- "version": "3.614.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.614.0.tgz",
- "integrity": "sha512-4J6gPEuFZP0mkWq5E//oMS1vrmMM88iNNcv7TEljYnsc6JTAlKejCyFwx6CN+nkIhmIZsl06SXIhBemzBdBPfg==",
+ "version": "3.758.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.758.0.tgz",
+ "integrity": "sha512-+DaMv63wiq7pJrhIQzZYMn4hSarKiizDoJRvyR7WGhnn0oQ/getX9Z0VNCV3i7lIFoLNTb7WMmQ9k7+z/uD5EQ==",
+ "license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/credential-provider-env": "3.609.0",
- "@aws-sdk/credential-provider-http": "3.614.0",
- "@aws-sdk/credential-provider-ini": "3.614.0",
- "@aws-sdk/credential-provider-process": "3.614.0",
- "@aws-sdk/credential-provider-sso": "3.614.0",
- "@aws-sdk/credential-provider-web-identity": "3.609.0",
- "@aws-sdk/types": "3.609.0",
- "@smithy/credential-provider-imds": "^3.1.4",
- "@smithy/property-provider": "^3.1.3",
- "@smithy/shared-ini-file-loader": "^3.1.4",
- "@smithy/types": "^3.3.0",
+ "@aws-sdk/credential-provider-env": "3.758.0",
+ "@aws-sdk/credential-provider-http": "3.758.0",
+ "@aws-sdk/credential-provider-ini": "3.758.0",
+ "@aws-sdk/credential-provider-process": "3.758.0",
+ "@aws-sdk/credential-provider-sso": "3.758.0",
+ "@aws-sdk/credential-provider-web-identity": "3.758.0",
+ "@aws-sdk/types": "3.734.0",
+ "@smithy/credential-provider-imds": "^4.0.1",
+ "@smithy/property-provider": "^4.0.1",
+ "@smithy/shared-ini-file-loader": "^4.0.1",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/credential-provider-process": {
- "version": "3.614.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.614.0.tgz",
- "integrity": "sha512-Q0SI0sTRwi8iNODLs5+bbv8vgz8Qy2QdxbCHnPk/6Cx6LMf7i3dqmWquFbspqFRd8QiqxStrblwxrUYZi09tkA==",
+ "version": "3.758.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.758.0.tgz",
+ "integrity": "sha512-AzcY74QTPqcbXWVgjpPZ3HOmxQZYPROIBz2YINF0OQk0MhezDWV/O7Xec+K1+MPGQO3qS6EDrUUlnPLjsqieHA==",
+ "license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.609.0",
- "@smithy/property-provider": "^3.1.3",
- "@smithy/shared-ini-file-loader": "^3.1.4",
- "@smithy/types": "^3.3.0",
+ "@aws-sdk/core": "3.758.0",
+ "@aws-sdk/types": "3.734.0",
+ "@smithy/property-provider": "^4.0.1",
+ "@smithy/shared-ini-file-loader": "^4.0.1",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/credential-provider-sso": {
- "version": "3.614.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.614.0.tgz",
- "integrity": "sha512-55+gp0JY4451cWI1qXmVMFM0GQaBKiQpXv2P0xmd9P3qLDyeFUSEW8XPh0d2lb1ICr6x4s47ynXVdGCIv2mXMg==",
+ "version": "3.758.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.758.0.tgz",
+ "integrity": "sha512-x0FYJqcOLUCv8GLLFDYMXRAQKGjoM+L0BG4BiHYZRDf24yQWFCAZsCQAYKo6XZYh2qznbsW6f//qpyJ5b0QVKQ==",
+ "license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/client-sso": "3.614.0",
- "@aws-sdk/token-providers": "3.614.0",
- "@aws-sdk/types": "3.609.0",
- "@smithy/property-provider": "^3.1.3",
- "@smithy/shared-ini-file-loader": "^3.1.4",
- "@smithy/types": "^3.3.0",
+ "@aws-sdk/client-sso": "3.758.0",
+ "@aws-sdk/core": "3.758.0",
+ "@aws-sdk/token-providers": "3.758.0",
+ "@aws-sdk/types": "3.734.0",
+ "@smithy/property-provider": "^4.0.1",
+ "@smithy/shared-ini-file-loader": "^4.0.1",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/credential-provider-web-identity": {
- "version": "3.609.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.609.0.tgz",
- "integrity": "sha512-U+PG8NhlYYF45zbr1km3ROtBMYqyyj/oK8NRp++UHHeuavgrP+4wJ4wQnlEaKvJBjevfo3+dlIBcaeQ7NYejWg==",
+ "version": "3.758.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.758.0.tgz",
+ "integrity": "sha512-XGguXhBqiCXMXRxcfCAVPlMbm3VyJTou79r/3mxWddHWF0XbhaQiBIbUz6vobVTD25YQRbWSmSch7VA8kI5Lrw==",
+ "license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.609.0",
- "@smithy/property-provider": "^3.1.3",
- "@smithy/types": "^3.3.0",
+ "@aws-sdk/core": "3.758.0",
+ "@aws-sdk/nested-clients": "3.758.0",
+ "@aws-sdk/types": "3.734.0",
+ "@smithy/property-provider": "^4.0.1",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
- },
- "peerDependencies": {
- "@aws-sdk/client-sts": "^3.609.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/middleware-bucket-endpoint": {
- "version": "3.614.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.614.0.tgz",
- "integrity": "sha512-TqEY8KcZeZ0LIxXaqG9RSSNnDHvD8RAFP4Xenwsxqnyad0Yn7LgCoFwRByelJ0t54ROYL1/ETJleWE4U4TOXdg==",
+ "version": "3.734.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.734.0.tgz",
+ "integrity": "sha512-etC7G18aF7KdZguW27GE/wpbrNmYLVT755EsFc8kXpZj8D6AFKxc7OuveinJmiy0bYXAMspJUWsF6CrGpOw6CQ==",
+ "license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.609.0",
- "@aws-sdk/util-arn-parser": "3.568.0",
- "@smithy/node-config-provider": "^3.1.4",
- "@smithy/protocol-http": "^4.0.3",
- "@smithy/types": "^3.3.0",
- "@smithy/util-config-provider": "^3.0.0",
+ "@aws-sdk/types": "3.734.0",
+ "@aws-sdk/util-arn-parser": "3.723.0",
+ "@smithy/node-config-provider": "^4.0.1",
+ "@smithy/protocol-http": "^5.0.1",
+ "@smithy/types": "^4.1.0",
+ "@smithy/util-config-provider": "^4.0.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/middleware-expect-continue": {
- "version": "3.609.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.609.0.tgz",
- "integrity": "sha512-+zeg//mSer4JZRxOB/4mUOMUJyuYPwATnIC5moBB8P8Xe+mJaVRFy8qlCtzYNj2TycnlsBPzTK0j7P1yvDh97w==",
+ "version": "3.734.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.734.0.tgz",
+ "integrity": "sha512-P38/v1l6HjuB2aFUewt7ueAW5IvKkFcv5dalPtbMGRhLeyivBOHwbCyuRKgVs7z7ClTpu9EaViEGki2jEQqEsQ==",
+ "license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.609.0",
- "@smithy/protocol-http": "^4.0.3",
- "@smithy/types": "^3.3.0",
+ "@aws-sdk/types": "3.734.0",
+ "@smithy/protocol-http": "^5.0.1",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/middleware-flexible-checksums": {
- "version": "3.614.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.614.0.tgz",
- "integrity": "sha512-ZLpxVXMboDeMT7p2Kdp5m1uLVKOktkZoMgLvvbe3zbrU4Ji5IU5xVE0aa4X7H28BtuODCs6SLESnPs19bhMKlA==",
+ "version": "3.758.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.758.0.tgz",
+ "integrity": "sha512-o8Rk71S08YTKLoSobucjnbj97OCGaXgpEDNKXpXaavUM5xLNoHCLSUPRCiEN86Ivqxg1n17Y2nSRhfbsveOXXA==",
+ "license": "Apache-2.0",
"dependencies": {
"@aws-crypto/crc32": "5.2.0",
"@aws-crypto/crc32c": "5.2.0",
- "@aws-sdk/types": "3.609.0",
- "@smithy/is-array-buffer": "^3.0.0",
- "@smithy/protocol-http": "^4.0.3",
- "@smithy/types": "^3.3.0",
- "@smithy/util-utf8": "^3.0.0",
+ "@aws-crypto/util": "5.2.0",
+ "@aws-sdk/core": "3.758.0",
+ "@aws-sdk/types": "3.734.0",
+ "@smithy/is-array-buffer": "^4.0.0",
+ "@smithy/node-config-provider": "^4.0.1",
+ "@smithy/protocol-http": "^5.0.1",
+ "@smithy/types": "^4.1.0",
+ "@smithy/util-middleware": "^4.0.1",
+ "@smithy/util-stream": "^4.1.2",
+ "@smithy/util-utf8": "^4.0.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/middleware-host-header": {
- "version": "3.609.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.609.0.tgz",
- "integrity": "sha512-iTKfo158lc4jLDfYeZmYMIBHsn8m6zX+XB6birCSNZ/rrlzAkPbGE43CNdKfvjyWdqgLMRXF+B+OcZRvqhMXPQ==",
+ "version": "3.734.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.734.0.tgz",
+ "integrity": "sha512-LW7RRgSOHHBzWZnigNsDIzu3AiwtjeI2X66v+Wn1P1u+eXssy1+up4ZY/h+t2sU4LU36UvEf+jrZti9c6vRnFw==",
+ "license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.609.0",
- "@smithy/protocol-http": "^4.0.3",
- "@smithy/types": "^3.3.0",
+ "@aws-sdk/types": "3.734.0",
+ "@smithy/protocol-http": "^5.0.1",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/middleware-location-constraint": {
- "version": "3.609.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.609.0.tgz",
- "integrity": "sha512-xzsdoTkszGVqGVPjUmgoP7TORiByLueMHieI1fhQL888WPdqctwAx3ES6d/bA9Q/i8jnc6hs+Fjhy8UvBTkE9A==",
+ "version": "3.734.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.734.0.tgz",
+ "integrity": "sha512-EJEIXwCQhto/cBfHdm3ZOeLxd2NlJD+X2F+ZTOxzokuhBtY0IONfC/91hOo5tWQweerojwshSMHRCKzRv1tlwg==",
+ "license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.609.0",
- "@smithy/types": "^3.3.0",
+ "@aws-sdk/types": "3.734.0",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/middleware-logger": {
- "version": "3.609.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.609.0.tgz",
- "integrity": "sha512-S62U2dy4jMDhDFDK5gZ4VxFdWzCtLzwbYyFZx2uvPYTECkepLUfzLic2BHg2Qvtu4QjX+oGE3P/7fwaGIsGNuQ==",
+ "version": "3.734.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.734.0.tgz",
+ "integrity": "sha512-mUMFITpJUW3LcKvFok176eI5zXAUomVtahb9IQBwLzkqFYOrMJvWAvoV4yuxrJ8TlQBG8gyEnkb9SnhZvjg67w==",
+ "license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.609.0",
- "@smithy/types": "^3.3.0",
+ "@aws-sdk/types": "3.734.0",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/middleware-recursion-detection": {
- "version": "3.609.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.609.0.tgz",
- "integrity": "sha512-6sewsYB7/o/nbUfA99Aa/LokM+a/u4Wpm/X2o0RxOsDtSB795ObebLJe2BxY5UssbGaWkn7LswyfvrdZNXNj1w==",
+ "version": "3.734.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.734.0.tgz",
+ "integrity": "sha512-CUat2d9ITsFc2XsmeiRQO96iWpxSKYFjxvj27Hc7vo87YUHRnfMfnc8jw1EpxEwMcvBD7LsRa6vDNky6AjcrFA==",
+ "license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.609.0",
- "@smithy/protocol-http": "^4.0.3",
- "@smithy/types": "^3.3.0",
+ "@aws-sdk/types": "3.734.0",
+ "@smithy/protocol-http": "^5.0.1",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/middleware-sdk-s3": {
- "version": "3.614.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.614.0.tgz",
- "integrity": "sha512-9fJTaiuuOfFV4FqmUEhPYzrtv7JOfYpB7q65oG3uayVH4ngWHIJkjnnX79zRhNZKdPGta+XIsnZzjEghg82ngA==",
+ "version": "3.758.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.758.0.tgz",
+ "integrity": "sha512-6mJ2zyyHPYSV6bAcaFpsdoXZJeQlR1QgBnZZ6juY/+dcYiuyWCdyLUbGzSZSE7GTfx6i+9+QWFeoIMlWKgU63A==",
+ "license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.609.0",
- "@aws-sdk/util-arn-parser": "3.568.0",
- "@smithy/node-config-provider": "^3.1.4",
- "@smithy/protocol-http": "^4.0.3",
- "@smithy/signature-v4": "^3.1.2",
- "@smithy/smithy-client": "^3.1.7",
- "@smithy/types": "^3.3.0",
- "@smithy/util-config-provider": "^3.0.0",
+ "@aws-sdk/core": "3.758.0",
+ "@aws-sdk/types": "3.734.0",
+ "@aws-sdk/util-arn-parser": "3.723.0",
+ "@smithy/core": "^3.1.5",
+ "@smithy/node-config-provider": "^4.0.1",
+ "@smithy/protocol-http": "^5.0.1",
+ "@smithy/signature-v4": "^5.0.1",
+ "@smithy/smithy-client": "^4.1.6",
+ "@smithy/types": "^4.1.0",
+ "@smithy/util-config-provider": "^4.0.0",
+ "@smithy/util-middleware": "^4.0.1",
+ "@smithy/util-stream": "^4.1.2",
+ "@smithy/util-utf8": "^4.0.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/middleware-sdk-s3/node_modules/@smithy/smithy-client": {
- "version": "3.1.7",
- "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-3.1.7.tgz",
- "integrity": "sha512-nZbJZB0XI3YnaFBWGDBr7kjaew6O0oNYNmopyIz6gKZEbxzrtH7rwvU1GcVxcSFoOwWecLJEe79fxEMljHopFQ==",
+ "version": "4.1.6",
+ "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.1.6.tgz",
+ "integrity": "sha512-UYDolNg6h2O0L+cJjtgSyKKvEKCOa/8FHYJnBobyeoeWDmNpXjwOAtw16ezyeu1ETuuLEOZbrynK0ZY1Lx9Jbw==",
+ "license": "Apache-2.0",
"dependencies": {
- "@smithy/middleware-endpoint": "^3.0.5",
- "@smithy/middleware-stack": "^3.0.3",
- "@smithy/protocol-http": "^4.0.3",
- "@smithy/types": "^3.3.0",
- "@smithy/util-stream": "^3.0.6",
+ "@smithy/core": "^3.1.5",
+ "@smithy/middleware-endpoint": "^4.0.6",
+ "@smithy/middleware-stack": "^4.0.1",
+ "@smithy/protocol-http": "^5.0.1",
+ "@smithy/types": "^4.1.0",
+ "@smithy/util-stream": "^4.1.2",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
- "node_modules/@aws-sdk/middleware-signing": {
- "version": "3.609.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.609.0.tgz",
- "integrity": "sha512-2w3dBLjQVKIajYzokO4hduq8/0hSMUYHHmIo1Kdl+MSY8uwRBt12bLL6pyreobTcRMxizvn2ph/CQ9I1ST/WGQ==",
+ "node_modules/@aws-sdk/middleware-ssec": {
+ "version": "3.734.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.734.0.tgz",
+ "integrity": "sha512-d4yd1RrPW/sspEXizq2NSOUivnheac6LPeLSLnaeTbBG9g1KqIqvCzP1TfXEqv2CrWfHEsWtJpX7oyjySSPvDQ==",
+ "license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.609.0",
- "@smithy/property-provider": "^3.1.3",
- "@smithy/protocol-http": "^4.0.3",
- "@smithy/signature-v4": "^3.1.2",
- "@smithy/types": "^3.3.0",
- "@smithy/util-middleware": "^3.0.3",
+ "@aws-sdk/types": "3.734.0",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
- "node_modules/@aws-sdk/middleware-ssec": {
- "version": "3.609.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.609.0.tgz",
- "integrity": "sha512-GZSD1s7+JswWOTamVap79QiDaIV7byJFssBW68GYjyRS5EBjNfwA/8s+6uE6g39R3ojyTbYOmvcANoZEhSULXg==",
+ "node_modules/@aws-sdk/middleware-user-agent": {
+ "version": "3.758.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.758.0.tgz",
+ "integrity": "sha512-iNyehQXtQlj69JCgfaOssgZD4HeYGOwxcaKeG6F+40cwBjTAi0+Ph1yfDwqk2qiBPIRWJ/9l2LodZbxiBqgrwg==",
+ "license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.609.0",
- "@smithy/types": "^3.3.0",
+ "@aws-sdk/core": "3.758.0",
+ "@aws-sdk/types": "3.734.0",
+ "@aws-sdk/util-endpoints": "3.743.0",
+ "@smithy/core": "^3.1.5",
+ "@smithy/protocol-http": "^5.0.1",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
- "node_modules/@aws-sdk/middleware-user-agent": {
- "version": "3.614.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.614.0.tgz",
- "integrity": "sha512-xUxh0UPQiMTG6E31Yvu6zVYlikrIcFDKljM11CaatInzvZubGTGiX0DjpqRlfGzUNsuPc/zNrKwRP2+wypgqIw==",
+ "node_modules/@aws-sdk/nested-clients": {
+ "version": "3.758.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.758.0.tgz",
+ "integrity": "sha512-YZ5s7PSvyF3Mt2h1EQulCG93uybprNGbBkPmVuy/HMMfbFTt4iL3SbKjxqvOZelm86epFfj7pvK7FliI2WOEcg==",
+ "license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.609.0",
- "@aws-sdk/util-endpoints": "3.614.0",
- "@smithy/protocol-http": "^4.0.3",
- "@smithy/types": "^3.3.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": ">=16.0.0"
+ "@aws-crypto/sha256-browser": "5.2.0",
+ "@aws-crypto/sha256-js": "5.2.0",
+ "@aws-sdk/core": "3.758.0",
+ "@aws-sdk/middleware-host-header": "3.734.0",
+ "@aws-sdk/middleware-logger": "3.734.0",
+ "@aws-sdk/middleware-recursion-detection": "3.734.0",
+ "@aws-sdk/middleware-user-agent": "3.758.0",
+ "@aws-sdk/region-config-resolver": "3.734.0",
+ "@aws-sdk/types": "3.734.0",
+ "@aws-sdk/util-endpoints": "3.743.0",
+ "@aws-sdk/util-user-agent-browser": "3.734.0",
+ "@aws-sdk/util-user-agent-node": "3.758.0",
+ "@smithy/config-resolver": "^4.0.1",
+ "@smithy/core": "^3.1.5",
+ "@smithy/fetch-http-handler": "^5.0.1",
+ "@smithy/hash-node": "^4.0.1",
+ "@smithy/invalid-dependency": "^4.0.1",
+ "@smithy/middleware-content-length": "^4.0.1",
+ "@smithy/middleware-endpoint": "^4.0.6",
+ "@smithy/middleware-retry": "^4.0.7",
+ "@smithy/middleware-serde": "^4.0.2",
+ "@smithy/middleware-stack": "^4.0.1",
+ "@smithy/node-config-provider": "^4.0.1",
+ "@smithy/node-http-handler": "^4.0.3",
+ "@smithy/protocol-http": "^5.0.1",
+ "@smithy/smithy-client": "^4.1.6",
+ "@smithy/types": "^4.1.0",
+ "@smithy/url-parser": "^4.0.1",
+ "@smithy/util-base64": "^4.0.0",
+ "@smithy/util-body-length-browser": "^4.0.0",
+ "@smithy/util-body-length-node": "^4.0.0",
+ "@smithy/util-defaults-mode-browser": "^4.0.7",
+ "@smithy/util-defaults-mode-node": "^4.0.7",
+ "@smithy/util-endpoints": "^3.0.1",
+ "@smithy/util-middleware": "^4.0.1",
+ "@smithy/util-retry": "^4.0.1",
+ "@smithy/util-utf8": "^4.0.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/nested-clients/node_modules/@smithy/smithy-client": {
+ "version": "4.1.6",
+ "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.1.6.tgz",
+ "integrity": "sha512-UYDolNg6h2O0L+cJjtgSyKKvEKCOa/8FHYJnBobyeoeWDmNpXjwOAtw16ezyeu1ETuuLEOZbrynK0ZY1Lx9Jbw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/core": "^3.1.5",
+ "@smithy/middleware-endpoint": "^4.0.6",
+ "@smithy/middleware-stack": "^4.0.1",
+ "@smithy/protocol-http": "^5.0.1",
+ "@smithy/types": "^4.1.0",
+ "@smithy/util-stream": "^4.1.2",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/region-config-resolver": {
- "version": "3.614.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.614.0.tgz",
- "integrity": "sha512-vDCeMXvic/LU0KFIUjpC3RiSTIkkvESsEfbVHiHH0YINfl8HnEqR5rj+L8+phsCeVg2+LmYwYxd5NRz4PHxt5g==",
+ "version": "3.734.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.734.0.tgz",
+ "integrity": "sha512-Lvj1kPRC5IuJBr9DyJ9T9/plkh+EfKLy+12s/mykOy1JaKHDpvj+XGy2YO6YgYVOb8JFtaqloid+5COtje4JTQ==",
+ "license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.609.0",
- "@smithy/node-config-provider": "^3.1.4",
- "@smithy/types": "^3.3.0",
- "@smithy/util-config-provider": "^3.0.0",
- "@smithy/util-middleware": "^3.0.3",
+ "@aws-sdk/types": "3.734.0",
+ "@smithy/node-config-provider": "^4.0.1",
+ "@smithy/types": "^4.1.0",
+ "@smithy/util-config-provider": "^4.0.0",
+ "@smithy/util-middleware": "^4.0.1",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/signature-v4-multi-region": {
- "version": "3.614.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.614.0.tgz",
- "integrity": "sha512-6mW3ONW4oLzxrePznYhz7sNT9ji9Am9ufLeV722tbOVS5lArBOZ6E1oPz0uYBhisUPznWKhcLRMggt7vIJWMng==",
+ "version": "3.758.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.758.0.tgz",
+ "integrity": "sha512-0RPCo8fYJcrenJ6bRtiUbFOSgQ1CX/GpvwtLU2Fam1tS9h2klKK8d74caeV6A1mIUvBU7bhyQ0wMGlwMtn3EYw==",
+ "license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/middleware-sdk-s3": "3.614.0",
- "@aws-sdk/types": "3.609.0",
- "@smithy/protocol-http": "^4.0.3",
- "@smithy/signature-v4": "^3.1.2",
- "@smithy/types": "^3.3.0",
+ "@aws-sdk/middleware-sdk-s3": "3.758.0",
+ "@aws-sdk/types": "3.734.0",
+ "@smithy/protocol-http": "^5.0.1",
+ "@smithy/signature-v4": "^5.0.1",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/token-providers": {
- "version": "3.614.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.614.0.tgz",
- "integrity": "sha512-okItqyY6L9IHdxqs+Z116y5/nda7rHxLvROxtAJdLavWTYDydxrZstImNgGWTeVdmc0xX2gJCI77UYUTQWnhRw==",
+ "version": "3.758.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.758.0.tgz",
+ "integrity": "sha512-ckptN1tNrIfQUaGWm/ayW1ddG+imbKN7HHhjFdS4VfItsP0QQOB0+Ov+tpgb4MoNR4JaUghMIVStjIeHN2ks1w==",
+ "license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.609.0",
- "@smithy/property-provider": "^3.1.3",
- "@smithy/shared-ini-file-loader": "^3.1.4",
- "@smithy/types": "^3.3.0",
+ "@aws-sdk/nested-clients": "3.758.0",
+ "@aws-sdk/types": "3.734.0",
+ "@smithy/property-provider": "^4.0.1",
+ "@smithy/shared-ini-file-loader": "^4.0.1",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
- },
- "peerDependencies": {
- "@aws-sdk/client-sso-oidc": "^3.614.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/types": {
- "version": "3.609.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.609.0.tgz",
- "integrity": "sha512-+Tqnh9w0h2LcrUsdXyT1F8mNhXz+tVYBtP19LpeEGntmvHwa2XzvLUCWpoIAIVsHp5+HdB2X9Sn0KAtmbFXc2Q==",
+ "version": "3.734.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.734.0.tgz",
+ "integrity": "sha512-o11tSPTT70nAkGV1fN9wm/hAIiLPyWX6SuGf+9JyTp7S/rC2cFWhR26MvA69nplcjNaXVzB0f+QFrLXXjOqCrg==",
+ "license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^3.3.0",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/util-arn-parser": {
- "version": "3.568.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.568.0.tgz",
- "integrity": "sha512-XUKJWWo+KOB7fbnPP0+g/o5Ulku/X53t7i/h+sPHr5xxYTJJ9CYnbToo95mzxe7xWvkLrsNtJ8L+MnNn9INs2w==",
+ "version": "3.723.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.723.0.tgz",
+ "integrity": "sha512-ZhEfvUwNliOQROcAk34WJWVYTlTa4694kSVhDSjW6lE1bMataPnIN8A0ycukEzBXmd8ZSoBcQLn6lKGl7XIJ5w==",
+ "license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/util-endpoints": {
- "version": "3.614.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.614.0.tgz",
- "integrity": "sha512-wK2cdrXHH4oz4IomV/yrGkftU9A+ITB6nFL+rxxyO78is2ifHJpFdV4aqk4LSkXYPi6CXWNru/Dqc7yiKXgJPw==",
+ "version": "3.743.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.743.0.tgz",
+ "integrity": "sha512-sN1l559zrixeh5x+pttrnd0A3+r34r0tmPkJ/eaaMaAzXqsmKU/xYre9K3FNnsSS1J1k4PEfk/nHDTVUgFYjnw==",
+ "license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.609.0",
- "@smithy/types": "^3.3.0",
- "@smithy/util-endpoints": "^2.0.5",
+ "@aws-sdk/types": "3.734.0",
+ "@smithy/types": "^4.1.0",
+ "@smithy/util-endpoints": "^3.0.1",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/util-locate-window": {
- "version": "3.568.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.568.0.tgz",
- "integrity": "sha512-3nh4TINkXYr+H41QaPelCceEB2FXP3fxp93YZXB/kqJvX0U9j0N0Uk45gvsjmEPzG8XxkPEeLIfT2I1M7A6Lig==",
+ "version": "3.723.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.723.0.tgz",
+ "integrity": "sha512-Yf2CS10BqK688DRsrKI/EO6B8ff5J86NXe4C+VCysK7UOgN0l1zOTeTukZ3H8Q9tYYX3oaF1961o8vRkFm7Nmw==",
+ "license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@aws-sdk/util-user-agent-browser": {
- "version": "3.609.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.609.0.tgz",
- "integrity": "sha512-fojPU+mNahzQ0YHYBsx0ZIhmMA96H+ZIZ665ObU9tl+SGdbLneVZVikGve+NmHTQwHzwkFsZYYnVKAkreJLAtA==",
+ "version": "3.734.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.734.0.tgz",
+ "integrity": "sha512-xQTCus6Q9LwUuALW+S76OL0jcWtMOVu14q+GoLnWPUM7QeUw963oQcLhF7oq0CtaLLKyl4GOUfcwc773Zmwwng==",
+ "license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.609.0",
- "@smithy/types": "^3.3.0",
+ "@aws-sdk/types": "3.734.0",
+ "@smithy/types": "^4.1.0",
"bowser": "^2.11.0",
"tslib": "^2.6.2"
}
},
"node_modules/@aws-sdk/util-user-agent-node": {
- "version": "3.614.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.614.0.tgz",
- "integrity": "sha512-15ElZT88peoHnq5TEoEtZwoXTXRxNrk60TZNdpl/TUBJ5oNJ9Dqb5Z4ryb8ofN6nm9aFf59GVAerFDz8iUoHBA==",
+ "version": "3.758.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.758.0.tgz",
+ "integrity": "sha512-A5EZw85V6WhoKMV2hbuFRvb9NPlxEErb4HPO6/SPXYY4QrjprIzScHxikqcWv1w4J3apB1wto9LPU3IMsYtfrw==",
+ "license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.609.0",
- "@smithy/node-config-provider": "^3.1.4",
- "@smithy/types": "^3.3.0",
+ "@aws-sdk/middleware-user-agent": "3.758.0",
+ "@aws-sdk/types": "3.734.0",
+ "@smithy/node-config-provider": "^4.0.1",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
},
"peerDependencies": {
"aws-crt": ">=1.0.0"
@@ -1129,22 +1118,24 @@
}
},
"node_modules/@aws-sdk/xml-builder": {
- "version": "3.609.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.609.0.tgz",
- "integrity": "sha512-l9XxNcA4HX98rwCC2/KoiWcmEiRfZe4G+mYwDbCFT87JIMj6GBhLDkAzr/W8KAaA2IDr8Vc6J8fZPgVulxxfMA==",
+ "version": "3.734.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.734.0.tgz",
+ "integrity": "sha512-Zrjxi5qwGEcUsJ0ru7fRtW74WcTS0rbLcehoFB+rN1GRi2hbLcFaYs4PwVA5diLeAJH0gszv3x4Hr/S87MfbKQ==",
+ "license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^3.3.0",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@babel/runtime": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.7.tgz",
- "integrity": "sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==",
+ "version": "7.26.10",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.10.tgz",
+ "integrity": "sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"regenerator-runtime": "^0.14.0"
},
@@ -1157,6 +1148,7 @@
"resolved": "https://registry.npmjs.org/@loadable/component/-/component-5.16.4.tgz",
"integrity": "sha512-fJWxx9b5WHX90QKmizo9B+es2so8DnBthI1mbflwCoOyvzEwxiZ/SVDCTtXEnHG72/kGBdzr297SSIekYtzSOQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/runtime": "^7.12.18",
"hoist-non-react-statics": "^3.3.1",
@@ -1178,6 +1170,7 @@
"resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz",
"integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
"type-detect": "4.0.8"
}
@@ -1187,476 +1180,521 @@
"resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz",
"integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
"@sinonjs/commons": "^3.0.0"
}
},
"node_modules/@sinonjs/samsam": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-8.0.0.tgz",
- "integrity": "sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew==",
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-8.0.2.tgz",
+ "integrity": "sha512-v46t/fwnhejRSFTGqbpn9u+LQ9xJDse10gNnPgAcxgdoCDMXj/G2asWAC/8Qs+BAZDicX+MNZouXT1A7c83kVw==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
- "@sinonjs/commons": "^2.0.0",
+ "@sinonjs/commons": "^3.0.1",
"lodash.get": "^4.4.2",
- "type-detect": "^4.0.8"
+ "type-detect": "^4.1.0"
}
},
- "node_modules/@sinonjs/samsam/node_modules/@sinonjs/commons": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz",
- "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==",
+ "node_modules/@sinonjs/samsam/node_modules/type-detect": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz",
+ "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==",
"dev": true,
- "dependencies": {
- "type-detect": "4.0.8"
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
}
},
"node_modules/@sinonjs/text-encoding": {
- "version": "0.7.2",
- "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz",
- "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==",
- "dev": true
+ "version": "0.7.3",
+ "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.3.tgz",
+ "integrity": "sha512-DE427ROAphMQzU4ENbliGYrBSYPXF+TtLg9S8vzeA+OF4ZKzoDdzfL8sxuMUGS/lgRhM6j1URSk9ghf7Xo1tyA==",
+ "dev": true,
+ "license": "(Unlicense OR Apache-2.0)"
},
"node_modules/@smithy/abort-controller": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-3.1.1.tgz",
- "integrity": "sha512-MBJBiidoe+0cTFhyxT8g+9g7CeVccLM0IOKKUMCNQ1CNMJ/eIfoo0RTfVrXOONEI1UCN1W+zkiHSbzUNE9dZtQ==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-4.0.1.tgz",
+ "integrity": "sha512-fiUIYgIgRjMWznk6iLJz35K2YxSLHzLBA/RC6lBrKfQ8fHbPfvk7Pk9UvpKoHgJjI18MnbPuEju53zcVy6KF1g==",
+ "license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^3.3.0",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/chunked-blob-reader": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader/-/chunked-blob-reader-3.0.0.tgz",
- "integrity": "sha512-sbnURCwjF0gSToGlsBiAmd1lRCmSn72nu9axfJu5lIx6RUEgHu6GwTMbqCdhQSi0Pumcm5vFxsi9XWXb2mTaoA==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader/-/chunked-blob-reader-5.0.0.tgz",
+ "integrity": "sha512-+sKqDBQqb036hh4NPaUiEkYFkTUGYzRsn3EuFhyfQfMy6oGHEUJDurLP9Ufb5dasr/XiAmPNMr6wa9afjQB+Gw==",
+ "license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/chunked-blob-reader-native": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-3.0.0.tgz",
- "integrity": "sha512-VDkpCYW+peSuM4zJip5WDfqvg2Mo/e8yxOv3VF1m11y7B8KKMKVFtmZWDe36Fvk8rGuWrPZHHXZ7rR7uM5yWyg==",
- "dependencies": {
- "@smithy/util-base64": "^3.0.0",
- "tslib": "^2.6.2"
- }
- },
- "node_modules/@smithy/config-resolver": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-3.0.5.tgz",
- "integrity": "sha512-SkW5LxfkSI1bUC74OtfBbdz+grQXYiPYolyu8VfpLIjEoN/sHVBlLeGXMQ1vX4ejkgfv6sxVbQJ32yF2cl1veA==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-4.0.0.tgz",
+ "integrity": "sha512-R9wM2yPmfEMsUmlMlIgSzOyICs0x9uu7UTHoccMyt7BWw8shcGM8HqB355+BZCPBcySvbTYMs62EgEQkNxz2ig==",
+ "license": "Apache-2.0",
"dependencies": {
- "@smithy/node-config-provider": "^3.1.4",
- "@smithy/types": "^3.3.0",
- "@smithy/util-config-provider": "^3.0.0",
- "@smithy/util-middleware": "^3.0.3",
+ "@smithy/util-base64": "^4.0.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
- "node_modules/@smithy/core": {
- "version": "2.2.6",
- "resolved": "https://registry.npmjs.org/@smithy/core/-/core-2.2.6.tgz",
- "integrity": "sha512-tBbVIv/ui7/lLTKayYJJvi8JLVL2SwOQTbNFEOrvzSE3ktByvsa1erwBOnAMo8N5Vu30g7lN4lLStrU75oDGuw==",
+ "node_modules/@smithy/config-resolver": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-4.0.1.tgz",
+ "integrity": "sha512-Igfg8lKu3dRVkTSEm98QpZUvKEOa71jDX4vKRcvJVyRc3UgN3j7vFMf0s7xLQhYmKa8kyJGQgUJDOV5V3neVlQ==",
+ "license": "Apache-2.0",
"dependencies": {
- "@smithy/middleware-endpoint": "^3.0.5",
- "@smithy/middleware-retry": "^3.0.9",
- "@smithy/middleware-serde": "^3.0.3",
- "@smithy/protocol-http": "^4.0.3",
- "@smithy/smithy-client": "^3.1.7",
- "@smithy/types": "^3.3.0",
- "@smithy/util-middleware": "^3.0.3",
+ "@smithy/node-config-provider": "^4.0.1",
+ "@smithy/types": "^4.1.0",
+ "@smithy/util-config-provider": "^4.0.0",
+ "@smithy/util-middleware": "^4.0.1",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
- "node_modules/@smithy/core/node_modules/@smithy/smithy-client": {
- "version": "3.1.7",
- "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-3.1.7.tgz",
- "integrity": "sha512-nZbJZB0XI3YnaFBWGDBr7kjaew6O0oNYNmopyIz6gKZEbxzrtH7rwvU1GcVxcSFoOwWecLJEe79fxEMljHopFQ==",
+ "node_modules/@smithy/core": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.1.5.tgz",
+ "integrity": "sha512-HLclGWPkCsekQgsyzxLhCQLa8THWXtB5PxyYN+2O6nkyLt550KQKTlbV2D1/j5dNIQapAZM1+qFnpBFxZQkgCA==",
+ "license": "Apache-2.0",
"dependencies": {
- "@smithy/middleware-endpoint": "^3.0.5",
- "@smithy/middleware-stack": "^3.0.3",
- "@smithy/protocol-http": "^4.0.3",
- "@smithy/types": "^3.3.0",
- "@smithy/util-stream": "^3.0.6",
+ "@smithy/middleware-serde": "^4.0.2",
+ "@smithy/protocol-http": "^5.0.1",
+ "@smithy/types": "^4.1.0",
+ "@smithy/util-body-length-browser": "^4.0.0",
+ "@smithy/util-middleware": "^4.0.1",
+ "@smithy/util-stream": "^4.1.2",
+ "@smithy/util-utf8": "^4.0.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/credential-provider-imds": {
- "version": "3.1.4",
- "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-3.1.4.tgz",
- "integrity": "sha512-NKyH01m97Xa5xf3pB2QOF3lnuE8RIK0hTVNU5zvZAwZU8uspYO4DHQVlK+Y5gwSrujTfHvbfd1D9UFJAc0iYKQ==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-4.0.1.tgz",
+ "integrity": "sha512-l/qdInaDq1Zpznpmev/+52QomsJNZ3JkTl5yrTl02V6NBgJOQ4LY0SFw/8zsMwj3tLe8vqiIuwF6nxaEwgf6mg==",
+ "license": "Apache-2.0",
"dependencies": {
- "@smithy/node-config-provider": "^3.1.4",
- "@smithy/property-provider": "^3.1.3",
- "@smithy/types": "^3.3.0",
- "@smithy/url-parser": "^3.0.3",
+ "@smithy/node-config-provider": "^4.0.1",
+ "@smithy/property-provider": "^4.0.1",
+ "@smithy/types": "^4.1.0",
+ "@smithy/url-parser": "^4.0.1",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/eventstream-codec": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-3.1.2.tgz",
- "integrity": "sha512-0mBcu49JWt4MXhrhRAlxASNy0IjDRFU+aWNDRal9OtUJvJNiwDuyKMUONSOjLjSCeGwZaE0wOErdqULer8r7yw==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-4.0.1.tgz",
+ "integrity": "sha512-Q2bCAAR6zXNVtJgifsU16ZjKGqdw/DyecKNgIgi7dlqw04fqDu0mnq+JmGphqheypVc64CYq3azSuCpAdFk2+A==",
+ "license": "Apache-2.0",
"dependencies": {
"@aws-crypto/crc32": "5.2.0",
- "@smithy/types": "^3.3.0",
- "@smithy/util-hex-encoding": "^3.0.0",
+ "@smithy/types": "^4.1.0",
+ "@smithy/util-hex-encoding": "^4.0.0",
"tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/eventstream-serde-browser": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-3.0.4.tgz",
- "integrity": "sha512-Eo4anLZX6ltGJTZ5yJMc80gZPYYwBn44g0h7oFq6et+TYr5dUsTpIcDbz2evsOKIZhZ7zBoFWHtBXQ4QQeb5xA==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-4.0.1.tgz",
+ "integrity": "sha512-HbIybmz5rhNg+zxKiyVAnvdM3vkzjE6ccrJ620iPL8IXcJEntd3hnBl+ktMwIy12Te/kyrSbUb8UCdnUT4QEdA==",
+ "license": "Apache-2.0",
"dependencies": {
- "@smithy/eventstream-serde-universal": "^3.0.4",
- "@smithy/types": "^3.3.0",
+ "@smithy/eventstream-serde-universal": "^4.0.1",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/eventstream-serde-config-resolver": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.0.3.tgz",
- "integrity": "sha512-NVTYjOuYpGfrN/VbRQgn31x73KDLfCXCsFdad8DiIc3IcdxL+dYA9zEQPyOP7Fy2QL8CPy2WE4WCUD+ZsLNfaQ==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-4.0.1.tgz",
+ "integrity": "sha512-lSipaiq3rmHguHa3QFF4YcCM3VJOrY9oq2sow3qlhFY+nBSTF/nrO82MUQRPrxHQXA58J5G1UnU2WuJfi465BA==",
+ "license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^3.3.0",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/eventstream-serde-node": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-3.0.4.tgz",
- "integrity": "sha512-mjlG0OzGAYuUpdUpflfb9zyLrBGgmQmrobNT8b42ZTsGv/J03+t24uhhtVEKG/b2jFtPIHF74Bq+VUtbzEKOKg==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-4.0.1.tgz",
+ "integrity": "sha512-o4CoOI6oYGYJ4zXo34U8X9szDe3oGjmHgsMGiZM0j4vtNoT+h80TLnkUcrLZR3+E6HIxqW+G+9WHAVfl0GXK0Q==",
+ "license": "Apache-2.0",
"dependencies": {
- "@smithy/eventstream-serde-universal": "^3.0.4",
- "@smithy/types": "^3.3.0",
+ "@smithy/eventstream-serde-universal": "^4.0.1",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/eventstream-serde-universal": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-3.0.4.tgz",
- "integrity": "sha512-Od9dv8zh3PgOD7Vj4T3HSuox16n0VG8jJIM2gvKASL6aCtcS8CfHZDWe1Ik3ZXW6xBouU+45Q5wgoliWDZiJ0A==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-4.0.1.tgz",
+ "integrity": "sha512-Z94uZp0tGJuxds3iEAZBqGU2QiaBHP4YytLUjwZWx+oUeohCsLyUm33yp4MMBmhkuPqSbQCXq5hDet6JGUgHWA==",
+ "license": "Apache-2.0",
"dependencies": {
- "@smithy/eventstream-codec": "^3.1.2",
- "@smithy/types": "^3.3.0",
+ "@smithy/eventstream-codec": "^4.0.1",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/fetch-http-handler": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-3.2.1.tgz",
- "integrity": "sha512-0w0bgUvZmfa0vHN8a+moByhCJT07WN6AHKEhFSOLsDpnszm+5dLVv5utGaqbhOrZ/aF5x3xuPMs/oMCd+4O5xg==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-5.0.1.tgz",
+ "integrity": "sha512-3aS+fP28urrMW2KTjb6z9iFow6jO8n3MFfineGbndvzGZit3taZhKWtTorf+Gp5RpFDDafeHlhfsGlDCXvUnJA==",
+ "license": "Apache-2.0",
"dependencies": {
- "@smithy/protocol-http": "^4.0.3",
- "@smithy/querystring-builder": "^3.0.3",
- "@smithy/types": "^3.3.0",
- "@smithy/util-base64": "^3.0.0",
+ "@smithy/protocol-http": "^5.0.1",
+ "@smithy/querystring-builder": "^4.0.1",
+ "@smithy/types": "^4.1.0",
+ "@smithy/util-base64": "^4.0.0",
"tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/hash-blob-browser": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-3.1.2.tgz",
- "integrity": "sha512-hAbfqN2UbISltakCC2TP0kx4LqXBttEv2MqSPE98gVuDFMf05lU+TpC41QtqGP3Ff5A3GwZMPfKnEy0VmEUpmg==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-4.0.1.tgz",
+ "integrity": "sha512-rkFIrQOKZGS6i1D3gKJ8skJ0RlXqDvb1IyAphksaFOMzkn3v3I1eJ8m7OkLj0jf1McP63rcCEoLlkAn/HjcTRw==",
+ "license": "Apache-2.0",
"dependencies": {
- "@smithy/chunked-blob-reader": "^3.0.0",
- "@smithy/chunked-blob-reader-native": "^3.0.0",
- "@smithy/types": "^3.3.0",
+ "@smithy/chunked-blob-reader": "^5.0.0",
+ "@smithy/chunked-blob-reader-native": "^4.0.0",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/hash-node": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-3.0.3.tgz",
- "integrity": "sha512-2ctBXpPMG+B3BtWSGNnKELJ7SH9e4TNefJS0cd2eSkOOROeBnnVBnAy9LtJ8tY4vUEoe55N4CNPxzbWvR39iBw==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-4.0.1.tgz",
+ "integrity": "sha512-TJ6oZS+3r2Xu4emVse1YPB3Dq3d8RkZDKcPr71Nj/lJsdAP1c7oFzYqEn1IBc915TsgLl2xIJNuxCz+gLbLE0w==",
+ "license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^3.3.0",
- "@smithy/util-buffer-from": "^3.0.0",
- "@smithy/util-utf8": "^3.0.0",
+ "@smithy/types": "^4.1.0",
+ "@smithy/util-buffer-from": "^4.0.0",
+ "@smithy/util-utf8": "^4.0.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/hash-stream-node": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-3.1.2.tgz",
- "integrity": "sha512-PBgDMeEdDzi6JxKwbfBtwQG9eT9cVwsf0dZzLXoJF4sHKHs5HEo/3lJWpn6jibfJwT34I1EBXpBnZE8AxAft6g==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-4.0.1.tgz",
+ "integrity": "sha512-U1rAE1fxmReCIr6D2o/4ROqAQX+GffZpyMt3d7njtGDr2pUNmAKRWa49gsNVhCh2vVAuf3wXzWwNr2YN8PAXIw==",
+ "license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^3.3.0",
- "@smithy/util-utf8": "^3.0.0",
+ "@smithy/types": "^4.1.0",
+ "@smithy/util-utf8": "^4.0.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/invalid-dependency": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-3.0.3.tgz",
- "integrity": "sha512-ID1eL/zpDULmHJbflb864k72/SNOZCADRc9i7Exq3RUNJw6raWUSlFEQ+3PX3EYs++bTxZB2dE9mEHTQLv61tw==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-4.0.1.tgz",
+ "integrity": "sha512-gdudFPf4QRQ5pzj7HEnu6FhKRi61BfH/Gk5Yf6O0KiSbr1LlVhgjThcvjdu658VE6Nve8vaIWB8/fodmS1rBPQ==",
+ "license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^3.3.0",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/is-array-buffer": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-3.0.0.tgz",
- "integrity": "sha512-+Fsu6Q6C4RSJiy81Y8eApjEB5gVtM+oFKTffg+jSuwtvomJJrhUJBu2zS8wjXSgH/g1MKEWrzyChTBe6clb5FQ==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-4.0.0.tgz",
+ "integrity": "sha512-saYhF8ZZNoJDTvJBEWgeBccCg+yvp1CX+ed12yORU3NilJScfc6gfch2oVb4QgxZrGUx3/ZJlb+c/dJbyupxlw==",
+ "license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/md5-js": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-3.0.3.tgz",
- "integrity": "sha512-O/SAkGVwpWmelpj/8yDtsaVe6sINHLB1q8YE/+ZQbDxIw3SRLbTZuRaI10K12sVoENdnHqzPp5i3/H+BcZ3m3Q==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-4.0.1.tgz",
+ "integrity": "sha512-HLZ647L27APi6zXkZlzSFZIjpo8po45YiyjMGJZM3gyDY8n7dPGdmxIIljLm4gPt/7rRvutLTTkYJpZVfG5r+A==",
+ "license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^3.3.0",
- "@smithy/util-utf8": "^3.0.0",
+ "@smithy/types": "^4.1.0",
+ "@smithy/util-utf8": "^4.0.0",
"tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/middleware-content-length": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-3.0.3.tgz",
- "integrity": "sha512-Dbz2bzexReYIQDWMr+gZhpwBetNXzbhnEMhYKA6urqmojO14CsXjnsoPYO8UL/xxcawn8ZsuVU61ElkLSltIUQ==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-4.0.1.tgz",
+ "integrity": "sha512-OGXo7w5EkB5pPiac7KNzVtfCW2vKBTZNuCctn++TTSOMpe6RZO/n6WEC1AxJINn3+vWLKW49uad3lo/u0WJ9oQ==",
+ "license": "Apache-2.0",
"dependencies": {
- "@smithy/protocol-http": "^4.0.3",
- "@smithy/types": "^3.3.0",
+ "@smithy/protocol-http": "^5.0.1",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/middleware-endpoint": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-3.0.5.tgz",
- "integrity": "sha512-V4acqqrh5tDxUEGVTOgf2lYMZqPQsoGntCrjrJZEeBzEzDry2d2vcI1QCXhGltXPPY+BMc6eksZMguA9fIY8vA==",
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-4.0.6.tgz",
+ "integrity": "sha512-ftpmkTHIFqgaFugcjzLZv3kzPEFsBFSnq1JsIkr2mwFzCraZVhQk2gqN51OOeRxqhbPTkRFj39Qd2V91E/mQxg==",
+ "license": "Apache-2.0",
"dependencies": {
- "@smithy/middleware-serde": "^3.0.3",
- "@smithy/node-config-provider": "^3.1.4",
- "@smithy/shared-ini-file-loader": "^3.1.4",
- "@smithy/types": "^3.3.0",
- "@smithy/url-parser": "^3.0.3",
- "@smithy/util-middleware": "^3.0.3",
+ "@smithy/core": "^3.1.5",
+ "@smithy/middleware-serde": "^4.0.2",
+ "@smithy/node-config-provider": "^4.0.1",
+ "@smithy/shared-ini-file-loader": "^4.0.1",
+ "@smithy/types": "^4.1.0",
+ "@smithy/url-parser": "^4.0.1",
+ "@smithy/util-middleware": "^4.0.1",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/middleware-retry": {
- "version": "3.0.9",
- "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-3.0.9.tgz",
- "integrity": "sha512-Mrv9omExU1gA7Y0VEJG2LieGfPYtwwcEiOnVGZ54a37NEMr66TJ0glFslOJFuKWG6izg5DpKIUmDV9rRxjm47Q==",
- "dependencies": {
- "@smithy/node-config-provider": "^3.1.4",
- "@smithy/protocol-http": "^4.0.3",
- "@smithy/service-error-classification": "^3.0.3",
- "@smithy/smithy-client": "^3.1.7",
- "@smithy/types": "^3.3.0",
- "@smithy/util-middleware": "^3.0.3",
- "@smithy/util-retry": "^3.0.3",
+ "version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-4.0.7.tgz",
+ "integrity": "sha512-58j9XbUPLkqAcV1kHzVX/kAR16GT+j7DUZJqwzsxh1jtz7G82caZiGyyFgUvogVfNTg3TeAOIJepGc8TXF4AVQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/node-config-provider": "^4.0.1",
+ "@smithy/protocol-http": "^5.0.1",
+ "@smithy/service-error-classification": "^4.0.1",
+ "@smithy/smithy-client": "^4.1.6",
+ "@smithy/types": "^4.1.0",
+ "@smithy/util-middleware": "^4.0.1",
+ "@smithy/util-retry": "^4.0.1",
"tslib": "^2.6.2",
"uuid": "^9.0.1"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/middleware-retry/node_modules/@smithy/smithy-client": {
- "version": "3.1.7",
- "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-3.1.7.tgz",
- "integrity": "sha512-nZbJZB0XI3YnaFBWGDBr7kjaew6O0oNYNmopyIz6gKZEbxzrtH7rwvU1GcVxcSFoOwWecLJEe79fxEMljHopFQ==",
+ "version": "4.1.6",
+ "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.1.6.tgz",
+ "integrity": "sha512-UYDolNg6h2O0L+cJjtgSyKKvEKCOa/8FHYJnBobyeoeWDmNpXjwOAtw16ezyeu1ETuuLEOZbrynK0ZY1Lx9Jbw==",
+ "license": "Apache-2.0",
"dependencies": {
- "@smithy/middleware-endpoint": "^3.0.5",
- "@smithy/middleware-stack": "^3.0.3",
- "@smithy/protocol-http": "^4.0.3",
- "@smithy/types": "^3.3.0",
- "@smithy/util-stream": "^3.0.6",
+ "@smithy/core": "^3.1.5",
+ "@smithy/middleware-endpoint": "^4.0.6",
+ "@smithy/middleware-stack": "^4.0.1",
+ "@smithy/protocol-http": "^5.0.1",
+ "@smithy/types": "^4.1.0",
+ "@smithy/util-stream": "^4.1.2",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/middleware-serde": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-3.0.3.tgz",
- "integrity": "sha512-puUbyJQBcg9eSErFXjKNiGILJGtiqmuuNKEYNYfUD57fUl4i9+mfmThtQhvFXU0hCVG0iEJhvQUipUf+/SsFdA==",
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-4.0.2.tgz",
+ "integrity": "sha512-Sdr5lOagCn5tt+zKsaW+U2/iwr6bI9p08wOkCp6/eL6iMbgdtc2R5Ety66rf87PeohR0ExI84Txz9GYv5ou3iQ==",
+ "license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^3.3.0",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/middleware-stack": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-3.0.3.tgz",
- "integrity": "sha512-r4klY9nFudB0r9UdSMaGSyjyQK5adUyPnQN/ZM6M75phTxOdnc/AhpvGD1fQUvgmqjQEBGCwpnPbDm8pH5PapA==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-4.0.1.tgz",
+ "integrity": "sha512-dHwDmrtR/ln8UTHpaIavRSzeIk5+YZTBtLnKwDW3G2t6nAupCiQUvNzNoHBpik63fwUaJPtlnMzXbQrNFWssIA==",
+ "license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^3.3.0",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/node-config-provider": {
- "version": "3.1.4",
- "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.4.tgz",
- "integrity": "sha512-YvnElQy8HR4vDcAjoy7Xkx9YT8xZP4cBXcbJSgm/kxmiQu08DwUwj8rkGnyoJTpfl/3xYHH+d8zE+eHqoDCSdQ==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-4.0.1.tgz",
+ "integrity": "sha512-8mRTjvCtVET8+rxvmzRNRR0hH2JjV0DFOmwXPrISmTIJEfnCBugpYYGAsCj8t41qd+RB5gbheSQ/6aKZCQvFLQ==",
+ "license": "Apache-2.0",
"dependencies": {
- "@smithy/property-provider": "^3.1.3",
- "@smithy/shared-ini-file-loader": "^3.1.4",
- "@smithy/types": "^3.3.0",
+ "@smithy/property-provider": "^4.0.1",
+ "@smithy/shared-ini-file-loader": "^4.0.1",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/node-http-handler": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-3.1.2.tgz",
- "integrity": "sha512-Td3rUNI7qqtoSLTsJBtsyfoG4cF/XMFmJr6Z2dX8QNzIi6tIW6YmuyFml8mJ2cNpyWNqITKbROMOFrvQjmsOvw==",
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.0.3.tgz",
+ "integrity": "sha512-dYCLeINNbYdvmMLtW0VdhW1biXt+PPCGazzT5ZjKw46mOtdgToQEwjqZSS9/EN8+tNs/RO0cEWG044+YZs97aA==",
+ "license": "Apache-2.0",
"dependencies": {
- "@smithy/abort-controller": "^3.1.1",
- "@smithy/protocol-http": "^4.0.3",
- "@smithy/querystring-builder": "^3.0.3",
- "@smithy/types": "^3.3.0",
+ "@smithy/abort-controller": "^4.0.1",
+ "@smithy/protocol-http": "^5.0.1",
+ "@smithy/querystring-builder": "^4.0.1",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/property-provider": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-3.1.3.tgz",
- "integrity": "sha512-zahyOVR9Q4PEoguJ/NrFP4O7SMAfYO1HLhB18M+q+Z4KFd4V2obiMnlVoUFzFLSPeVt1POyNWneHHrZaTMoc/g==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-4.0.1.tgz",
+ "integrity": "sha512-o+VRiwC2cgmk/WFV0jaETGOtX16VNPp2bSQEzu0whbReqE1BMqsP2ami2Vi3cbGVdKu1kq9gQkDAGKbt0WOHAQ==",
+ "license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^3.3.0",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/protocol-http": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-4.0.3.tgz",
- "integrity": "sha512-x5jmrCWwQlx+Zv4jAtc33ijJ+vqqYN+c/ZkrnpvEe/uDas7AT7A/4Rc2CdfxgWv4WFGmEqODIrrUToPN6DDkGw==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-5.0.1.tgz",
+ "integrity": "sha512-TE4cpj49jJNB/oHyh/cRVEgNZaoPaxd4vteJNB0yGidOCVR0jCw/hjPVsT8Q8FRmj8Bd3bFZt8Dh7xGCT+xMBQ==",
+ "license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^3.3.0",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/querystring-builder": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-3.0.3.tgz",
- "integrity": "sha512-vyWckeUeesFKzCDaRwWLUA1Xym9McaA6XpFfAK5qI9DKJ4M33ooQGqvM4J+LalH4u/Dq9nFiC8U6Qn1qi0+9zw==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-4.0.1.tgz",
+ "integrity": "sha512-wU87iWZoCbcqrwszsOewEIuq+SU2mSoBE2CcsLwE0I19m0B2gOJr1MVjxWcDQYOzHbR1xCk7AcOBbGFUYOKvdg==",
+ "license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^3.3.0",
- "@smithy/util-uri-escape": "^3.0.0",
+ "@smithy/types": "^4.1.0",
+ "@smithy/util-uri-escape": "^4.0.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/querystring-parser": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-3.0.3.tgz",
- "integrity": "sha512-zahM1lQv2YjmznnfQsWbYojFe55l0SLG/988brlLv1i8z3dubloLF+75ATRsqPBboUXsW6I9CPGE5rQgLfY0vQ==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-4.0.1.tgz",
+ "integrity": "sha512-Ma2XC7VS9aV77+clSFylVUnPZRindhB7BbmYiNOdr+CHt/kZNJoPP0cd3QxCnCFyPXC4eybmyE98phEHkqZ5Jw==",
+ "license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^3.3.0",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/service-error-classification": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-3.0.3.tgz",
- "integrity": "sha512-Jn39sSl8cim/VlkLsUhRFq/dKDnRUFlfRkvhOJaUbLBXUsLRLNf9WaxDv/z9BjuQ3A6k/qE8af1lsqcwm7+DaQ==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-4.0.1.tgz",
+ "integrity": "sha512-3JNjBfOWpj/mYfjXJHB4Txc/7E4LVq32bwzE7m28GN79+M1f76XHflUaSUkhOriprPDzev9cX/M+dEB80DNDKA==",
+ "license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^3.3.0"
+ "@smithy/types": "^4.1.0"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/shared-ini-file-loader": {
- "version": "3.1.4",
- "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.4.tgz",
- "integrity": "sha512-qMxS4hBGB8FY2GQqshcRUy1K6k8aBWP5vwm8qKkCT3A9K2dawUwOIJfqh9Yste/Bl0J2lzosVyrXDj68kLcHXQ==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-4.0.1.tgz",
+ "integrity": "sha512-hC8F6qTBbuHRI/uqDgqqi6J0R4GtEZcgrZPhFQnMhfJs3MnUTGSnR1NSJCJs5VWlMydu0kJz15M640fJlRsIOw==",
+ "license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^3.3.0",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/signature-v4": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-3.1.2.tgz",
- "integrity": "sha512-3BcPylEsYtD0esM4Hoyml/+s7WP2LFhcM3J2AGdcL2vx9O60TtfpDOL72gjb4lU8NeRPeKAwR77YNyyGvMbuEA==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-5.0.1.tgz",
+ "integrity": "sha512-nCe6fQ+ppm1bQuw5iKoeJ0MJfz2os7Ic3GBjOkLOPtavbD1ONoyE3ygjBfz2ythFWm4YnRm6OxW+8p/m9uCoIA==",
+ "license": "Apache-2.0",
"dependencies": {
- "@smithy/is-array-buffer": "^3.0.0",
- "@smithy/types": "^3.3.0",
- "@smithy/util-hex-encoding": "^3.0.0",
- "@smithy/util-middleware": "^3.0.3",
- "@smithy/util-uri-escape": "^3.0.0",
- "@smithy/util-utf8": "^3.0.0",
+ "@smithy/is-array-buffer": "^4.0.0",
+ "@smithy/protocol-http": "^5.0.1",
+ "@smithy/types": "^4.1.0",
+ "@smithy/util-hex-encoding": "^4.0.0",
+ "@smithy/util-middleware": "^4.0.1",
+ "@smithy/util-uri-escape": "^4.0.0",
+ "@smithy/util-utf8": "^4.0.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/smithy-client": {
@@ -1664,6 +1702,7 @@
"resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-2.5.1.tgz",
"integrity": "sha512-jrbSQrYCho0yDaaf92qWgd+7nAeap5LtHTI51KXqmpIFCceKU3K9+vIVTUH72bOJngBMqa4kyu1VJhRcSrk/CQ==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"@smithy/middleware-endpoint": "^2.5.1",
"@smithy/middleware-stack": "^2.2.0",
@@ -1681,6 +1720,7 @@
"resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-2.2.0.tgz",
"integrity": "sha512-wRlta7GuLWpTqtFfGo+nZyOO1vEvewdNR1R4rTxpC8XU6vG/NDyrFBhwLZsqg1NUoR1noVaXJPC/7ZK47QCySw==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"@smithy/types": "^2.12.0",
"tslib": "^2.6.2"
@@ -1694,6 +1734,7 @@
"resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-2.5.0.tgz",
"integrity": "sha512-BOWEBeppWhLn/no/JxUL/ghTfANTjT7kg3Ww2rPqTUY9R4yHPXxJ9JhMe3Z03LN3aPwiwlpDIUcVw1xDyHqEhw==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"@smithy/protocol-http": "^3.3.0",
"@smithy/querystring-builder": "^2.2.0",
@@ -1707,6 +1748,7 @@
"resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz",
"integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
},
@@ -1719,6 +1761,7 @@
"resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-2.5.1.tgz",
"integrity": "sha512-1/8kFp6Fl4OsSIVTWHnNjLnTL8IqpIb/D3sTSczrKFnrE9VMNWxnrRKNvpUHOJ6zpGD5f62TPm7+17ilTJpiCQ==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"@smithy/middleware-serde": "^2.3.0",
"@smithy/node-config-provider": "^2.3.0",
@@ -1737,6 +1780,7 @@
"resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-2.3.0.tgz",
"integrity": "sha512-sIADe7ojwqTyvEQBe1nc/GXB9wdHhi9UwyX0lTyttmUWDJLP655ZYE1WngnNyXREme8I27KCaUhyhZWRXL0q7Q==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"@smithy/types": "^2.12.0",
"tslib": "^2.6.2"
@@ -1750,6 +1794,7 @@
"resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-2.2.0.tgz",
"integrity": "sha512-Qntc3jrtwwrsAC+X8wms8zhrTr0sFXnyEGhZd9sLtsJ/6gGQKFzNB+wWbOcpJd7BR8ThNCoKt76BuQahfMvpeA==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"@smithy/types": "^2.12.0",
"tslib": "^2.6.2"
@@ -1763,6 +1808,7 @@
"resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-2.3.0.tgz",
"integrity": "sha512-0elK5/03a1JPWMDPaS726Iw6LpQg80gFut1tNpPfxFuChEEklo2yL823V94SpTZTxmKlXFtFgsP55uh3dErnIg==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"@smithy/property-provider": "^2.2.0",
"@smithy/shared-ini-file-loader": "^2.4.0",
@@ -1778,6 +1824,7 @@
"resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-2.5.0.tgz",
"integrity": "sha512-mVGyPBzkkGQsPoxQUbxlEfRjrj6FPyA3u3u2VXGr9hT8wilsoQdZdvKpMBFMB8Crfhv5dNkKHIW0Yyuc7eABqA==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"@smithy/abort-controller": "^2.2.0",
"@smithy/protocol-http": "^3.3.0",
@@ -1794,6 +1841,7 @@
"resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-2.2.0.tgz",
"integrity": "sha512-+xiil2lFhtTRzXkx8F053AV46QnIw6e7MV8od5Mi68E1ICOjCeCHw2XfLnDEUHnT9WGUIkwcqavXjfwuJbGlpg==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"@smithy/types": "^2.12.0",
"tslib": "^2.6.2"
@@ -1807,6 +1855,7 @@
"resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-3.3.0.tgz",
"integrity": "sha512-Xy5XK1AFWW2nlY/biWZXu6/krgbaf2dg0q492D8M5qthsnU2H+UgFeZLbM76FnH7s6RO/xhQRkj+T6KBO3JzgQ==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"@smithy/types": "^2.12.0",
"tslib": "^2.6.2"
@@ -1820,6 +1869,7 @@
"resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-2.2.0.tgz",
"integrity": "sha512-L1kSeviUWL+emq3CUVSgdogoM/D9QMFaqxL/dd0X7PCNWmPXqt+ExtrBjqT0V7HLN03Vs9SuiLrG3zy3JGnE5A==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"@smithy/types": "^2.12.0",
"@smithy/util-uri-escape": "^2.2.0",
@@ -1834,6 +1884,7 @@
"resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-2.2.0.tgz",
"integrity": "sha512-BvHCDrKfbG5Yhbpj4vsbuPV2GgcpHiAkLeIlcA1LtfpMz3jrqizP1+OguSNSj1MwBHEiN+jwNisXLGdajGDQJA==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"@smithy/types": "^2.12.0",
"tslib": "^2.6.2"
@@ -1847,6 +1898,7 @@
"resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.4.0.tgz",
"integrity": "sha512-WyujUJL8e1B6Z4PBfAqC/aGY1+C7T0w20Gih3yrvJSk97gpiVfB+y7c46T4Nunk+ZngLq0rOIdeVeIklk0R3OA==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"@smithy/types": "^2.12.0",
"tslib": "^2.6.2"
@@ -1860,6 +1912,7 @@
"resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.12.0.tgz",
"integrity": "sha512-QwYgloJ0sVNBeBuBs65cIkTbfzV/Q6ZNPCJ99EICFEdJYG50nGIY/uYXp+TbsdJReIuPr0a0kXmCvren3MbRRw==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
},
@@ -1872,6 +1925,7 @@
"resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-2.2.0.tgz",
"integrity": "sha512-hoA4zm61q1mNTpksiSWp2nEl1dt3j726HdRhiNgVJQMj7mLp7dprtF57mOB6JvEk/x9d2bsuL5hlqZbBuHQylQ==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"@smithy/querystring-parser": "^2.2.0",
"@smithy/types": "^2.12.0",
@@ -1883,6 +1937,7 @@
"resolved": "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-2.3.0.tgz",
"integrity": "sha512-s3+eVwNeJuXUwuMbusncZNViuhv2LjVJ1nMwTqSA0XAC7gjKhqqxRdJPhR8+YrkoZ9IiIbFk/yK6ACe/xlF+hw==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"@smithy/util-buffer-from": "^2.2.0",
"@smithy/util-utf8": "^2.3.0",
@@ -1897,6 +1952,7 @@
"resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz",
"integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"@smithy/is-array-buffer": "^2.2.0",
"tslib": "^2.6.2"
@@ -1910,6 +1966,7 @@
"resolved": "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-2.2.0.tgz",
"integrity": "sha512-7iKXR+/4TpLK194pVjKiasIyqMtTYJsgKgM242Y9uzt5dhHnUDvMNb+3xIhRJ9QhvqGii/5cRUt4fJn3dtXNHQ==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
},
@@ -1922,6 +1979,7 @@
"resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-2.2.0.tgz",
"integrity": "sha512-L1qpleXf9QD6LwLCJ5jddGkgWyuSvWBkJwWAZ6kFkdifdso+sk3L3O1HdmPvCdnCK3IS4qWyPxev01QMnfHSBw==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"@smithy/types": "^2.12.0",
"tslib": "^2.6.2"
@@ -1935,6 +1993,7 @@
"resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-2.2.0.tgz",
"integrity": "sha512-17faEXbYWIRst1aU9SvPZyMdWmqIrduZjVOqCPMIsWFNxs5yQQgFrJL6b2SdiCzyW9mJoDjFtgi53xx7EH+BXA==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"@smithy/fetch-http-handler": "^2.5.0",
"@smithy/node-http-handler": "^2.5.0",
@@ -1954,6 +2013,7 @@
"resolved": "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-2.2.0.tgz",
"integrity": "sha512-jtmJMyt1xMD/d8OtbVJ2gFZOSKc+ueYJZPW20ULW1GOp/q/YIM0wNh+u8ZFao9UaIGz4WoPW8hC64qlWLIfoDA==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
},
@@ -1966,6 +2026,7 @@
"resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz",
"integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"@smithy/util-buffer-from": "^2.2.0",
"tslib": "^2.6.2"
@@ -1975,246 +2036,273 @@
}
},
"node_modules/@smithy/types": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/@smithy/types/-/types-3.3.0.tgz",
- "integrity": "sha512-IxvBBCTFDHbVoK7zIxqA1ZOdc4QfM5HM7rGleCuHi7L1wnKv5Pn69xXJQ9hgxH60ZVygH9/JG0jRgtUncE3QUA==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/@smithy/types/-/types-4.1.0.tgz",
+ "integrity": "sha512-enhjdwp4D7CXmwLtD6zbcDMbo6/T6WtuuKCY49Xxc6OMOmUWlBEBDREsxxgV2LIdeQPW756+f97GzcgAwp3iLw==",
+ "license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/url-parser": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-3.0.3.tgz",
- "integrity": "sha512-pw3VtZtX2rg+s6HMs6/+u9+hu6oY6U7IohGhVNnjbgKy86wcIsSZwgHrFR+t67Uyxvp4Xz3p3kGXXIpTNisq8A==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-4.0.1.tgz",
+ "integrity": "sha512-gPXcIEUtw7VlK8f/QcruNXm7q+T5hhvGu9tl63LsJPZ27exB6dtNwvh2HIi0v7JcXJ5emBxB+CJxwaLEdJfA+g==",
+ "license": "Apache-2.0",
"dependencies": {
- "@smithy/querystring-parser": "^3.0.3",
- "@smithy/types": "^3.3.0",
+ "@smithy/querystring-parser": "^4.0.1",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/util-base64": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-3.0.0.tgz",
- "integrity": "sha512-Kxvoh5Qtt0CDsfajiZOCpJxgtPHXOKwmM+Zy4waD43UoEMA+qPxxa98aE/7ZhdnBFZFXMOiBR5xbcaMhLtznQQ==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-4.0.0.tgz",
+ "integrity": "sha512-CvHfCmO2mchox9kjrtzoHkWHxjHZzaFojLc8quxXY7WAAMAg43nuxwv95tATVgQFNDwd4M9S1qFzj40Ul41Kmg==",
+ "license": "Apache-2.0",
"dependencies": {
- "@smithy/util-buffer-from": "^3.0.0",
- "@smithy/util-utf8": "^3.0.0",
+ "@smithy/util-buffer-from": "^4.0.0",
+ "@smithy/util-utf8": "^4.0.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/util-body-length-browser": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-3.0.0.tgz",
- "integrity": "sha512-cbjJs2A1mLYmqmyVl80uoLTJhAcfzMOyPgjwAYusWKMdLeNtzmMz9YxNl3/jRLoxSS3wkqkf0jwNdtXWtyEBaQ==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-4.0.0.tgz",
+ "integrity": "sha512-sNi3DL0/k64/LO3A256M+m3CDdG6V7WKWHdAiBBMUN8S3hK3aMPhwnPik2A/a2ONN+9doY9UxaLfgqsIRg69QA==",
+ "license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/util-body-length-node": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-3.0.0.tgz",
- "integrity": "sha512-Tj7pZ4bUloNUP6PzwhN7K386tmSmEET9QtQg0TgdNOnxhZvCssHji+oZTUIuzxECRfG8rdm2PMw2WCFs6eIYkA==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-4.0.0.tgz",
+ "integrity": "sha512-q0iDP3VsZzqJyje8xJWEJCNIu3lktUGVoSy1KB0UWym2CL1siV3artm+u1DFYTLejpsrdGyCSWBdGNjJzfDPjg==",
+ "license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/util-buffer-from": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-3.0.0.tgz",
- "integrity": "sha512-aEOHCgq5RWFbP+UDPvPot26EJHjOC+bRgse5A8V3FSShqd5E5UN4qc7zkwsvJPPAVsf73QwYcHN1/gt/rtLwQA==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-4.0.0.tgz",
+ "integrity": "sha512-9TOQ7781sZvddgO8nxueKi3+yGvkY35kotA0Y6BWRajAv8jjmigQ1sBwz0UX47pQMYXJPahSKEKYFgt+rXdcug==",
+ "license": "Apache-2.0",
"dependencies": {
- "@smithy/is-array-buffer": "^3.0.0",
+ "@smithy/is-array-buffer": "^4.0.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/util-config-provider": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-3.0.0.tgz",
- "integrity": "sha512-pbjk4s0fwq3Di/ANL+rCvJMKM5bzAQdE5S/6RL5NXgMExFAi6UgQMPOm5yPaIWPpr+EOXKXRonJ3FoxKf4mCJQ==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-4.0.0.tgz",
+ "integrity": "sha512-L1RBVzLyfE8OXH+1hsJ8p+acNUSirQnWQ6/EgpchV88G6zGBTDPdXiiExei6Z1wR2RxYvxY/XLw6AMNCCt8H3w==",
+ "license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/util-defaults-mode-browser": {
- "version": "3.0.9",
- "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.9.tgz",
- "integrity": "sha512-WKPcElz92MAQG09miBdb0GxEH/MwD5GfE8g07WokITq5g6J1ROQfYCKC1wNnkqAGfrSywT7L0rdvvqlBplqiyA==",
- "dependencies": {
- "@smithy/property-provider": "^3.1.3",
- "@smithy/smithy-client": "^3.1.7",
- "@smithy/types": "^3.3.0",
+ "version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.0.7.tgz",
+ "integrity": "sha512-CZgDDrYHLv0RUElOsmZtAnp1pIjwDVCSuZWOPhIOBvG36RDfX1Q9+6lS61xBf+qqvHoqRjHxgINeQz47cYFC2Q==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/property-provider": "^4.0.1",
+ "@smithy/smithy-client": "^4.1.6",
+ "@smithy/types": "^4.1.0",
"bowser": "^2.11.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">= 10.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/smithy-client": {
- "version": "3.1.7",
- "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-3.1.7.tgz",
- "integrity": "sha512-nZbJZB0XI3YnaFBWGDBr7kjaew6O0oNYNmopyIz6gKZEbxzrtH7rwvU1GcVxcSFoOwWecLJEe79fxEMljHopFQ==",
+ "version": "4.1.6",
+ "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.1.6.tgz",
+ "integrity": "sha512-UYDolNg6h2O0L+cJjtgSyKKvEKCOa/8FHYJnBobyeoeWDmNpXjwOAtw16ezyeu1ETuuLEOZbrynK0ZY1Lx9Jbw==",
+ "license": "Apache-2.0",
"dependencies": {
- "@smithy/middleware-endpoint": "^3.0.5",
- "@smithy/middleware-stack": "^3.0.3",
- "@smithy/protocol-http": "^4.0.3",
- "@smithy/types": "^3.3.0",
- "@smithy/util-stream": "^3.0.6",
+ "@smithy/core": "^3.1.5",
+ "@smithy/middleware-endpoint": "^4.0.6",
+ "@smithy/middleware-stack": "^4.0.1",
+ "@smithy/protocol-http": "^5.0.1",
+ "@smithy/types": "^4.1.0",
+ "@smithy/util-stream": "^4.1.2",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/util-defaults-mode-node": {
- "version": "3.0.9",
- "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.9.tgz",
- "integrity": "sha512-dQLrUqFxqpf0GvEKEuFdgXcdZwz6oFm752h4d6C7lQz+RLddf761L2r7dSwGWzESMMB3wKj0jL+skRhEGlecjw==",
+ "version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.0.7.tgz",
+ "integrity": "sha512-79fQW3hnfCdrfIi1soPbK3zmooRFnLpSx3Vxi6nUlqaaQeC5dm8plt4OTNDNqEEEDkvKghZSaoti684dQFVrGQ==",
+ "license": "Apache-2.0",
"dependencies": {
- "@smithy/config-resolver": "^3.0.5",
- "@smithy/credential-provider-imds": "^3.1.4",
- "@smithy/node-config-provider": "^3.1.4",
- "@smithy/property-provider": "^3.1.3",
- "@smithy/smithy-client": "^3.1.7",
- "@smithy/types": "^3.3.0",
+ "@smithy/config-resolver": "^4.0.1",
+ "@smithy/credential-provider-imds": "^4.0.1",
+ "@smithy/node-config-provider": "^4.0.1",
+ "@smithy/property-provider": "^4.0.1",
+ "@smithy/smithy-client": "^4.1.6",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">= 10.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/smithy-client": {
- "version": "3.1.7",
- "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-3.1.7.tgz",
- "integrity": "sha512-nZbJZB0XI3YnaFBWGDBr7kjaew6O0oNYNmopyIz6gKZEbxzrtH7rwvU1GcVxcSFoOwWecLJEe79fxEMljHopFQ==",
+ "version": "4.1.6",
+ "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.1.6.tgz",
+ "integrity": "sha512-UYDolNg6h2O0L+cJjtgSyKKvEKCOa/8FHYJnBobyeoeWDmNpXjwOAtw16ezyeu1ETuuLEOZbrynK0ZY1Lx9Jbw==",
+ "license": "Apache-2.0",
"dependencies": {
- "@smithy/middleware-endpoint": "^3.0.5",
- "@smithy/middleware-stack": "^3.0.3",
- "@smithy/protocol-http": "^4.0.3",
- "@smithy/types": "^3.3.0",
- "@smithy/util-stream": "^3.0.6",
+ "@smithy/core": "^3.1.5",
+ "@smithy/middleware-endpoint": "^4.0.6",
+ "@smithy/middleware-stack": "^4.0.1",
+ "@smithy/protocol-http": "^5.0.1",
+ "@smithy/types": "^4.1.0",
+ "@smithy/util-stream": "^4.1.2",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/util-endpoints": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-2.0.5.tgz",
- "integrity": "sha512-ReQP0BWihIE68OAblC/WQmDD40Gx+QY1Ez8mTdFMXpmjfxSyz2fVQu3A4zXRfQU9sZXtewk3GmhfOHswvX+eNg==",
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-3.0.1.tgz",
+ "integrity": "sha512-zVdUENQpdtn9jbpD9SCFK4+aSiavRb9BxEtw9ZGUR1TYo6bBHbIoi7VkrFQ0/RwZlzx0wRBaRmPclj8iAoJCLA==",
+ "license": "Apache-2.0",
"dependencies": {
- "@smithy/node-config-provider": "^3.1.4",
- "@smithy/types": "^3.3.0",
+ "@smithy/node-config-provider": "^4.0.1",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/util-hex-encoding": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-3.0.0.tgz",
- "integrity": "sha512-eFndh1WEK5YMUYvy3lPlVmYY/fZcQE1D8oSf41Id2vCeIkKJXPcYDCZD+4+xViI6b1XSd7tE+s5AmXzz5ilabQ==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-4.0.0.tgz",
+ "integrity": "sha512-Yk5mLhHtfIgW2W2WQZWSg5kuMZCVbvhFmC7rV4IO2QqnZdbEFPmQnCcGMAX2z/8Qj3B9hYYNjZOhWym+RwhePw==",
+ "license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/util-middleware": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-3.0.3.tgz",
- "integrity": "sha512-l+StyYYK/eO3DlVPbU+4Bi06Jjal+PFLSMmlWM1BEwyLxZ3aKkf1ROnoIakfaA7mC6uw3ny7JBkau4Yc+5zfWw==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-4.0.1.tgz",
+ "integrity": "sha512-HiLAvlcqhbzhuiOa0Lyct5IIlyIz0PQO5dnMlmQ/ubYM46dPInB+3yQGkfxsk6Q24Y0n3/JmcA1v5iEhmOF5mA==",
+ "license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^3.3.0",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/util-retry": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-3.0.3.tgz",
- "integrity": "sha512-AFw+hjpbtVApzpNDhbjNG5NA3kyoMs7vx0gsgmlJF4s+yz1Zlepde7J58zpIRIsdjc+emhpAITxA88qLkPF26w==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-4.0.1.tgz",
+ "integrity": "sha512-WmRHqNVwn3kI3rKk1LsKcVgPBG6iLTBGC1iYOV3GQegwJ3E8yjzHytPt26VNzOWr1qu0xE03nK0Ug8S7T7oufw==",
+ "license": "Apache-2.0",
"dependencies": {
- "@smithy/service-error-classification": "^3.0.3",
- "@smithy/types": "^3.3.0",
+ "@smithy/service-error-classification": "^4.0.1",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/util-stream": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-3.0.6.tgz",
- "integrity": "sha512-w9i//7egejAIvplX821rPWWgaiY1dxsQUw0hXX7qwa/uZ9U3zplqTQ871jWadkcVB9gFDhkPWYVZf4yfFbZ0xA==",
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-4.1.2.tgz",
+ "integrity": "sha512-44PKEqQ303d3rlQuiDpcCcu//hV8sn+u2JBo84dWCE0rvgeiVl0IlLMagbU++o0jCWhYCsHaAt9wZuZqNe05Hw==",
+ "license": "Apache-2.0",
"dependencies": {
- "@smithy/fetch-http-handler": "^3.2.1",
- "@smithy/node-http-handler": "^3.1.2",
- "@smithy/types": "^3.3.0",
- "@smithy/util-base64": "^3.0.0",
- "@smithy/util-buffer-from": "^3.0.0",
- "@smithy/util-hex-encoding": "^3.0.0",
- "@smithy/util-utf8": "^3.0.0",
+ "@smithy/fetch-http-handler": "^5.0.1",
+ "@smithy/node-http-handler": "^4.0.3",
+ "@smithy/types": "^4.1.0",
+ "@smithy/util-base64": "^4.0.0",
+ "@smithy/util-buffer-from": "^4.0.0",
+ "@smithy/util-hex-encoding": "^4.0.0",
+ "@smithy/util-utf8": "^4.0.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/util-uri-escape": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-3.0.0.tgz",
- "integrity": "sha512-LqR7qYLgZTD7nWLBecUi4aqolw8Mhza9ArpNEQ881MJJIU2sE5iHCK6TdyqqzcDLy0OPe10IY4T8ctVdtynubg==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-4.0.0.tgz",
+ "integrity": "sha512-77yfbCbQMtgtTylO9itEAdpPXSog3ZxMe09AEhm0dU0NLTalV70ghDZFR+Nfi1C60jnJoh/Re4090/DuZh2Omg==",
+ "license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/util-utf8": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-3.0.0.tgz",
- "integrity": "sha512-rUeT12bxFnplYDe815GXbq/oixEGHfRFFtcTF3YdDi/JaENIM6aSYYLJydG83UNzLXeRI5K8abYd/8Sp/QM0kA==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-4.0.0.tgz",
+ "integrity": "sha512-b+zebfKCfRdgNJDknHCob3O7FpeYQN6ZG6YLExMcasDHsCXlsXCEuiPZeLnJLpwa5dvPetGlnGCiMHuLwGvFow==",
+ "license": "Apache-2.0",
"dependencies": {
- "@smithy/util-buffer-from": "^3.0.0",
+ "@smithy/util-buffer-from": "^4.0.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@smithy/util-waiter": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-3.1.2.tgz",
- "integrity": "sha512-4pP0EV3iTsexDx+8PPGAKCQpd/6hsQBaQhqWzU4hqKPHN5epPsxKbvUTIiYIHTxaKt6/kEaqPBpu/ufvfbrRzw==",
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-4.0.2.tgz",
+ "integrity": "sha512-piUTHyp2Axx3p/kc2CIJkYSv0BAaheBQmbACZgQSSfWUumWNW+R1lL+H9PDBxKJkvOeEX+hKYEFiwO8xagL8AQ==",
+ "license": "Apache-2.0",
"dependencies": {
- "@smithy/abort-controller": "^3.1.1",
- "@smithy/types": "^3.3.0",
+ "@smithy/abort-controller": "^4.0.1",
+ "@smithy/types": "^4.1.0",
"tslib": "^2.6.2"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/@types/sinon": {
@@ -2222,6 +2310,7 @@
"resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-10.0.20.tgz",
"integrity": "sha512-2APKKruFNCAZgx3daAyACGzWuJ028VVCUDk6o2rw/Z4PXT0ogwdV4KUegW0MwVs0Zu59auPXbbuBJHF12Sx1Eg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/sinonjs__fake-timers": "*"
}
@@ -2230,19 +2319,28 @@
"version": "8.1.5",
"resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.5.tgz",
"integrity": "sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/uuid": {
+ "version": "9.0.8",
+ "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.8.tgz",
+ "integrity": "sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==",
+ "license": "MIT"
},
"node_modules/asynckit": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/aws-sdk-client-mock": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/aws-sdk-client-mock/-/aws-sdk-client-mock-3.1.0.tgz",
"integrity": "sha512-3Mx5R8DDka2TB8qtr5jDbSVJsUM6uoX5tZSReBsJS8HunVtL9PHhb+RU7b+I3/53B2fJAyoEp7dJNXndBI+6MA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/sinon": "^10.0.10",
"sinon": "^16.1.3",
@@ -2254,6 +2352,7 @@
"resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz",
"integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"safe-buffer": "5.1.2"
},
@@ -2264,19 +2363,32 @@
"node_modules/bowser": {
"version": "2.11.0",
"resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz",
- "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA=="
+ "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==",
+ "license": "MIT"
},
- "node_modules/call-bind": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
- "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
+ "node_modules/call-bind-apply-helpers": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
+ "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "es-define-property": "^1.0.0",
"es-errors": "^1.3.0",
- "function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.4",
- "set-function-length": "^1.2.1"
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/call-bound": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz",
+ "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind-apply-helpers": "^1.0.2",
+ "get-intrinsic": "^1.3.0"
},
"engines": {
"node": ">= 0.4"
@@ -2290,6 +2402,7 @@
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"delayed-stream": "~1.0.0"
},
@@ -2302,6 +2415,7 @@
"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz",
"integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==",
"dev": true,
+ "license": "MIT",
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
@@ -2310,21 +2424,24 @@
"version": "2.1.4",
"resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz",
"integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/core-util-is": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
"integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/cross-fetch": {
- "version": "3.1.8",
- "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz",
- "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.2.0.tgz",
+ "integrity": "sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "node-fetch": "^2.6.12"
+ "node-fetch": "^2.7.0"
}
},
"node_modules/debug": {
@@ -2332,32 +2449,17 @@
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
"integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ms": "^2.1.1"
}
},
- "node_modules/define-data-property": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
- "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
- "dev": true,
- "dependencies": {
- "es-define-property": "^1.0.0",
- "es-errors": "^1.3.0",
- "gopd": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
"integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.4.0"
}
@@ -2367,27 +2469,71 @@
"resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz",
"integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==",
"dev": true,
+ "license": "BSD-3-Clause",
"engines": {
"node": ">=0.3.1"
}
},
- "node_modules/es-define-property": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
- "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
+ "node_modules/dunder-proto": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
+ "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "get-intrinsic": "^1.2.4"
+ "call-bind-apply-helpers": "^1.0.1",
+ "es-errors": "^1.3.0",
+ "gopd": "^1.2.0"
},
"engines": {
"node": ">= 0.4"
}
},
+ "node_modules/es-define-property": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
+ "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/es-errors": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
"integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
"dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-object-atoms": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
+ "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-set-tostringtag": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
+ "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.6",
+ "has-tostringtag": "^1.0.2",
+ "hasown": "^2.0.2"
+ },
"engines": {
"node": ">= 0.4"
}
@@ -2397,6 +2543,7 @@
"resolved": "https://registry.npmjs.org/express-basic-auth/-/express-basic-auth-1.2.1.tgz",
"integrity": "sha512-L6YQ1wQ/mNjVLAmK3AG1RK6VkokA1BIY6wmiH304Xtt/cLTps40EusZsU1Uop+v9lTDPxdtzbFmdXfFO3KEnwA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"basic-auth": "^2.0.1"
}
@@ -2405,22 +2552,24 @@
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
"integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/fast-xml-parser": {
- "version": "4.2.5",
- "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.5.tgz",
- "integrity": "sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==",
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz",
+ "integrity": "sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==",
"funding": [
- {
- "type": "paypal",
- "url": "https://paypal.me/naturalintelligence"
- },
{
"type": "github",
"url": "https://github.com/sponsors/NaturalIntelligence"
+ },
+ {
+ "type": "paypal",
+ "url": "https://paypal.me/naturalintelligence"
}
],
+ "license": "MIT",
"dependencies": {
"strnum": "^1.0.5"
},
@@ -2429,25 +2578,50 @@
}
},
"node_modules/form-data": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz",
- "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==",
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.3.tgz",
+ "integrity": "sha512-XHIrMD0NpDrNM/Ckf7XJiBbLl57KEhT3+i3yY+eWm+cqYZJQTZrKo8Y8AWKnuV5GT4scfuUGt9LzNoIx3dU1nQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"asynckit": "^0.4.0",
- "combined-stream": "^1.0.6",
- "mime-types": "^2.1.12"
+ "combined-stream": "^1.0.8",
+ "es-set-tostringtag": "^2.1.0",
+ "mime-types": "^2.1.35",
+ "safe-buffer": "^5.2.1"
},
"engines": {
"node": ">= 0.12"
}
},
+ "node_modules/form-data/node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
"node_modules/formidable": {
"version": "1.2.6",
"resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.6.tgz",
"integrity": "sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ==",
"deprecated": "Please upgrade to latest, formidable@v2 or formidable@v3! Check these notes: https://bit.ly/2ZEqIau",
"dev": true,
+ "license": "MIT",
"funding": {
"url": "https://ko-fi.com/tunnckoCore/commissions"
}
@@ -2457,21 +2631,28 @@
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
"integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
"dev": true,
+ "license": "MIT",
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/get-intrinsic": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
- "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
+ "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
+ "call-bind-apply-helpers": "^1.0.2",
+ "es-define-property": "^1.0.1",
"es-errors": "^1.3.0",
+ "es-object-atoms": "^1.1.1",
"function-bind": "^1.1.2",
- "has-proto": "^1.0.1",
- "has-symbols": "^1.0.3",
- "hasown": "^2.0.0"
+ "get-proto": "^1.0.1",
+ "gopd": "^1.2.0",
+ "has-symbols": "^1.1.0",
+ "hasown": "^2.0.2",
+ "math-intrinsics": "^1.1.0"
},
"engines": {
"node": ">= 0.4"
@@ -2480,13 +2661,28 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/gopd": {
+ "node_modules/get-proto": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
- "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
+ "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
+ "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "get-intrinsic": "^1.1.3"
+ "dunder-proto": "^1.0.1",
+ "es-object-atoms": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/gopd": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
+ "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -2497,27 +2693,17 @@
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
- "node_modules/has-property-descriptors": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
- "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
- "dev": true,
- "dependencies": {
- "es-define-property": "^1.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-proto": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz",
- "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
+ "node_modules/has-symbols": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
+ "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.4"
},
@@ -2525,11 +2711,15 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/has-symbols": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
- "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
+ "node_modules/has-tostringtag": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
+ "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-symbols": "^1.0.3"
+ },
"engines": {
"node": ">= 0.4"
},
@@ -2542,6 +2732,7 @@
"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
"integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"function-bind": "^1.1.2"
},
@@ -2554,6 +2745,7 @@
"resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
"integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
"react-is": "^16.7.0"
}
@@ -2562,38 +2754,45 @@
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/isarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
"integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
"dev": true,
+ "license": "MIT",
"peer": true
},
"node_modules/just-extend": {
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/just-extend/-/just-extend-6.2.0.tgz",
"integrity": "sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/lodash.get": {
"version": "4.4.2",
"resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
"integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==",
- "dev": true
+ "deprecated": "This package is deprecated. Use the optional chaining (?.) operator instead.",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/loose-envify": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
"integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
"dev": true,
+ "license": "MIT",
"peer": true,
"dependencies": {
"js-tokens": "^3.0.0 || ^4.0.0"
@@ -2602,11 +2801,22 @@
"loose-envify": "cli.js"
}
},
+ "node_modules/math-intrinsics": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
+ "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/methods": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
"integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.6"
}
@@ -2616,6 +2826,7 @@
"resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
"integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
"dev": true,
+ "license": "MIT",
"bin": {
"mime": "cli.js"
},
@@ -2628,6 +2839,7 @@
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
"integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.6"
}
@@ -2637,6 +2849,7 @@
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
"integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"mime-db": "1.52.0"
},
@@ -2648,13 +2861,15 @@
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/nise": {
"version": "5.1.9",
"resolved": "https://registry.npmjs.org/nise/-/nise-5.1.9.tgz",
"integrity": "sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
"@sinonjs/commons": "^3.0.0",
"@sinonjs/fake-timers": "^11.2.2",
@@ -2664,12 +2879,13 @@
}
},
"node_modules/nise/node_modules/@sinonjs/fake-timers": {
- "version": "11.2.2",
- "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-11.2.2.tgz",
- "integrity": "sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==",
+ "version": "11.3.1",
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-11.3.1.tgz",
+ "integrity": "sha512-EVJO7nW5M/F5Tur0Rf2z/QoMo+1Ia963RiMtapiQrEWvY0iBUvADo8Beegwjpnle5BHkyHuoxSTW3jF43H1XRA==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
- "@sinonjs/commons": "^3.0.0"
+ "@sinonjs/commons": "^3.0.1"
}
},
"node_modules/node-fetch": {
@@ -2677,6 +2893,7 @@
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
"integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"whatwg-url": "^5.0.0"
},
@@ -2693,10 +2910,11 @@
}
},
"node_modules/object-inspect": {
- "version": "1.13.2",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz",
- "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==",
+ "version": "1.13.4",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
+ "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.4"
},
@@ -2705,24 +2923,27 @@
}
},
"node_modules/path-to-regexp": {
- "version": "6.2.2",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.2.tgz",
- "integrity": "sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==",
- "dev": true
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz",
+ "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/process-nextick-args": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/qs": {
- "version": "6.12.3",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.12.3.tgz",
- "integrity": "sha512-AWJm14H1vVaO/iNZ4/hO+HyaTehuy9nRqVdkTqlJt0HWvBiBIEXFmb4C0DGeYo3Xes9rrEW+TxHsaigCbN5ICQ==",
+ "version": "6.14.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz",
+ "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
- "side-channel": "^1.0.6"
+ "side-channel": "^1.1.0"
},
"engines": {
"node": ">=0.6"
@@ -2736,6 +2957,7 @@
"resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
"integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==",
"dev": true,
+ "license": "MIT",
"peer": true,
"dependencies": {
"loose-envify": "^1.1.0"
@@ -2748,13 +2970,15 @@
"version": "16.13.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/readable-stream": {
"version": "2.3.8",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
"integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
@@ -2769,41 +2993,84 @@
"version": "0.14.1",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
"integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/set-function-length": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
- "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
+ "node_modules/side-channel": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
+ "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "define-data-property": "^1.1.4",
"es-errors": "^1.3.0",
- "function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.4",
- "gopd": "^1.0.1",
- "has-property-descriptors": "^1.0.2"
+ "object-inspect": "^1.13.3",
+ "side-channel-list": "^1.0.0",
+ "side-channel-map": "^1.0.1",
+ "side-channel-weakmap": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/side-channel": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz",
- "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
+ "node_modules/side-channel-list": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz",
+ "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "object-inspect": "^1.13.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/side-channel-map": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",
+ "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bound": "^1.0.2",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.5",
+ "object-inspect": "^1.13.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/side-channel-weakmap": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
+ "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.7",
+ "call-bound": "^1.0.2",
"es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.4",
- "object-inspect": "^1.13.1"
+ "get-intrinsic": "^1.2.5",
+ "object-inspect": "^1.13.3",
+ "side-channel-map": "^1.0.1"
},
"engines": {
"node": ">= 0.4"
@@ -2817,6 +3084,7 @@
"resolved": "https://registry.npmjs.org/sinon/-/sinon-16.1.3.tgz",
"integrity": "sha512-mjnWWeyxcAf9nC0bXcPmiDut+oE8HYridTNzBbF98AYVLmWwGRp2ISEpyhYflG1ifILT+eNn3BmKUJPxjXUPlA==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
"@sinonjs/commons": "^3.0.0",
"@sinonjs/fake-timers": "^10.3.0",
@@ -2835,14 +3103,22 @@
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"safe-buffer": "~5.1.0"
}
},
"node_modules/strnum": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz",
- "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA=="
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.1.2.tgz",
+ "integrity": "sha512-vrN+B7DBIoTTZjnPNewwhx6cBA/H+IS7rfW68n7XxC1y7uoiGQBxaKzqucGUgavX15dJgiGztLJ8vxuEzwqBdA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/NaturalIntelligence"
+ }
+ ],
+ "license": "MIT"
},
"node_modules/superagent": {
"version": "3.8.3",
@@ -2850,6 +3126,7 @@
"integrity": "sha512-GLQtLMCoEIK4eDv6OGtkOoSMt3D+oq0y3dsxMuYuDvaNUvuT8eFBuLmfR0iYYzHC1e8hpzC6ZsxbuP6DIalMFA==",
"deprecated": "Please upgrade to v9.0.0+ as we have fixed a public vulnerability with formidable dependency. Note that v9.0.0+ requires Node.js v14.18.0+. See https://github.com/ladjs/superagent/pull/1800 for insight. This project is supported and maintained by the team at Forward Email @ https://forwardemail.net",
"dev": true,
+ "license": "MIT",
"dependencies": {
"component-emitter": "^1.2.0",
"cookiejar": "^2.1.0",
@@ -2871,6 +3148,7 @@
"resolved": "https://registry.npmjs.org/supertest/-/supertest-4.0.2.tgz",
"integrity": "sha512-1BAbvrOZsGA3YTCWqbmh14L0YEq0EGICX/nBnfkfVJn7SrxQV1I3pMYjSzG9y/7ZU2V9dWqyqk2POwxlb09duQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"methods": "^1.1.2",
"superagent": "^3.8.3"
@@ -2884,6 +3162,7 @@
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -2895,18 +3174,21 @@
"version": "0.0.3",
"resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
"integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/tslib": {
- "version": "2.6.3",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz",
- "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ=="
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
+ "license": "0BSD"
},
"node_modules/type-detect": {
"version": "4.0.8",
"resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
"integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=4"
}
@@ -2915,7 +3197,8 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/uuid": {
"version": "9.0.1",
@@ -2925,6 +3208,7 @@
"https://github.com/sponsors/broofa",
"https://github.com/sponsors/ctavan"
],
+ "license": "MIT",
"bin": {
"uuid": "dist/bin/uuid"
}
@@ -2933,13 +3217,15 @@
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
"integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
- "dev": true
+ "dev": true,
+ "license": "BSD-2-Clause"
},
"node_modules/whatwg-url": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
"integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"tr46": "~0.0.3",
"webidl-conversions": "^3.0.0"
diff --git a/packages/template-mrt-reference-app/package.json b/packages/template-mrt-reference-app/package.json
index f435590530..bf3d756123 100644
--- a/packages/template-mrt-reference-app/package.json
+++ b/packages/template-mrt-reference-app/package.json
@@ -1,6 +1,6 @@
{
"name": "template-mrt-reference-app",
- "version": "3.10.0-dev.1",
+ "version": "4.0.0-extensibility-preview.5",
"private": true,
"license": "See license in LICENSE",
"scripts": {
@@ -16,8 +16,8 @@
},
"devDependencies": {
"@loadable/component": "^5.15.3",
- "@salesforce/pwa-kit-dev": "3.10.0-dev.1",
- "@salesforce/pwa-kit-runtime": "3.10.0-dev.1",
+ "@salesforce/pwa-kit-dev": "4.0.0-extensibility-preview.5",
+ "@salesforce/pwa-kit-runtime": "4.0.0-extensibility-preview.5",
"@smithy/smithy-client": "^2.1.15",
"aws-sdk-client-mock": "^3.0.0",
"cross-fetch": "^3.1.4",
diff --git a/packages/template-mrt-reference-app/app/isolation-actions.js b/packages/template-mrt-reference-app/src/isolation-actions.js
similarity index 100%
rename from packages/template-mrt-reference-app/app/isolation-actions.js
rename to packages/template-mrt-reference-app/src/isolation-actions.js
diff --git a/packages/template-mrt-reference-app/app/request-processor.js b/packages/template-mrt-reference-app/src/request-processor.js
similarity index 100%
rename from packages/template-mrt-reference-app/app/request-processor.js
rename to packages/template-mrt-reference-app/src/request-processor.js
diff --git a/packages/template-mrt-reference-app/app/ssr.js b/packages/template-mrt-reference-app/src/ssr.js
similarity index 100%
rename from packages/template-mrt-reference-app/app/ssr.js
rename to packages/template-mrt-reference-app/src/ssr.js
diff --git a/packages/template-mrt-reference-app/app/ssr.test.js b/packages/template-mrt-reference-app/src/ssr.test.js
similarity index 100%
rename from packages/template-mrt-reference-app/app/ssr.test.js
rename to packages/template-mrt-reference-app/src/ssr.test.js
diff --git a/packages/template-mrt-reference-app/app/static/example.css b/packages/template-mrt-reference-app/src/static/example.css
similarity index 100%
rename from packages/template-mrt-reference-app/app/static/example.css
rename to packages/template-mrt-reference-app/src/static/example.css
diff --git a/packages/template-mrt-reference-app/app/static/example.eot b/packages/template-mrt-reference-app/src/static/example.eot
similarity index 100%
rename from packages/template-mrt-reference-app/app/static/example.eot
rename to packages/template-mrt-reference-app/src/static/example.eot
diff --git a/packages/template-mrt-reference-app/app/static/example.gif b/packages/template-mrt-reference-app/src/static/example.gif
similarity index 100%
rename from packages/template-mrt-reference-app/app/static/example.gif
rename to packages/template-mrt-reference-app/src/static/example.gif
diff --git a/packages/template-mrt-reference-app/app/static/example.jpe b/packages/template-mrt-reference-app/src/static/example.jpe
similarity index 100%
rename from packages/template-mrt-reference-app/app/static/example.jpe
rename to packages/template-mrt-reference-app/src/static/example.jpe
diff --git a/packages/template-mrt-reference-app/app/static/example.jpeg b/packages/template-mrt-reference-app/src/static/example.jpeg
similarity index 100%
rename from packages/template-mrt-reference-app/app/static/example.jpeg
rename to packages/template-mrt-reference-app/src/static/example.jpeg
diff --git a/packages/template-mrt-reference-app/app/static/example.jpg b/packages/template-mrt-reference-app/src/static/example.jpg
similarity index 100%
rename from packages/template-mrt-reference-app/app/static/example.jpg
rename to packages/template-mrt-reference-app/src/static/example.jpg
diff --git a/packages/template-mrt-reference-app/app/static/example.js b/packages/template-mrt-reference-app/src/static/example.js
similarity index 100%
rename from packages/template-mrt-reference-app/app/static/example.js
rename to packages/template-mrt-reference-app/src/static/example.js
diff --git a/packages/template-mrt-reference-app/app/static/example.json b/packages/template-mrt-reference-app/src/static/example.json
similarity index 100%
rename from packages/template-mrt-reference-app/app/static/example.json
rename to packages/template-mrt-reference-app/src/static/example.json
diff --git a/packages/template-mrt-reference-app/app/static/example.mjs b/packages/template-mrt-reference-app/src/static/example.mjs
similarity index 100%
rename from packages/template-mrt-reference-app/app/static/example.mjs
rename to packages/template-mrt-reference-app/src/static/example.mjs
diff --git a/packages/template-mrt-reference-app/app/static/example.otf b/packages/template-mrt-reference-app/src/static/example.otf
similarity index 100%
rename from packages/template-mrt-reference-app/app/static/example.otf
rename to packages/template-mrt-reference-app/src/static/example.otf
diff --git a/packages/template-mrt-reference-app/app/static/example.png b/packages/template-mrt-reference-app/src/static/example.png
similarity index 100%
rename from packages/template-mrt-reference-app/app/static/example.png
rename to packages/template-mrt-reference-app/src/static/example.png
diff --git a/packages/template-mrt-reference-app/app/static/example.svg b/packages/template-mrt-reference-app/src/static/example.svg
similarity index 100%
rename from packages/template-mrt-reference-app/app/static/example.svg
rename to packages/template-mrt-reference-app/src/static/example.svg
diff --git a/packages/template-mrt-reference-app/app/static/example.ttf b/packages/template-mrt-reference-app/src/static/example.ttf
similarity index 100%
rename from packages/template-mrt-reference-app/app/static/example.ttf
rename to packages/template-mrt-reference-app/src/static/example.ttf
diff --git a/packages/template-mrt-reference-app/app/static/example.txt b/packages/template-mrt-reference-app/src/static/example.txt
similarity index 100%
rename from packages/template-mrt-reference-app/app/static/example.txt
rename to packages/template-mrt-reference-app/src/static/example.txt
diff --git a/packages/template-mrt-reference-app/app/static/example.woff b/packages/template-mrt-reference-app/src/static/example.woff
similarity index 100%
rename from packages/template-mrt-reference-app/app/static/example.woff
rename to packages/template-mrt-reference-app/src/static/example.woff
diff --git a/packages/template-mrt-reference-app/app/static/example.woff2 b/packages/template-mrt-reference-app/src/static/example.woff2
similarity index 100%
rename from packages/template-mrt-reference-app/app/static/example.woff2
rename to packages/template-mrt-reference-app/src/static/example.woff2
diff --git a/packages/template-mrt-reference-app/app/static/favicon.ico b/packages/template-mrt-reference-app/src/static/favicon.ico
similarity index 100%
rename from packages/template-mrt-reference-app/app/static/favicon.ico
rename to packages/template-mrt-reference-app/src/static/favicon.ico
diff --git a/packages/template-retail-react-app/.gitignore b/packages/template-retail-react-app/.gitignore
deleted file mode 100644
index ed48e36cca..0000000000
--- a/packages/template-retail-react-app/.gitignore
+++ /dev/null
@@ -1,32 +0,0 @@
-.nyc_output
-build.tar
-
-coverage
-tests/reports
-tests/screenshots
-tests/lighthouse-reports/
-lighthouse/audit*
-.lighthouseci
-
-.tern-port
-app/integration-manager/docs
-messaging/*.csr
-
-# Local App Configuration Files
-config/local.*
-
-# Elastic Beanstalk Files
-.elasticbeanstalk/*
-!.elasticbeanstalk/*.cfg.yml
-!.elasticbeanstalk/*.global.yml
-
-build/
-tmp/
-*.log
-node_modules
-
-# Generated files
-app/cache-hash-manifest.json
-app/loader-cache-hash-manifest.json
-
-.vscode
\ No newline at end of file
diff --git a/packages/template-retail-react-app/.prettierignore b/packages/template-retail-react-app/.prettierignore
deleted file mode 100644
index e4e5e605db..0000000000
--- a/packages/template-retail-react-app/.prettierignore
+++ /dev/null
@@ -1,5 +0,0 @@
-build
-docs
-coverage
-scripts/generator/assets
-app/static
diff --git a/packages/template-retail-react-app/CHANGELOG.md b/packages/template-retail-react-app/CHANGELOG.md
deleted file mode 100644
index 956cf9c8cd..0000000000
--- a/packages/template-retail-react-app/CHANGELOG.md
+++ /dev/null
@@ -1,435 +0,0 @@
-## v6.1.0-dev (Feb 18, 2025)
-
-- Fix hreflang alternate links [#2269](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2269)
-- PDP / PLP: Add page meta data tags that have been defined in BM [#2232](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2232)
-- Send PWA Kit events to Data Cloud [#318] (https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2229)
-- Fix dependencies vulnerabilities [#2338](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2338)
-- Fix accessibility issues [#2375](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2375)
-- Update cc-datacloud-typescript package to use a fixed lock version [#2392](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2392)
-- Add Confirm New Password input field to Reset & Change Password flows [#2395](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2395)
-
-## v6.0.1 (Mar 05, 2025)
-- Update PWA-Kit SDKs to v3.9.1 [#2301](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2301)
-
-## v6.0.0 (Feb 18, 2025)
-
-- DNT Consent Banner: [#2203](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2203)
-- Support Node 22 [#2218](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2218)
-- Implemented opt-in Social & Passwordless Login features and fixed the Reset Password flow which now leverages SLAS APIs [#2079] (https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2079)
-- Allow store to be selectable in StoreLocator [#2187](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2187)
-- Replace transfer basket call with merge basket on checkout [#2138](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2138)
-
-### Bug Fixes
-- [BUG] Fixed GET /shopper-context API calls being made without the usid [#2206](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2206)
-- Update test data references to 2024, and unify to 01/2040 [#2196](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2197)
-- Fixed failing checkout tests [#2195](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2195)
-- [BUG] Fixed "getCheckboxProps is not a function" when rendering checkout page in generated app.[#2140](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2140)
-- [BUG] Fix images being fetced multiple times on Safari [#2223](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2223)
-
-### Accessibility Improvements
-- [a11y] Fix LinkList component to follow a11y practise [#2098])(https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2098)
-
-
-## v5.0.0 (Oct 28, 2024)
-
-### New Features
-- Implement ability to set Shopper Context via search parameters in the Retail React App [#1986](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1986)
-- Display a promo banner from Page Designer in the PLP page of the Retail React App [#2016](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2016)
-- Clear auth state if session has been invalidated by a password change [#2092](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2092)
-
-### Performance Improvements
-
-- PLP: When products are being refetched, only the pricing and promotions sections will display a skeleton in the ProductTile [#2064](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2064)
-- Remove ocapi session-bridging on phased launches [#2011](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2011)
-
-### Other Changes
-
-- [Server Affinity] - Attach dwsid to SCAPI request headers & remove OCAPI proxy [#2090](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2090)
-- Announce wishlist change in total for screen readers (a11y) [#2033](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2033)
-- Fixed a bug that incorrectly imports uninstalled package `@chakra-ui/layout` [#2047](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2047)
-- Replace getAppOrigin with useOrigin to have a better support for an app origin building. [#2050](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2050)
-- PWA Kit projects have Active Data tracking set to "true" by default [#1983](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1983).
-
-### Bug Fixes
-- The unused `njwt` npm package had a security vulnerability, since it was unused, the package has been dropped
-- Remove save/edit billing action in checkout page for the registered user [#1976](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1976)
-- Product scroller: don't skip tiles if window is too large [#2003](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2003)
-- PDP / PLP: Render non HTTP 404 erros [#2003](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2003)
-- Error page: Render home page when clicking nav icon [#2003](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2003)
-- Encode non ASCII HTTP headers when `encodeNonAsciiHttpHeaders` flag is set to true in `ssr.js` [#2009](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2009)
-- Updated @salesforce/commerce-sdk-react to 3.0.1 to fix an issue with the expires attribute of cookies, ensuring it uses seconds instead of days [#1994](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1994)
-
-
-### Accessibility Improvements
-- [a11y] Hide svg from screenreader as they are decorative on homepage [#1980](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1980)
-- [a11y] Hide log out svg from screenreader as they are decorative [#2000](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2000)
-- [a11y] Ensure heading level matches the heading's visual importance/level [#2000](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2000)
-- [a11y] Provide a descriptive dialog title for Mobile Navigation Header [#2000](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2000)
-- Hide breadcrumb chevrons from screen readers [#1965](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1965)
-- Add descriptive text for screen readers on product edit modal in cart page [#1965](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1965)
-- A11y: Fix search bar header element focus order [#1969](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1969)
-- A11y: Order Details - hide decorative image and convert some p tags as proper headings [#2026](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2026)
-- Add aria-labels for buttons in product item wishlist component to ensure they are unique and descriptive. [#2023](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2023)
-- Focus onto the `ToggleCard` title whenever the component is opened to be editted [#2029](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2029)
-- Add descriptive acccessibility label for edit/remove buttons on account addresses and checkout pages [#2037](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2037)
-- [a11y] Mobile view account menu a11y adjustments [#2059](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2059)
-- [a11y] PLP - Use header tags for filter options [#2065](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2065)
-
-
-## v4.0.0 (Aug 7, 2024)
-
-### New Features
-
-- Support product bundles [#1916](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1916/)
-- Add Store Locator [#1922](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1922)
-
-### Bug Fixes
-
-- Update serialized query data via `beforeHydrate` to prevent data re-fetching on load [#1912](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1912)
-- Out of stock and low stock items are removed from cart and checkout as unavailable products [#1881](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1881)
-- Fix infinity sign price on product tile [#1903](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1903)
-- Remove unecessary params from product search [#1873](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1873)
-
-### Accessibility Improvements
-
-- Improve accessibility readout for strikethrough price on shipping options in checkout page [#1892](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1892)
-- Ensure credit card informational tooltip on checkout page persists after the user is no longer hovering over it [#1890](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1890)
-- A11y: Add aria-label to the address form based on the address type [#1904](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1904)
-- A11y: Account Nav fixes [#1884](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1884)
-- A11y: Replace `` tags with header tag in home page Features section [#1902](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1902)
-- Add aria-label for Checkout's action buttons [#1906](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1906)
-- Avoid forced focus changes that are not user-initiated [#1940](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1940)
-
-## v3.0.2 (Jul 11, 2024)
-
-### Bug Fixes
-
-- Fix StorefrontPreview component add siteId query parameter to shopper context calls [#1891](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1891)
-
-### Accessibility improvements
-
-- Ensure that the email field on the checkout page receives focus after content updates [#1894](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1894)
-
-## v3.0.1 (Jul 9, 2024)
-
-### Bug Fixes
-
-- Fix basket transfer during checkout login [#1887](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1887)
-
-## v3.0.0 (Jun 25, 2024)
-
-### Improvements
-
-- Product Tile Revamp
- - Display different pricing for various products on Product tiles and PDP [#1760](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1760)
- - Display pricing for cart, checkout and wishlist page [#1796](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1796)
- - Shows promotional callout message on Product List and Product Detail pages [#1786](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1786) [#1804](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1804)
- - Display selectable swatch groups for attributes like color [#1773](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1773)
- - Show badges [#1791](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1791)
-
-- Lazy basket creation [#1677](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1677)
-- Use `stale-while-revalidate` cache control directive [#1744](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1744)
-
-### Accessibility Improvements
-
-- Added live region support to components [#1825](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1825)
-- Replace p tag with heading tags in cart page [#1818](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1818)
-- Fix product tile img alt text [#1769](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1769)
-- Add aria-hidden to search icon [#1809](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1809)
-- Add explicit headers to cart modal [#1811](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1811)
-- Add autocomplete to text input fields [#1840](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1840)
-- Add error icon to error messages [#1839](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1839)
-
-### Performance Improvements
-
-- Make navigation components lazy load their categories [#1656](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1656) [#1673](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1673)
-
-### Bug Fixes
-
-- Fix seo component not settings keywords meta tag [#1762](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1762)
-- Fix RecommendedProducts' toggling of the favourite icon [#1861](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1861)
-
-
-## v2.4.1 (Apr 17, 2024)
-- Update dependency commerce-sdk-react to 1.4.1 to have access to all params keys for Shopper Search [#1750](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1750)
-
-## v2.4.0 (Apr 15, 2024)
-
-### New Feature
-
-- Add Support for SLAS private flow [#1722](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1722)
-
-### Bug Fixes
-
-- Fix promo codes not being properly applied in cart [#1692](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1692)
-- Fix checkout shipping method fetching [#1693](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1693)
-- Fix invalid query params warnings [#1655](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1655)
-- Fix internal server error on account pages [#1675](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1675)
-- Fix `product-item` component imports to ensure that it is overridable. [#1672](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1672)
-- Fix locale selector navigating back to default locale [#1670](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1670)
-- Fix handling of offline products on Cart, Checkout, Order History, and Wishlist pages [#1691](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1691)
-- Fix tracking of `viewSearch` event for Einstein analytics, in the case of no-search-results [#1702](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1702)
-- Remove invalid header `_sfdc_customer_id` due to recent MRT HTTP3 upgrade [#1731](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1731)
-
-## v2.3.1 (Jan 23, 2024)
-
-### Bug Fixes
-
-- Fix `extract-default-translations` script [#1647](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1647)
-
-## v2.3.0 (Jan 19, 2024)
-
-### Accessibility improvements
-
-- Add correct keyboard interaction behavior for variation attribute radio buttons [#1587](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1587)
-- Change radio refinements (for example, filtering by Price) from radio inputs to styled buttons [#1605](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1605)
-- Update search refinements ARIA labels to include "add/remove filter" [#1607](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1607)
-- Improve focus behavior on my account pages, address forms, and promo codes [#1625](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1625)
-
-### Other features
-
-- Add local development support for node 20 [#1612](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1612)
- - Support for node 20 is not yet available on Managed Runtime
-- Display selected refinements on PLP, even if the selected refinement has no hits [#1622](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1622)
-
-## v2.2.0 (Nov 8, 2023)
-
-### Accessibility Improvements
-
-
-- Ensure the ListMenuTrigger component applies ARIA attributes to the correct element for the trigger icon [#1600](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1600)
-- Ensure form fields and icons have accessible labels [#1526](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1526)
-- Ensure active user interface components have sufficient contrast [#1534](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1534)
-- Fix outline on keyboard focus [#1536](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1536/files)
-- Fix improper nesting of elements in product tile [#1541](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1541)
-- Ensure all interactive functionality is operable with the keyboard [#1546](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1546)
-- Make security code tooltip receive keyboard focus [#1551](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1551)
-- Improve accessibility of quantity picker [#1552](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1552)
-- Improve keyboard accessibility of product scroller [#1559](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1559)
-- Fix focus indicator for hero features links on homepage [#1561](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1561)
-- Ensure color is not the sole means of communicating information [#1570](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1570)
-- Improve keyboard accessibility of account menu and nav bar [#1572](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1572)
-
-### Other Features
-
-- Add [Active Data](https://help.salesforce.com/s/articleView?id=cc.b2c_active_data_attributes.htm&type=5) files, update pages (app index.jsx, product list and product details pages) to trigger events on product category and product detail views [#1555](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1555)
-- Replace max-age with s-maxage to only cache shared caches [#1564](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1564)
-- Implement gift option for basket [#1546](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1546)
-- Added option to specify `isLoginPage` function to the `withRegistration` component. The default behavior is "all pages ending in `/login`". [#1572](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1572)
-- Update `extract-default-messages` script to support multiple locales [#1574](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1574)
-- Update engine compatibility to include npm 10 [#1597](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1597)
-- Add support for localization in icon component [#1609](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1609)
-
-### Bug Fixes
-
-- Fix checkout allowing you to proceed to review with invalid billing address [#1632](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1632)
-- Fix password change functionality [#1634](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1634)
-- Remove internal linter rule that is missing in generated projects [#1554](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1554)
-- Fix bug where you can add duplicates of the same item to the wishlist. Also fixes bug where skeleton appears when removing last item from the wishlist. [#1560](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1560)
-- Replace max-age with s-maxage to only cache shared caches [#1564](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1564)
-- Fix PLP filters for mobile [#1565](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1565)
-
-## v2.1.1 (Nov 7, 2023)
-
-- Use the new opt-in mechanism for enforcing the default security headers required by PWA Kit projects. [#1528](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1528)
-
-## v2.1.0 (Nov 3, 2023)
-
-- Support Storefront Preview
- - [#1413](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1413)
- - [#1440](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1440)
-- Show discounted and strikethrough prices when there is a promotion on product detail page [1455](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1455)
-- Move Content-Security-Policy logic to pwa-kit-runtime [1457](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1457)
-
-## v2.0.0 (Sep 21, 2023)
-
-- V3 Fix checkout card number [#1424](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1424)
-- Cleanup wrong import path for page-designer component [#1441](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1441) @clavery
-- Modularize country code source for targeting via extensibility [#1445](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1445) @bfeister
-- Export icon helper function for target via overrides [#1420](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1420) @cbrother-csu
-- Migrate Page Designer core types to commerce-sdk-react [#1441](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1441) @clavery
-
-## v1.0.1 (Jul 26, 2023)
-
-- Fix price display when a discounted price is zero [#1361](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1361)
-- Fix price adjustments of a line item when more than one is present [#1362](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1362)
-- Registered user checkout should set order with an email [#1363](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1363)
-
-## v1.0.0 (June 15, 2023)
-
-- First public release of package on npm under `@salesforce/retail-react-app`
-- Upgrade React v18, React DOM v18, React-hook-form v7, and Chakra 2 libraries [#1166](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1166)
-- Add app `above-header` and product-list `above-page-header` convenience components [#1183](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1183)
-- Migration to "hooks" / `@salesforce/commerce-sdk-react` integration follow the [upgrade guide](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/upgrade-to-v3.html) and [view the diff](https://github.com/SalesforceCommerceCloud/pwa-kit/compare/release-2.7.x...release-3.0.x?diff=unified#files_bucket)
-
-## Older Versions Without Namespace
-
-The versions published below were not published on npm, and the versioning matched that of the PWA Kit SDK. These versions did not use the `@salesforce` namespace.
-
-### v2.7.1 (May 11, 2023)
-
-- Replace invalid row value with nowrap [#1179](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1179)
-- Add a redirect to login page after user signs out from checkout page [#1172](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1172)
-- PWA Kit should have a mechanism for replacing the access token when a SFRA login state is changed [#1171](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1171)
-- Added session bridge call to login for phased launch [#1159](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1159)
-- Fix Page Designer ImageWithText Link component [#1092](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1092)
-- Remove site alias and locale from location.state.directedFrom path [#1065)](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1065)
-- Product list refinements [#957](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/957)
-- Prevent modal to open when it fails to add an item to cart [#1053](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1053)
-- Make `mergeBasket` conditional more robust [#1048](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1048)
-- Fix addresses not having preferred address first. [#1051](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1051)
-- Changed type of the phone number field to bring up numberic keyboard on mobile devices - W-9871940 [#1016)](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1016)
-
-### v2.7.0 (Mar 03, 2023)
-
-- Add Page Designer ImageTile component [#967](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/967)
-- Add Page Designer ImageWithText component [#991](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/991)
-- Add Page Designer carousel component [#977](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/977)
-- Add Page Designer layout components [#993](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/993)
-- Support the product-set type [#1019](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1019)
-
-### v2.6.0 (Jan 25, 2023)
-
-- Mega menu fixes [#875](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/875) and [#910](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/910)
-- Cache SLAS callback using request processor [#884](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/884)
-- Fix padding of footer drawer component [#899](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/899)
-- Update createOrder to send SLAS USID [#920](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/920)
-- Fix PropTypes [#924](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/924)
-- Remove unnecessary map statement [#929](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/929)
-
-### v2.5.0 (Jan 5, 2023)
-
-- Add instanceType to Einstein activity body [#858](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/858)
-- Do not use a proxy to call Einstein [#857](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/857)
-- Einstein handle variants [#867](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/867)
-- Fix cc exp year [#874](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/874)
-
-### v2.4.0 (Dec 1, 2022)
-
-- Dynamic footer Copyright date [#741](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/741)
-- Footer copyright: remove the remaining hardcoded year [#760](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/760)
-- ImageGallery uses image.link when DIS is not set [#786](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/786)
-- Use default locale as target if none is specified [#788](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/788)
-- Password change bug fix [#803](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/803)
-- pwa-kit-dev command for tailing logs [#789](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/789)
-- Update usages of zzrf-001 ODS instance to the new short URL format [#816](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/816)
-
-### v2.3.0 (Oct 27, 2022)
-
-- Fix locale `alias` by including `locale` object inside the MultiSite Context. [#716](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/716)
-- Updated translations. [#725](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/725)
-- Add new Einstein API activities. [#714](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/714)
-- Fix search field to recognize `“&”` character. [#736](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/736)
-- Fix filters on search results page. [#742](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/742)
-- Dynamic footer copyright date. [#741](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/741)
-- Bugfix: image gallery thumbnails not working without DIS [#786](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/786)
-- Ensure that a valid target locale is use if none is provided [#788](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/788)
-
-### v2.2.0 (Aug 25, 2022)
-
-- Update zzrf-001 url [#694](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/694)
-- Optimize Server-side performance [#667](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/667)
-- Remove references to session bridging [#684](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/684)
-
-### v2.1.0 (Jul 05, 2022)
-
-- Update translations [#643](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/643)
-- Update translations [#653](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/653)
-- Add bundlesize test back into CI [#652](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/652)
-- Fix UI bug on notifications badge [#620](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/620)
-
-### v2.0.0 (May 16, 2022)
-
-- Update translation docs [#570](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/570)
-- Fixed loading correct amount of skeletons [#576] ()
-- Remove manifest path [#582](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/582)
-- Fix Verbose ShellJS Command [#588](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/588)
-- Drop node 12 support for [#589](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/589)
-- Multi-site, Fix the case when no site aliases is set [#551](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/551)
-- Fix invalid refresh token [#528](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/528)
-- Add valid token check before using refresh token on login [#533](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/533)
-- Fix localization scripts to output to the correct default locale [#539](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/539)
-- Merge guest cart and registered cart [#540](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/540)
-- Move retail react app jest setup out from pwa-kit-dev [#545](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/545)
-- Remove legacy remote proxy, which allowed remote environments to use proxy configs in package.json [#425](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/425)
-- Rename 'pwa' directory into 'template-retail-react-app' [#485](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/485)
-- Optimize visibility-off.svg [#512](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/512)
-- Support Multi-site implementation using dynamic config [#469](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/469)
-- Service worker loading for dev server [#464](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/464)
-- Environment Specific Configuration Support [#477](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/447)
-
-### v1.5.0 (Mar 17, 2022)
-
-- Support storing authentication tokens in cookie [#429](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/429)
-- Make sure the forgot-password modal also shows up in the checkout flow [#373](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/373)
-- On Windows, the locale selector dropdown in the footer now showing all of the options properly [#381](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/381)
-- Import cross-fetch to make OCAPI client isomorphic [#382](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/382)
-- Multi-site implementation for Retail React App [#391](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/391)
-
-### v1.4.0 (Jan 27, 2022)
-
-- Do not send HSTS header during local development [#288](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/288)
-- Add constants for ` ` tags `theme-color` and `apple-mobile-web-app-title` [#287](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/287)
-- Upgrade to React 17 [#278](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/278)
-- Import preliminary translations [#324](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/324)
-- Remove old dependencies that are no longer used [#317](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/317)
-
-### v1.3.0 (Jan 06, 2022)
-
-- Remove Einstein from home page [#208](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/208)
-- Add git2gus config to allow git2gus integration [210](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/210)
-- Set common HTTP security headers [#263](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/263)
-- Add message ids to all the translated text, so they provide context for the translators [#239](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/239) [#207](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/207) [#195](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/195)
-- Minor translation fixes [260](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/260) [#252](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/252)
-- Provide Url Customization for the Retail React App [#228](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/228/files)
-- Add an image component to allow for easier-implementation of responsive images [#186](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/186)
-- Add shop Products section with products from the Catalog [#216](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/216)
-- Remove `upgrade-insecure-requests` for local development [#270](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/270)
-- Fix the missing out-of-stock message on mobile screens [#231](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/231)
-- Fix order summary prices on the check out page misaligned on mobile [#233](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/233)
-- Skip irrelevant jobs on CI on forked PR [#237](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/237) [#240](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/240)
-- Add webpack plugin [#255](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/255)
-- Combine config files [#256](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/256)
-- Improve unsupported locale error message [#225](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/225)
-- Add github template [#226](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/226)
-- Fix shipping method description overflows the price section [#232](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/232)
-- Fix show applied promotion codes case sensitive issue [#224](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/224)
-- Fix section subtitle incorrect prop warning [#282](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/282)
-
-### v1.2.0 (Nov 18, 2021)
-
-- Simplify homepage for Retail React App [#201](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/201)
-- Ensure `cookieId` value is sent always for Einstein recommendations [#179](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/179)
-- Remove `x-powered-by` HTTP response header [#165](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/165)
-- For search engine crawlers, add `hreflang` links to the current page's html [#137](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/137)
-- Use the preferred currency when switching locales. [#105](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/105)
-- Integrate wishlist with einstein recommended products. [#131](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/131)
-- When adding a new locale, minimize configuring the locale selector UI by having a list of commonly-used locales [#175](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/175)
-- Enable adding wishlist item to the cart. [#158](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/158)
-- Rename CartItemVariant to ItemVariantProvider [#155](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/155)
-- Enabling pseudo locale now affects only the loading of the translation messages. The rest of the app still knows about English and the other locales. [#177](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/177)
-- Allow individual Commerce API calls to pass in a different locale/currency and override the global value. [#177](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/177)
-- Fix regression with loading the correct translation file [#193](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/193)
-- Upgrade `chakra-ui/react` to `^1.7.1` version. [#204](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/204)
-- Rename the `extract-messages` and `compile-messages` commands to `extract-default-translations` and `compile-translations` [#160](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/160)
-- Enable favourite icons on product tiles for guest users [#173](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/173)
-- Fix Missing Locale Param for Commerce API Calls [#174](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/174)
-- Add cache control header to product details page [#172](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/172)
-- Clear SLAS tokens when OID is changed [#178](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/178)
-
-### v1.1.0 (Sep 27, 2021)
-
-- Fix wishlist bugs and provide better hooks for wishlist features. [#64](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/64)
-- Lazy load Popover component. [#134](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/134)
-- Fix pseudo local command to use `en-XB`. [#101](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/101)
-- Ensure generated projects ship with a working .gitignore file. [#95](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/95)
-- Remove eslint rule which check for Salesforce copyright. [#104](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/104)
-- Improve error page design. [#74](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/74)
-- Localize cart and checkout messages. [#106](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/106)
-- Add default cache control header to home page. [#103](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/103)
-- Security - `inquirer` package upgrade. [#121](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/121)
-- New quantity picker. [#102](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/102)
-
-### v1.0.0 (Sep 08, 2021)
-
-- PWA Kit General Availability and open source. 🎉
diff --git a/packages/template-retail-react-app/README.md b/packages/template-retail-react-app/README.md
deleted file mode 100644
index 462868b6c3..0000000000
--- a/packages/template-retail-react-app/README.md
+++ /dev/null
@@ -1,58 +0,0 @@
-:loudspeaker: Hey there, Salesforce Commerce Cloud community!
-
-We’re excited to hear your thoughts on your developer experience with PWA Kit and the Composable Storefront generally! Your feedback is incredibly valuable in helping us guide our roadmap and improve our offering.
-
-:clipboard: Take our quick survey here: [Survey](https://forms.gle/bUZNxQ3QKUcrjhV18)
-
-Feel free to share this survey link with your colleagues, partners, or anyone who has experience with PWA Kit. Your input will help us shape the future of our development tools.
-
-Thank you for being a part of our community and for your continuous support! :raised_hands:
-
-# The Retail React App
-
-A project template that includes an isomorphic JavaScript storefront and [Progressive Web App](https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps) built using [React](https://reactjs.org/) and [Express](https://expressjs.com/). It uses a modern headless architecture that enables developers to decouple front-end code from back-end systems. It leverages popular open-source libraries in the React ecosystem, such as [Chakra UI](https://chakra-ui.com/) components, [Emotion](https://emotion.sh/docs/introduction) (CSS-in-JS), [Webpack](https://webpack.js.org/), and many more.
-
-Developers don’t have to worry about the underlying infrastructure, whether they’re developing their app locally, deploying it to a [Managed Runtime](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/mrt-overview.html) environment, or testing the app live.
-
-## Requirements
-
-- Node 16.11 or later
-- npm 8 or later
-
-## Get Started
-
-To start your web server for local development, run the following command in your project directory:
-
-```bash
-npm start
-```
-
-Now that the development server is running, you can open a browser and preview your commerce app:
-
-- Go to http://localhost:3000/
-
-## Localization
-
-See the [Localization README.md](./translations/README.md) for important setup instructions for localization.
-
-## Configuration Files
-
-The Retail React App's configuration files are located in the `app/config` folder. For more details, see [Configuration Files](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/configuration-options.html) in the documentation.
-
-## Documentation
-
-The full documentation for PWA Kit and Managed Runtime is hosted on the [Salesforce Developers](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/overview) portal.
-
-### Useful Links:
-
-- [Get Started](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/getting-started.html)
-- [Skills for Success](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/skills-for-success.html)
-- [Set Up API Access](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/setting-up-api-access.html)
-- [Configuration Options](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/configuration-options.html)
-- [Proxy Requests](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/proxying-requests.html)
-- [Push and Deploy Bundles](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/pushing-and-deploying-bundles.html)
-- [The Retail React App](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/retail-react-app.html)
-- [Rendering](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/rendering.html)
-- [Routing](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/routing.html)
-- [Phased Headless Rollouts](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/phased-headless-rollouts.html)
-- [Launch Your Storefront](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/launching-your-storefront.html)
diff --git a/packages/template-retail-react-app/app/components/_app-config/index.test.js b/packages/template-retail-react-app/app/components/_app-config/index.test.js
deleted file mode 100644
index 59f385c71a..0000000000
--- a/packages/template-retail-react-app/app/components/_app-config/index.test.js
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright (c) 2021, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-import React from 'react'
-import {render, waitFor} from '@testing-library/react'
-import AppConfig from '@salesforce/retail-react-app/app/components/_app-config/index.jsx'
-
-import {CorrelationIdProvider} from '@salesforce/pwa-kit-react-sdk/ssr/universal/contexts'
-import {uuidv4} from '@salesforce/pwa-kit-react-sdk/utils/uuidv4.client'
-import {StaticRouter} from 'react-router-dom'
-
-import mockConfig from '@salesforce/retail-react-app/config/mocks/default'
-import {rest} from 'msw'
-import {registerUserToken} from '@salesforce/retail-react-app/app/utils/test-utils'
-
-jest.mock('@salesforce/pwa-kit-react-sdk/ssr/universal/hooks', () => {
- const original = jest.requireActual('@salesforce/pwa-kit-react-sdk/ssr/universal/hooks')
- return {
- ...original,
- useOrigin: jest.fn(() => 'https://www.example.com')
- }
-})
-describe('AppConfig', () => {
- let originalFetch
- beforeAll(() => {
- jest.spyOn(window.localStorage, 'setItem')
- originalFetch = global.fetch
- })
-
- beforeEach(() => {
- window.localStorage.setItem.mockClear()
-
- global.server.use(
- rest.post('*/oauth2/token', (req, res, ctx) =>
- res(
- ctx.delay(0),
- ctx.json({
- customer_id: 'customerid',
- access_token: registerUserToken,
- refresh_token: 'testrefeshtoken',
- usid: 'testusid',
- enc_user_id: 'testEncUserId',
- id_token: 'testIdToken'
- })
- )
- )
- )
- })
-
- afterAll(() => {
- window.localStorage.setItem.mockRestore()
- global.fetch.mockClear()
- global.fetch = originalFetch
- })
-
- test('renders', async () => {
- const locals = {
- site: mockConfig.app.sites[0],
- appConfig: mockConfig.app
- }
- const {container} = render(
-
- uuidv4()}>
-
-
-
- )
- expect(container).toBeDefined()
-
- // Wait for access token to be saved
- // Otherwise, the test would end prematurely before our component has finished its business
- // (for example: commerce-sdk-react Provider needs to finish its useEffect for `auth.ready()`)
- await waitFor(() => {
- expect(window.localStorage.setItem).toHaveBeenCalled()
- })
- })
-
- test('AppConfig static methods behave as expected', () => {
- expect(AppConfig.restore()).toBeUndefined()
- expect(AppConfig.restore({frozen: 'any values here'})).toBeUndefined()
- expect(AppConfig.freeze()).toBeUndefined()
- })
-})
diff --git a/packages/template-retail-react-app/app/components/_app/index.test.js b/packages/template-retail-react-app/app/components/_app/index.test.js
deleted file mode 100644
index 0b487d2512..0000000000
--- a/packages/template-retail-react-app/app/components/_app/index.test.js
+++ /dev/null
@@ -1,241 +0,0 @@
-/*
- * Copyright (c) 2021, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-import React from 'react'
-import {screen, waitFor} from '@testing-library/react'
-import {Helmet} from 'react-helmet'
-import {rest} from 'msw'
-
-import App from '@salesforce/retail-react-app/app/components/_app/index.jsx'
-import {renderWithProviders} from '@salesforce/retail-react-app/app/utils/test-utils'
-import {DEFAULT_LOCALE} from '@salesforce/retail-react-app/app/utils/test-utils'
-import useMultiSite from '@salesforce/retail-react-app/app/hooks/use-multi-site'
-import messages from '@salesforce/retail-react-app/app/static/translations/compiled/en-GB.json'
-import mockConfig from '@salesforce/retail-react-app/config/mocks/default'
-import {prependHandlersToServer} from '@salesforce/retail-react-app/jest-setup'
-import {mockCustomerBaskets} from '@salesforce/retail-react-app/app/mocks/mock-data'
-
-jest.mock('../../hooks/use-multi-site', () => jest.fn())
-jest.mock('../../hooks/use-update-shopper-context', () => ({
- useUpdateShopperContext: jest.fn()
-}))
-
-let windowSpy
-
-const mockUpdateDNT = jest.fn()
-const mockActiveDataFlag = jest.fn()
-jest.mock('@salesforce/commerce-sdk-react', () => {
- const originalModule = jest.requireActual('@salesforce/commerce-sdk-react')
- return {
- ...originalModule,
- useDNT: () => ({selectedDnt: undefined, updateDNT: mockUpdateDNT})
- }
-})
-
-jest.mock('@salesforce/retail-react-app/app/constants', () => {
- const originalModule = jest.requireActual('@salesforce/retail-react-app/app/constants')
- return {
- ...originalModule,
- get ACTIVE_DATA_ENABLED() {
- return mockActiveDataFlag()
- }
- }
-})
-beforeEach(() => {
- windowSpy = jest.spyOn(window, 'window', 'get')
- mockActiveDataFlag.mockReturnValue(true)
- prependHandlersToServer([
- {
- path: '*/baskets/:basketId/customer',
- method: 'put',
- res: () => {
- return {
- ...mockCustomerBaskets.baskets[0],
- customerInfo: {
- customerId: 'abmuc2wupJxeoRxuo3wqYYmbhI',
- email: 'shopperUpdate@salesforce-test.com'
- }
- }
- }
- }
- ])
-})
-
-afterEach(() => {
- windowSpy.mockRestore()
- jest.restoreAllMocks()
- jest.resetModules()
-})
-describe('App', () => {
- const site = {
- ...mockConfig.app.sites[0],
- alias: 'uk'
- }
-
- const locale = DEFAULT_LOCALE
-
- const buildUrl = jest.fn().mockImplementation((href, site, locale) => {
- return `${site ? `/${site}` : ''}${locale ? `/${locale}` : ''}${href}`
- })
-
- const resultUseMultiSite = {
- site,
- locale,
- buildUrl
- }
-
- test('User can select DNT options when App component is rendered with DNT notification', async () => {
- useMultiSite.mockImplementation(() => resultUseMultiSite)
- const {user} = renderWithProviders(
-
- Any children here
-
- )
- const closeButton = screen.getByLabelText('Close consent tracking form')
- await user.click(closeButton)
- await waitFor(() => {
- expect(screen.getByRole('main')).toBeInTheDocument()
- expect(screen.getByText('Any children here')).toBeInTheDocument()
- })
- })
-
- test('Active Data component is not rendered', async () => {
- mockActiveDataFlag.mockImplementation(() => false)
- useMultiSite.mockImplementation(() => resultUseMultiSite)
- renderWithProviders(
-
- Any children here
-
- )
- await waitFor(() =>
- expect(document.getElementById('headActiveData')).not.toBeInTheDocument()
- )
- await waitFor(() => expect(document.getElementById('dwanalytics')).not.toBeInTheDocument())
- await waitFor(() => expect(document.getElementById('dwac')).not.toBeInTheDocument())
- expect(screen.getByText('Any children here')).toBeInTheDocument()
- })
-
- test('Active Data component is rendered appropriately', async () => {
- useMultiSite.mockImplementation(() => resultUseMultiSite)
- renderWithProviders(
-
- Any children here
-
- )
- await waitFor(() => {
- expect(document.getElementById('headActiveData')).toBeInTheDocument()
- expect(document.getElementById('dwanalytics')).toBeInTheDocument()
- expect(document.getElementById('dwac')).toBeInTheDocument()
- expect(screen.getByText('Any children here')).toBeInTheDocument()
- })
- })
-
- test('The localized hreflang links exist in the html head', () => {
- useMultiSite.mockImplementation(() => resultUseMultiSite)
- renderWithProviders(
-
- )
-
- // expected locales for hrefLang
- const hrefLangLocales = mockConfig.app.sites[0].l10n.supportedLocales.map(
- (locale) => locale.id
- )
- const helmet = Helmet.peek()
- const hreflangLinks = helmet.linkTags.filter((link) => link.rel === 'alternate')
- const hasGeneralLocale = ({hrefLang}) => hrefLang === DEFAULT_LOCALE.slice(0, 2)
-
- hrefLangLocales.forEach((supportedLocale) => {
- expect(
- hreflangLinks.some(
- (link) => link.hrefLang.toLowerCase() === supportedLocale.toLowerCase()
- )
- ).toBe(true)
- expect(hreflangLinks.some((link) => hasGeneralLocale(link))).toBe(true)
- })
-
- // localeRefs takes locale alias into consideration
- const localeRefs = mockConfig.app.sites[0].l10n.supportedLocales.map(
- (locale) => locale.alias || locale.id
- )
-
- localeRefs.forEach((localeRef) => {
- expect(hreflangLinks.some((link) => link.href.includes(localeRef))).toBe(true)
- // expecting href does not contain search query params in the href since it is a canonical url
- expect(
- hreflangLinks.some((link) => {
- const urlObj = new URL(link.href)
- return urlObj.search.length > 0
- })
- ).toBe(false)
- })
-
- // `length + 2` because one for a general locale and the other with x-default value
- expect(hreflangLinks).toHaveLength(resultUseMultiSite.site.l10n.supportedLocales.length + 2)
-
- expect(hreflangLinks.some((link) => hasGeneralLocale(link))).toBe(true)
- expect(hreflangLinks.some((link) => link.hrefLang === 'x-default')).toBe(true)
- })
-
- test('App component updates the basket with correct currency and customer email', async () => {
- const customerEmail = 'email@test.com'
-
- // Test basket. _app will be manipulating this basket's currency and customerInfo.email for this test
- const basket = {
- basketId: 'basket_id',
- currency: 'CAD',
- customerInfo: {
- customerId: 'customer_id',
- email: ''
- }
- }
-
- jest.mock('../../hooks/use-current-customer', () => {
- return {
- useCurrentCustomer: jest.fn().mockImplementation(() => {
- return {data: basket, derivedData: {hasBasket: true, totalItems: 0}}
- })
- }
- })
-
- jest.mock('../../hooks/use-current-basket', () => {
- return {
- useCurrentBasket: jest.fn().mockImplementation(() => {
- return {
- data: basket,
- derivedData: {
- hasBasket: true,
- totalItems: 0
- }
- }
- })
- }
- })
-
- global.server.use(
- // mock updating basket currency
- rest.patch('*/baskets/:basketId', (req, res, ctx) => {
- basket.currency = 'GBP'
- return res(ctx.json(basket))
- }),
- // mock adding guest email to basket
- rest.put('*/baskets/:basketId/customer', (req, res, ctx) => {
- basket.customerInfo.email = customerEmail
- return res(ctx.json(basket))
- })
- )
-
- useMultiSite.mockImplementation(() => resultUseMultiSite)
- renderWithProviders(
-
- )
-
- await waitFor(() => {
- expect(basket.currency).toBe('GBP')
- expect(basket.customerInfo.email).toBe(customerEmail)
- })
- })
-})
diff --git a/packages/template-retail-react-app/app/components/list-menu/index.js b/packages/template-retail-react-app/app/components/list-menu/index.js
deleted file mode 100644
index 8428ea1236..0000000000
--- a/packages/template-retail-react-app/app/components/list-menu/index.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- * Copyright (c) 2024, Salesforce, Inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {ListMenu} from '@salesforce/retail-react-app/app/components/list-menu/list-menu'
-export {ListMenuTrigger} from '@salesforce/retail-react-app/app/components/list-menu/list-menu-trigger'
-export {ListMenuPopover} from '@salesforce/retail-react-app/app/components/list-menu/list-menu-popover'
-export {ListMenuContent} from '@salesforce/retail-react-app/app/components/list-menu/list-menu-content'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/AccordionIcon/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/AccordionIcon/index.jsx
deleted file mode 100644
index ee20206891..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/AccordionIcon/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {AccordionIcon} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/AccordionItem/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/AccordionItem/index.jsx
deleted file mode 100644
index 89df64288f..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/AccordionItem/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {AccordionItem} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/AccordionPanel/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/AccordionPanel/index.jsx
deleted file mode 100644
index f7343af771..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/AccordionPanel/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {AccordionPanel} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/AlertDialog/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/AlertDialog/index.jsx
deleted file mode 100644
index 9fbe517408..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/AlertDialog/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {AlertDialog} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/AlertDialogBody/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/AlertDialogBody/index.jsx
deleted file mode 100644
index 7012c30a47..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/AlertDialogBody/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {AlertDialogBody} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/AlertDialogContent/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/AlertDialogContent/index.jsx
deleted file mode 100644
index 61521d9c56..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/AlertDialogContent/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {AlertDialogContent} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/AlertDialogFooter/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/AlertDialogFooter/index.jsx
deleted file mode 100644
index fedc78e7e5..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/AlertDialogFooter/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {AlertDialogFooter} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/AlertDialogHeader/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/AlertDialogHeader/index.jsx
deleted file mode 100644
index 30b5ca6e21..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/AlertDialogHeader/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {AlertDialogHeader} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/AlertDialogOverlay/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/AlertDialogOverlay/index.jsx
deleted file mode 100644
index e1dc2ee7e8..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/AlertDialogOverlay/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {AlertDialogOverlay} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/AlertIcon/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/AlertIcon/index.jsx
deleted file mode 100644
index e8125ed88f..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/AlertIcon/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {AlertIcon} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/AlertTitle/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/AlertTitle/index.jsx
deleted file mode 100644
index fd95451b77..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/AlertTitle/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {AlertTitle} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/AspectRatio/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/AspectRatio/index.jsx
deleted file mode 100644
index ad19fcfc29..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/AspectRatio/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {AspectRatio} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/Badge/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/Badge/index.jsx
deleted file mode 100644
index 2bb8f327ff..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/Badge/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {Badge} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/Box/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/Box/index.jsx
deleted file mode 100644
index 178b8d8f84..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/Box/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {Box} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/Breadcrumb/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/Breadcrumb/index.jsx
deleted file mode 100644
index 46edad655e..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/Breadcrumb/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {Breadcrumb} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/BreadcrumbItem/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/BreadcrumbItem/index.jsx
deleted file mode 100644
index 650b583705..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/BreadcrumbItem/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {BreadcrumbItem} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/BreadcrumbLink/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/BreadcrumbLink/index.jsx
deleted file mode 100644
index 5f755f4761..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/BreadcrumbLink/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {BreadcrumbLink} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/Button/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/Button/index.jsx
deleted file mode 100644
index 27cbb9d09a..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/Button/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {Button} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/ButtonGroup/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/ButtonGroup/index.jsx
deleted file mode 100644
index 38c3761223..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/ButtonGroup/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {ButtonGroup} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/Center/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/Center/index.jsx
deleted file mode 100644
index 2a90f8c35a..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/Center/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {Center} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/ChakraProvider/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/ChakraProvider/index.jsx
deleted file mode 100644
index 6bbdb54a27..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/ChakraProvider/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {ChakraProvider} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/Checkbox/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/Checkbox/index.jsx
deleted file mode 100644
index 509ef2e12a..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/Checkbox/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {Checkbox} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/CloseButton/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/CloseButton/index.jsx
deleted file mode 100644
index 2d08f83809..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/CloseButton/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {CloseButton} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/Container/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/Container/index.jsx
deleted file mode 100644
index e9b7b2b7da..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/Container/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {Container} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/Divider/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/Divider/index.jsx
deleted file mode 100644
index 22a0512aea..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/Divider/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {Divider} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/Drawer/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/Drawer/index.jsx
deleted file mode 100644
index 5e7f965885..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/Drawer/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {Drawer} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/DrawerBody/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/DrawerBody/index.jsx
deleted file mode 100644
index 282e022f50..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/DrawerBody/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {DrawerBody} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/DrawerCloseButton/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/DrawerCloseButton/index.jsx
deleted file mode 100644
index 4111b4329a..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/DrawerCloseButton/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {DrawerCloseButton} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/DrawerContent/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/DrawerContent/index.jsx
deleted file mode 100644
index 18eea499c1..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/DrawerContent/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {DrawerContent} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/DrawerFooter/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/DrawerFooter/index.jsx
deleted file mode 100644
index caa9dbafdc..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/DrawerFooter/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {DrawerFooter} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/DrawerHeader/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/DrawerHeader/index.jsx
deleted file mode 100644
index 07fd207ce8..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/DrawerHeader/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {DrawerHeader} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/DrawerOverlay/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/DrawerOverlay/index.jsx
deleted file mode 100644
index a72c3931df..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/DrawerOverlay/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {DrawerOverlay} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/Fade/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/Fade/index.jsx
deleted file mode 100644
index cd1f9e6253..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/Fade/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {Fade} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/Flex/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/Flex/index.jsx
deleted file mode 100644
index 1ed7e7cc75..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/Flex/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {Flex} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/FormControl/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/FormControl/index.jsx
deleted file mode 100644
index bb5c529106..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/FormControl/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {FormControl} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/FormErrorMessage/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/FormErrorMessage/index.jsx
deleted file mode 100644
index 72eeb3d534..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/FormErrorMessage/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {FormErrorMessage} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/FormLabel/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/FormLabel/index.jsx
deleted file mode 100644
index a453cb120f..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/FormLabel/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {FormLabel} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/Grid/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/Grid/index.jsx
deleted file mode 100644
index 4d6ef5a762..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/Grid/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {Grid} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/GridItem/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/GridItem/index.jsx
deleted file mode 100644
index 13784a0449..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/GridItem/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {GridItem} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/HStack/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/HStack/index.jsx
deleted file mode 100644
index 920f7c25d4..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/HStack/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {HStack} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/Heading/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/Heading/index.jsx
deleted file mode 100644
index e128ce1705..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/Heading/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {Heading} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/Icon/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/Icon/index.jsx
deleted file mode 100644
index 105f0b5fb5..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/Icon/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {Icon} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/IconButton/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/IconButton/index.jsx
deleted file mode 100644
index e39c8eca22..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/IconButton/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {IconButton} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/Image/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/Image/index.jsx
deleted file mode 100644
index 02f6457b6a..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/Image/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {Image} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/Img/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/Img/index.jsx
deleted file mode 100644
index 4630435c9e..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/Img/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {Img} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/Input/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/Input/index.jsx
deleted file mode 100644
index ce52d8d597..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/Input/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {Input} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/InputGroup/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/InputGroup/index.jsx
deleted file mode 100644
index 72f41abe7e..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/InputGroup/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {InputGroup} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/InputLeftElement/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/InputLeftElement/index.jsx
deleted file mode 100644
index 52f7449609..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/InputLeftElement/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {InputLeftElement} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/InputRightElement/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/InputRightElement/index.jsx
deleted file mode 100644
index 072727088e..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/InputRightElement/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {InputRightElement} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/Link/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/Link/index.jsx
deleted file mode 100644
index b60e65c750..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/Link/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {Link} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/List/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/List/index.jsx
deleted file mode 100644
index 8206d0bb95..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/List/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {List} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/ListItem/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/ListItem/index.jsx
deleted file mode 100644
index d952f5a84a..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/ListItem/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {ListItem} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/Modal/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/Modal/index.jsx
deleted file mode 100644
index 070ed5e4cd..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/Modal/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {Modal} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/ModalBody/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/ModalBody/index.jsx
deleted file mode 100644
index 14a4968d9e..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/ModalBody/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {ModalBody} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/ModalCloseButton/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/ModalCloseButton/index.jsx
deleted file mode 100644
index eab3a56061..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/ModalCloseButton/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {ModalCloseButton} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/ModalContent/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/ModalContent/index.jsx
deleted file mode 100644
index 31d59f3ad9..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/ModalContent/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {ModalContent} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/ModalFooter/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/ModalFooter/index.jsx
deleted file mode 100644
index d7be84e434..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/ModalFooter/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {ModalFooter} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/ModalHeader/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/ModalHeader/index.jsx
deleted file mode 100644
index 05dd79cf8b..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/ModalHeader/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {ModalHeader} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/ModalOverlay/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/ModalOverlay/index.jsx
deleted file mode 100644
index a02819e108..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/ModalOverlay/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {ModalOverlay} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/Popover/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/Popover/index.jsx
deleted file mode 100644
index 281fef786d..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/Popover/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {Popover} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/PopoverArrow/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/PopoverArrow/index.jsx
deleted file mode 100644
index 1ac0634f21..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/PopoverArrow/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {PopoverArrow} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/PopoverBody/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/PopoverBody/index.jsx
deleted file mode 100644
index bea545cbe8..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/PopoverBody/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {PopoverBody} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/PopoverCloseButton/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/PopoverCloseButton/index.jsx
deleted file mode 100644
index 9ec9c3cc32..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/PopoverCloseButton/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {PopoverCloseButton} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/PopoverContent/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/PopoverContent/index.jsx
deleted file mode 100644
index 6e5134efdf..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/PopoverContent/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {PopoverContent} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/PopoverFooter/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/PopoverFooter/index.jsx
deleted file mode 100644
index 22132f4fc4..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/PopoverFooter/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {PopoverFooter} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/PopoverHeader/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/PopoverHeader/index.jsx
deleted file mode 100644
index 4998dda96e..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/PopoverHeader/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {PopoverHeader} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/PopoverTrigger/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/PopoverTrigger/index.jsx
deleted file mode 100644
index 4188f10340..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/PopoverTrigger/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {PopoverTrigger} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/Portal/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/Portal/index.jsx
deleted file mode 100644
index 2d8cc6ea2d..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/Portal/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {Portal} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/Radio/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/Radio/index.jsx
deleted file mode 100644
index cc0c3e4b7b..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/Radio/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {Radio} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/RadioGroup/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/RadioGroup/index.jsx
deleted file mode 100644
index cfdbd6ffd3..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/RadioGroup/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {RadioGroup} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/Select/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/Select/index.jsx
deleted file mode 100644
index 4feb34beb1..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/Select/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {Select} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/SimpleGrid/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/SimpleGrid/index.jsx
deleted file mode 100644
index 5a16cfb87e..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/SimpleGrid/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {SimpleGrid} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/Skeleton/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/Skeleton/index.jsx
deleted file mode 100644
index e059c2e157..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/Skeleton/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {Skeleton} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/Spacer/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/Spacer/index.jsx
deleted file mode 100644
index 3e2adc2811..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/Spacer/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {Spacer} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/Spinner/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/Spinner/index.jsx
deleted file mode 100644
index 27e1250adc..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/Spinner/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {Spinner} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/Stack/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/Stack/index.jsx
deleted file mode 100644
index 8cf200ce77..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/Stack/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {Stack} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/StackDivider/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/StackDivider/index.jsx
deleted file mode 100644
index 096bc489b7..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/StackDivider/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {StackDivider} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/StylesProvider/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/StylesProvider/index.jsx
deleted file mode 100644
index 3a7ff8f0b9..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/StylesProvider/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {StylesProvider} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/Text/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/Text/index.jsx
deleted file mode 100644
index 967986cc08..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/Text/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {Text} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/Tooltip/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/Tooltip/index.jsx
deleted file mode 100644
index 5b4d4d1a85..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/Tooltip/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {Tooltip} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/VStack/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/VStack/index.jsx
deleted file mode 100644
index d7545a1866..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/VStack/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {VStack} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/VisuallyHidden/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/VisuallyHidden/index.jsx
deleted file mode 100644
index 0b093c8d4b..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/VisuallyHidden/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {VisuallyHidden} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/Wrap/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/Wrap/index.jsx
deleted file mode 100644
index 43c9904b01..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/Wrap/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {Wrap} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/WrapItem/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/WrapItem/index.jsx
deleted file mode 100644
index 81b0f2b66b..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/WrapItem/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {WrapItem} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/createStylesContext/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/createStylesContext/index.jsx
deleted file mode 100644
index 8d60941d84..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/createStylesContext/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {createStylesContext} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/extendTheme/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/extendTheme/index.jsx
deleted file mode 100644
index d855870707..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/extendTheme/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {extendTheme} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/index.jsx
deleted file mode 100644
index a11984d836..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/index.jsx
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {Accordion} from './Accordion'
-export {AccordionButton} from './AccordionButton'
-export {AccordionIcon} from './AccordionIcon'
-export {AccordionItem} from './AccordionItem'
-export {AccordionPanel} from './AccordionPanel'
-export {Alert} from './Alert'
-export {AlertDialog} from './AlertDialog'
-export {AlertDialogBody} from './AlertDialogBody'
-export {AlertDialogContent} from './AlertDialogContent'
-export {AlertDialogFooter} from './AlertDialogFooter'
-export {AlertDialogHeader} from './AlertDialogHeader'
-export {AlertDialogOverlay} from './AlertDialogOverlay'
-export {AlertIcon} from './AlertIcon'
-export {AlertTitle} from './AlertTitle'
-export {AspectRatio} from './AspectRatio'
-export {Badge} from './Badge'
-export {Box} from './Box'
-export {Breadcrumb} from './Breadcrumb'
-export {BreadcrumbItem} from './BreadcrumbItem'
-export {BreadcrumbLink} from './BreadcrumbLink'
-export {Button} from './Button'
-export {ButtonGroup} from './ButtonGroup'
-export {Center} from './Center'
-export {ChakraProvider} from './ChakraProvider'
-export {Checkbox} from './Checkbox'
-export {CloseButton} from './CloseButton'
-export {Container} from './Container'
-export {Divider} from './Divider'
-export {Drawer} from './Drawer'
-export {DrawerBody} from './DrawerBody'
-export {DrawerCloseButton} from './DrawerCloseButton'
-export {DrawerContent} from './DrawerContent'
-export {DrawerFooter} from './DrawerFooter'
-export {DrawerHeader} from './DrawerHeader'
-export {DrawerOverlay} from './DrawerOverlay'
-export {Fade} from './Fade'
-export {Flex} from './Flex'
-export {FormControl} from './FormControl'
-export {FormErrorMessage} from './FormErrorMessage'
-export {FormLabel} from './FormLabel'
-export {Grid} from './Grid'
-export {GridItem} from './GridItem'
-export {HStack} from './HStack'
-export {Heading} from './Heading'
-export {Icon} from './Icon'
-export {IconButton} from './IconButton'
-export {Image} from './Image'
-export {Img} from './Img'
-export {Input} from './Input'
-export {InputGroup} from './InputGroup'
-export {InputLeftElement} from './InputLeftElement'
-export {InputRightElement} from './InputRightElement'
-export {Link} from './Link'
-export {List} from './List'
-export {ListItem} from './ListItem'
-export {Modal} from './Modal'
-export {ModalBody} from './ModalBody'
-export {ModalCloseButton} from './ModalCloseButton'
-export {ModalContent} from './ModalContent'
-export {ModalFooter} from './ModalFooter'
-export {ModalHeader} from './ModalHeader'
-export {ModalOverlay} from './ModalOverlay'
-export {Popover} from './Popover'
-export {PopoverArrow} from './PopoverArrow'
-export {PopoverBody} from './PopoverBody'
-export {PopoverCloseButton} from './PopoverCloseButton'
-export {PopoverContent} from './PopoverContent'
-export {PopoverFooter} from './PopoverFooter'
-export {PopoverHeader} from './PopoverHeader'
-export {PopoverTrigger} from './PopoverTrigger'
-export {Portal} from './Portal'
-export {Radio} from './Radio'
-export {RadioGroup} from './RadioGroup'
-export {Select} from './Select'
-export {SimpleGrid} from './SimpleGrid'
-export {Skeleton} from './Skeleton'
-export {Spacer} from './Spacer'
-export {Spinner} from './Spinner'
-export {Stack} from './Stack'
-export {StackDivider} from './StackDivider'
-export {StylesProvider} from './StylesProvider'
-export {Text} from './Text'
-export {Tooltip} from './Tooltip'
-export {VStack} from './VStack'
-export {VisuallyHidden} from './VisuallyHidden'
-export {Wrap} from './Wrap'
-export {WrapItem} from './WrapItem'
-export {createStylesContext} from './createStylesContext'
-export {extendTheme} from './extendTheme'
-export {useBreakpoint} from './useBreakpoint'
-export {useBreakpointValue} from './useBreakpointValue'
-export {useDisclosure} from './useDisclosure'
-export {useMediaQuery} from './useMediaQuery'
-export {useMultiStyleConfig} from './useMultiStyleConfig'
-export {useNumberInput} from './useNumberInput'
-export {useRadio} from './useRadio'
-export {useRadioGroup} from './useRadioGroup'
-export {useStyleConfig} from './useStyleConfig'
-export {useStyles} from './useStyles'
-export {useTheme} from './useTheme'
-export {useToast} from './useToast'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/useBreakpoint/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/useBreakpoint/index.jsx
deleted file mode 100644
index 0f147bdc0f..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/useBreakpoint/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {useBreakpoint} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/useBreakpointValue/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/useBreakpointValue/index.jsx
deleted file mode 100644
index b039d7bd27..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/useBreakpointValue/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {useBreakpointValue} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/useDisclosure/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/useDisclosure/index.jsx
deleted file mode 100644
index 4edb94af23..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/useDisclosure/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {useDisclosure} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/useMediaQuery/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/useMediaQuery/index.jsx
deleted file mode 100644
index f414625467..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/useMediaQuery/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {useMediaQuery} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/useMultiStyleConfig/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/useMultiStyleConfig/index.jsx
deleted file mode 100644
index e33e9365ec..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/useMultiStyleConfig/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {useMultiStyleConfig} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/useNumberInput/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/useNumberInput/index.jsx
deleted file mode 100644
index dc1d88f7b9..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/useNumberInput/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {useNumberInput} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/useRadio/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/useRadio/index.jsx
deleted file mode 100644
index bfdfbb6411..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/useRadio/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {useRadio} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/useRadioGroup/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/useRadioGroup/index.jsx
deleted file mode 100644
index ca03e843db..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/useRadioGroup/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {useRadioGroup} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/useStyleConfig/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/useStyleConfig/index.jsx
deleted file mode 100644
index 5e7449a69c..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/useStyleConfig/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {useStyleConfig} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/useStyles/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/useStyles/index.jsx
deleted file mode 100644
index 38c08fd94e..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/useStyles/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {useStyles} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/useTheme/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/useTheme/index.jsx
deleted file mode 100644
index c64b029202..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/useTheme/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {useTheme} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/ui/useToast/index.jsx b/packages/template-retail-react-app/app/components/shared/ui/useToast/index.jsx
deleted file mode 100644
index e24c5b6b69..0000000000
--- a/packages/template-retail-react-app/app/components/shared/ui/useToast/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {useToast} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/util/SkipNavLink/index.jsx b/packages/template-retail-react-app/app/components/shared/util/SkipNavLink/index.jsx
deleted file mode 100644
index d69c25e25a..0000000000
--- a/packages/template-retail-react-app/app/components/shared/util/SkipNavLink/index.jsx
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2023, Salesforce, Inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {SkipNavLink} from '@chakra-ui/react'
diff --git a/packages/template-retail-react-app/app/components/shared/util/index.jsx b/packages/template-retail-react-app/app/components/shared/util/index.jsx
deleted file mode 100644
index 7aaae95e39..0000000000
--- a/packages/template-retail-react-app/app/components/shared/util/index.jsx
+++ /dev/null
@@ -1,9 +0,0 @@
-/*
- * Copyright (c) 2023, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-export {SkipNavContent} from './SkipNavContent'
-export {SkipNavLink} from './SkipNavLink/'
diff --git a/packages/template-retail-react-app/app/hooks/index.js b/packages/template-retail-react-app/app/hooks/index.js
deleted file mode 100644
index 2750633c01..0000000000
--- a/packages/template-retail-react-app/app/hooks/index.js
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Copyright (c) 2021, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-/* istanbul ignore file */
-export {useSearchParams} from '@salesforce/retail-react-app/app/hooks/use-search-params'
-export {useLimitUrls} from '@salesforce/retail-react-app/app/hooks/use-limit-urls'
-export {usePageUrls} from '@salesforce/retail-react-app/app/hooks/use-page-urls'
-export {useSortUrls} from '@salesforce/retail-react-app/app/hooks/use-sort-urls'
-export {useVariant} from '@salesforce/retail-react-app/app/hooks/use-variant'
-export {useVariationAttributes} from '@salesforce/retail-react-app/app/hooks/use-variation-attributes'
-export {useVariationParams} from '@salesforce/retail-react-app/app/hooks/use-variation-params'
-export {useDerivedProduct} from '@salesforce/retail-react-app/app/hooks/use-derived-product'
-export {useCurrency} from '@salesforce/retail-react-app/app/hooks/use-currency'
diff --git a/packages/template-retail-react-app/app/hooks/use-active-data.test.js b/packages/template-retail-react-app/app/hooks/use-active-data.test.js
deleted file mode 100644
index 906a9d9c61..0000000000
--- a/packages/template-retail-react-app/app/hooks/use-active-data.test.js
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Copyright (c) 2023, Salesforce, Inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-/*global dw*/
-/* eslint-disable no-import-assign */
-/* eslint-disable react-hooks/rules-of-hooks */
-import useActiveData from '@salesforce/retail-react-app/app/hooks/use-active-data'
-import {
- mockCategory,
- mockProduct,
- mockSearchResults
-} from '@salesforce/retail-react-app/app/hooks/einstein-mock-data'
-import * as constants from '@salesforce/retail-react-app/app/constants'
-import {DEFAULT_SEARCH_PARAMS} from '@salesforce/retail-react-app/app/constants'
-
-const activeDataApi = useActiveData()
-
-beforeAll(() => {
- window.dw = {
- ac: {
- applyContext: jest.fn(),
- _capture: jest.fn(),
- _scheduleDataSubmission: jest.fn(),
- _setSiteCurrency: jest.fn(),
- setDWAnalytics: jest.fn()
- },
- __dwAnalytics: {
- getTracker: jest.fn()
- }
- }
-})
-
-afterAll(() => {
- delete window.dw
-})
-
-describe('Test active data', () => {
- let originalValue
- beforeAll(() => (originalValue = constants.ACTIVE_DATA_ENABLED))
- afterAll(() => (constants.ACTIVE_DATA_ENABLED = originalValue))
- beforeEach(() => {
- jest.resetAllMocks()
- })
-
- test('viewProduct captures expected product', async () => {
- constants.ACTIVE_DATA_ENABLED = true
- await activeDataApi.sendViewProduct(mockCategory, mockProduct, 'detail')
- expect(dw.ac.applyContext).toHaveBeenCalledWith({category: mockCategory.id})
- expect(dw.ac._capture).toHaveBeenCalledWith({id: mockProduct.id, type: 'detail'})
- expect(dw.ac._scheduleDataSubmission).toHaveBeenCalledWith()
- })
-
- test('viewProduct does nothing', async () => {
- constants.ACTIVE_DATA_ENABLED = false
- await activeDataApi.sendViewProduct(mockCategory, mockProduct, 'detail')
- expect(dw.ac.applyContext).toHaveBeenCalledTimes(0)
- expect(dw.ac._capture).toHaveBeenCalledTimes(0)
- expect(dw.ac._scheduleDataSubmission).toHaveBeenCalledTimes(0)
- })
-
- test('viewSearch applies search context and captures expected data', async () => {
- constants.ACTIVE_DATA_ENABLED = true
- await activeDataApi.sendViewSearch(DEFAULT_SEARCH_PARAMS, mockSearchResults)
- expect(dw.ac.applyContext).toHaveBeenCalledWith({searchData: DEFAULT_SEARCH_PARAMS})
- })
-
- test('viewSearch does nothing', async () => {
- constants.ACTIVE_DATA_ENABLED = false
- await activeDataApi.sendViewSearch(DEFAULT_SEARCH_PARAMS, mockSearchResults)
- expect(dw.ac.applyContext).toHaveBeenCalledTimes(0)
- })
-
- test('viewCategory applies category context and captures expected data', async () => {
- constants.ACTIVE_DATA_ENABLED = true
- await activeDataApi.sendViewCategory(DEFAULT_SEARCH_PARAMS, mockCategory, mockSearchResults)
- expect(dw.ac.applyContext).toHaveBeenCalledWith({
- category: mockCategory.id,
- searchData: DEFAULT_SEARCH_PARAMS
- })
- expect(dw.ac._scheduleDataSubmission).toHaveBeenCalledWith()
- })
-
- test('viewCategory does nothing', async () => {
- constants.ACTIVE_DATA_ENABLED = false
- await activeDataApi.sendViewCategory(DEFAULT_SEARCH_PARAMS, mockCategory, mockSearchResults)
- expect(dw.ac.applyContext).toHaveBeenCalledTimes(0)
- expect(dw.ac._scheduleDataSubmission).toHaveBeenCalledTimes(0)
- })
-
- test('trackPage sets expected DW analytics', async () => {
- constants.ACTIVE_DATA_ENABLED = true
- await activeDataApi.trackPage('test-site-id', 'en-US', 'USD')
- expect(dw.__dwAnalytics.getTracker).toHaveBeenCalledWith(
- '/mobify/proxy/ocapi/on/demandware.store/Sites-test-site-id-Site/en-US/__Analytics-Start'
- )
- })
-
- test('trackPage does nothing', async () => {
- constants.ACTIVE_DATA_ENABLED = false
- await activeDataApi.trackPage('test-site-id', 'en-US', 'USD')
- expect(dw.__dwAnalytics.getTracker).toHaveBeenCalledTimes(0)
- })
-})
diff --git a/packages/template-retail-react-app/app/request-processor.js b/packages/template-retail-react-app/app/request-processor.js
deleted file mode 100644
index 0ad3b7e6fe..0000000000
--- a/packages/template-retail-react-app/app/request-processor.js
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * Copyright (c) 2021, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-// This is an EXAMPLE file. To enable request processing, rename it to
-// 'request-processor.js' and update the processRequest function so that
-// it processes requests in whatever way your project requires.
-
-// Uncomment the following line for the example code to work.
-import {QueryParameters} from '@salesforce/pwa-kit-runtime/utils/ssr-request-processing'
-
-/**
- * The processRequest function is called for *every* non-proxy, non-bundle
- * request received. That is, all requests that will result in pages being
- * rendered, or the Express app requestHook function being invoked. Because
- * this function runs for every request, it is important that processing
- * take as little time as possible. Do not make external requests from
- * this code. Make your code error tolerant; throwing an error from
- * this function will cause a 500 error response to be sent to the
- * requesting client.
- *
- * The processRequest function is passed details of the incoming request,
- * function to support request-class setting plus parameters that refer to
- * the target for which this code is being run.
- *
- * The function must return an object with 'path' and 'querystring'. These
- * may be the same values passed in, or modified values.
- *
- * Processing query strings can be challenging, because there are multiple
- * formats in use, URL-quoting may be required, and the order of parameters
- * in the URL may be important. To avoid issues, use the QueryParameters
- * class from the SDK's 'utils/ssr-request-processing' module. This
- * class will correctly preserve the order, case, values and encoding of
- * the parameters. The QueryParameters class is documented in the SDK.
- *
- * @param path {String} the path part of the URL, beginning with a '/'
- * @param querystring {String} the query string part of the URL, without
- * any initial '?'
- * @param headers {Headers} the headers of the incoming request. This should
- * be considered read-only (although header values can be changed, most headers
- * are not passed to the origin, so changes have no effect).
- * @param setRequestClass {function} call this with a string to set the
- * "class" of the incoming request. By default, requests have no class.
- * @param parameters {Object}
- * @param parameters.appHostname {String} the "application host name" is the
- * hostname to which requests are sent for this target: the website's hostname.
- * @param parameters.deployTarget {String} the target's id. Use this to have
- * different processing for different targets.
- * @param parameters.proxyConfigs {Object[]} an array of proxy configuration
- * object, each one containing protocol, host and path for a proxy. Use this
- * to have different processing for different backends.
- * @returns {{path: String, querystring: String}}
- */
-export const processRequest = ({
- // Uncomment the following lines for the example code to work.
- // headers,
- // setRequestClass,
- // parameters,
- path,
- querystring
-}) => {
- // This is an EXAMPLE processRequest implementation. You should
- // replace it with code that processes your requests as needed.
-
- // This example code will remove any of the parameters whose keys appear
- // in the 'exclusions' array.
- const exclusions = [
- // 'gclid',
- // 'utm_campaign',
- // 'utm_content',
- // 'utm_medium',
- // 'utm_source'
- ]
-
- // This is a performance optimization for SLAS.
- // On client side, browser always follow the redirect
- // to /callback but the response is always the same.
- // We strip out the unique query parameters so this
- // endpoint is cached at the CDN level
- if (path === '/callback') {
- exclusions.push('usid')
- exclusions.push('code')
- }
-
- // Build a first QueryParameters object from the given querystring
- const incomingParameters = new QueryParameters(querystring)
-
- // Build a second QueryParameters from the first, with all
- // excluded parameters removed
- const filteredParameters = QueryParameters.from(
- incomingParameters.parameters.filter(
- // parameter.key is always lower-case
- (parameter) => !exclusions.includes(parameter.key)
- )
- )
-
- // Re-generate the querystring
- querystring = filteredParameters.toString()
-
- /***************************************************************************
- // This example code will detect bots by examining the user-agent,
- // and will set the request class to 'bot' for all such requests.
- const ua = headers.getHeader('user-agent')
- // This check
- const botcheck = /bot|crawler|spider|crawling/i
- if (botcheck.test(ua)) {
- setRequestClass('bot')
- }
- ***************************************************************************/
- // Return the path unchanged, and the updated query string
- return {
- path,
- querystring
- }
-}
diff --git a/packages/template-retail-react-app/app/request-processor.test.js b/packages/template-retail-react-app/app/request-processor.test.js
deleted file mode 100644
index 60605aeba9..0000000000
--- a/packages/template-retail-react-app/app/request-processor.test.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Copyright (c) 2021, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-import {processRequest} from '@salesforce/retail-react-app/app/request-processor'
-
-describe('processRequest', () => {
- test('returns valid values', () => {
- const result = processRequest({path: 'path', querystring: 'querystring'})
-
- expect(result.path).toEqual(expect.any(String))
- expect(result.querystring).toEqual(expect.any(String))
- })
-
- test('SLAS callback parameters are removed', () => {
- const result = processRequest({path: '/callback', querystring: 'usid=1&code=2&test=3'})
-
- expect(result.path).toBe('/callback')
- expect(result.querystring).toBe('test=3')
- })
-})
diff --git a/packages/template-retail-react-app/app/routes.test.js b/packages/template-retail-react-app/app/routes.test.js
deleted file mode 100644
index b463bf56bf..0000000000
--- a/packages/template-retail-react-app/app/routes.test.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * Copyright (c) 2021, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-import routes from '@salesforce/retail-react-app/app/routes'
-
-describe('Routes', () => {
- test('exports a valid react-router configuration', () => {
- expect(Array.isArray(routes) || typeof routes === 'function').toBe(true)
- })
-})
diff --git a/packages/template-retail-react-app/app/static/head-active_data.js b/packages/template-retail-react-app/app/static/head-active_data.js
deleted file mode 100644
index e959d2d86f..0000000000
--- a/packages/template-retail-react-app/app/static/head-active_data.js
+++ /dev/null
@@ -1,43 +0,0 @@
-var dw = (window.dw || {});
-dw.ac = {
- _analytics: null,
- _events: [],
- _category: "",
- _searchData: "",
- _anact: "",
- _anact_nohit_tag: "",
- _analytics_enabled: "true",
- _timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,
- _capture: function(configs) {
- if (Object.prototype.toString.call(configs) === "[object Array]") {
- configs.forEach(captureObject);
- return;
- }
- dw.ac._events.push(configs);
- },
- capture: function() {
- dw.ac._capture(arguments);
- // send to CQ as well:
- if (window.CQuotient) {
- window.CQuotient.trackEventsFromAC(arguments);
- }
- },
- EV_PRD_SEARCHHIT: "searchhit",
- EV_PRD_DETAIL: "detail",
- EV_PRD_RECOMMENDATION: "recommendation",
- EV_PRD_SETPRODUCT: "setproduct",
- applyContext: function(context) {
- if (typeof context === "object" && context.hasOwnProperty("category")) {
- dw.ac._category = context.category;
- }
- if (typeof context === "object" && context.hasOwnProperty("searchData")) {
- dw.ac._searchData = context.searchData;
- }
- },
- setDWAnalytics: function(analytics) {
- dw.ac._analytics = analytics;
- },
- eventsIsEmpty: function() {
- return 0 == dw.ac._events.length;
- }
-};
\ No newline at end of file
diff --git a/packages/template-retail-react-app/app/static/manifest.json b/packages/template-retail-react-app/app/static/manifest.json
deleted file mode 100644
index a58ce4beac..0000000000
--- a/packages/template-retail-react-app/app/static/manifest.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "name": "example.com",
- "short_name": "example.com",
- "start_url": "/?homescreen=1",
- "background_color": "#fff",
- "theme_color": "#4e439b",
- "display": "standalone",
- "icons": [
- {
- "src": "./img/global/app-icon-192.png",
- "sizes": "192x192"
- },
- {
- "src": "./img/global/app-icon-512.png",
- "sizes": "512x512"
- }
- ]
-}
-
diff --git a/packages/template-retail-react-app/app/static/robots.txt b/packages/template-retail-react-app/app/static/robots.txt
deleted file mode 100644
index 6f27bb66a3..0000000000
--- a/packages/template-retail-react-app/app/static/robots.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-User-agent: *
-Disallow:
\ No newline at end of file
diff --git a/packages/template-retail-react-app/app/theme/index.js b/packages/template-retail-react-app/app/theme/index.js
deleted file mode 100644
index df2077f17a..0000000000
--- a/packages/template-retail-react-app/app/theme/index.js
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Copyright (c) 2021, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-import {extendTheme} from '@salesforce/retail-react-app/app/components/shared/ui'
-
-// Foundational style overrides
-import styles from '@salesforce/retail-react-app/app/theme/foundations/styles'
-import colors from '@salesforce/retail-react-app/app/theme/foundations/colors'
-import gradients from '@salesforce/retail-react-app/app/theme/foundations/gradients'
-import sizes from '@salesforce/retail-react-app/app/theme/foundations/sizes'
-import space from '@salesforce/retail-react-app/app/theme/foundations/space'
-import layerStyles from '@salesforce/retail-react-app/app/theme/foundations/layerStyles'
-import shadows from '@salesforce/retail-react-app/app/theme/foundations/shadows'
-
-// Base component style overrides
-import Alert from '@salesforce/retail-react-app/app/theme/components/base/alert'
-import Accordion from '@salesforce/retail-react-app/app/theme/components/base/accordion'
-import Badge from '@salesforce/retail-react-app/app/theme/components/base/badge'
-import Button from '@salesforce/retail-react-app/app/theme/components/base/button'
-import Checkbox from '@salesforce/retail-react-app/app/theme/components/base/checkbox'
-import Container from '@salesforce/retail-react-app/app/theme/components/base/container'
-import Drawer from '@salesforce/retail-react-app/app/theme/components/base/drawer'
-import FormLabel from '@salesforce/retail-react-app/app/theme/components/base/formLabel'
-import Icon from '@salesforce/retail-react-app/app/theme/components/base/icon'
-import Input from '@salesforce/retail-react-app/app/theme/components/base/input'
-import Modal from '@salesforce/retail-react-app/app/theme/components/base/modal'
-import Radio from '@salesforce/retail-react-app/app/theme/components/base/radio'
-import Select from '@salesforce/retail-react-app/app/theme/components/base/select'
-import Skeleton from '@salesforce/retail-react-app/app/theme/components/base/skeleton'
-import Tooltip from '@salesforce/retail-react-app/app/theme/components/base/tooltip'
-import Popover from '@salesforce/retail-react-app/app/theme/components/base/popover'
-
-// Project Component style overrides
-import App from '@salesforce/retail-react-app/app/theme/components/project/_app'
-import Breadcrumb from '@salesforce/retail-react-app/app/theme/components/project/breadcrumb'
-import Header from '@salesforce/retail-react-app/app/theme/components/project/header'
-import ListMenu from '@salesforce/retail-react-app/app/theme/components/project/list-menu'
-import Footer from '@salesforce/retail-react-app/app/theme/components/project/footer'
-import CheckoutFooter from '@salesforce/retail-react-app/app/theme/components/project/checkout-footer'
-import LinksList from '@salesforce/retail-react-app/app/theme/components/project/links-list'
-import DrawerMenu from '@salesforce/retail-react-app/app/theme/components/project/drawer-menu'
-import NestedAccordion from '@salesforce/retail-react-app/app/theme/components/project/nested-accordion'
-import LocaleSelector from '@salesforce/retail-react-app/app/theme/components/project/locale-selector'
-import OfflineBanner from '@salesforce/retail-react-app/app/theme/components/project/offline-banner'
-import Pagination from '@salesforce/retail-react-app/app/theme/components/project/pagination'
-import ProductTile from '@salesforce/retail-react-app/app/theme/components/project/product-tile'
-import SocialIcons from '@salesforce/retail-react-app/app/theme/components/project/social-icons'
-import SwatchGroup from '@salesforce/retail-react-app/app/theme/components/project/swatch-group'
-import ImageGallery from '@salesforce/retail-react-app/app/theme/components/project/image-gallery'
-
-// Please refer to the Chakra-Ui theme customization docs found
-// here https://chakra-ui.com/docs/theming/customize-theme to learn
-// more about extending and overriding themes for your project.
-export const overrides = {
- styles,
- layerStyles,
- colors,
- sizes,
- space,
- gradients,
- shadows,
- components: {
- // base components
- Accordion,
- Alert,
- Badge,
- Button,
- Checkbox,
- Container,
- Drawer,
- FormLabel,
- Icon,
- Input,
- Modal,
- Popover,
- Radio,
- Select,
- Skeleton,
- Tooltip,
-
- // project components
- App,
- Breadcrumb,
- Header,
- Footer,
- CheckoutFooter,
- LinksList,
- ListMenu,
- DrawerMenu,
- NestedAccordion,
- LocaleSelector,
- OfflineBanner,
- SocialIcons,
- Pagination,
- ProductTile,
- SwatchGroup,
- ImageGallery
- }
-}
-
-export default extendTheme(overrides)
diff --git a/packages/template-retail-react-app/cache-hash-config.json b/packages/template-retail-react-app/cache-hash-config.json
deleted file mode 100644
index 18769afe05..0000000000
--- a/packages/template-retail-react-app/cache-hash-config.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "files": [
- "app/static/**/*"
- ],
- "baseDir": "app",
- "hashLength": 8,
- "destinationFolder": "app"
-}
diff --git a/packages/template-retail-react-app/config/default.js b/packages/template-retail-react-app/config/default.js
deleted file mode 100644
index dde879341a..0000000000
--- a/packages/template-retail-react-app/config/default.js
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright (c) 2021, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-// eslint-disable-next-line @typescript-eslint/no-var-requires
-const sites = require('./sites.js')
-
-module.exports = {
- app: {
- url: {
- site: 'path',
- locale: 'path',
- showDefaults: true,
- interpretPlusSignAsSpace: false
- },
- login: {
- passwordless: {
- enabled: false,
- callbackURI:
- process.env.PASSWORDLESS_LOGIN_CALLBACK_URI || '/passwordless-login-callback',
- landingPath: '/passwordless-login-landing'
- },
- social: {
- enabled: false,
- idps: ['google', 'apple'],
- redirectURI: process.env.SOCIAL_LOGIN_REDIRECT_URI || '/social-callback'
- },
- resetPassword: {
- callbackURI: process.env.RESET_PASSWORD_CALLBACK_URI || '/reset-password-callback',
- landingPath: '/reset-password-landing'
- }
- },
- defaultSite: 'RefArchGlobal',
- siteAliases: {
- RefArch: 'us',
- RefArchGlobal: 'global'
- },
- sites,
- commerceAPI: {
- proxyPath: `/mobify/proxy/api`,
- parameters: {
- clientId: 'c9c45bfd-0ed3-4aa2-9971-40f88962b836',
- organizationId: 'f_ecom_zzrf_001',
- shortCode: '8o7m175y',
- siteId: 'RefArchGlobal'
- }
- },
- einsteinAPI: {
- host: 'https://api.cquotient.com',
- einsteinId: '1ea06c6e-c936-4324-bcf0-fada93f83bb1',
- // This differs from the siteId in commerceAPIConfig for testing purposes
- siteId: 'aaij-MobileFirst',
- isProduction: false
- },
- dataCloudAPI: {
- appSourceId: 'fb81edab-24c6-4b40-8684-b67334dfdf32',
- tenantId: 'mmyw8zrxhfsg09lfmzrd1zjqmg'
- }
- },
- externals: [],
- pageNotFoundURL: '/page-not-found',
- ssrEnabled: true,
- ssrOnly: ['ssr.js', 'ssr.js.map', 'node_modules/**/*.*'],
- ssrShared: [
- 'static/ico/favicon.ico',
- 'static/robots.txt',
- '**/*.js',
- '**/*.js.map',
- '**/*.json'
- ],
- ssrParameters: {
- ssrFunctionNodeVersion: '22.x',
- proxyConfigs: [
- {
- host: 'kv7kzm78.api.commercecloud.salesforce.com',
- path: 'api'
- },
- {
- host: 'zzrf-001.dx.commercecloud.salesforce.com',
- path: 'ocapi'
- }
- ]
- }
-}
diff --git a/packages/template-retail-react-app/config/mocks/default.js b/packages/template-retail-react-app/config/mocks/default.js
deleted file mode 100644
index 3a8e7af91e..0000000000
--- a/packages/template-retail-react-app/config/mocks/default.js
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * Copyright (c) 2021, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-/**
- * This is a mock config to be used for unit tests
- *
- * By default, a generated project is a single-site and single-locale app
- * However, it can be extended to multi-site with multi-locale easily.
- * To ensure that feature work correctly, we test our code with multi-site config in mind, so we created this mock config.
- * A single-site, single-locale config is a special case of multi-site case.
- */
-module.exports = {
- app: {
- url: {
- locale: 'path',
- site: 'path',
- showDefaults: true
- },
- login: {
- passwordless: {
- enabled: false,
- callbackURI: 'https://webhook.site/27761b71-50c1-4097-a600-21a3b89a546c'
- },
- social: {
- enabled: false,
- idps: ['google', 'apple']
- }
- },
- siteAliases: {
- 'site-1': 'uk',
- 'site-2': 'us'
- },
- defaultSite: 'site-1',
- sites: [
- {
- id: 'site-1',
- l10n: {
- defaultLocale: 'en-GB',
- defaultCurrency: 'GBP',
- supportedLocales: [
- {
- id: 'en-GB',
- preferredCurrency: 'GBP'
- },
- {
- id: 'fr-FR',
- alias: 'fr',
- preferredCurrency: 'EUR'
- },
- {
- id: 'it-IT',
- preferredCurrency: 'EUR'
- }
- ]
- }
- },
- {
- id: 'site-2',
- l10n: {
- defaultLocale: 'en-US',
- defaultCurrency: 'USD',
- supportedLocales: [
- {
- id: 'en-US',
- preferredCurrency: 'USD'
- },
- {
- id: 'en-CA',
- preferredCurrency: 'USD'
- }
- ]
- }
- }
- ],
- commerceAPI: {
- proxyPath: `/mobify/proxy/api`,
- parameters: {
- clientId: 'c9c45bfd-0ed3-4aa2-9971-40f88962b836',
- organizationId: 'f_ecom_zzrf_001',
- shortCode: '11111111',
- siteId: 'site-1'
- }
- },
- einsteinAPI: {
- host: 'http://localhost:7777',
- einsteinId: '11111111',
- // This differs from the siteId in commerceAPIConfig for testing purposes
- siteId: 'EinsteinTestSite',
- // Flag Einstein activities as coming from a production environment.
- // By setting this to true, the Einstein activities generated by the environment will appear
- // in production environment reports
- // This is temporary and is meant as a placeholder until there is a mechanism for reading
- // the is_production property from an MRT target
- isProduction: false
- },
- dataCloudAPI: {
- appSourceId: '23df7335-2e9d-4fbc-bc34-7e93649e69b7',
- tenantId: '5zqheixqu9vji7spdkzxwh4hpz'
- }
- },
- // This list contains server-side only libraries that you don't want to be compiled by webpack
- externals: [],
- // Page not found url for your app
- pageNotFoundURL: '/page-not-found',
- // Enables or disables building the files necessary for server-side rendering.
- ssrEnabled: true,
- // This list determines which files are available exclusively to the server-side rendering system
- // and are not available through the /mobify/bundle/ path.
- ssrOnly: ['ssr.js', 'ssr.js.map', 'node_modules/**/*.*'],
- // This list determines which files are available to the server-side rendering system
- // and available through the /mobify/bundle/ path.
- ssrShared: [
- 'static/ico/favicon.ico',
- 'static/robots.txt',
- '**/*.js',
- '**/*.js.map',
- '**/*.json'
- ],
- // Additional parameters that configure Express app behavior.
- ssrParameters: {
- ssrFunctionNodeVersion: '22.x',
- proxyConfigs: [
- {
- host: 'localhost:8888',
- path: 'api'
- },
- {
- host: 'localhost:9999',
- path: 'ocapi'
- }
- ]
- }
-}
diff --git a/packages/template-retail-react-app/config/sites.js b/packages/template-retail-react-app/config/sites.js
deleted file mode 100644
index fdc26a5958..0000000000
--- a/packages/template-retail-react-app/config/sites.js
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright (c) 2021, salesforce.com, inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-// Provide the sites for your app. Each site includes site id, and its localization configuration.
-// You can also provide alias for your locale. They will be used in place of your locale id when generating paths across the app
-module.exports = [
- {
- id: 'RefArch',
- l10n: {
- supportedCurrencies: ['USD'],
- defaultCurrency: 'USD',
- defaultLocale: 'en-US',
- supportedLocales: [
- {
- id: 'en-US',
- preferredCurrency: 'USD'
- },
- {
- id: 'en-CA',
- preferredCurrency: 'USD'
- }
- ]
- }
- },
- {
- id: 'RefArchGlobal',
- l10n: {
- supportedCurrencies: ['GBP', 'EUR', 'CNY', 'JPY'],
- defaultCurrency: 'GBP',
- supportedLocales: [
- {
- id: 'de-DE',
- preferredCurrency: 'EUR'
- },
- {
- id: 'en-GB',
- preferredCurrency: 'GBP'
- },
- {
- id: 'es-MX',
- preferredCurrency: 'MXN'
- },
- {
- id: 'fr-FR',
- preferredCurrency: 'EUR'
- },
- {
- id: 'it-IT',
- preferredCurrency: 'EUR'
- },
- {
- id: 'ja-JP',
- preferredCurrency: 'JPY'
- },
- {
- id: 'ko-KR',
- preferredCurrency: 'KRW'
- },
- {
- id: 'pt-BR',
- preferredCurrency: 'BRL'
- },
- {
- id: 'zh-CN',
- preferredCurrency: 'CNY'
- },
- {
- id: 'zh-TW',
- preferredCurrency: 'TWD'
- }
- ],
- defaultLocale: 'en-GB'
- }
- }
-]
diff --git a/packages/template-retail-react-app/jsconfig.json b/packages/template-retail-react-app/jsconfig.json
deleted file mode 100644
index 7dfda55ac2..0000000000
--- a/packages/template-retail-react-app/jsconfig.json
+++ /dev/null
@@ -1,13 +0,0 @@
-// for development convenience, this file helps IDE's find relative paths prefixed with
-// the self-reference (to this package) 'retail-react-app'
-
-// jsconfig.json
-{
- "compilerOptions": {
- "target": "ES6",
- "baseUrl": "./",
- "paths": {
- "@salesforce/retail-react-app/*": ["./*", "./*/index"]
- }
- }
-}
diff --git a/packages/template-retail-react-app/package.json b/packages/template-retail-react-app/package.json
deleted file mode 100644
index 4b9846679f..0000000000
--- a/packages/template-retail-react-app/package.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "name": "@salesforce/retail-react-app",
- "version": "6.1.0-dev.1",
- "license": "See license in LICENSE",
- "author": "cc-pwa-kit@salesforce.com",
- "ccExtensibility": {
- "extendable": [
- "@salesforce/retail-react-app"
- ]
- },
- "scripts": {
- "analyze-build": "cross-env MOBIFY_ANALYZE=true npm run build",
- "build": "npm run build-translations && pwa-kit-dev build",
- "build-translations": "npm run extract-default-translations && npm run compile-translations && npm run compile-translations:pseudo",
- "compile-translations": "node ./scripts/translations/compile-folder.js translations",
- "compile-translations:pseudo": "node ./scripts/translations/compile-pseudo.js translations/en-US.json",
- "extract-default-translations": "node ./scripts/translations/extract-default-messages.js en-US en-GB",
- "format": "pwa-kit-dev format \"**/*.{js,jsx}\"",
- "lint": "pwa-kit-dev lint \"**/*.{js,jsx}\"",
- "lint:fix": "npm run lint -- --fix",
- "postinstall": "npm run compile-translations && npm run compile-translations:pseudo",
- "push": "npm run build && pwa-kit-dev push",
- "save-credentials": "pwa-kit-dev save-credentials",
- "start": "cross-env NODE_ICU_DATA=node_modules/full-icu pwa-kit-dev start",
- "start:inspect": "npm run start -- --inspect",
- "start:pseudolocale": "npm run extract-default-translations && npm run compile-translations:pseudo && cross-env USE_PSEUDOLOCALE=true npm run start",
- "tail-logs": "pwa-kit-dev tail-logs",
- "test": "pwa-kit-dev test",
- "test:lighthouse": "cross-env NODE_ENV=production lhci autorun --config=tests/lighthouserc.js",
- "test:max-file-size": "npm run build && bundlesize"
- },
- "browserslist": [
- "iOS >= 9.0",
- "Android >= 4.4.4",
- "last 4 ChromeAndroid versions"
- ],
- "dependencies": {
- "@chakra-ui/icons": "^2.0.19",
- "@chakra-ui/react": "^2.6.0",
- "@chakra-ui/skip-nav": "^2.0.15",
- "@chakra-ui/system": "^2.5.6",
- "@emotion/react": "^11.10.6",
- "@emotion/styled": "^11.10.6",
- "@formatjs/cli": "^6.0.4",
- "@lhci/cli": "^0.11.0",
- "@loadable/component": "^5.15.3",
- "@peculiar/webcrypto": "^1.4.2",
- "@salesforce/cc-datacloud-typescript": "1.1.2",
- "@salesforce/commerce-sdk-react": "3.3.0-dev.1",
- "@salesforce/pwa-kit-dev": "3.10.0-dev.1",
- "@salesforce/pwa-kit-react-sdk": "3.10.0-dev.1",
- "@salesforce/pwa-kit-runtime": "3.10.0-dev.1",
- "@tanstack/react-query": "^4.28.0",
- "@tanstack/react-query-devtools": "^4.29.1",
- "@testing-library/dom": "^9.0.1",
- "@testing-library/jest-dom": "^5.16.5",
- "@testing-library/react": "^14.0.0",
- "@testing-library/user-event": "^14.4.3",
- "babel-plugin-module-resolver": "5.0.2",
- "base64-arraybuffer": "^0.2.0",
- "bundlesize2": "^0.0.35",
- "card-validator": "^8.1.1",
- "cross-env": "^5.2.1",
- "cross-fetch": "^3.1.4",
- "focus-visible": "^5.2.0",
- "framer-motion": "^10.12.9",
- "full-icu": "^1.5.0",
- "helmet": "^4.6.0",
- "jest-fetch-mock": "^2.1.2",
- "jose": "^4.14.4",
- "js-cookie": "^3.0.1",
- "jsonwebtoken": "^9.0.0",
- "jwt-decode": "^4.0.0",
- "lodash": "^4.17.21",
- "msw": "^1.2.1",
- "nanoid": "^3.3.8",
- "prop-types": "^15.8.1",
- "query-string": "^7.1.3",
- "raf": "^3.4.1",
- "randomstring": "^1.2.3",
- "react": "^18.2.0",
- "react-dom": "^18.2.0",
- "react-helmet": "^6.1.0",
- "react-hook-form": "^7.43.9",
- "react-intl": "^5.25.1",
- "react-router-dom": "^5.3.4"
- },
- "devDependencies": {
- "cross-env": "^5.2.1"
- },
- "overrides": {
- "react-router": {
- "path-to-regexp": "^1.9.0"
- }
- },
- "engines": {
- "node": "^16.11.0 || ^18.0.0 || ^20.0.0 || ^22.0.0",
- "npm": "^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0"
- },
- "bundlesize": [
- {
- "path": "build/main.js",
- "maxSize": "57 kB"
- },
- {
- "path": "build/vendor.js",
- "maxSize": "328 kB"
- }
- ]
-}
diff --git a/packages/template-retail-react-app/scripts/translations/utils.js b/packages/template-retail-react-app/scripts/translations/utils.js
deleted file mode 100644
index 450dc71e75..0000000000
--- a/packages/template-retail-react-app/scripts/translations/utils.js
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/usr/bin/env node
-/*
- * Copyright (c) 2023, Salesforce, Inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-
-/* eslint @typescript-eslint/no-var-requires: "off" */
-const fs = require('fs')
-const path = require('path')
-
-const getOutputFolder = () => {
- const packagePath = path.join(process.cwd(), 'package.json')
- const pkgJSON = JSON.parse(fs.readFileSync(packagePath))
-
- const overridesDir = pkgJSON.ccExtensibility?.overridesDir
- const extendsTemplate = pkgJSON.ccExtensibility?.extends
- const outputFolder =
- overridesDir && extendsTemplate
- ? path.join(overridesDir, 'app/static/translations/compiled')
- : 'app/static/translations/compiled'
-
- return outputFolder
-}
-
-module.exports = {
- getOutputFolder
-}
diff --git a/packages/template-retail-react-app/translations/README.md b/packages/template-retail-react-app/translations/README.md
deleted file mode 100644
index a8da135cb0..0000000000
--- a/packages/template-retail-react-app/translations/README.md
+++ /dev/null
@@ -1,127 +0,0 @@
-# Translations
-
-Most of the files in this folder are generated by `react-intl` **CLI tool**:
-
-- `/translations/en-US.json` <- output of _extracting_ the default messages, which you can send to your translators.
-- `/translations/[locale].json` <- the files that your translators make for the other locales
-- `/translations/compiled/[locale].json` <- output of _compiling_ the messages into AST format
- - Compiling helps improve the performance because it allows `react-intl` to skip the parsing step
-
-Several **npm scripts** are available to you that make it easier to use the CLI tool. See `package.json` for more details.
-
-- To **extract the default messages**, run `npm run extract-default-translations` to have all the default messages extracted into a json file. By default, en-US.json is the file that's generated. If you wish to extract your messages into a different json file, simply update the script by replacing `en-US` with your desired locale.
-- To **compile the translations** from all the locales, run `npm run compile-translations`.
-- To run **both an extract and compile**, run `npm run build-translations`.
-
-## Formatting Messages
-
-For all the hardcoded translations in your site, write them...
-
-- _inline_ in the components, so it’s easier to see where in the page or component that they get used in
-- and in the _default/fallback locale_ (for example, in English)
-
-For example, in your React component, you can add formatted messages like `intl.formatMessage({defaultMessage: '...'})` or ` `
-
-### Adding Message Id
-
-At the minimum, only defaultMessage is the required parameter. The message id is optional. If you don’t specify it, the id is auto-generated for you.
-
-## Testing with a Pseudo Locale
-
-To check whether you’ve wrapped all the hardcoded strings with either `intl.formatMessage()` or ` ` , there’s a quick way to test that by running `npm run start:pseudolocale`. It runs your local dev server with the locale forced to the pseudo locale.
-
-Loading the site in your browser, you can quickly see that those messages that have been formatted would look like this: `[!! Ṕŕíííṿâćććẏ ṔṔṔŏĺíííćẏ !!]`
-
-# Localization
-
-Since the Retail React App supports **multiple sites** feature, this means each site can have its own localization setup. In each site,
-the default locale, supported locales, and currency settings are defined in a site object in `config/sites.js` under `ll0n`.
-
-The locale ids `l10n.supportedLocales[n].id` follow the format supported by OCAPI and Commerce API: `-` as defined in this InfoCenter topic: [OCAPI localization 21.8](https://documentation.b2c.commercecloud.salesforce.com/DOC1/topic/com.demandware.dochelp/OCAPI/current/usage/Localization.html).
-
-The currency code in `l10n.supportedCurrencies` and `l10n.supportedLocales[n].preferredCurrency` follow the ISO 4217 standard.
-
-**Important**: The supported locale settings `l10n.supportedLocales` must match the locale settings for your B2C Commerce instance. For more information about configuring locales on a B2C Commerce instance, see this InfoCenter topic: [Configure Site Locales](https://documentation.b2c.commercecloud.salesforce.com/DOC2/topic/com.demandware.dochelp/content/b2c_commerce/topics/admin/b2c_configuring_site_locales.html).
-
-Here’s an example of locale configuration in sites configuration:
-
-```js
-// config/sites.js
-modules.exports = [
- {
- id: 'site-id',
- l10n: {
- supportedCurrencies: ['GBP', 'EUR', 'CNY', 'JPY'],
- defaultCurrency: 'GBP',
- supportedLocales: [
- {
- id: 'de-DE',
- preferredCurrency: 'EUR'
- },
- {
- id: 'en-GB',
- preferredCurrency: 'GBP'
- },
- {
- id: 'es-MX',
- preferredCurrency: 'MXN'
- },
- // other locales
- ],
- defaultLocale: 'en-GB'
- }
- }
-]
-```
-
-## How to Add a New Locale
-
-The process for adding a new locale is as follows:
-
-1. Create/enable the new locale in Business Manager of your B2C Commerce instance
-2. Enable the locale's currency too in Business Manager
-3. Add the new locale and its currency to your targeted site in `config/sites.js`
-4. If the new locale is also going to be the locale of your inline default messages:
- - Update those default messages to be in that locale's language
- - Run `npm run extract-default-translations` to extract the new translations
- - Send the extracted translations to your translation team
-5. Place the files you receive from your translation team into the `/translations/` folder
-6. Run `npm run compile-translations`
-
-## Tips
-
-Here are a few useful things to know for developers.
-
-### User-Preferred Locales vs. App-Supported Locales
-
-How a locale gets chosen depends on whether there’s a match found between 2 sets of locales. On a high level, it looks like this:
-
-1. Get the app-supported locales, which are defined in each site object in `config/sites.js` (under `l10n.supportedLocales` of your targeted site).
-2. Get the user-preferred locales, which are what the visitors prefer to see. The developer is responsible for fully implementing them in their own projects within the special `_app` component.
-3. If there’s a match between these 2 sets of locales, then the app would use it as the target locale.
-4. Otherwise, the app would fall back to the locale of the inline `defaultMessage`s.
-
-### How to Detect the Active Locale
-
-- Within component render, `useLocale` hook is available to you: `const locale = useLocale()`
-- Within a page’s `getProps` you can call utility function `resolveLocaleFromUrl` like this:
-
-```js
-ProductDetail.getProps = async ({res, params, location, api}) => {
- const locale = resolveLocaleFromUrl(`${location.pathname}${location.search}`)
- ...
-}
-```
-
-### Dynamic Loading of the Translation Files
-
-Using dynamic import, regardless of how many locales the app supports, it would load only one locale at a time.
-
-Initially, on app load, the translated messages are part of the server-rendered html. Afterwards on the client side, when dynamically changing the locale, the app would download the JSON file associated with that locale.
-
-- Each locale is a separate JSON file in the bundle. And it’s served with a 1-year cache header.
-- When a new bundle is deployed, you must download the JSON files again.
-
-### Link Component
-
-The generated project comes with its own `Link` component. It automatically inserts the locale in the URLs for you.
diff --git a/packages/template-retail-react-app/translations/de-DE.json b/packages/template-retail-react-app/translations/de-DE.json
deleted file mode 100644
index b1f7513a09..0000000000
--- a/packages/template-retail-react-app/translations/de-DE.json
+++ /dev/null
@@ -1,1517 +0,0 @@
-{
- "account.accordion.button.my_account": {
- "defaultMessage": "Mein Konto"
- },
- "account.heading.my_account": {
- "defaultMessage": "Mein Konto"
- },
- "account.logout_button.button.log_out": {
- "defaultMessage": "Ausloggen"
- },
- "account_addresses.badge.default": {
- "defaultMessage": "Standard"
- },
- "account_addresses.button.add_address": {
- "defaultMessage": "Adresse hinzufügen"
- },
- "account_addresses.info.address_removed": {
- "defaultMessage": "Adresse entfernt"
- },
- "account_addresses.info.address_updated": {
- "defaultMessage": "Adresse aktualisiert"
- },
- "account_addresses.info.new_address_saved": {
- "defaultMessage": "Neue Adresse gespeichert"
- },
- "account_addresses.page_action_placeholder.button.add_address": {
- "defaultMessage": "Adresse hinzufügen"
- },
- "account_addresses.page_action_placeholder.heading.no_saved_addresses": {
- "defaultMessage": "Keine gespeicherten Adressen"
- },
- "account_addresses.page_action_placeholder.message.add_new_address": {
- "defaultMessage": "Fügen Sie für eine schnellere Kaufabwicklung eine neue Adressmethode hinzu."
- },
- "account_addresses.title.addresses": {
- "defaultMessage": "Adressen"
- },
- "account_detail.title.account_details": {
- "defaultMessage": "Kontodetails"
- },
- "account_order_detail.heading.billing_address": {
- "defaultMessage": "Rechnungsadresse"
- },
- "account_order_detail.heading.num_of_items": {
- "defaultMessage": "{count} Artikel"
- },
- "account_order_detail.heading.payment_method": {
- "defaultMessage": "Zahlungsmethode"
- },
- "account_order_detail.heading.shipping_address": {
- "defaultMessage": "Lieferadresse"
- },
- "account_order_detail.heading.shipping_method": {
- "defaultMessage": "Versandmethode"
- },
- "account_order_detail.label.order_number": {
- "defaultMessage": "Bestellungsnummer: {orderNumber}"
- },
- "account_order_detail.label.ordered_date": {
- "defaultMessage": "Bestellt: {date}"
- },
- "account_order_detail.label.pending_tracking_number": {
- "defaultMessage": "Ausstehend"
- },
- "account_order_detail.label.tracking_number": {
- "defaultMessage": "Sendungsverfolgungsnummer"
- },
- "account_order_detail.link.back_to_history": {
- "defaultMessage": "Zurück zum Bestellverlauf"
- },
- "account_order_detail.shipping_status.not_shipped": {
- "defaultMessage": "Nicht versandt"
- },
- "account_order_detail.shipping_status.part_shipped": {
- "defaultMessage": "Teilweise versandt"
- },
- "account_order_detail.shipping_status.shipped": {
- "defaultMessage": "Versandt"
- },
- "account_order_detail.title.order_details": {
- "defaultMessage": "Bestellungsdetails"
- },
- "account_order_history.button.continue_shopping": {
- "defaultMessage": "Weiter einkaufen"
- },
- "account_order_history.description.once_you_place_order": {
- "defaultMessage": "Sobald Sie eine Bestellung aufgegeben haben, werden die Einzelheiten hier angezeigt."
- },
- "account_order_history.heading.no_order_yet": {
- "defaultMessage": "Sie haben noch keine Bestellung aufgegeben."
- },
- "account_order_history.label.num_of_items": {
- "defaultMessage": "{count} Artikel",
- "description": "Number of items in order"
- },
- "account_order_history.label.order_number": {
- "defaultMessage": "Bestellungsnummer: {orderNumber}"
- },
- "account_order_history.label.ordered_date": {
- "defaultMessage": "Bestellt: {date}"
- },
- "account_order_history.label.shipped_to": {
- "defaultMessage": "Versand an: {name}"
- },
- "account_order_history.link.view_details": {
- "defaultMessage": "Details anzeigen"
- },
- "account_order_history.title.order_history": {
- "defaultMessage": "Bestellverlauf"
- },
- "account_wishlist.button.continue_shopping": {
- "defaultMessage": "Weiter einkaufen"
- },
- "account_wishlist.description.continue_shopping": {
- "defaultMessage": "Kaufen Sie weiter ein und fügen Sie Ihrer Wunschliste Artikel hinzu."
- },
- "account_wishlist.heading.no_wishlist": {
- "defaultMessage": "Keine Artikel auf der Wunschliste"
- },
- "account_wishlist.title.wishlist": {
- "defaultMessage": "Wunschliste"
- },
- "action_card.action.edit": {
- "defaultMessage": "Bearbeiten"
- },
- "action_card.action.remove": {
- "defaultMessage": "Entfernen"
- },
- "add_to_cart_modal.info.added_to_cart": {
- "defaultMessage": "{quantity} {quantity, plural, one {Artikel} other {Artikel}} zum Warenkorb hinzugefügt"
- },
- "add_to_cart_modal.label.cart_subtotal": {
- "defaultMessage": "Zwischensumme des Warenkorbs ({itemAccumulatedCount} Artikel)"
- },
- "add_to_cart_modal.label.quantity": {
- "defaultMessage": "Menge"
- },
- "add_to_cart_modal.link.checkout": {
- "defaultMessage": "Weiter zum Checkout"
- },
- "add_to_cart_modal.link.view_cart": {
- "defaultMessage": "Warenkorb anzeigen"
- },
- "add_to_cart_modal.recommended_products.title.might_also_like": {
- "defaultMessage": "Das könnte Ihnen auch gefallen"
- },
- "auth_modal.button.close.assistive_msg": {
- "defaultMessage": "Anmeldeformular schließen"
- },
- "auth_modal.description.now_signed_in": {
- "defaultMessage": "Sie sind jetzt angemeldet."
- },
- "auth_modal.error.incorrect_email_or_password": {
- "defaultMessage": "Irgendetwas stimmt mit Ihrer E-Mail-Adresse oder Ihrem Passwort nicht. Bitte versuchen Sie es erneut."
- },
- "auth_modal.info.welcome_user": {
- "defaultMessage": "Willkommen {name},"
- },
- "auth_modal.password_reset_success.button.back_to_sign_in": {
- "defaultMessage": "Zurück zur Anmeldung"
- },
- "auth_modal.password_reset_success.info.will_email_shortly": {
- "defaultMessage": "Sie erhalten in Kürze eine E-Mail an {email} mit einem Link zum Zurücksetzen Ihres Passworts."
- },
- "auth_modal.password_reset_success.title.password_reset": {
- "defaultMessage": "Zurücksetzen des Passworts"
- },
- "carousel.button.scroll_left.assistive_msg": {
- "defaultMessage": "Karussell nach links scrollen"
- },
- "carousel.button.scroll_right.assistive_msg": {
- "defaultMessage": "Karussell nach rechts scrollen"
- },
- "cart.info.removed_from_cart": {
- "defaultMessage": "Artikel aus dem Warenkorb entfernt"
- },
- "cart.recommended_products.title.may_also_like": {
- "defaultMessage": "Das könnte Ihnen auch gefallen"
- },
- "cart.recommended_products.title.recently_viewed": {
- "defaultMessage": "Zuletzt angesehen"
- },
- "cart_cta.link.checkout": {
- "defaultMessage": "Weiter zum Checkout"
- },
- "cart_secondary_button_group.action.added_to_wishlist": {
- "defaultMessage": "Zur Wunschliste hinzufügen"
- },
- "cart_secondary_button_group.action.edit": {
- "defaultMessage": "Bearbeiten"
- },
- "cart_secondary_button_group.action.remove": {
- "defaultMessage": "Entfernen"
- },
- "cart_secondary_button_group.label.this_is_gift": {
- "defaultMessage": "Dies ist ein Geschenk."
- },
- "cart_skeleton.heading.order_summary": {
- "defaultMessage": "Bestellungsübersicht"
- },
- "cart_skeleton.title.cart": {
- "defaultMessage": "Warenkorb"
- },
- "cart_title.title.cart_num_of_items": {
- "defaultMessage": "Warenkorb ({itemCount, plural, =0 {0 Artikel} one {# Artikel} other {# Artikel}})"
- },
- "cc_radio_group.action.remove": {
- "defaultMessage": "Entfernen"
- },
- "cc_radio_group.button.add_new_card": {
- "defaultMessage": "Neue Karte hinzufügen"
- },
- "checkout.button.place_order": {
- "defaultMessage": "Bestellen"
- },
- "checkout.message.generic_error": {
- "defaultMessage": "Während der Kaufabwicklung ist ein unerwarteter Fehler aufgetreten:"
- },
- "checkout_confirmation.button.create_account": {
- "defaultMessage": "Konto erstellen"
- },
- "checkout_confirmation.heading.billing_address": {
- "defaultMessage": "Rechnungsadresse"
- },
- "checkout_confirmation.heading.create_account": {
- "defaultMessage": "Für schnellere Kaufabwicklung ein Konto erstellen"
- },
- "checkout_confirmation.heading.credit_card": {
- "defaultMessage": "Kreditkarte"
- },
- "checkout_confirmation.heading.delivery_details": {
- "defaultMessage": "Lieferdetails"
- },
- "checkout_confirmation.heading.order_summary": {
- "defaultMessage": "Bestellungsübersicht"
- },
- "checkout_confirmation.heading.payment_details": {
- "defaultMessage": "Zahlungsdetails"
- },
- "checkout_confirmation.heading.shipping_address": {
- "defaultMessage": "Lieferadresse"
- },
- "checkout_confirmation.heading.shipping_method": {
- "defaultMessage": "Versandmethode"
- },
- "checkout_confirmation.heading.thank_you_for_order": {
- "defaultMessage": "Vielen Dank für Ihre Bestellung!"
- },
- "checkout_confirmation.label.free": {
- "defaultMessage": "Gratis"
- },
- "checkout_confirmation.label.order_number": {
- "defaultMessage": "Bestellungsnummer"
- },
- "checkout_confirmation.label.order_total": {
- "defaultMessage": "Gesamtbetrag"
- },
- "checkout_confirmation.label.promo_applied": {
- "defaultMessage": "Werbeaktion angewendet"
- },
- "checkout_confirmation.label.shipping": {
- "defaultMessage": "Versand"
- },
- "checkout_confirmation.label.subtotal": {
- "defaultMessage": "Zwischensumme"
- },
- "checkout_confirmation.label.tax": {
- "defaultMessage": "Steuern"
- },
- "checkout_confirmation.link.continue_shopping": {
- "defaultMessage": "Weiter einkaufen"
- },
- "checkout_confirmation.link.login": {
- "defaultMessage": "Hier einloggen"
- },
- "checkout_confirmation.message.already_has_account": {
- "defaultMessage": "Diese E-Mail-Adresse ist bereits mit einem Konto verknüpft."
- },
- "checkout_confirmation.message.num_of_items_in_order": {
- "defaultMessage": "{itemCount, plural, =0 {0 Artikel} one {# Artikel} other {# Artikel}}",
- "description": "# item(s) in order"
- },
- "checkout_confirmation.message.will_email_shortly": {
- "defaultMessage": "Wir senden in Kürze eine E-Mail mit Ihrer Bestätigungsnummer und Ihrem Beleg an {email} ."
- },
- "checkout_footer.link.privacy_policy": {
- "defaultMessage": "Datenschutzrichtlinie"
- },
- "checkout_footer.link.returns_exchanges": {
- "defaultMessage": "Retouren und Umtausch"
- },
- "checkout_footer.link.shipping": {
- "defaultMessage": "Versand"
- },
- "checkout_footer.link.site_map": {
- "defaultMessage": "Sitemap"
- },
- "checkout_footer.link.terms_conditions": {
- "defaultMessage": "Allgemeine Geschäftsbedingungen"
- },
- "checkout_footer.message.copyright": {
- "defaultMessage": "Salesforce oder dessen Geschäftspartner. Alle Rechte vorbehalten. Dies ist lediglich ein Geschäft zu Demonstrationszwecken. Aufgegebene Bestellungen WERDEN NICHT bearbeitet."
- },
- "checkout_header.link.assistive_msg.cart": {
- "defaultMessage": "Zurück zum Warenkorb, Anzahl der Artikel: {numItems}"
- },
- "checkout_header.link.cart": {
- "defaultMessage": "Zurück zum Warenkorb"
- },
- "checkout_payment.action.remove": {
- "defaultMessage": "Entfernen"
- },
- "checkout_payment.button.review_order": {
- "defaultMessage": "Bestellung überprüfen"
- },
- "checkout_payment.heading.billing_address": {
- "defaultMessage": "Rechnungsadresse"
- },
- "checkout_payment.heading.credit_card": {
- "defaultMessage": "Kreditkarte"
- },
- "checkout_payment.label.same_as_shipping": {
- "defaultMessage": "Entspricht der Lieferadresse"
- },
- "checkout_payment.title.payment": {
- "defaultMessage": "Zahlung"
- },
- "colorRefinements.label.hitCount": {
- "defaultMessage": "{colorLabel} ({colorHitCount})"
- },
- "confirmation_modal.default.action.no": {
- "defaultMessage": "Nein"
- },
- "confirmation_modal.default.action.yes": {
- "defaultMessage": "Ja"
- },
- "confirmation_modal.default.message.you_want_to_continue": {
- "defaultMessage": "Möchten Sie wirklich fortfahren?"
- },
- "confirmation_modal.default.title.confirm_action": {
- "defaultMessage": "Aktion bestätigen"
- },
- "confirmation_modal.remove_cart_item.action.no": {
- "defaultMessage": "Nein, Artikel beibehalten"
- },
- "confirmation_modal.remove_cart_item.action.remove": {
- "defaultMessage": "Entfernen"
- },
- "confirmation_modal.remove_cart_item.action.yes": {
- "defaultMessage": "Ja, Artikel entfernen"
- },
- "confirmation_modal.remove_cart_item.message.need_to_remove_due_to_unavailability": {
- "defaultMessage": "Einige Artikel sind nicht mehr online verfügbar und werden aus Ihrem Warenkorb entfernt."
- },
- "confirmation_modal.remove_cart_item.message.sure_to_remove": {
- "defaultMessage": "Möchten Sie diesen Artikel wirklich aus Ihrem Warenkorb löschen?"
- },
- "confirmation_modal.remove_cart_item.title.confirm_remove": {
- "defaultMessage": "Entfernung des Artikels bestätigen"
- },
- "confirmation_modal.remove_cart_item.title.items_unavailable": {
- "defaultMessage": "Artikel nicht verfügbar"
- },
- "confirmation_modal.remove_wishlist_item.action.no": {
- "defaultMessage": "Nein, Artikel beibehalten"
- },
- "confirmation_modal.remove_wishlist_item.action.yes": {
- "defaultMessage": "Ja, Artikel entfernen"
- },
- "confirmation_modal.remove_wishlist_item.message.sure_to_remove": {
- "defaultMessage": "Möchten Sie diesen Artikel wirklich aus Ihrer Wunschliste entfernen?"
- },
- "confirmation_modal.remove_wishlist_item.title.confirm_remove": {
- "defaultMessage": "Entfernung des Artikels bestätigen"
- },
- "contact_info.action.sign_out": {
- "defaultMessage": "Abmelden"
- },
- "contact_info.button.already_have_account": {
- "defaultMessage": "Sie haben bereits ein Konto? Einloggen"
- },
- "contact_info.button.checkout_as_guest": {
- "defaultMessage": "Kaufabwicklung als Gast"
- },
- "contact_info.button.login": {
- "defaultMessage": "Einloggen"
- },
- "contact_info.error.incorrect_username_or_password": {
- "defaultMessage": "Benutzername oder Passwort falsch, bitte erneut versuchen."
- },
- "contact_info.link.forgot_password": {
- "defaultMessage": "Passwort vergessen?"
- },
- "contact_info.title.contact_info": {
- "defaultMessage": "Kontaktinfo"
- },
- "credit_card_fields.tool_tip.security_code": {
- "defaultMessage": "Dieser 3-stellige Code kann der Rückseite Ihrer Karte entnommen werden.",
- "description": "Generic credit card security code help text"
- },
- "credit_card_fields.tool_tip.security_code.american_express": {
- "defaultMessage": "Dieser 4-stellige Code kann der Vorderseite Ihrer Karte entnommen werden.",
- "description": "American Express security code help text"
- },
- "credit_card_fields.tool_tip.security_code_aria_label": {
- "defaultMessage": "Informationen zum Sicherheitscode"
- },
- "drawer_menu.button.account_details": {
- "defaultMessage": "Kontodetails"
- },
- "drawer_menu.button.addresses": {
- "defaultMessage": "Adressen"
- },
- "drawer_menu.button.log_out": {
- "defaultMessage": "Ausloggen"
- },
- "drawer_menu.button.my_account": {
- "defaultMessage": "Mein Konto"
- },
- "drawer_menu.button.order_history": {
- "defaultMessage": "Bestellverlauf"
- },
- "drawer_menu.link.about_us": {
- "defaultMessage": "Über uns"
- },
- "drawer_menu.link.customer_support": {
- "defaultMessage": "Kundenservice"
- },
- "drawer_menu.link.customer_support.contact_us": {
- "defaultMessage": "Kontakt"
- },
- "drawer_menu.link.customer_support.shipping_and_returns": {
- "defaultMessage": "Versand und Retouren"
- },
- "drawer_menu.link.our_company": {
- "defaultMessage": "Unser Unternehmen"
- },
- "drawer_menu.link.privacy_and_security": {
- "defaultMessage": "Datenschutz und Sicherheit"
- },
- "drawer_menu.link.privacy_policy": {
- "defaultMessage": "Datenschutzrichtlinie"
- },
- "drawer_menu.link.shop_all": {
- "defaultMessage": "Alle durchstöbern"
- },
- "drawer_menu.link.sign_in": {
- "defaultMessage": "Anmelden"
- },
- "drawer_menu.link.site_map": {
- "defaultMessage": "Sitemap"
- },
- "drawer_menu.link.store_locator": {
- "defaultMessage": "Shop-Finder"
- },
- "drawer_menu.link.terms_and_conditions": {
- "defaultMessage": "Allgemeine Geschäftsbedingungen"
- },
- "empty_cart.description.empty_cart": {
- "defaultMessage": "Ihr Warenkorb ist leer."
- },
- "empty_cart.link.continue_shopping": {
- "defaultMessage": "Weiter einkaufen"
- },
- "empty_cart.link.sign_in": {
- "defaultMessage": "Anmelden"
- },
- "empty_cart.message.continue_shopping": {
- "defaultMessage": "Setzen Sie Ihren Einkauf fort, um Ihrem Warenkorb Artikel hinzuzufügen."
- },
- "empty_cart.message.sign_in_or_continue_shopping": {
- "defaultMessage": "Melden Sie sich an, um Ihre gespeicherten Artikel abzurufen oder mit dem Einkauf fortzufahren."
- },
- "empty_search_results.info.cant_find_anything_for_category": {
- "defaultMessage": "Wir konnten in der Kategorie \"{category}\" nichts finden. Suchen Sie nach einem Produkt oder setzen Sie sich mit unserem {link} in Verbindung."
- },
- "empty_search_results.info.cant_find_anything_for_query": {
- "defaultMessage": "Wir konnten für die Anfrage \"{searchQuery}\" nichts finden."
- },
- "empty_search_results.info.double_check_spelling": {
- "defaultMessage": "Überprüfen Sie Ihre Schreibweise und versuchen Sie es erneut oder {link}."
- },
- "empty_search_results.link.contact_us": {
- "defaultMessage": "Kontakt"
- },
- "empty_search_results.recommended_products.title.most_viewed": {
- "defaultMessage": "Meistgesehen"
- },
- "empty_search_results.recommended_products.title.top_sellers": {
- "defaultMessage": "Verkaufshits"
- },
- "field.password.assistive_msg.hide_password": {
- "defaultMessage": "Passwort verbergen"
- },
- "field.password.assistive_msg.show_password": {
- "defaultMessage": "Passwort anzeigen"
- },
- "footer.column.account": {
- "defaultMessage": "Konto"
- },
- "footer.column.customer_support": {
- "defaultMessage": "Kundenservice"
- },
- "footer.column.our_company": {
- "defaultMessage": "Unser Unternehmen"
- },
- "footer.link.about_us": {
- "defaultMessage": "Über uns"
- },
- "footer.link.contact_us": {
- "defaultMessage": "Kontakt"
- },
- "footer.link.order_status": {
- "defaultMessage": "Bestellstatus"
- },
- "footer.link.privacy_policy": {
- "defaultMessage": "Datenschutzrichtlinie"
- },
- "footer.link.shipping": {
- "defaultMessage": "Versand"
- },
- "footer.link.signin_create_account": {
- "defaultMessage": "Anmelden oder Konto erstellen"
- },
- "footer.link.site_map": {
- "defaultMessage": "Sitemap"
- },
- "footer.link.store_locator": {
- "defaultMessage": "Shop-Finder"
- },
- "footer.link.terms_conditions": {
- "defaultMessage": "Allgemeine Geschäftsbedingungen"
- },
- "footer.message.copyright": {
- "defaultMessage": "Salesforce oder dessen Geschäftspartner. Alle Rechte vorbehalten. Dies ist lediglich ein Geschäft zu Demonstrationszwecken. Aufgegebene Bestellungen WERDEN NICHT bearbeitet."
- },
- "footer.subscribe.button.sign_up": {
- "defaultMessage": "Registrieren"
- },
- "footer.subscribe.description.sign_up": {
- "defaultMessage": "Melden Sie sich an, um stets die neuesten Angebote zu erhalten"
- },
- "footer.subscribe.heading.first_to_know": {
- "defaultMessage": "Aktuelle Infos für Sie"
- },
- "form_action_buttons.button.cancel": {
- "defaultMessage": "Abbrechen"
- },
- "form_action_buttons.button.save": {
- "defaultMessage": "Speichern"
- },
- "global.account.link.account_details": {
- "defaultMessage": "Kontodetails"
- },
- "global.account.link.addresses": {
- "defaultMessage": "Adressen"
- },
- "global.account.link.order_history": {
- "defaultMessage": "Bestellverlauf"
- },
- "global.account.link.wishlist": {
- "defaultMessage": "Wunschliste"
- },
- "global.error.something_went_wrong": {
- "defaultMessage": "Es ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut."
- },
- "global.info.added_to_wishlist": {
- "defaultMessage": "{quantity} {quantity, plural, one {Artikel} other {Artikel}} zur Wunschliste hinzugefügt"
- },
- "global.info.already_in_wishlist": {
- "defaultMessage": "Artikel befindet sich bereits auf der Wunschliste"
- },
- "global.info.removed_from_wishlist": {
- "defaultMessage": "Artikel aus der Wunschliste entfernt"
- },
- "global.link.added_to_wishlist.view_wishlist": {
- "defaultMessage": "Anzeigen"
- },
- "header.button.assistive_msg.logo": {
- "defaultMessage": "Logo"
- },
- "header.button.assistive_msg.menu": {
- "defaultMessage": "Menü"
- },
- "header.button.assistive_msg.my_account": {
- "defaultMessage": "Mein Konto"
- },
- "header.button.assistive_msg.my_account_menu": {
- "defaultMessage": "Kontomenü öffnen"
- },
- "header.button.assistive_msg.my_cart_with_num_items": {
- "defaultMessage": "Mein Warenkorb, Anzahl der Artikel: {numItems}"
- },
- "header.button.assistive_msg.wishlist": {
- "defaultMessage": "Wunschliste"
- },
- "header.field.placeholder.search_for_products": {
- "defaultMessage": "Nach Produkten suchen …"
- },
- "header.popover.action.log_out": {
- "defaultMessage": "Ausloggen"
- },
- "header.popover.title.my_account": {
- "defaultMessage": "Mein Konto"
- },
- "home.description.features": {
- "defaultMessage": "Vorkonfigurierte Funktionalitäten, damit Sie sich voll und ganz auf das Hinzufügen von Erweiterungen konzentrieren können."
- },
- "home.description.here_to_help": {
- "defaultMessage": "Wenden Sie sich an unser Support-Team."
- },
- "home.description.here_to_help_line_2": {
- "defaultMessage": "Wir leiten Sie gern an die richtige Stelle weiter."
- },
- "home.description.shop_products": {
- "defaultMessage": "Dieser Abschnitt enthält Content vom Katalog. Hier erfahren Sie, wie dieser ersetzt werden kann: {docLink}.",
- "description": "{docLink} is a html button that links the user to https://sfdc.co/business-manager-manage-catalogs"
- },
- "home.features.description.cart_checkout": {
- "defaultMessage": "E-Commerce Best Practice für den Warenkorb eines Käufers und das Checkout-Erlebnis."
- },
- "home.features.description.components": {
- "defaultMessage": "Eine unter Verwendung der Chakra UI entwickelte, einfache, modulare und zugängliche React Komponentenbibliothek."
- },
- "home.features.description.einstein_recommendations": {
- "defaultMessage": "Liefern Sie das nächstbeste Produkt oder bieten Sie es allen Käufern über Produktempfehlungen an."
- },
- "home.features.description.my_account": {
- "defaultMessage": "Käufer können Kontoinformationen wie ihr Profil, Adressen, Zahlungen und Bestellungen verwalten."
- },
- "home.features.description.shopper_login": {
- "defaultMessage": "Ermöglichen Sie es Käufern, sich mit einem personalisierten Kauferlebnis einzuloggen."
- },
- "home.features.description.wishlist": {
- "defaultMessage": "Registrierte Käufer können Produktartikel zu ihrer Wunschliste hinzufügen, um diese später zu kaufen."
- },
- "home.features.heading.cart_checkout": {
- "defaultMessage": "Warenkorb und Kaufabwicklung"
- },
- "home.features.heading.components": {
- "defaultMessage": "Komponenten und Design-Kit"
- },
- "home.features.heading.einstein_recommendations": {
- "defaultMessage": "Einstein Empfehlungen"
- },
- "home.features.heading.my_account": {
- "defaultMessage": "Mein Konto"
- },
- "home.features.heading.shopper_login": {
- "defaultMessage": "Shopper Login and API Access Service (SLAS)"
- },
- "home.features.heading.wishlist": {
- "defaultMessage": "Wunschliste"
- },
- "home.heading.features": {
- "defaultMessage": "Funktionalitäten"
- },
- "home.heading.here_to_help": {
- "defaultMessage": "Wir sind für Sie da"
- },
- "home.heading.shop_products": {
- "defaultMessage": "Produkte durchstöbern"
- },
- "home.hero_features.link.design_kit": {
- "defaultMessage": "Mit dem Figma PWA Design Kit arbeiten"
- },
- "home.hero_features.link.on_github": {
- "defaultMessage": "Auf Github herunterladen"
- },
- "home.hero_features.link.on_managed_runtime": {
- "defaultMessage": "Auf Managed Runtime bereitstellen"
- },
- "home.link.contact_us": {
- "defaultMessage": "Kontakt"
- },
- "home.link.get_started": {
- "defaultMessage": "Erste Schritte"
- },
- "home.link.read_docs": {
- "defaultMessage": "Dokumente lesen"
- },
- "home.title.react_starter_store": {
- "defaultMessage": "React PWA Starter Store für den Einzelhandel"
- },
- "icons.assistive_msg.lock": {
- "defaultMessage": "SICHER"
- },
- "item_attributes.label.promotions": {
- "defaultMessage": "Werbeaktionen"
- },
- "item_attributes.label.quantity": {
- "defaultMessage": "Menge: {quantity}"
- },
- "item_image.label.sale": {
- "defaultMessage": "Sonderangebot",
- "description": "A sale badge placed on top of a product image"
- },
- "item_image.label.unavailable": {
- "defaultMessage": "Nicht verfügbar",
- "description": "A unavailable badge placed on top of a product image"
- },
- "item_price.label.starting_at": {
- "defaultMessage": "Ab"
- },
- "lCPCxk": {
- "defaultMessage": "Bitte alle Optionen oben auswählen"
- },
- "list_menu.nav.assistive_msg": {
- "defaultMessage": "Hauptnavigation"
- },
- "locale_text.message.ar-SA": {
- "defaultMessage": "Arabisch (Saudi-Arabien)"
- },
- "locale_text.message.bn-BD": {
- "defaultMessage": "Bangla (Bangladesch)"
- },
- "locale_text.message.bn-IN": {
- "defaultMessage": "Bangla (Indien)"
- },
- "locale_text.message.cs-CZ": {
- "defaultMessage": "Tschechisch (Tschechische Republik)"
- },
- "locale_text.message.da-DK": {
- "defaultMessage": "Dänisch (Dänemark)"
- },
- "locale_text.message.de-AT": {
- "defaultMessage": "Deutsch (Österreich)"
- },
- "locale_text.message.de-CH": {
- "defaultMessage": "Deutsch (Schweiz)"
- },
- "locale_text.message.de-DE": {
- "defaultMessage": "Deutsch (Deutschland)"
- },
- "locale_text.message.el-GR": {
- "defaultMessage": "Griechisch (Griechenland)"
- },
- "locale_text.message.en-AU": {
- "defaultMessage": "Englisch (Australien)"
- },
- "locale_text.message.en-CA": {
- "defaultMessage": "Englisch (Kanada)"
- },
- "locale_text.message.en-GB": {
- "defaultMessage": "Englisch (Vereinigtes Königreich)"
- },
- "locale_text.message.en-IE": {
- "defaultMessage": "Englisch (Irland)"
- },
- "locale_text.message.en-IN": {
- "defaultMessage": "Englisch (Indien)"
- },
- "locale_text.message.en-NZ": {
- "defaultMessage": "Englisch (Neuseeland)"
- },
- "locale_text.message.en-US": {
- "defaultMessage": "Englisch (USA)"
- },
- "locale_text.message.en-ZA": {
- "defaultMessage": "Englisch (Südafrika)"
- },
- "locale_text.message.es-AR": {
- "defaultMessage": "Spanisch (Argentinien)"
- },
- "locale_text.message.es-CL": {
- "defaultMessage": "Spanisch (Chile)"
- },
- "locale_text.message.es-CO": {
- "defaultMessage": "Spanisch (Kolumbien)"
- },
- "locale_text.message.es-ES": {
- "defaultMessage": "Spanisch (Spanien)"
- },
- "locale_text.message.es-MX": {
- "defaultMessage": "Spanisch (Mexiko)"
- },
- "locale_text.message.es-US": {
- "defaultMessage": "Spanisch (USA)"
- },
- "locale_text.message.fi-FI": {
- "defaultMessage": "Finnisch (Finnland)"
- },
- "locale_text.message.fr-BE": {
- "defaultMessage": "Französisch (Belgien)"
- },
- "locale_text.message.fr-CA": {
- "defaultMessage": "Französisch (Kanada)"
- },
- "locale_text.message.fr-CH": {
- "defaultMessage": "Französisch (Schweiz)"
- },
- "locale_text.message.fr-FR": {
- "defaultMessage": "Französisch (Frankreich)"
- },
- "locale_text.message.he-IL": {
- "defaultMessage": "Hebräisch (Israel)"
- },
- "locale_text.message.hi-IN": {
- "defaultMessage": "Hindi (Indien)"
- },
- "locale_text.message.hu-HU": {
- "defaultMessage": "Ungarisch (Ungarn)"
- },
- "locale_text.message.id-ID": {
- "defaultMessage": "Indonesisch (Indonesien)"
- },
- "locale_text.message.it-CH": {
- "defaultMessage": "Italienisch (Schweiz)"
- },
- "locale_text.message.it-IT": {
- "defaultMessage": "Italienisch (Italien)"
- },
- "locale_text.message.ja-JP": {
- "defaultMessage": "Japanisch (Japan)"
- },
- "locale_text.message.ko-KR": {
- "defaultMessage": "Koreanisch (Republik Korea)"
- },
- "locale_text.message.nl-BE": {
- "defaultMessage": "Niederländisch (Belgien)"
- },
- "locale_text.message.nl-NL": {
- "defaultMessage": "Niederländisch (Niederlande)"
- },
- "locale_text.message.no-NO": {
- "defaultMessage": "Norwegisch (Norwegen)"
- },
- "locale_text.message.pl-PL": {
- "defaultMessage": "Polnisch (Polen)"
- },
- "locale_text.message.pt-BR": {
- "defaultMessage": "Portugiesisch (Brasilien)"
- },
- "locale_text.message.pt-PT": {
- "defaultMessage": "Portugiesisch (Portugal)"
- },
- "locale_text.message.ro-RO": {
- "defaultMessage": "Rumänisch (Rumänien)"
- },
- "locale_text.message.ru-RU": {
- "defaultMessage": "Russisch (Russische Föderation)"
- },
- "locale_text.message.sk-SK": {
- "defaultMessage": "Slowakisch (Slowakei)"
- },
- "locale_text.message.sv-SE": {
- "defaultMessage": "Schwedisch (Schweden)"
- },
- "locale_text.message.ta-IN": {
- "defaultMessage": "Tamil (Indien)"
- },
- "locale_text.message.ta-LK": {
- "defaultMessage": "Tamil (Sri Lanka)"
- },
- "locale_text.message.th-TH": {
- "defaultMessage": "Thai (Thailand)"
- },
- "locale_text.message.tr-TR": {
- "defaultMessage": "Türkisch (Türkei)"
- },
- "locale_text.message.zh-CN": {
- "defaultMessage": "Chinesisch (China)"
- },
- "locale_text.message.zh-HK": {
- "defaultMessage": "Chinesisch (Hongkong)"
- },
- "locale_text.message.zh-TW": {
- "defaultMessage": "Chinesisch (Taiwan)"
- },
- "login_form.action.create_account": {
- "defaultMessage": "Konto erstellen"
- },
- "login_form.button.sign_in": {
- "defaultMessage": "Anmelden"
- },
- "login_form.link.forgot_password": {
- "defaultMessage": "Passwort vergessen?"
- },
- "login_form.message.dont_have_account": {
- "defaultMessage": "Sie haben noch kein Konto?"
- },
- "login_form.message.welcome_back": {
- "defaultMessage": "Willkommen zurück"
- },
- "login_page.error.incorrect_username_or_password": {
- "defaultMessage": "Benutzername oder Passwort falsch, bitte erneut versuchen."
- },
- "offline_banner.description.browsing_offline_mode": {
- "defaultMessage": "Sie browsen derzeit im Offline-Modus."
- },
- "order_summary.action.remove_promo": {
- "defaultMessage": "Entfernen"
- },
- "order_summary.cart_items.action.num_of_items_in_cart": {
- "defaultMessage": "{itemCount, plural, =0 {0 Artikel} one {# Artikel} other {# Artikel}} im Warenkorb",
- "description": "clicking it would expand/show the items in cart"
- },
- "order_summary.cart_items.link.edit_cart": {
- "defaultMessage": "Warenkorb bearbeiten"
- },
- "order_summary.heading.order_summary": {
- "defaultMessage": "Bestellungsübersicht"
- },
- "order_summary.label.estimated_total": {
- "defaultMessage": "Geschätzter Gesamtbetrag"
- },
- "order_summary.label.free": {
- "defaultMessage": "Gratis"
- },
- "order_summary.label.order_total": {
- "defaultMessage": "Gesamtbetrag"
- },
- "order_summary.label.promo_applied": {
- "defaultMessage": "Werbeaktion angewendet"
- },
- "order_summary.label.promotions_applied": {
- "defaultMessage": "Werbeaktionen angewendet"
- },
- "order_summary.label.shipping": {
- "defaultMessage": "Versand"
- },
- "order_summary.label.subtotal": {
- "defaultMessage": "Zwischensumme"
- },
- "order_summary.label.tax": {
- "defaultMessage": "Steuern"
- },
- "page_not_found.action.go_back": {
- "defaultMessage": "Zurück zur vorherigen Seite"
- },
- "page_not_found.link.homepage": {
- "defaultMessage": "Zur Startseite"
- },
- "page_not_found.message.suggestion_to_try": {
- "defaultMessage": "Bitte geben Sie die Adresse erneut ein, kehren Sie zur vorherigen Seite zurück oder navigieren Sie zur Startseite."
- },
- "page_not_found.title.page_cant_be_found": {
- "defaultMessage": "Die von Ihnen gesuchte Seite kann nicht gefunden werden."
- },
- "pagination.field.num_of_pages": {
- "defaultMessage": "von {numOfPages}"
- },
- "pagination.link.next": {
- "defaultMessage": "Weiter"
- },
- "pagination.link.next.assistive_msg": {
- "defaultMessage": "Nächste Seite"
- },
- "pagination.link.prev": {
- "defaultMessage": "Zurück"
- },
- "pagination.link.prev.assistive_msg": {
- "defaultMessage": "Vorherige Seite"
- },
- "password_card.info.password_updated": {
- "defaultMessage": "Passwort aktualisiert"
- },
- "password_card.label.password": {
- "defaultMessage": "Passwort"
- },
- "password_card.title.password": {
- "defaultMessage": "Passwort"
- },
- "password_requirements.error.eight_letter_minimum": {
- "defaultMessage": "mindestens 8 Zeichen",
- "description": "Password requirement"
- },
- "password_requirements.error.one_lowercase_letter": {
- "defaultMessage": "1 Kleinbuchstabe",
- "description": "Password requirement"
- },
- "password_requirements.error.one_number": {
- "defaultMessage": "1 Ziffer",
- "description": "Password requirement"
- },
- "password_requirements.error.one_special_character": {
- "defaultMessage": "1 Sonderzeichen (Beispiel: , S ! % #)",
- "description": "Password requirement"
- },
- "password_requirements.error.one_uppercase_letter": {
- "defaultMessage": "1 Großbuchstabe",
- "description": "Password requirement"
- },
- "payment_selection.heading.credit_card": {
- "defaultMessage": "Kreditkarte"
- },
- "payment_selection.tooltip.secure_payment": {
- "defaultMessage": "Hierbei handelt es sich um eine sichere SSL-verschlüsselte Zahlung."
- },
- "price_per_item.label.each": {
- "defaultMessage": "Stk.",
- "description": "Abbreviated 'each', follows price per item, like $10/ea"
- },
- "product_detail.accordion.button.product_detail": {
- "defaultMessage": "Produktdetails"
- },
- "product_detail.accordion.button.questions": {
- "defaultMessage": "Fragen"
- },
- "product_detail.accordion.button.reviews": {
- "defaultMessage": "Rezensionen"
- },
- "product_detail.accordion.button.size_fit": {
- "defaultMessage": "Größe und Passform"
- },
- "product_detail.accordion.message.coming_soon": {
- "defaultMessage": "bald verfügbar"
- },
- "product_detail.recommended_products.title.complete_set": {
- "defaultMessage": "Set vervollständigen"
- },
- "product_detail.recommended_products.title.might_also_like": {
- "defaultMessage": "Das könnte Ihnen auch gefallen"
- },
- "product_detail.recommended_products.title.recently_viewed": {
- "defaultMessage": "Zuletzt angesehen"
- },
- "product_item.label.quantity": {
- "defaultMessage": "Menge:"
- },
- "product_list.button.filter": {
- "defaultMessage": "Filtern"
- },
- "product_list.button.sort_by": {
- "defaultMessage": "Sortieren nach: {sortOption}"
- },
- "product_list.drawer.title.sort_by": {
- "defaultMessage": "Sortieren nach"
- },
- "product_list.modal.button.clear_filters": {
- "defaultMessage": "Filter löschen"
- },
- "product_list.modal.button.view_items": {
- "defaultMessage": "{prroductCount} Artikel anzeigen"
- },
- "product_list.modal.title.filter": {
- "defaultMessage": "Filtern"
- },
- "product_list.refinements.button.assistive_msg.add_filter": {
- "defaultMessage": "Filter hinzufügen: {label}"
- },
- "product_list.refinements.button.assistive_msg.add_filter_with_hit_count": {
- "defaultMessage": "Filter hinzufügen: {label} ({hitCount})"
- },
- "product_list.refinements.button.assistive_msg.remove_filter": {
- "defaultMessage": "Filter entfernen: {label}"
- },
- "product_list.refinements.button.assistive_msg.remove_filter_with_hit_count": {
- "defaultMessage": "Filter entfernen: {label} ({hitCount})"
- },
- "product_list.select.sort_by": {
- "defaultMessage": "Sortieren nach: {sortOption}"
- },
- "product_scroller.assistive_msg.scroll_left": {
- "defaultMessage": "Produkte nach links scrollen"
- },
- "product_scroller.assistive_msg.scroll_right": {
- "defaultMessage": "Produkte nach rechts scrollen"
- },
- "product_tile.assistive_msg.add_to_wishlist": {
- "defaultMessage": "{product} zur Wunschliste hinzufügen"
- },
- "product_tile.assistive_msg.remove_from_wishlist": {
- "defaultMessage": "{product} aus der Wunschliste entfernt"
- },
- "product_tile.label.starting_at_price": {
- "defaultMessage": "Ab {price}"
- },
- "product_view.button.add_set_to_cart": {
- "defaultMessage": "Set zum Warenkorb hinzufügen"
- },
- "product_view.button.add_set_to_wishlist": {
- "defaultMessage": "Set zur Wunschliste hinzufügen"
- },
- "product_view.button.add_to_cart": {
- "defaultMessage": "In den Warenkorb"
- },
- "product_view.button.add_to_wishlist": {
- "defaultMessage": "Zur Wunschliste hinzufügen"
- },
- "product_view.button.update": {
- "defaultMessage": "Aktualisieren"
- },
- "product_view.label.assistive_msg.quantity_decrement": {
- "defaultMessage": "Menge verringern"
- },
- "product_view.label.assistive_msg.quantity_increment": {
- "defaultMessage": "Menge erhöhen"
- },
- "product_view.label.quantity": {
- "defaultMessage": "Menge"
- },
- "product_view.label.quantity_decrement": {
- "defaultMessage": "−"
- },
- "product_view.label.quantity_increment": {
- "defaultMessage": "+"
- },
- "product_view.label.starting_at_price": {
- "defaultMessage": "Ab"
- },
- "product_view.label.variant_type": {
- "defaultMessage": "{variantType}"
- },
- "product_view.link.full_details": {
- "defaultMessage": "Alle Details anzeigen"
- },
- "profile_card.info.profile_updated": {
- "defaultMessage": "Profil aktualisiert"
- },
- "profile_card.label.email": {
- "defaultMessage": "E-Mail"
- },
- "profile_card.label.full_name": {
- "defaultMessage": "Vollständiger Name"
- },
- "profile_card.label.phone": {
- "defaultMessage": "Telefonnummer"
- },
- "profile_card.message.not_provided": {
- "defaultMessage": "Nicht angegeben"
- },
- "profile_card.title.my_profile": {
- "defaultMessage": "Mein Profil"
- },
- "promo_code_fields.button.apply": {
- "defaultMessage": "Anwenden"
- },
- "promo_popover.assistive_msg.info": {
- "defaultMessage": "Info"
- },
- "promo_popover.heading.promo_applied": {
- "defaultMessage": "Werbeaktionen angewendet"
- },
- "promocode.accordion.button.have_promocode": {
- "defaultMessage": "Haben Sie einen Aktionscode?"
- },
- "recent_searches.action.clear_searches": {
- "defaultMessage": "Letzte Suchabfragen löschen"
- },
- "recent_searches.heading.recent_searches": {
- "defaultMessage": "Letzte Suchabfragen"
- },
- "register_form.action.sign_in": {
- "defaultMessage": "Anmelden"
- },
- "register_form.button.create_account": {
- "defaultMessage": "Konto erstellen"
- },
- "register_form.heading.lets_get_started": {
- "defaultMessage": "Es kann losgehen!"
- },
- "register_form.message.agree_to_policy_terms": {
- "defaultMessage": "Durch das Erstellen eines Kontos stimmen Sie der Datenschutzerklärung und den allgemeinen Geschäftsbedingungen von Salesforce zu."
- },
- "register_form.message.already_have_account": {
- "defaultMessage": "Sie haben bereits ein Konto?"
- },
- "register_form.message.create_an_account": {
- "defaultMessage": "Erstellen Sie ein Konto und Sie erhalten als Erstes Zugang zu den besten Produkten und Inspirationen sowie zur Community."
- },
- "reset_password.button.back_to_sign_in": {
- "defaultMessage": "Zurück zur Anmeldung"
- },
- "reset_password.info.receive_email_shortly": {
- "defaultMessage": "Sie erhalten in Kürze eine E-Mail an {email} mit einem Link zum Zurücksetzen Ihres Passworts."
- },
- "reset_password.title.password_reset": {
- "defaultMessage": "Zurücksetzen des Passworts"
- },
- "reset_password_form.action.sign_in": {
- "defaultMessage": "Anmelden"
- },
- "reset_password_form.button.reset_password": {
- "defaultMessage": "Passwort zurücksetzen"
- },
- "reset_password_form.message.enter_your_email": {
- "defaultMessage": "Geben Sie bitte Ihre E-Mail-Adresse ein, um Anweisungen zum Zurücksetzen Ihres Passworts zu erhalten."
- },
- "reset_password_form.message.return_to_sign_in": {
- "defaultMessage": "Oder zurück zu",
- "description": "Precedes link to return to sign in"
- },
- "reset_password_form.title.reset_password": {
- "defaultMessage": "Passwort zurücksetzen"
- },
- "search.action.cancel": {
- "defaultMessage": "Abbrechen"
- },
- "selected_refinements.action.assistive_msg.clear_all": {
- "defaultMessage": "Alle Filter löschen"
- },
- "selected_refinements.action.clear_all": {
- "defaultMessage": "Auswahl aufheben"
- },
- "shipping_address.button.continue_to_shipping": {
- "defaultMessage": "Weiter zur Versandmethode"
- },
- "shipping_address.title.shipping_address": {
- "defaultMessage": "Lieferadresse"
- },
- "shipping_address_edit_form.button.save_and_continue": {
- "defaultMessage": "Speichern und mit Versandmethode fortfahren"
- },
- "shipping_address_form.heading.edit_address": {
- "defaultMessage": "Adresse bearbeiten"
- },
- "shipping_address_form.heading.new_address": {
- "defaultMessage": "Neue Adresse hinzufügen"
- },
- "shipping_address_selection.button.add_address": {
- "defaultMessage": "Neue Adresse hinzufügen"
- },
- "shipping_address_selection.button.submit": {
- "defaultMessage": "Senden"
- },
- "shipping_address_selection.title.add_address": {
- "defaultMessage": "Neue Adresse hinzufügen"
- },
- "shipping_address_selection.title.edit_shipping": {
- "defaultMessage": "Lieferadresse bearbeiten"
- },
- "shipping_options.action.send_as_a_gift": {
- "defaultMessage": "Möchten Sie die Bestellung als Geschenk versenden?"
- },
- "shipping_options.button.continue_to_payment": {
- "defaultMessage": "Weiter zur Zahlung"
- },
- "shipping_options.title.shipping_gift_options": {
- "defaultMessage": "Versand und Geschenkoptionen"
- },
- "signout_confirmation_dialog.button.cancel": {
- "defaultMessage": "Abbrechen"
- },
- "signout_confirmation_dialog.button.sign_out": {
- "defaultMessage": "Abmelden"
- },
- "signout_confirmation_dialog.heading.sign_out": {
- "defaultMessage": "Abmelden"
- },
- "signout_confirmation_dialog.message.sure_to_sign_out": {
- "defaultMessage": "Möchten Sie sich wirklich abmelden? Sie müssen sich wieder anmelden, um mit Ihrer aktuellen Bestellung fortzufahren."
- },
- "swatch_group.selected.label": {
- "defaultMessage": "{label}:"
- },
- "toggle_card.action.edit": {
- "defaultMessage": "Bearbeiten"
- },
- "update_password_fields.button.forgot_password": {
- "defaultMessage": "Passwort vergessen?"
- },
- "use_address_fields.error.please_enter_first_name": {
- "defaultMessage": "Bitte geben Sie Ihren Vornamen ein."
- },
- "use_address_fields.error.please_enter_last_name": {
- "defaultMessage": "Bitte geben Sie Ihren Nachnamen ein."
- },
- "use_address_fields.error.please_enter_phone_number": {
- "defaultMessage": "Bitte geben Sie Ihre Telefonnummer ein."
- },
- "use_address_fields.error.please_enter_your_postal_or_zip": {
- "defaultMessage": "Bitte geben Sie Ihre Postleitzahl ein."
- },
- "use_address_fields.error.please_select_your_address": {
- "defaultMessage": "Bitte geben Sie Ihre Adresse ein."
- },
- "use_address_fields.error.please_select_your_city": {
- "defaultMessage": "Bitte geben Sie Ihren Wohnort ein."
- },
- "use_address_fields.error.please_select_your_country": {
- "defaultMessage": "Bitte wählen Sie Ihr Land aus."
- },
- "use_address_fields.error.please_select_your_state_or_province": {
- "defaultMessage": "Bitte wählen Sie Ihr Bundesland aus."
- },
- "use_address_fields.error.required": {
- "defaultMessage": "Erforderlich"
- },
- "use_address_fields.error.state_code_invalid": {
- "defaultMessage": "Bitte geben Sie das Bundesland in Form von zwei Buchstaben ein."
- },
- "use_address_fields.label.address": {
- "defaultMessage": "Adresse"
- },
- "use_address_fields.label.address_form": {
- "defaultMessage": "Adressformular"
- },
- "use_address_fields.label.city": {
- "defaultMessage": "Stadt"
- },
- "use_address_fields.label.country": {
- "defaultMessage": "Land"
- },
- "use_address_fields.label.first_name": {
- "defaultMessage": "Vorname"
- },
- "use_address_fields.label.last_name": {
- "defaultMessage": "Nachname"
- },
- "use_address_fields.label.phone": {
- "defaultMessage": "Telefon"
- },
- "use_address_fields.label.postal_code": {
- "defaultMessage": "Postleitzahl"
- },
- "use_address_fields.label.preferred": {
- "defaultMessage": "Als Standard festlegen"
- },
- "use_address_fields.label.province": {
- "defaultMessage": "Bundesland"
- },
- "use_address_fields.label.state": {
- "defaultMessage": "Bundesland"
- },
- "use_address_fields.label.zipCode": {
- "defaultMessage": "Postleitzahl"
- },
- "use_credit_card_fields.error.required": {
- "defaultMessage": "Erforderlich"
- },
- "use_credit_card_fields.error.required_card_number": {
- "defaultMessage": "Bitte geben Sie Ihre Kartennummer ein."
- },
- "use_credit_card_fields.error.required_expiry": {
- "defaultMessage": "Bitte geben Sie Ihr Ablaufdatum ein."
- },
- "use_credit_card_fields.error.required_name": {
- "defaultMessage": "Bitte geben Sie Ihren Namen so ein, wie er auf Ihrer Karte erscheint."
- },
- "use_credit_card_fields.error.required_security_code": {
- "defaultMessage": "Bitte geben Sie Ihren Sicherheitscode ein."
- },
- "use_credit_card_fields.error.valid_card_number": {
- "defaultMessage": "Bitte geben Sie eine gültige Kartennummer ein."
- },
- "use_credit_card_fields.error.valid_date": {
- "defaultMessage": "Bitte geben Sie ein gültiges Datum ein."
- },
- "use_credit_card_fields.error.valid_name": {
- "defaultMessage": "Bitte geben Sie einen gültigen Namen ein."
- },
- "use_credit_card_fields.error.valid_security_code": {
- "defaultMessage": "Bitte geben Sie einen gültigen Sicherheitscode ein."
- },
- "use_credit_card_fields.label.card_number": {
- "defaultMessage": "Kartennummer"
- },
- "use_credit_card_fields.label.card_type": {
- "defaultMessage": "Kartentyp"
- },
- "use_credit_card_fields.label.expiry": {
- "defaultMessage": "Ablaufdatum"
- },
- "use_credit_card_fields.label.name": {
- "defaultMessage": "Name auf der Karte"
- },
- "use_credit_card_fields.label.security_code": {
- "defaultMessage": "Sicherheitscode"
- },
- "use_login_fields.error.required_email": {
- "defaultMessage": "Bitte geben Sie Ihre E-Mail-Adresse ein."
- },
- "use_login_fields.error.required_password": {
- "defaultMessage": "Bitte geben Sie Ihr Passwort ein."
- },
- "use_login_fields.label.email": {
- "defaultMessage": "E-Mail"
- },
- "use_login_fields.label.password": {
- "defaultMessage": "Passwort"
- },
- "use_product.message.inventory_remaining": {
- "defaultMessage": "Nur noch {stockLevel} vorhanden!"
- },
- "use_product.message.out_of_stock": {
- "defaultMessage": "Nicht vorrätig"
- },
- "use_profile_fields.error.required_email": {
- "defaultMessage": "Bitte geben Sie eine gültige E-Mail-Adresse ein."
- },
- "use_profile_fields.error.required_first_name": {
- "defaultMessage": "Bitte geben Sie Ihren Vornamen ein."
- },
- "use_profile_fields.error.required_last_name": {
- "defaultMessage": "Bitte geben Sie Ihren Nachnamen ein."
- },
- "use_profile_fields.error.required_phone": {
- "defaultMessage": "Bitte geben Sie Ihre Telefonnummer ein."
- },
- "use_profile_fields.label.email": {
- "defaultMessage": "E-Mail"
- },
- "use_profile_fields.label.first_name": {
- "defaultMessage": "Vorname"
- },
- "use_profile_fields.label.last_name": {
- "defaultMessage": "Nachname"
- },
- "use_profile_fields.label.phone": {
- "defaultMessage": "Telefonnummer"
- },
- "use_promo_code_fields.error.required_promo_code": {
- "defaultMessage": "Bitte geben Sie einen gültigen Aktionscode an."
- },
- "use_promo_code_fields.label.promo_code": {
- "defaultMessage": "Aktionscode"
- },
- "use_promocode.error.check_the_code": {
- "defaultMessage": "Überprüfen Sie den Code und versuchen Sie es erneut. Er wurde eventuell schon angewendet oder die Werbeaktion ist abgelaufen."
- },
- "use_promocode.info.promo_applied": {
- "defaultMessage": "Werbeaktion angewendet"
- },
- "use_promocode.info.promo_removed": {
- "defaultMessage": "Werbeaktion entfernt"
- },
- "use_registration_fields.error.contain_number": {
- "defaultMessage": "Das Passwort muss mindestens eine Ziffer enthalten."
- },
- "use_registration_fields.error.lowercase_letter": {
- "defaultMessage": "Das Passwort muss mindestens einen Kleinbuchstaben enthalten."
- },
- "use_registration_fields.error.minimum_characters": {
- "defaultMessage": "Das Passwort muss mindestens 8 Zeichen enthalten."
- },
- "use_registration_fields.error.required_email": {
- "defaultMessage": "Bitte geben Sie eine gültige E-Mail-Adresse ein."
- },
- "use_registration_fields.error.required_first_name": {
- "defaultMessage": "Bitte geben Sie Ihren Vornamen ein."
- },
- "use_registration_fields.error.required_last_name": {
- "defaultMessage": "Bitte geben Sie Ihren Nachnamen ein."
- },
- "use_registration_fields.error.required_password": {
- "defaultMessage": "Bitte erstellen Sie ein Passwort."
- },
- "use_registration_fields.error.special_character": {
- "defaultMessage": "Das Passwort muss mindestens ein Sonderzeichen enthalten."
- },
- "use_registration_fields.error.uppercase_letter": {
- "defaultMessage": "Das Passwort muss mindestens einen Großbuchstaben enthalten."
- },
- "use_registration_fields.label.email": {
- "defaultMessage": "E-Mail"
- },
- "use_registration_fields.label.first_name": {
- "defaultMessage": "Vorname"
- },
- "use_registration_fields.label.last_name": {
- "defaultMessage": "Nachname"
- },
- "use_registration_fields.label.password": {
- "defaultMessage": "Passwort"
- },
- "use_registration_fields.label.sign_up_to_emails": {
- "defaultMessage": "Ich möchte E-Mails von Salesforce abonnieren (Sie können Ihr Abonnement jederzeit wieder abbestellen)."
- },
- "use_reset_password_fields.error.required_email": {
- "defaultMessage": "Bitte geben Sie eine gültige E-Mail-Adresse ein."
- },
- "use_reset_password_fields.label.email": {
- "defaultMessage": "E-Mail"
- },
- "use_update_password_fields.error.contain_number": {
- "defaultMessage": "Das Passwort muss mindestens eine Ziffer enthalten."
- },
- "use_update_password_fields.error.lowercase_letter": {
- "defaultMessage": "Das Passwort muss mindestens einen Kleinbuchstaben enthalten."
- },
- "use_update_password_fields.error.minimum_characters": {
- "defaultMessage": "Das Passwort muss mindestens 8 Zeichen enthalten."
- },
- "use_update_password_fields.error.required_new_password": {
- "defaultMessage": "Bitte geben Sie ein neues Passwort ein."
- },
- "use_update_password_fields.error.required_password": {
- "defaultMessage": "Bitte geben Sie Ihr Passwort ein."
- },
- "use_update_password_fields.error.special_character": {
- "defaultMessage": "Das Passwort muss mindestens ein Sonderzeichen enthalten."
- },
- "use_update_password_fields.error.uppercase_letter": {
- "defaultMessage": "Das Passwort muss mindestens einen Großbuchstaben enthalten."
- },
- "use_update_password_fields.label.current_password": {
- "defaultMessage": "Aktuelles Passwort"
- },
- "use_update_password_fields.label.new_password": {
- "defaultMessage": "Neues Passwort"
- },
- "wishlist_primary_action.button.add_set_to_cart": {
- "defaultMessage": "Set zum Warenkorb hinzufügen"
- },
- "wishlist_primary_action.button.add_to_cart": {
- "defaultMessage": "In den Warenkorb"
- },
- "wishlist_primary_action.button.view_full_details": {
- "defaultMessage": "Alle Einzelheiten anzeigen"
- },
- "wishlist_primary_action.button.view_options": {
- "defaultMessage": "Optionen anzeigen"
- },
- "wishlist_primary_action.info.added_to_cart": {
- "defaultMessage": "{quantity} {quantity, plural, one {Artikel} other {Artikel}} zum Warenkorb hinzugefügt"
- },
- "wishlist_secondary_button_group.action.remove": {
- "defaultMessage": "Entfernen"
- },
- "wishlist_secondary_button_group.info.item_removed": {
- "defaultMessage": "Artikel aus der Wunschliste entfernt"
- },
- "with_registration.info.please_sign_in": {
- "defaultMessage": "Bitte melden Sie sich an, um fortzufahren."
- }
-}
diff --git a/packages/template-retail-react-app/translations/en-GB.json b/packages/template-retail-react-app/translations/en-GB.json
deleted file mode 100644
index b34b57dc3a..0000000000
--- a/packages/template-retail-react-app/translations/en-GB.json
+++ /dev/null
@@ -1,1780 +0,0 @@
-{
- "account.accordion.button.my_account": {
- "defaultMessage": "My Account"
- },
- "account.heading.my_account": {
- "defaultMessage": "My Account"
- },
- "account.logout_button.button.log_out": {
- "defaultMessage": "Log Out"
- },
- "account_addresses.badge.default": {
- "defaultMessage": "Default"
- },
- "account_addresses.button.add_address": {
- "defaultMessage": "Add Address"
- },
- "account_addresses.info.address_removed": {
- "defaultMessage": "Address removed"
- },
- "account_addresses.info.address_updated": {
- "defaultMessage": "Address updated"
- },
- "account_addresses.info.new_address_saved": {
- "defaultMessage": "New address saved"
- },
- "account_addresses.page_action_placeholder.button.add_address": {
- "defaultMessage": "Add Address"
- },
- "account_addresses.page_action_placeholder.heading.no_saved_addresses": {
- "defaultMessage": "No Saved Addresses"
- },
- "account_addresses.page_action_placeholder.message.add_new_address": {
- "defaultMessage": "Add a new address method for faster checkout."
- },
- "account_addresses.title.addresses": {
- "defaultMessage": "Addresses"
- },
- "account_detail.title.account_details": {
- "defaultMessage": "Account Details"
- },
- "account_order_detail.heading.billing_address": {
- "defaultMessage": "Billing Address"
- },
- "account_order_detail.heading.num_of_items": {
- "defaultMessage": "{count} items"
- },
- "account_order_detail.heading.payment_method": {
- "defaultMessage": "Payment Method"
- },
- "account_order_detail.heading.shipping_address": {
- "defaultMessage": "Shipping Address"
- },
- "account_order_detail.heading.shipping_method": {
- "defaultMessage": "Shipping Method"
- },
- "account_order_detail.label.order_number": {
- "defaultMessage": "Order Number: {orderNumber}"
- },
- "account_order_detail.label.ordered_date": {
- "defaultMessage": "Ordered: {date}"
- },
- "account_order_detail.label.pending_tracking_number": {
- "defaultMessage": "Pending"
- },
- "account_order_detail.label.tracking_number": {
- "defaultMessage": "Tracking Number"
- },
- "account_order_detail.link.back_to_history": {
- "defaultMessage": "Back to Order History"
- },
- "account_order_detail.shipping_status.not_shipped": {
- "defaultMessage": "Not shipped"
- },
- "account_order_detail.shipping_status.part_shipped": {
- "defaultMessage": "Partially shipped"
- },
- "account_order_detail.shipping_status.shipped": {
- "defaultMessage": "Shipped"
- },
- "account_order_detail.title.order_details": {
- "defaultMessage": "Order Details"
- },
- "account_order_history.button.continue_shopping": {
- "defaultMessage": "Continue Shopping"
- },
- "account_order_history.description.once_you_place_order": {
- "defaultMessage": "Once you place an order the details will show up here."
- },
- "account_order_history.heading.no_order_yet": {
- "defaultMessage": "You haven't placed an order yet."
- },
- "account_order_history.label.num_of_items": {
- "defaultMessage": "{count} items",
- "description": "Number of items in order"
- },
- "account_order_history.label.order_number": {
- "defaultMessage": "Order Number: {orderNumber}"
- },
- "account_order_history.label.ordered_date": {
- "defaultMessage": "Ordered: {date}"
- },
- "account_order_history.label.shipped_to": {
- "defaultMessage": "Shipped to: {name}"
- },
- "account_order_history.link.view_details": {
- "defaultMessage": "View details"
- },
- "account_order_history.title.order_history": {
- "defaultMessage": "Order History"
- },
- "account_wishlist.button.continue_shopping": {
- "defaultMessage": "Continue Shopping"
- },
- "account_wishlist.description.continue_shopping": {
- "defaultMessage": "Continue shopping and add items to your wishlist."
- },
- "account_wishlist.heading.no_wishlist": {
- "defaultMessage": "No Wishlist Items"
- },
- "account_wishlist.title.wishlist": {
- "defaultMessage": "Wishlist"
- },
- "action_card.action.edit": {
- "defaultMessage": "Edit"
- },
- "action_card.action.remove": {
- "defaultMessage": "Remove"
- },
- "add_to_cart_modal.info.added_to_cart": {
- "defaultMessage": "{quantity} {quantity, plural, one {item} other {items}} added to cart"
- },
- "add_to_cart_modal.label.cart_subtotal": {
- "defaultMessage": "Cart Subtotal ({itemAccumulatedCount} item)"
- },
- "add_to_cart_modal.label.quantity": {
- "defaultMessage": "Qty"
- },
- "add_to_cart_modal.link.checkout": {
- "defaultMessage": "Proceed to Checkout"
- },
- "add_to_cart_modal.link.view_cart": {
- "defaultMessage": "View Cart"
- },
- "add_to_cart_modal.recommended_products.title.might_also_like": {
- "defaultMessage": "You Might Also Like"
- },
- "auth_modal.button.close.assistive_msg": {
- "defaultMessage": "Close login form"
- },
- "auth_modal.check_email.button.resend_link": {
- "defaultMessage": "Resend Link"
- },
- "auth_modal.check_email.description.check_spam_folder": {
- "defaultMessage": "The link may take a few minutes to arrive, check your spam folder if you're having trouble finding it"
- },
- "auth_modal.check_email.description.just_sent": {
- "defaultMessage": "We just sent a login link to {email} "
- },
- "auth_modal.check_email.title.check_your_email": {
- "defaultMessage": "Check Your Email"
- },
- "auth_modal.description.now_signed_in": {
- "defaultMessage": "You're now signed in."
- },
- "auth_modal.error.incorrect_email_or_password": {
- "defaultMessage": "Something's not right with your email or password. Try again."
- },
- "auth_modal.info.welcome_user": {
- "defaultMessage": "Welcome {name},"
- },
- "auth_modal.password_reset_success.button.back_to_sign_in": {
- "defaultMessage": "Back to Sign In"
- },
- "auth_modal.password_reset_success.info.will_email_shortly": {
- "defaultMessage": "You will receive an email at {email} with a link to reset your password shortly."
- },
- "auth_modal.password_reset_success.title.password_reset": {
- "defaultMessage": "Password Reset"
- },
- "carousel.button.scroll_left.assistive_msg": {
- "defaultMessage": "Scroll carousel left"
- },
- "carousel.button.scroll_right.assistive_msg": {
- "defaultMessage": "Scroll carousel right"
- },
- "cart.info.removed_from_cart": {
- "defaultMessage": "Item removed from cart"
- },
- "cart.product_edit_modal.modal_label": {
- "defaultMessage": "Edit modal for {productName}"
- },
- "cart.recommended_products.title.may_also_like": {
- "defaultMessage": "You May Also Like"
- },
- "cart.recommended_products.title.recently_viewed": {
- "defaultMessage": "Recently Viewed"
- },
- "cart_cta.link.checkout": {
- "defaultMessage": "Proceed to Checkout"
- },
- "cart_secondary_button_group.action.added_to_wishlist": {
- "defaultMessage": "Add to Wishlist"
- },
- "cart_secondary_button_group.action.edit": {
- "defaultMessage": "Edit"
- },
- "cart_secondary_button_group.action.remove": {
- "defaultMessage": "Remove"
- },
- "cart_secondary_button_group.label.this_is_gift": {
- "defaultMessage": "This is a gift."
- },
- "cart_skeleton.heading.order_summary": {
- "defaultMessage": "Order Summary"
- },
- "cart_skeleton.title.cart": {
- "defaultMessage": "Cart"
- },
- "cart_title.title.cart_num_of_items": {
- "defaultMessage": "Cart ({itemCount, plural, =0 {0 items} one {# item} other {# items}})"
- },
- "category_links.button_text": {
- "defaultMessage": "Categories"
- },
- "cc_radio_group.action.remove": {
- "defaultMessage": "Remove"
- },
- "cc_radio_group.button.add_new_card": {
- "defaultMessage": "Add New Card"
- },
- "checkout.button.place_order": {
- "defaultMessage": "Place Order"
- },
- "checkout.message.generic_error": {
- "defaultMessage": "An unexpected error occurred during checkout."
- },
- "checkout_confirmation.button.create_account": {
- "defaultMessage": "Create Account"
- },
- "checkout_confirmation.heading.billing_address": {
- "defaultMessage": "Billing Address"
- },
- "checkout_confirmation.heading.create_account": {
- "defaultMessage": "Create an account for faster checkout"
- },
- "checkout_confirmation.heading.credit_card": {
- "defaultMessage": "Credit Card"
- },
- "checkout_confirmation.heading.delivery_details": {
- "defaultMessage": "Delivery Details"
- },
- "checkout_confirmation.heading.order_summary": {
- "defaultMessage": "Order Summary"
- },
- "checkout_confirmation.heading.payment_details": {
- "defaultMessage": "Payment Details"
- },
- "checkout_confirmation.heading.shipping_address": {
- "defaultMessage": "Shipping Address"
- },
- "checkout_confirmation.heading.shipping_method": {
- "defaultMessage": "Shipping Method"
- },
- "checkout_confirmation.heading.thank_you_for_order": {
- "defaultMessage": "Thank you for your order!"
- },
- "checkout_confirmation.label.free": {
- "defaultMessage": "Free"
- },
- "checkout_confirmation.label.order_number": {
- "defaultMessage": "Order Number"
- },
- "checkout_confirmation.label.order_total": {
- "defaultMessage": "Order Total"
- },
- "checkout_confirmation.label.promo_applied": {
- "defaultMessage": "Promotion applied"
- },
- "checkout_confirmation.label.shipping": {
- "defaultMessage": "Shipping"
- },
- "checkout_confirmation.label.shipping.strikethrough.price": {
- "defaultMessage": "Originally {originalPrice}, now {newPrice}"
- },
- "checkout_confirmation.label.subtotal": {
- "defaultMessage": "Subtotal"
- },
- "checkout_confirmation.label.tax": {
- "defaultMessage": "Tax"
- },
- "checkout_confirmation.link.continue_shopping": {
- "defaultMessage": "Continue Shopping"
- },
- "checkout_confirmation.link.login": {
- "defaultMessage": "Log in here"
- },
- "checkout_confirmation.message.already_has_account": {
- "defaultMessage": "This email already has an account."
- },
- "checkout_confirmation.message.num_of_items_in_order": {
- "defaultMessage": "{itemCount, plural, =0 {0 items} one {# item} other {# items}}",
- "description": "# item(s) in order"
- },
- "checkout_confirmation.message.will_email_shortly": {
- "defaultMessage": "We will send an email to {email} with your confirmation number and receipt shortly."
- },
- "checkout_footer.link.privacy_policy": {
- "defaultMessage": "Privacy Policy"
- },
- "checkout_footer.link.returns_exchanges": {
- "defaultMessage": "Returns & Exchanges"
- },
- "checkout_footer.link.shipping": {
- "defaultMessage": "Shipping"
- },
- "checkout_footer.link.site_map": {
- "defaultMessage": "Site Map"
- },
- "checkout_footer.link.terms_conditions": {
- "defaultMessage": "Terms & Conditions"
- },
- "checkout_footer.message.copyright": {
- "defaultMessage": "Salesforce or its affiliates. All rights reserved. This is a demo store only. Orders made WILL NOT be processed."
- },
- "checkout_header.link.assistive_msg.cart": {
- "defaultMessage": "Back to cart, number of items: {numItems}"
- },
- "checkout_header.link.cart": {
- "defaultMessage": "Back to cart"
- },
- "checkout_payment.action.remove": {
- "defaultMessage": "Remove"
- },
- "checkout_payment.button.review_order": {
- "defaultMessage": "Review Order"
- },
- "checkout_payment.heading.billing_address": {
- "defaultMessage": "Billing Address"
- },
- "checkout_payment.heading.credit_card": {
- "defaultMessage": "Credit Card"
- },
- "checkout_payment.label.billing_address_form": {
- "defaultMessage": "Billing Address Form"
- },
- "checkout_payment.label.same_as_shipping": {
- "defaultMessage": "Same as shipping address"
- },
- "checkout_payment.title.payment": {
- "defaultMessage": "Payment"
- },
- "colorRefinements.label.hitCount": {
- "defaultMessage": "{colorLabel} ({colorHitCount})"
- },
- "confirmation_modal.default.action.no": {
- "defaultMessage": "No"
- },
- "confirmation_modal.default.action.yes": {
- "defaultMessage": "Yes"
- },
- "confirmation_modal.default.assistive_msg.no": {
- "defaultMessage": "No, cancel action"
- },
- "confirmation_modal.default.assistive_msg.yes": {
- "defaultMessage": "Yes, confirm action"
- },
- "confirmation_modal.default.message.you_want_to_continue": {
- "defaultMessage": "Are you sure you want to continue?"
- },
- "confirmation_modal.default.title.confirm_action": {
- "defaultMessage": "Confirm Action"
- },
- "confirmation_modal.remove_cart_item.action.no": {
- "defaultMessage": "No, keep item"
- },
- "confirmation_modal.remove_cart_item.action.remove": {
- "defaultMessage": "Remove"
- },
- "confirmation_modal.remove_cart_item.action.yes": {
- "defaultMessage": "Yes, remove item"
- },
- "confirmation_modal.remove_cart_item.assistive_msg.no": {
- "defaultMessage": "No, keep item"
- },
- "confirmation_modal.remove_cart_item.assistive_msg.remove": {
- "defaultMessage": "Remove unavailable products"
- },
- "confirmation_modal.remove_cart_item.assistive_msg.yes": {
- "defaultMessage": "Yes, remove item"
- },
- "confirmation_modal.remove_cart_item.message.need_to_remove_due_to_unavailability": {
- "defaultMessage": "Some items are no longer available online and will be removed from your cart."
- },
- "confirmation_modal.remove_cart_item.message.sure_to_remove": {
- "defaultMessage": "Are you sure you want to remove this item from your cart?"
- },
- "confirmation_modal.remove_cart_item.title.confirm_remove": {
- "defaultMessage": "Confirm Remove Item"
- },
- "confirmation_modal.remove_cart_item.title.items_unavailable": {
- "defaultMessage": "Items Unavailable"
- },
- "confirmation_modal.remove_wishlist_item.action.no": {
- "defaultMessage": "No, keep item"
- },
- "confirmation_modal.remove_wishlist_item.action.yes": {
- "defaultMessage": "Yes, remove item"
- },
- "confirmation_modal.remove_wishlist_item.message.sure_to_remove": {
- "defaultMessage": "Are you sure you want to remove this item from your wishlist?"
- },
- "confirmation_modal.remove_wishlist_item.title.confirm_remove": {
- "defaultMessage": "Confirm Remove Item"
- },
- "contact_info.action.sign_out": {
- "defaultMessage": "Sign Out"
- },
- "contact_info.button.already_have_account": {
- "defaultMessage": "Already have an account? Log in"
- },
- "contact_info.button.back_to_sign_in_options": {
- "defaultMessage": "Back to Sign In Options"
- },
- "contact_info.button.checkout_as_guest": {
- "defaultMessage": "Checkout as Guest"
- },
- "contact_info.button.login": {
- "defaultMessage": "Log In"
- },
- "contact_info.button.password": {
- "defaultMessage": "Password"
- },
- "contact_info.button.secure_link": {
- "defaultMessage": "Secure Link"
- },
- "contact_info.error.incorrect_username_or_password": {
- "defaultMessage": "Incorrect username or password, please try again."
- },
- "contact_info.link.forgot_password": {
- "defaultMessage": "Forgot password?"
- },
- "contact_info.message.or_login_with": {
- "defaultMessage": "Or Login With"
- },
- "contact_info.title.contact_info": {
- "defaultMessage": "Contact Info"
- },
- "credit_card_fields.tool_tip.security_code": {
- "defaultMessage": "This 3-digit code can be found on the back of your card.",
- "description": "Generic credit card security code help text"
- },
- "credit_card_fields.tool_tip.security_code.american_express": {
- "defaultMessage": "This 4-digit code can be found on the front of your card.",
- "description": "American Express security code help text"
- },
- "credit_card_fields.tool_tip.security_code_aria_label": {
- "defaultMessage": "Security code info"
- },
- "display_price.assistive_msg.current_price": {
- "defaultMessage": "current price {currentPrice}"
- },
- "display_price.assistive_msg.current_price_with_range": {
- "defaultMessage": "From current price {currentPrice}"
- },
- "display_price.assistive_msg.strikethrough_price": {
- "defaultMessage": "original price {listPrice}"
- },
- "display_price.assistive_msg.strikethrough_price_with_range": {
- "defaultMessage": "From original price {listPrice}"
- },
- "display_price.label.current_price_with_range": {
- "defaultMessage": "From {currentPrice}"
- },
- "dnt_notification.button.accept": {
- "defaultMessage": "Accept"
- },
- "dnt_notification.button.assistive_msg.accept": {
- "defaultMessage": "Accept tracking"
- },
- "dnt_notification.button.assistive_msg.close": {
- "defaultMessage": "Close consent tracking form"
- },
- "dnt_notification.button.assistive_msg.decline": {
- "defaultMessage": "Decline tracking"
- },
- "dnt_notification.button.decline": {
- "defaultMessage": "Decline"
- },
- "dnt_notification.description": {
- "defaultMessage": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur."
- },
- "dnt_notification.title": {
- "defaultMessage": "Tracking Consent"
- },
- "drawer_menu.button.account_details": {
- "defaultMessage": "Account Details"
- },
- "drawer_menu.button.addresses": {
- "defaultMessage": "Addresses"
- },
- "drawer_menu.button.log_out": {
- "defaultMessage": "Log Out"
- },
- "drawer_menu.button.my_account": {
- "defaultMessage": "My Account"
- },
- "drawer_menu.button.order_history": {
- "defaultMessage": "Order History"
- },
- "drawer_menu.header.assistive_msg.title": {
- "defaultMessage": "Menu Drawer"
- },
- "drawer_menu.link.about_us": {
- "defaultMessage": "About Us"
- },
- "drawer_menu.link.customer_support": {
- "defaultMessage": "Customer Support"
- },
- "drawer_menu.link.customer_support.contact_us": {
- "defaultMessage": "Contact Us"
- },
- "drawer_menu.link.customer_support.shipping_and_returns": {
- "defaultMessage": "Shipping & Returns"
- },
- "drawer_menu.link.our_company": {
- "defaultMessage": "Our Company"
- },
- "drawer_menu.link.privacy_and_security": {
- "defaultMessage": "Privacy & Security"
- },
- "drawer_menu.link.privacy_policy": {
- "defaultMessage": "Privacy Policy"
- },
- "drawer_menu.link.shop_all": {
- "defaultMessage": "Shop All"
- },
- "drawer_menu.link.sign_in": {
- "defaultMessage": "Sign In"
- },
- "drawer_menu.link.site_map": {
- "defaultMessage": "Site Map"
- },
- "drawer_menu.link.store_locator": {
- "defaultMessage": "Store Locator"
- },
- "drawer_menu.link.terms_and_conditions": {
- "defaultMessage": "Terms & Conditions"
- },
- "empty_cart.description.empty_cart": {
- "defaultMessage": "Your cart is empty."
- },
- "empty_cart.link.continue_shopping": {
- "defaultMessage": "Continue Shopping"
- },
- "empty_cart.link.sign_in": {
- "defaultMessage": "Sign In"
- },
- "empty_cart.message.continue_shopping": {
- "defaultMessage": "Continue shopping to add items to your cart."
- },
- "empty_cart.message.sign_in_or_continue_shopping": {
- "defaultMessage": "Sign in to retrieve your saved items or continue shopping."
- },
- "empty_search_results.info.cant_find_anything_for_category": {
- "defaultMessage": "We couldn’t find anything for {category}. Try searching for a product or {link}."
- },
- "empty_search_results.info.cant_find_anything_for_query": {
- "defaultMessage": "We couldn’t find anything for \"{searchQuery}\"."
- },
- "empty_search_results.info.double_check_spelling": {
- "defaultMessage": "Double-check your spelling and try again or {link}."
- },
- "empty_search_results.link.contact_us": {
- "defaultMessage": "Contact Us"
- },
- "empty_search_results.recommended_products.title.most_viewed": {
- "defaultMessage": "Most Viewed"
- },
- "empty_search_results.recommended_products.title.top_sellers": {
- "defaultMessage": "Top Sellers"
- },
- "field.password.assistive_msg.hide_password": {
- "defaultMessage": "Hide password"
- },
- "field.password.assistive_msg.show_password": {
- "defaultMessage": "Show password"
- },
- "footer.column.account": {
- "defaultMessage": "Account"
- },
- "footer.column.customer_support": {
- "defaultMessage": "Customer Support"
- },
- "footer.column.our_company": {
- "defaultMessage": "Our Company"
- },
- "footer.link.about_us": {
- "defaultMessage": "About Us"
- },
- "footer.link.contact_us": {
- "defaultMessage": "Contact Us"
- },
- "footer.link.order_status": {
- "defaultMessage": "Order Status"
- },
- "footer.link.privacy_policy": {
- "defaultMessage": "Privacy Policy"
- },
- "footer.link.shipping": {
- "defaultMessage": "Shipping"
- },
- "footer.link.signin_create_account": {
- "defaultMessage": "Sign in or create account"
- },
- "footer.link.site_map": {
- "defaultMessage": "Site Map"
- },
- "footer.link.store_locator": {
- "defaultMessage": "Store Locator"
- },
- "footer.link.terms_conditions": {
- "defaultMessage": "Terms & Conditions"
- },
- "footer.locale_selector.assistive_msg": {
- "defaultMessage": "Select Language"
- },
- "footer.message.copyright": {
- "defaultMessage": "Salesforce or its affiliates. All rights reserved. This is a demo store only. Orders made WILL NOT be processed."
- },
- "footer.subscribe.button.sign_up": {
- "defaultMessage": "Sign Up"
- },
- "footer.subscribe.description.sign_up": {
- "defaultMessage": "Sign up to stay in the loop about the hottest deals"
- },
- "footer.subscribe.email.assistive_msg": {
- "defaultMessage": "Email address for newsletter"
- },
- "footer.subscribe.heading.first_to_know": {
- "defaultMessage": "Be the first to know"
- },
- "form_action_buttons.button.cancel": {
- "defaultMessage": "Cancel"
- },
- "form_action_buttons.button.save": {
- "defaultMessage": "Save"
- },
- "global.account.link.account_details": {
- "defaultMessage": "Account Details"
- },
- "global.account.link.addresses": {
- "defaultMessage": "Addresses"
- },
- "global.account.link.order_history": {
- "defaultMessage": "Order History"
- },
- "global.account.link.wishlist": {
- "defaultMessage": "Wishlist"
- },
- "global.error.create_account": {
- "defaultMessage": "This feature is not currently available. You must create an account to access this feature."
- },
- "global.error.feature_unavailable": {
- "defaultMessage": "This feature is not currently available."
- },
- "global.error.invalid_token": {
- "defaultMessage": "Invalid token, please try again."
- },
- "global.error.something_went_wrong": {
- "defaultMessage": "Something went wrong. Try again!"
- },
- "global.info.added_to_wishlist": {
- "defaultMessage": "{quantity} {quantity, plural, one {item} other {items}} added to wishlist"
- },
- "global.info.already_in_wishlist": {
- "defaultMessage": "Item is already in wishlist"
- },
- "global.info.removed_from_wishlist": {
- "defaultMessage": "Item removed from wishlist"
- },
- "global.link.added_to_wishlist.view_wishlist": {
- "defaultMessage": "View"
- },
- "header.button.assistive_msg.logo": {
- "defaultMessage": "Logo"
- },
- "header.button.assistive_msg.menu": {
- "defaultMessage": "Menu"
- },
- "header.button.assistive_msg.menu.open_dialog": {
- "defaultMessage": "Opens a dialog"
- },
- "header.button.assistive_msg.my_account": {
- "defaultMessage": "My Account"
- },
- "header.button.assistive_msg.my_account_menu": {
- "defaultMessage": "Open account menu"
- },
- "header.button.assistive_msg.my_cart_with_num_items": {
- "defaultMessage": "My cart, number of items: {numItems}"
- },
- "header.button.assistive_msg.store_locator": {
- "defaultMessage": "Store Locator"
- },
- "header.button.assistive_msg.wishlist": {
- "defaultMessage": "Wishlist"
- },
- "header.field.placeholder.search_for_products": {
- "defaultMessage": "Search for products..."
- },
- "header.popover.action.log_out": {
- "defaultMessage": "Log out"
- },
- "header.popover.title.my_account": {
- "defaultMessage": "My Account"
- },
- "home.description.features": {
- "defaultMessage": "Out-of-the-box features so that you focus only on adding enhancements."
- },
- "home.description.here_to_help": {
- "defaultMessage": "Contact our support staff."
- },
- "home.description.here_to_help_line_2": {
- "defaultMessage": "They will get you to the right place."
- },
- "home.description.shop_products": {
- "defaultMessage": "This section contains content from the catalog. {docLink} on how to replace it.",
- "description": "{docLink} is a html button that links the user to https://sfdc.co/business-manager-manage-catalogs"
- },
- "home.features.description.cart_checkout": {
- "defaultMessage": "Ecommerce best practice for a shopper's cart and checkout experience."
- },
- "home.features.description.components": {
- "defaultMessage": "Built using Chakra UI, a simple, modular and accessible React component library."
- },
- "home.features.description.einstein_recommendations": {
- "defaultMessage": "Deliver the next best product or offer to every shopper through product recommendations."
- },
- "home.features.description.my_account": {
- "defaultMessage": "Shoppers can manage account information such as their profile, addresses, payments and orders."
- },
- "home.features.description.shopper_login": {
- "defaultMessage": "Enable shoppers to easily log in with a more personalized shopping experience."
- },
- "home.features.description.wishlist": {
- "defaultMessage": "Registered shoppers can add product items to their wishlist from purchasing later."
- },
- "home.features.heading.cart_checkout": {
- "defaultMessage": "Cart & Checkout"
- },
- "home.features.heading.components": {
- "defaultMessage": "Components & Design Kit"
- },
- "home.features.heading.einstein_recommendations": {
- "defaultMessage": "Einstein Recommendations"
- },
- "home.features.heading.my_account": {
- "defaultMessage": "My Account"
- },
- "home.features.heading.shopper_login": {
- "defaultMessage": "Shopper Login and API Access Service"
- },
- "home.features.heading.wishlist": {
- "defaultMessage": "Wishlist"
- },
- "home.heading.features": {
- "defaultMessage": "Features"
- },
- "home.heading.here_to_help": {
- "defaultMessage": "We're here to help"
- },
- "home.heading.shop_products": {
- "defaultMessage": "Shop Products"
- },
- "home.hero_features.link.design_kit": {
- "defaultMessage": "Create with the Figma PWA Design Kit"
- },
- "home.hero_features.link.on_github": {
- "defaultMessage": "Download on Github"
- },
- "home.hero_features.link.on_managed_runtime": {
- "defaultMessage": "Deploy on Managed Runtime"
- },
- "home.link.contact_us": {
- "defaultMessage": "Contact Us"
- },
- "home.link.get_started": {
- "defaultMessage": "Get started"
- },
- "home.link.read_docs": {
- "defaultMessage": "Read docs"
- },
- "home.title.react_starter_store": {
- "defaultMessage": "The React PWA Starter Store for Retail"
- },
- "icons.assistive_msg.lock": {
- "defaultMessage": "Secure"
- },
- "item_attributes.label.promotions": {
- "defaultMessage": "Promotions"
- },
- "item_attributes.label.quantity": {
- "defaultMessage": "Quantity: {quantity}"
- },
- "item_attributes.label.selected_options": {
- "defaultMessage": "Selected Options"
- },
- "item_image.label.sale": {
- "defaultMessage": "Sale",
- "description": "A sale badge placed on top of a product image"
- },
- "item_image.label.unavailable": {
- "defaultMessage": "Unavailable",
- "description": "A unavailable badge placed on top of a product image"
- },
- "item_variant.assistive_msg.quantity": {
- "defaultMessage": "Quantity {quantity}"
- },
- "item_variant.quantity.label": {
- "defaultMessage": "Quantity selector for {productName}. Selected quantity is {quantity}"
- },
- "lCPCxk": {
- "defaultMessage": "Please select all your options above"
- },
- "list_menu.nav.assistive_msg": {
- "defaultMessage": "Main navigation"
- },
- "locale_text.message.ar-SA": {
- "defaultMessage": "Arabic (Saudi Arabia)"
- },
- "locale_text.message.bn-BD": {
- "defaultMessage": "Bangla (Bangladesh)"
- },
- "locale_text.message.bn-IN": {
- "defaultMessage": "Bangla (India)"
- },
- "locale_text.message.cs-CZ": {
- "defaultMessage": "Czech (Czech Republic)"
- },
- "locale_text.message.da-DK": {
- "defaultMessage": "Danish (Denmark)"
- },
- "locale_text.message.de-AT": {
- "defaultMessage": "German (Austria)"
- },
- "locale_text.message.de-CH": {
- "defaultMessage": "German (Switzerland)"
- },
- "locale_text.message.de-DE": {
- "defaultMessage": "German (Germany)"
- },
- "locale_text.message.el-GR": {
- "defaultMessage": "Greek (Greece)"
- },
- "locale_text.message.en-AU": {
- "defaultMessage": "English (Australia)"
- },
- "locale_text.message.en-CA": {
- "defaultMessage": "English (Canada)"
- },
- "locale_text.message.en-GB": {
- "defaultMessage": "English (United Kingdom)"
- },
- "locale_text.message.en-IE": {
- "defaultMessage": "English (Ireland)"
- },
- "locale_text.message.en-IN": {
- "defaultMessage": "English (India)"
- },
- "locale_text.message.en-NZ": {
- "defaultMessage": "English (New Zealand)"
- },
- "locale_text.message.en-US": {
- "defaultMessage": "English (United States)"
- },
- "locale_text.message.en-ZA": {
- "defaultMessage": "English (South Africa)"
- },
- "locale_text.message.es-AR": {
- "defaultMessage": "Spanish (Argentina)"
- },
- "locale_text.message.es-CL": {
- "defaultMessage": "Spanish (Chile)"
- },
- "locale_text.message.es-CO": {
- "defaultMessage": "Spanish (Columbia)"
- },
- "locale_text.message.es-ES": {
- "defaultMessage": "Spanish (Spain)"
- },
- "locale_text.message.es-MX": {
- "defaultMessage": "Spanish (Mexico)"
- },
- "locale_text.message.es-US": {
- "defaultMessage": "Spanish (United States)"
- },
- "locale_text.message.fi-FI": {
- "defaultMessage": "Finnish (Finland)"
- },
- "locale_text.message.fr-BE": {
- "defaultMessage": "French (Belgium)"
- },
- "locale_text.message.fr-CA": {
- "defaultMessage": "French (Canada)"
- },
- "locale_text.message.fr-CH": {
- "defaultMessage": "French (Switzerland)"
- },
- "locale_text.message.fr-FR": {
- "defaultMessage": "French (France)"
- },
- "locale_text.message.he-IL": {
- "defaultMessage": "Hebrew (Israel)"
- },
- "locale_text.message.hi-IN": {
- "defaultMessage": "Hindi (India)"
- },
- "locale_text.message.hu-HU": {
- "defaultMessage": "Hungarian (Hungary)"
- },
- "locale_text.message.id-ID": {
- "defaultMessage": "Indonesian (Indonesia)"
- },
- "locale_text.message.it-CH": {
- "defaultMessage": "Italian (Switzerland)"
- },
- "locale_text.message.it-IT": {
- "defaultMessage": "Italian (Italy)"
- },
- "locale_text.message.ja-JP": {
- "defaultMessage": "Japanese (Japan)"
- },
- "locale_text.message.ko-KR": {
- "defaultMessage": "Korean (Republic of Korea)"
- },
- "locale_text.message.nl-BE": {
- "defaultMessage": "Dutch (Belgium)"
- },
- "locale_text.message.nl-NL": {
- "defaultMessage": "Dutch (The Netherlands)"
- },
- "locale_text.message.no-NO": {
- "defaultMessage": "Norwegian (Norway)"
- },
- "locale_text.message.pl-PL": {
- "defaultMessage": "Polish (Poland)"
- },
- "locale_text.message.pt-BR": {
- "defaultMessage": "Portuguese (Brazil)"
- },
- "locale_text.message.pt-PT": {
- "defaultMessage": "Portuguese (Portugal)"
- },
- "locale_text.message.ro-RO": {
- "defaultMessage": "Romanian (Romania)"
- },
- "locale_text.message.ru-RU": {
- "defaultMessage": "Russian (Russian Federation)"
- },
- "locale_text.message.sk-SK": {
- "defaultMessage": "Slovak (Slovakia)"
- },
- "locale_text.message.sv-SE": {
- "defaultMessage": "Swedish (Sweden)"
- },
- "locale_text.message.ta-IN": {
- "defaultMessage": "Tamil (India)"
- },
- "locale_text.message.ta-LK": {
- "defaultMessage": "Tamil (Sri Lanka)"
- },
- "locale_text.message.th-TH": {
- "defaultMessage": "Thai (Thailand)"
- },
- "locale_text.message.tr-TR": {
- "defaultMessage": "Turkish (Turkey)"
- },
- "locale_text.message.zh-CN": {
- "defaultMessage": "Chinese (China)"
- },
- "locale_text.message.zh-HK": {
- "defaultMessage": "Chinese (Hong Kong)"
- },
- "locale_text.message.zh-TW": {
- "defaultMessage": "Chinese (Taiwan)"
- },
- "login_form.action.create_account": {
- "defaultMessage": "Create account"
- },
- "login_form.button.apple": {
- "defaultMessage": "Apple"
- },
- "login_form.button.back": {
- "defaultMessage": "Back to Sign In Options"
- },
- "login_form.button.continue_securely": {
- "defaultMessage": "Continue Securely"
- },
- "login_form.button.google": {
- "defaultMessage": "Google"
- },
- "login_form.button.password": {
- "defaultMessage": "Password"
- },
- "login_form.button.sign_in": {
- "defaultMessage": "Sign In"
- },
- "login_form.link.forgot_password": {
- "defaultMessage": "Forgot password?"
- },
- "login_form.message.dont_have_account": {
- "defaultMessage": "Don't have an account?"
- },
- "login_form.message.or_login_with": {
- "defaultMessage": "Or Login With"
- },
- "login_form.message.welcome_back": {
- "defaultMessage": "Welcome Back"
- },
- "login_page.error.incorrect_username_or_password": {
- "defaultMessage": "Incorrect username or password, please try again."
- },
- "offline_banner.description.browsing_offline_mode": {
- "defaultMessage": "You're currently browsing in offline mode"
- },
- "order_summary.action.remove_promo": {
- "defaultMessage": "Remove"
- },
- "order_summary.cart_items.action.num_of_items_in_cart": {
- "defaultMessage": "{itemCount, plural, =0 {0 items} one {# item} other {# items}} in cart",
- "description": "clicking it would expand/show the items in cart"
- },
- "order_summary.cart_items.link.edit_cart": {
- "defaultMessage": "Edit cart"
- },
- "order_summary.heading.order_summary": {
- "defaultMessage": "Order Summary"
- },
- "order_summary.label.estimated_total": {
- "defaultMessage": "Estimated Total"
- },
- "order_summary.label.free": {
- "defaultMessage": "Free"
- },
- "order_summary.label.order_total": {
- "defaultMessage": "Order Total"
- },
- "order_summary.label.promo_applied": {
- "defaultMessage": "Promotion applied"
- },
- "order_summary.label.promotions_applied": {
- "defaultMessage": "Promotions applied"
- },
- "order_summary.label.shipping": {
- "defaultMessage": "Shipping"
- },
- "order_summary.label.subtotal": {
- "defaultMessage": "Subtotal"
- },
- "order_summary.label.tax": {
- "defaultMessage": "Tax"
- },
- "page_not_found.action.go_back": {
- "defaultMessage": "Back to previous page"
- },
- "page_not_found.link.homepage": {
- "defaultMessage": "Go to home page"
- },
- "page_not_found.message.suggestion_to_try": {
- "defaultMessage": "Please try retyping the address, going back to the previous page, or going to the home page."
- },
- "page_not_found.title.page_cant_be_found": {
- "defaultMessage": "The page you're looking for can't be found."
- },
- "pagination.field.num_of_pages": {
- "defaultMessage": "of {numOfPages}"
- },
- "pagination.field.page_number_select": {
- "defaultMessage": "Select page number"
- },
- "pagination.link.next": {
- "defaultMessage": "Next"
- },
- "pagination.link.next.assistive_msg": {
- "defaultMessage": "Next Page"
- },
- "pagination.link.prev": {
- "defaultMessage": "Prev"
- },
- "pagination.link.prev.assistive_msg": {
- "defaultMessage": "Previous Page"
- },
- "password_card.info.password_updated": {
- "defaultMessage": "Password updated"
- },
- "password_card.label.password": {
- "defaultMessage": "Password"
- },
- "password_card.title.password": {
- "defaultMessage": "Password"
- },
- "password_requirements.error.eight_letter_minimum": {
- "defaultMessage": "8 characters minimum",
- "description": "Password requirement"
- },
- "password_requirements.error.one_lowercase_letter": {
- "defaultMessage": "1 lowercase letter",
- "description": "Password requirement"
- },
- "password_requirements.error.one_number": {
- "defaultMessage": "1 number",
- "description": "Password requirement"
- },
- "password_requirements.error.one_special_character": {
- "defaultMessage": "1 special character (example: , S ! % #)",
- "description": "Password requirement"
- },
- "password_requirements.error.one_uppercase_letter": {
- "defaultMessage": "1 uppercase letter",
- "description": "Password requirement"
- },
- "password_reset_success.toast": {
- "defaultMessage": "Password Reset Success"
- },
- "payment_selection.heading.credit_card": {
- "defaultMessage": "Credit Card"
- },
- "payment_selection.radio_group.assistive_msg": {
- "defaultMessage": "Payment"
- },
- "payment_selection.tooltip.secure_payment": {
- "defaultMessage": "This is a secure SSL encrypted payment."
- },
- "price_per_item.label.each": {
- "defaultMessage": "ea",
- "description": "Abbreviated 'each', follows price per item, like $10/ea"
- },
- "product_detail.accordion.button.product_detail": {
- "defaultMessage": "Product Detail"
- },
- "product_detail.accordion.button.questions": {
- "defaultMessage": "Questions"
- },
- "product_detail.accordion.button.reviews": {
- "defaultMessage": "Reviews"
- },
- "product_detail.accordion.button.size_fit": {
- "defaultMessage": "Size & Fit"
- },
- "product_detail.accordion.message.coming_soon": {
- "defaultMessage": "Coming Soon"
- },
- "product_detail.recommended_products.title.complete_set": {
- "defaultMessage": "Complete the Set"
- },
- "product_detail.recommended_products.title.might_also_like": {
- "defaultMessage": "You might also like"
- },
- "product_detail.recommended_products.title.recently_viewed": {
- "defaultMessage": "Recently Viewed"
- },
- "product_item.label.quantity": {
- "defaultMessage": "Quantity:"
- },
- "product_list.button.filter": {
- "defaultMessage": "Filter"
- },
- "product_list.button.sort_by": {
- "defaultMessage": "Sort By: {sortOption}"
- },
- "product_list.drawer.title.sort_by": {
- "defaultMessage": "Sort By"
- },
- "product_list.modal.button.clear_filters": {
- "defaultMessage": "Clear Filters"
- },
- "product_list.modal.button.view_items": {
- "defaultMessage": "View {prroductCount} items"
- },
- "product_list.modal.title.filter": {
- "defaultMessage": "Filter"
- },
- "product_list.refinements.button.assistive_msg.add_filter": {
- "defaultMessage": "Add filter: {label}"
- },
- "product_list.refinements.button.assistive_msg.add_filter_with_hit_count": {
- "defaultMessage": "Add filter: {label} ({hitCount})"
- },
- "product_list.refinements.button.assistive_msg.remove_filter": {
- "defaultMessage": "Remove filter: {label}"
- },
- "product_list.refinements.button.assistive_msg.remove_filter_with_hit_count": {
- "defaultMessage": "Remove filter: {label} ({hitCount})"
- },
- "product_list.select.sort_by": {
- "defaultMessage": "Sort By: {sortOption}"
- },
- "product_list.sort_by.label.assistive_msg": {
- "defaultMessage": "Sort products by"
- },
- "product_scroller.assistive_msg.scroll_left": {
- "defaultMessage": "Scroll products left"
- },
- "product_scroller.assistive_msg.scroll_right": {
- "defaultMessage": "Scroll products right"
- },
- "product_tile.assistive_msg.add_to_wishlist": {
- "defaultMessage": "Add {product} to wishlist"
- },
- "product_tile.assistive_msg.remove_from_wishlist": {
- "defaultMessage": "Remove {product} from wishlist"
- },
- "product_tile.badge.label.new": {
- "defaultMessage": "New"
- },
- "product_tile.badge.label.sale": {
- "defaultMessage": "Sale"
- },
- "product_view.button.add_bundle_to_cart": {
- "defaultMessage": "Add Bundle to Cart"
- },
- "product_view.button.add_bundle_to_wishlist": {
- "defaultMessage": "Add Bundle to Wishlist"
- },
- "product_view.button.add_set_to_cart": {
- "defaultMessage": "Add Set to Cart"
- },
- "product_view.button.add_set_to_wishlist": {
- "defaultMessage": "Add Set to Wishlist"
- },
- "product_view.button.add_to_cart": {
- "defaultMessage": "Add to Cart"
- },
- "product_view.button.add_to_wishlist": {
- "defaultMessage": "Add to Wishlist"
- },
- "product_view.button.update": {
- "defaultMessage": "Update"
- },
- "product_view.label.assistive_msg.quantity_decrement": {
- "defaultMessage": "Decrement Quantity for {productName}"
- },
- "product_view.label.assistive_msg.quantity_increment": {
- "defaultMessage": "Increment Quantity for {productName}"
- },
- "product_view.label.quantity": {
- "defaultMessage": "Quantity"
- },
- "product_view.label.quantity_decrement": {
- "defaultMessage": "−"
- },
- "product_view.label.quantity_increment": {
- "defaultMessage": "+"
- },
- "product_view.label.variant_type": {
- "defaultMessage": "{variantType}"
- },
- "product_view.link.full_details": {
- "defaultMessage": "See full details"
- },
- "profile_card.info.profile_updated": {
- "defaultMessage": "Profile updated"
- },
- "profile_card.label.email": {
- "defaultMessage": "Email"
- },
- "profile_card.label.full_name": {
- "defaultMessage": "Full Name"
- },
- "profile_card.label.phone": {
- "defaultMessage": "Phone Number"
- },
- "profile_card.message.not_provided": {
- "defaultMessage": "Not provided"
- },
- "profile_card.title.my_profile": {
- "defaultMessage": "My Profile"
- },
- "profile_fields.label.profile_form": {
- "defaultMessage": "Profile Form"
- },
- "promo_code_fields.button.apply": {
- "defaultMessage": "Apply"
- },
- "promo_popover.assistive_msg.info": {
- "defaultMessage": "Info"
- },
- "promo_popover.heading.promo_applied": {
- "defaultMessage": "Promotions Applied"
- },
- "promocode.accordion.button.have_promocode": {
- "defaultMessage": "Do you have a promo code?"
- },
- "recent_searches.action.clear_searches": {
- "defaultMessage": "Clear recent searches"
- },
- "recent_searches.heading.recent_searches": {
- "defaultMessage": "Recent Searches"
- },
- "register_form.action.sign_in": {
- "defaultMessage": "Sign in"
- },
- "register_form.button.create_account": {
- "defaultMessage": "Create Account"
- },
- "register_form.heading.lets_get_started": {
- "defaultMessage": "Let's get started!"
- },
- "register_form.message.agree_to_policy_terms": {
- "defaultMessage": "By creating an account, you agree to Salesforce Privacy Policy and Terms & Conditions "
- },
- "register_form.message.already_have_account": {
- "defaultMessage": "Already have an account?"
- },
- "register_form.message.create_an_account": {
- "defaultMessage": "Create an account and get first access to the very best products, inspiration and community."
- },
- "reset_password_form.action.sign_in": {
- "defaultMessage": "Sign in"
- },
- "reset_password_form.button.reset_password": {
- "defaultMessage": "Reset Password"
- },
- "reset_password_form.message.enter_your_email": {
- "defaultMessage": "Enter your email to receive instructions on how to reset your password"
- },
- "reset_password_form.message.return_to_sign_in": {
- "defaultMessage": "Or return to",
- "description": "Precedes link to return to sign in"
- },
- "reset_password_form.title.reset_password": {
- "defaultMessage": "Reset Password"
- },
- "search.action.cancel": {
- "defaultMessage": "Cancel"
- },
- "selected_refinements.action.assistive_msg.clear_all": {
- "defaultMessage": "Clear all filters"
- },
- "selected_refinements.action.clear_all": {
- "defaultMessage": "Clear All"
- },
- "shipping_address.button.continue_to_shipping": {
- "defaultMessage": "Continue to Shipping Method"
- },
- "shipping_address.label.edit_button": {
- "defaultMessage": "Edit {address}"
- },
- "shipping_address.label.remove_button": {
- "defaultMessage": "Remove {address}"
- },
- "shipping_address.label.shipping_address_form": {
- "defaultMessage": "Shipping Address Form"
- },
- "shipping_address.title.shipping_address": {
- "defaultMessage": "Shipping Address"
- },
- "shipping_address_edit_form.button.save_and_continue": {
- "defaultMessage": "Save & Continue to Shipping Method"
- },
- "shipping_address_form.heading.edit_address": {
- "defaultMessage": "Edit Address"
- },
- "shipping_address_form.heading.new_address": {
- "defaultMessage": "Add New Address"
- },
- "shipping_address_selection.button.add_address": {
- "defaultMessage": "Add New Address"
- },
- "shipping_address_selection.button.submit": {
- "defaultMessage": "Submit"
- },
- "shipping_address_selection.title.add_address": {
- "defaultMessage": "Add New Address"
- },
- "shipping_address_selection.title.edit_shipping": {
- "defaultMessage": "Edit Shipping Address"
- },
- "shipping_options.action.send_as_a_gift": {
- "defaultMessage": "Do you want to send this as a gift?"
- },
- "shipping_options.button.continue_to_payment": {
- "defaultMessage": "Continue to Payment"
- },
- "shipping_options.title.shipping_gift_options": {
- "defaultMessage": "Shipping & Gift Options"
- },
- "signout_confirmation_dialog.button.cancel": {
- "defaultMessage": "Cancel"
- },
- "signout_confirmation_dialog.button.sign_out": {
- "defaultMessage": "Sign Out"
- },
- "signout_confirmation_dialog.heading.sign_out": {
- "defaultMessage": "Sign Out"
- },
- "signout_confirmation_dialog.message.sure_to_sign_out": {
- "defaultMessage": "Are you sure you want to sign out? You will need to sign back in to proceed with your current order."
- },
- "social_login_redirect.message.authenticating": {
- "defaultMessage": "Authenticating..."
- },
- "social_login_redirect.message.redirect_link": {
- "defaultMessage": "If you are not automatically redirected, click this link to proceed."
- },
- "store_locator.action.find": {
- "defaultMessage": "Find"
- },
- "store_locator.action.select_a_country": {
- "defaultMessage": "Select a country"
- },
- "store_locator.action.use_my_location": {
- "defaultMessage": "Use My Location"
- },
- "store_locator.action.viewMore": {
- "defaultMessage": "View More"
- },
- "store_locator.description.away": {
- "defaultMessage": "away"
- },
- "store_locator.description.loading_locations": {
- "defaultMessage": "Loading locations..."
- },
- "store_locator.description.no_locations": {
- "defaultMessage": "Sorry, there are no locations in this area"
- },
- "store_locator.description.or": {
- "defaultMessage": "Or"
- },
- "store_locator.description.phone": {
- "defaultMessage": "Phone:"
- },
- "store_locator.description.viewing_near_postal_code": {
- "defaultMessage": "Viewing stores within {distance}{distanceUnit} of {postalCode} in"
- },
- "store_locator.description.viewing_near_your_location": {
- "defaultMessage": "Viewing stores near your location"
- },
- "store_locator.dropdown.germany": {
- "defaultMessage": "Germany"
- },
- "store_locator.dropdown.united_states": {
- "defaultMessage": "United States"
- },
- "store_locator.error.agree_to_share_your_location": {
- "defaultMessage": "Please agree to share your location"
- },
- "store_locator.error.please_enter_a_postal_code": {
- "defaultMessage": "Please enter a postal code."
- },
- "store_locator.error.please_select_a_country": {
- "defaultMessage": "Please select a country."
- },
- "store_locator.field.placeholder.enter_postal_code": {
- "defaultMessage": "Enter postal code"
- },
- "store_locator.pagination.load_more": {
- "defaultMessage": "Load More"
- },
- "store_locator.title": {
- "defaultMessage": "Find a Store"
- },
- "swatch_group.selected.label": {
- "defaultMessage": "{label}:"
- },
- "toggle_card.action.edit": {
- "defaultMessage": "Edit"
- },
- "toggle_card.action.editContactInfo": {
- "defaultMessage": "Edit Contact Info"
- },
- "toggle_card.action.editPaymentInfo": {
- "defaultMessage": "Edit Payment Info"
- },
- "toggle_card.action.editShippingAddress": {
- "defaultMessage": "Edit Shipping Address"
- },
- "toggle_card.action.editShippingOptions": {
- "defaultMessage": "Edit Shipping Options"
- },
- "update_password_fields.button.forgot_password": {
- "defaultMessage": "Forgot Password?"
- },
- "use_address_fields.error.please_enter_first_name": {
- "defaultMessage": "Please enter your first name."
- },
- "use_address_fields.error.please_enter_last_name": {
- "defaultMessage": "Please enter your last name."
- },
- "use_address_fields.error.please_enter_phone_number": {
- "defaultMessage": "Please enter your phone number."
- },
- "use_address_fields.error.please_enter_your_postal_or_zip": {
- "defaultMessage": "Please enter your zip code.",
- "description": "Error message for a blank zip code (US-specific checkout)"
- },
- "use_address_fields.error.please_select_your_address": {
- "defaultMessage": "Please enter your address."
- },
- "use_address_fields.error.please_select_your_city": {
- "defaultMessage": "Please enter your city."
- },
- "use_address_fields.error.please_select_your_country": {
- "defaultMessage": "Please select your country."
- },
- "use_address_fields.error.please_select_your_state_or_province": {
- "defaultMessage": "Please select your state.",
- "description": "Error message for a blank state (US-specific checkout)"
- },
- "use_address_fields.error.required": {
- "defaultMessage": "Required"
- },
- "use_address_fields.error.state_code_invalid": {
- "defaultMessage": "Please enter 2-letter state/province."
- },
- "use_address_fields.label.address": {
- "defaultMessage": "Address"
- },
- "use_address_fields.label.address_form": {
- "defaultMessage": "Address Form"
- },
- "use_address_fields.label.city": {
- "defaultMessage": "City"
- },
- "use_address_fields.label.country": {
- "defaultMessage": "Country"
- },
- "use_address_fields.label.first_name": {
- "defaultMessage": "First Name"
- },
- "use_address_fields.label.last_name": {
- "defaultMessage": "Last Name"
- },
- "use_address_fields.label.phone": {
- "defaultMessage": "Phone"
- },
- "use_address_fields.label.postal_code": {
- "defaultMessage": "Postal Code"
- },
- "use_address_fields.label.preferred": {
- "defaultMessage": "Set as default"
- },
- "use_address_fields.label.province": {
- "defaultMessage": "Province"
- },
- "use_address_fields.label.state": {
- "defaultMessage": "State"
- },
- "use_address_fields.label.zipCode": {
- "defaultMessage": "Zip Code"
- },
- "use_credit_card_fields.error.required": {
- "defaultMessage": "Required"
- },
- "use_credit_card_fields.error.required_card_number": {
- "defaultMessage": "Please enter your card number."
- },
- "use_credit_card_fields.error.required_expiry": {
- "defaultMessage": "Please enter your expiration date."
- },
- "use_credit_card_fields.error.required_name": {
- "defaultMessage": "Please enter your name as shown on your card."
- },
- "use_credit_card_fields.error.required_security_code": {
- "defaultMessage": "Please enter your security code."
- },
- "use_credit_card_fields.error.valid_card_number": {
- "defaultMessage": "Please enter a valid card number."
- },
- "use_credit_card_fields.error.valid_date": {
- "defaultMessage": "Please enter a valid date."
- },
- "use_credit_card_fields.error.valid_name": {
- "defaultMessage": "Please enter a valid name."
- },
- "use_credit_card_fields.error.valid_security_code": {
- "defaultMessage": "Please enter a valid security code."
- },
- "use_credit_card_fields.label.card_number": {
- "defaultMessage": "Card Number"
- },
- "use_credit_card_fields.label.card_type": {
- "defaultMessage": "Card Type"
- },
- "use_credit_card_fields.label.expiry": {
- "defaultMessage": "Expiration Date"
- },
- "use_credit_card_fields.label.name": {
- "defaultMessage": "Name on Card"
- },
- "use_credit_card_fields.label.security_code": {
- "defaultMessage": "Security Code"
- },
- "use_login_fields.error.required_email": {
- "defaultMessage": "Please enter your email address."
- },
- "use_login_fields.error.required_password": {
- "defaultMessage": "Please enter your password."
- },
- "use_login_fields.label.email": {
- "defaultMessage": "Email"
- },
- "use_login_fields.label.password": {
- "defaultMessage": "Password"
- },
- "use_product.message.inventory_remaining": {
- "defaultMessage": "Only {stockLevel} left!"
- },
- "use_product.message.inventory_remaining_for_product": {
- "defaultMessage": "Only {stockLevel} left for {productName}!"
- },
- "use_product.message.out_of_stock": {
- "defaultMessage": "Out of stock"
- },
- "use_product.message.out_of_stock_for_product": {
- "defaultMessage": "Out of stock for {productName}"
- },
- "use_profile_fields.error.required_email": {
- "defaultMessage": "Please enter a valid email address."
- },
- "use_profile_fields.error.required_first_name": {
- "defaultMessage": "Please enter your first name."
- },
- "use_profile_fields.error.required_last_name": {
- "defaultMessage": "Please enter your last name."
- },
- "use_profile_fields.error.required_phone": {
- "defaultMessage": "Please enter your phone number."
- },
- "use_profile_fields.label.email": {
- "defaultMessage": "Email"
- },
- "use_profile_fields.label.first_name": {
- "defaultMessage": "First Name"
- },
- "use_profile_fields.label.last_name": {
- "defaultMessage": "Last Name"
- },
- "use_profile_fields.label.phone": {
- "defaultMessage": "Phone Number"
- },
- "use_promo_code_fields.error.required_promo_code": {
- "defaultMessage": "Please provide a valid promo code."
- },
- "use_promo_code_fields.label.promo_code": {
- "defaultMessage": "Promo Code"
- },
- "use_promocode.error.check_the_code": {
- "defaultMessage": "Check the code and try again, it may already be applied or the promo has expired."
- },
- "use_promocode.info.promo_applied": {
- "defaultMessage": "Promotion applied"
- },
- "use_promocode.info.promo_removed": {
- "defaultMessage": "Promotion removed"
- },
- "use_registration_fields.error.contain_number": {
- "defaultMessage": "Password must contain at least one number."
- },
- "use_registration_fields.error.lowercase_letter": {
- "defaultMessage": "Password must contain at least one lowercase letter."
- },
- "use_registration_fields.error.minimum_characters": {
- "defaultMessage": "Password must contain at least 8 characters."
- },
- "use_registration_fields.error.required_email": {
- "defaultMessage": "Please enter a valid email address."
- },
- "use_registration_fields.error.required_first_name": {
- "defaultMessage": "Please enter your first name."
- },
- "use_registration_fields.error.required_last_name": {
- "defaultMessage": "Please enter your last name."
- },
- "use_registration_fields.error.required_password": {
- "defaultMessage": "Please create a password."
- },
- "use_registration_fields.error.special_character": {
- "defaultMessage": "Password must contain at least one special character."
- },
- "use_registration_fields.error.uppercase_letter": {
- "defaultMessage": "Password must contain at least one uppercase letter."
- },
- "use_registration_fields.label.email": {
- "defaultMessage": "Email"
- },
- "use_registration_fields.label.first_name": {
- "defaultMessage": "First Name"
- },
- "use_registration_fields.label.last_name": {
- "defaultMessage": "Last Name"
- },
- "use_registration_fields.label.password": {
- "defaultMessage": "Password"
- },
- "use_registration_fields.label.sign_up_to_emails": {
- "defaultMessage": "Sign me up for Salesforce emails (you can unsubscribe at any time)"
- },
- "use_reset_password_fields.error.required_email": {
- "defaultMessage": "Please enter a valid email address."
- },
- "use_reset_password_fields.label.email": {
- "defaultMessage": "Email"
- },
- "use_update_password_fields.error.contain_number": {
- "defaultMessage": "Password must contain at least one number."
- },
- "use_update_password_fields.error.lowercase_letter": {
- "defaultMessage": "Password must contain at least one lowercase letter."
- },
- "use_update_password_fields.error.minimum_characters": {
- "defaultMessage": "Password must contain at least 8 characters."
- },
- "use_update_password_fields.error.password_mismatch": {
- "defaultMessage": "Passwords do not match."
- },
- "use_update_password_fields.error.required_confirm_password": {
- "defaultMessage": "Please confirm your password."
- },
- "use_update_password_fields.error.required_new_password": {
- "defaultMessage": "Please provide a new password."
- },
- "use_update_password_fields.error.required_password": {
- "defaultMessage": "Please enter your password."
- },
- "use_update_password_fields.error.special_character": {
- "defaultMessage": "Password must contain at least one special character."
- },
- "use_update_password_fields.error.uppercase_letter": {
- "defaultMessage": "Password must contain at least one uppercase letter."
- },
- "use_update_password_fields.label.confirm_new_password": {
- "defaultMessage": "Confirm New Password"
- },
- "use_update_password_fields.label.current_password": {
- "defaultMessage": "Current Password"
- },
- "use_update_password_fields.label.new_password": {
- "defaultMessage": "New Password"
- },
- "wishlist_primary_action.button.addSetToCart.label": {
- "defaultMessage": "Add {productName} set to cart"
- },
- "wishlist_primary_action.button.addToCart.label": {
- "defaultMessage": "Add {productName} to cart"
- },
- "wishlist_primary_action.button.add_set_to_cart": {
- "defaultMessage": "Add Set to Cart"
- },
- "wishlist_primary_action.button.add_to_cart": {
- "defaultMessage": "Add to Cart"
- },
- "wishlist_primary_action.button.viewFullDetails.label": {
- "defaultMessage": "View full details for {productName}"
- },
- "wishlist_primary_action.button.view_full_details": {
- "defaultMessage": "View Full Details"
- },
- "wishlist_primary_action.button.view_options": {
- "defaultMessage": "View Options"
- },
- "wishlist_primary_action.button.view_options.label": {
- "defaultMessage": "View Options for {productName}"
- },
- "wishlist_primary_action.info.added_to_cart": {
- "defaultMessage": "{quantity} {quantity, plural, one {item} other {items}} added to cart"
- },
- "wishlist_secondary_button_group.action.remove": {
- "defaultMessage": "Remove"
- },
- "wishlist_secondary_button_group.info.item.remove.label": {
- "defaultMessage": "Remove {productName}"
- },
- "wishlist_secondary_button_group.info.item_removed": {
- "defaultMessage": "Item removed from wishlist"
- },
- "with_registration.info.please_sign_in": {
- "defaultMessage": "Please sign in to continue!"
- }
-}
diff --git a/packages/template-retail-react-app/translations/en-US.json b/packages/template-retail-react-app/translations/en-US.json
deleted file mode 100644
index b34b57dc3a..0000000000
--- a/packages/template-retail-react-app/translations/en-US.json
+++ /dev/null
@@ -1,1780 +0,0 @@
-{
- "account.accordion.button.my_account": {
- "defaultMessage": "My Account"
- },
- "account.heading.my_account": {
- "defaultMessage": "My Account"
- },
- "account.logout_button.button.log_out": {
- "defaultMessage": "Log Out"
- },
- "account_addresses.badge.default": {
- "defaultMessage": "Default"
- },
- "account_addresses.button.add_address": {
- "defaultMessage": "Add Address"
- },
- "account_addresses.info.address_removed": {
- "defaultMessage": "Address removed"
- },
- "account_addresses.info.address_updated": {
- "defaultMessage": "Address updated"
- },
- "account_addresses.info.new_address_saved": {
- "defaultMessage": "New address saved"
- },
- "account_addresses.page_action_placeholder.button.add_address": {
- "defaultMessage": "Add Address"
- },
- "account_addresses.page_action_placeholder.heading.no_saved_addresses": {
- "defaultMessage": "No Saved Addresses"
- },
- "account_addresses.page_action_placeholder.message.add_new_address": {
- "defaultMessage": "Add a new address method for faster checkout."
- },
- "account_addresses.title.addresses": {
- "defaultMessage": "Addresses"
- },
- "account_detail.title.account_details": {
- "defaultMessage": "Account Details"
- },
- "account_order_detail.heading.billing_address": {
- "defaultMessage": "Billing Address"
- },
- "account_order_detail.heading.num_of_items": {
- "defaultMessage": "{count} items"
- },
- "account_order_detail.heading.payment_method": {
- "defaultMessage": "Payment Method"
- },
- "account_order_detail.heading.shipping_address": {
- "defaultMessage": "Shipping Address"
- },
- "account_order_detail.heading.shipping_method": {
- "defaultMessage": "Shipping Method"
- },
- "account_order_detail.label.order_number": {
- "defaultMessage": "Order Number: {orderNumber}"
- },
- "account_order_detail.label.ordered_date": {
- "defaultMessage": "Ordered: {date}"
- },
- "account_order_detail.label.pending_tracking_number": {
- "defaultMessage": "Pending"
- },
- "account_order_detail.label.tracking_number": {
- "defaultMessage": "Tracking Number"
- },
- "account_order_detail.link.back_to_history": {
- "defaultMessage": "Back to Order History"
- },
- "account_order_detail.shipping_status.not_shipped": {
- "defaultMessage": "Not shipped"
- },
- "account_order_detail.shipping_status.part_shipped": {
- "defaultMessage": "Partially shipped"
- },
- "account_order_detail.shipping_status.shipped": {
- "defaultMessage": "Shipped"
- },
- "account_order_detail.title.order_details": {
- "defaultMessage": "Order Details"
- },
- "account_order_history.button.continue_shopping": {
- "defaultMessage": "Continue Shopping"
- },
- "account_order_history.description.once_you_place_order": {
- "defaultMessage": "Once you place an order the details will show up here."
- },
- "account_order_history.heading.no_order_yet": {
- "defaultMessage": "You haven't placed an order yet."
- },
- "account_order_history.label.num_of_items": {
- "defaultMessage": "{count} items",
- "description": "Number of items in order"
- },
- "account_order_history.label.order_number": {
- "defaultMessage": "Order Number: {orderNumber}"
- },
- "account_order_history.label.ordered_date": {
- "defaultMessage": "Ordered: {date}"
- },
- "account_order_history.label.shipped_to": {
- "defaultMessage": "Shipped to: {name}"
- },
- "account_order_history.link.view_details": {
- "defaultMessage": "View details"
- },
- "account_order_history.title.order_history": {
- "defaultMessage": "Order History"
- },
- "account_wishlist.button.continue_shopping": {
- "defaultMessage": "Continue Shopping"
- },
- "account_wishlist.description.continue_shopping": {
- "defaultMessage": "Continue shopping and add items to your wishlist."
- },
- "account_wishlist.heading.no_wishlist": {
- "defaultMessage": "No Wishlist Items"
- },
- "account_wishlist.title.wishlist": {
- "defaultMessage": "Wishlist"
- },
- "action_card.action.edit": {
- "defaultMessage": "Edit"
- },
- "action_card.action.remove": {
- "defaultMessage": "Remove"
- },
- "add_to_cart_modal.info.added_to_cart": {
- "defaultMessage": "{quantity} {quantity, plural, one {item} other {items}} added to cart"
- },
- "add_to_cart_modal.label.cart_subtotal": {
- "defaultMessage": "Cart Subtotal ({itemAccumulatedCount} item)"
- },
- "add_to_cart_modal.label.quantity": {
- "defaultMessage": "Qty"
- },
- "add_to_cart_modal.link.checkout": {
- "defaultMessage": "Proceed to Checkout"
- },
- "add_to_cart_modal.link.view_cart": {
- "defaultMessage": "View Cart"
- },
- "add_to_cart_modal.recommended_products.title.might_also_like": {
- "defaultMessage": "You Might Also Like"
- },
- "auth_modal.button.close.assistive_msg": {
- "defaultMessage": "Close login form"
- },
- "auth_modal.check_email.button.resend_link": {
- "defaultMessage": "Resend Link"
- },
- "auth_modal.check_email.description.check_spam_folder": {
- "defaultMessage": "The link may take a few minutes to arrive, check your spam folder if you're having trouble finding it"
- },
- "auth_modal.check_email.description.just_sent": {
- "defaultMessage": "We just sent a login link to {email} "
- },
- "auth_modal.check_email.title.check_your_email": {
- "defaultMessage": "Check Your Email"
- },
- "auth_modal.description.now_signed_in": {
- "defaultMessage": "You're now signed in."
- },
- "auth_modal.error.incorrect_email_or_password": {
- "defaultMessage": "Something's not right with your email or password. Try again."
- },
- "auth_modal.info.welcome_user": {
- "defaultMessage": "Welcome {name},"
- },
- "auth_modal.password_reset_success.button.back_to_sign_in": {
- "defaultMessage": "Back to Sign In"
- },
- "auth_modal.password_reset_success.info.will_email_shortly": {
- "defaultMessage": "You will receive an email at {email} with a link to reset your password shortly."
- },
- "auth_modal.password_reset_success.title.password_reset": {
- "defaultMessage": "Password Reset"
- },
- "carousel.button.scroll_left.assistive_msg": {
- "defaultMessage": "Scroll carousel left"
- },
- "carousel.button.scroll_right.assistive_msg": {
- "defaultMessage": "Scroll carousel right"
- },
- "cart.info.removed_from_cart": {
- "defaultMessage": "Item removed from cart"
- },
- "cart.product_edit_modal.modal_label": {
- "defaultMessage": "Edit modal for {productName}"
- },
- "cart.recommended_products.title.may_also_like": {
- "defaultMessage": "You May Also Like"
- },
- "cart.recommended_products.title.recently_viewed": {
- "defaultMessage": "Recently Viewed"
- },
- "cart_cta.link.checkout": {
- "defaultMessage": "Proceed to Checkout"
- },
- "cart_secondary_button_group.action.added_to_wishlist": {
- "defaultMessage": "Add to Wishlist"
- },
- "cart_secondary_button_group.action.edit": {
- "defaultMessage": "Edit"
- },
- "cart_secondary_button_group.action.remove": {
- "defaultMessage": "Remove"
- },
- "cart_secondary_button_group.label.this_is_gift": {
- "defaultMessage": "This is a gift."
- },
- "cart_skeleton.heading.order_summary": {
- "defaultMessage": "Order Summary"
- },
- "cart_skeleton.title.cart": {
- "defaultMessage": "Cart"
- },
- "cart_title.title.cart_num_of_items": {
- "defaultMessage": "Cart ({itemCount, plural, =0 {0 items} one {# item} other {# items}})"
- },
- "category_links.button_text": {
- "defaultMessage": "Categories"
- },
- "cc_radio_group.action.remove": {
- "defaultMessage": "Remove"
- },
- "cc_radio_group.button.add_new_card": {
- "defaultMessage": "Add New Card"
- },
- "checkout.button.place_order": {
- "defaultMessage": "Place Order"
- },
- "checkout.message.generic_error": {
- "defaultMessage": "An unexpected error occurred during checkout."
- },
- "checkout_confirmation.button.create_account": {
- "defaultMessage": "Create Account"
- },
- "checkout_confirmation.heading.billing_address": {
- "defaultMessage": "Billing Address"
- },
- "checkout_confirmation.heading.create_account": {
- "defaultMessage": "Create an account for faster checkout"
- },
- "checkout_confirmation.heading.credit_card": {
- "defaultMessage": "Credit Card"
- },
- "checkout_confirmation.heading.delivery_details": {
- "defaultMessage": "Delivery Details"
- },
- "checkout_confirmation.heading.order_summary": {
- "defaultMessage": "Order Summary"
- },
- "checkout_confirmation.heading.payment_details": {
- "defaultMessage": "Payment Details"
- },
- "checkout_confirmation.heading.shipping_address": {
- "defaultMessage": "Shipping Address"
- },
- "checkout_confirmation.heading.shipping_method": {
- "defaultMessage": "Shipping Method"
- },
- "checkout_confirmation.heading.thank_you_for_order": {
- "defaultMessage": "Thank you for your order!"
- },
- "checkout_confirmation.label.free": {
- "defaultMessage": "Free"
- },
- "checkout_confirmation.label.order_number": {
- "defaultMessage": "Order Number"
- },
- "checkout_confirmation.label.order_total": {
- "defaultMessage": "Order Total"
- },
- "checkout_confirmation.label.promo_applied": {
- "defaultMessage": "Promotion applied"
- },
- "checkout_confirmation.label.shipping": {
- "defaultMessage": "Shipping"
- },
- "checkout_confirmation.label.shipping.strikethrough.price": {
- "defaultMessage": "Originally {originalPrice}, now {newPrice}"
- },
- "checkout_confirmation.label.subtotal": {
- "defaultMessage": "Subtotal"
- },
- "checkout_confirmation.label.tax": {
- "defaultMessage": "Tax"
- },
- "checkout_confirmation.link.continue_shopping": {
- "defaultMessage": "Continue Shopping"
- },
- "checkout_confirmation.link.login": {
- "defaultMessage": "Log in here"
- },
- "checkout_confirmation.message.already_has_account": {
- "defaultMessage": "This email already has an account."
- },
- "checkout_confirmation.message.num_of_items_in_order": {
- "defaultMessage": "{itemCount, plural, =0 {0 items} one {# item} other {# items}}",
- "description": "# item(s) in order"
- },
- "checkout_confirmation.message.will_email_shortly": {
- "defaultMessage": "We will send an email to {email} with your confirmation number and receipt shortly."
- },
- "checkout_footer.link.privacy_policy": {
- "defaultMessage": "Privacy Policy"
- },
- "checkout_footer.link.returns_exchanges": {
- "defaultMessage": "Returns & Exchanges"
- },
- "checkout_footer.link.shipping": {
- "defaultMessage": "Shipping"
- },
- "checkout_footer.link.site_map": {
- "defaultMessage": "Site Map"
- },
- "checkout_footer.link.terms_conditions": {
- "defaultMessage": "Terms & Conditions"
- },
- "checkout_footer.message.copyright": {
- "defaultMessage": "Salesforce or its affiliates. All rights reserved. This is a demo store only. Orders made WILL NOT be processed."
- },
- "checkout_header.link.assistive_msg.cart": {
- "defaultMessage": "Back to cart, number of items: {numItems}"
- },
- "checkout_header.link.cart": {
- "defaultMessage": "Back to cart"
- },
- "checkout_payment.action.remove": {
- "defaultMessage": "Remove"
- },
- "checkout_payment.button.review_order": {
- "defaultMessage": "Review Order"
- },
- "checkout_payment.heading.billing_address": {
- "defaultMessage": "Billing Address"
- },
- "checkout_payment.heading.credit_card": {
- "defaultMessage": "Credit Card"
- },
- "checkout_payment.label.billing_address_form": {
- "defaultMessage": "Billing Address Form"
- },
- "checkout_payment.label.same_as_shipping": {
- "defaultMessage": "Same as shipping address"
- },
- "checkout_payment.title.payment": {
- "defaultMessage": "Payment"
- },
- "colorRefinements.label.hitCount": {
- "defaultMessage": "{colorLabel} ({colorHitCount})"
- },
- "confirmation_modal.default.action.no": {
- "defaultMessage": "No"
- },
- "confirmation_modal.default.action.yes": {
- "defaultMessage": "Yes"
- },
- "confirmation_modal.default.assistive_msg.no": {
- "defaultMessage": "No, cancel action"
- },
- "confirmation_modal.default.assistive_msg.yes": {
- "defaultMessage": "Yes, confirm action"
- },
- "confirmation_modal.default.message.you_want_to_continue": {
- "defaultMessage": "Are you sure you want to continue?"
- },
- "confirmation_modal.default.title.confirm_action": {
- "defaultMessage": "Confirm Action"
- },
- "confirmation_modal.remove_cart_item.action.no": {
- "defaultMessage": "No, keep item"
- },
- "confirmation_modal.remove_cart_item.action.remove": {
- "defaultMessage": "Remove"
- },
- "confirmation_modal.remove_cart_item.action.yes": {
- "defaultMessage": "Yes, remove item"
- },
- "confirmation_modal.remove_cart_item.assistive_msg.no": {
- "defaultMessage": "No, keep item"
- },
- "confirmation_modal.remove_cart_item.assistive_msg.remove": {
- "defaultMessage": "Remove unavailable products"
- },
- "confirmation_modal.remove_cart_item.assistive_msg.yes": {
- "defaultMessage": "Yes, remove item"
- },
- "confirmation_modal.remove_cart_item.message.need_to_remove_due_to_unavailability": {
- "defaultMessage": "Some items are no longer available online and will be removed from your cart."
- },
- "confirmation_modal.remove_cart_item.message.sure_to_remove": {
- "defaultMessage": "Are you sure you want to remove this item from your cart?"
- },
- "confirmation_modal.remove_cart_item.title.confirm_remove": {
- "defaultMessage": "Confirm Remove Item"
- },
- "confirmation_modal.remove_cart_item.title.items_unavailable": {
- "defaultMessage": "Items Unavailable"
- },
- "confirmation_modal.remove_wishlist_item.action.no": {
- "defaultMessage": "No, keep item"
- },
- "confirmation_modal.remove_wishlist_item.action.yes": {
- "defaultMessage": "Yes, remove item"
- },
- "confirmation_modal.remove_wishlist_item.message.sure_to_remove": {
- "defaultMessage": "Are you sure you want to remove this item from your wishlist?"
- },
- "confirmation_modal.remove_wishlist_item.title.confirm_remove": {
- "defaultMessage": "Confirm Remove Item"
- },
- "contact_info.action.sign_out": {
- "defaultMessage": "Sign Out"
- },
- "contact_info.button.already_have_account": {
- "defaultMessage": "Already have an account? Log in"
- },
- "contact_info.button.back_to_sign_in_options": {
- "defaultMessage": "Back to Sign In Options"
- },
- "contact_info.button.checkout_as_guest": {
- "defaultMessage": "Checkout as Guest"
- },
- "contact_info.button.login": {
- "defaultMessage": "Log In"
- },
- "contact_info.button.password": {
- "defaultMessage": "Password"
- },
- "contact_info.button.secure_link": {
- "defaultMessage": "Secure Link"
- },
- "contact_info.error.incorrect_username_or_password": {
- "defaultMessage": "Incorrect username or password, please try again."
- },
- "contact_info.link.forgot_password": {
- "defaultMessage": "Forgot password?"
- },
- "contact_info.message.or_login_with": {
- "defaultMessage": "Or Login With"
- },
- "contact_info.title.contact_info": {
- "defaultMessage": "Contact Info"
- },
- "credit_card_fields.tool_tip.security_code": {
- "defaultMessage": "This 3-digit code can be found on the back of your card.",
- "description": "Generic credit card security code help text"
- },
- "credit_card_fields.tool_tip.security_code.american_express": {
- "defaultMessage": "This 4-digit code can be found on the front of your card.",
- "description": "American Express security code help text"
- },
- "credit_card_fields.tool_tip.security_code_aria_label": {
- "defaultMessage": "Security code info"
- },
- "display_price.assistive_msg.current_price": {
- "defaultMessage": "current price {currentPrice}"
- },
- "display_price.assistive_msg.current_price_with_range": {
- "defaultMessage": "From current price {currentPrice}"
- },
- "display_price.assistive_msg.strikethrough_price": {
- "defaultMessage": "original price {listPrice}"
- },
- "display_price.assistive_msg.strikethrough_price_with_range": {
- "defaultMessage": "From original price {listPrice}"
- },
- "display_price.label.current_price_with_range": {
- "defaultMessage": "From {currentPrice}"
- },
- "dnt_notification.button.accept": {
- "defaultMessage": "Accept"
- },
- "dnt_notification.button.assistive_msg.accept": {
- "defaultMessage": "Accept tracking"
- },
- "dnt_notification.button.assistive_msg.close": {
- "defaultMessage": "Close consent tracking form"
- },
- "dnt_notification.button.assistive_msg.decline": {
- "defaultMessage": "Decline tracking"
- },
- "dnt_notification.button.decline": {
- "defaultMessage": "Decline"
- },
- "dnt_notification.description": {
- "defaultMessage": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur."
- },
- "dnt_notification.title": {
- "defaultMessage": "Tracking Consent"
- },
- "drawer_menu.button.account_details": {
- "defaultMessage": "Account Details"
- },
- "drawer_menu.button.addresses": {
- "defaultMessage": "Addresses"
- },
- "drawer_menu.button.log_out": {
- "defaultMessage": "Log Out"
- },
- "drawer_menu.button.my_account": {
- "defaultMessage": "My Account"
- },
- "drawer_menu.button.order_history": {
- "defaultMessage": "Order History"
- },
- "drawer_menu.header.assistive_msg.title": {
- "defaultMessage": "Menu Drawer"
- },
- "drawer_menu.link.about_us": {
- "defaultMessage": "About Us"
- },
- "drawer_menu.link.customer_support": {
- "defaultMessage": "Customer Support"
- },
- "drawer_menu.link.customer_support.contact_us": {
- "defaultMessage": "Contact Us"
- },
- "drawer_menu.link.customer_support.shipping_and_returns": {
- "defaultMessage": "Shipping & Returns"
- },
- "drawer_menu.link.our_company": {
- "defaultMessage": "Our Company"
- },
- "drawer_menu.link.privacy_and_security": {
- "defaultMessage": "Privacy & Security"
- },
- "drawer_menu.link.privacy_policy": {
- "defaultMessage": "Privacy Policy"
- },
- "drawer_menu.link.shop_all": {
- "defaultMessage": "Shop All"
- },
- "drawer_menu.link.sign_in": {
- "defaultMessage": "Sign In"
- },
- "drawer_menu.link.site_map": {
- "defaultMessage": "Site Map"
- },
- "drawer_menu.link.store_locator": {
- "defaultMessage": "Store Locator"
- },
- "drawer_menu.link.terms_and_conditions": {
- "defaultMessage": "Terms & Conditions"
- },
- "empty_cart.description.empty_cart": {
- "defaultMessage": "Your cart is empty."
- },
- "empty_cart.link.continue_shopping": {
- "defaultMessage": "Continue Shopping"
- },
- "empty_cart.link.sign_in": {
- "defaultMessage": "Sign In"
- },
- "empty_cart.message.continue_shopping": {
- "defaultMessage": "Continue shopping to add items to your cart."
- },
- "empty_cart.message.sign_in_or_continue_shopping": {
- "defaultMessage": "Sign in to retrieve your saved items or continue shopping."
- },
- "empty_search_results.info.cant_find_anything_for_category": {
- "defaultMessage": "We couldn’t find anything for {category}. Try searching for a product or {link}."
- },
- "empty_search_results.info.cant_find_anything_for_query": {
- "defaultMessage": "We couldn’t find anything for \"{searchQuery}\"."
- },
- "empty_search_results.info.double_check_spelling": {
- "defaultMessage": "Double-check your spelling and try again or {link}."
- },
- "empty_search_results.link.contact_us": {
- "defaultMessage": "Contact Us"
- },
- "empty_search_results.recommended_products.title.most_viewed": {
- "defaultMessage": "Most Viewed"
- },
- "empty_search_results.recommended_products.title.top_sellers": {
- "defaultMessage": "Top Sellers"
- },
- "field.password.assistive_msg.hide_password": {
- "defaultMessage": "Hide password"
- },
- "field.password.assistive_msg.show_password": {
- "defaultMessage": "Show password"
- },
- "footer.column.account": {
- "defaultMessage": "Account"
- },
- "footer.column.customer_support": {
- "defaultMessage": "Customer Support"
- },
- "footer.column.our_company": {
- "defaultMessage": "Our Company"
- },
- "footer.link.about_us": {
- "defaultMessage": "About Us"
- },
- "footer.link.contact_us": {
- "defaultMessage": "Contact Us"
- },
- "footer.link.order_status": {
- "defaultMessage": "Order Status"
- },
- "footer.link.privacy_policy": {
- "defaultMessage": "Privacy Policy"
- },
- "footer.link.shipping": {
- "defaultMessage": "Shipping"
- },
- "footer.link.signin_create_account": {
- "defaultMessage": "Sign in or create account"
- },
- "footer.link.site_map": {
- "defaultMessage": "Site Map"
- },
- "footer.link.store_locator": {
- "defaultMessage": "Store Locator"
- },
- "footer.link.terms_conditions": {
- "defaultMessage": "Terms & Conditions"
- },
- "footer.locale_selector.assistive_msg": {
- "defaultMessage": "Select Language"
- },
- "footer.message.copyright": {
- "defaultMessage": "Salesforce or its affiliates. All rights reserved. This is a demo store only. Orders made WILL NOT be processed."
- },
- "footer.subscribe.button.sign_up": {
- "defaultMessage": "Sign Up"
- },
- "footer.subscribe.description.sign_up": {
- "defaultMessage": "Sign up to stay in the loop about the hottest deals"
- },
- "footer.subscribe.email.assistive_msg": {
- "defaultMessage": "Email address for newsletter"
- },
- "footer.subscribe.heading.first_to_know": {
- "defaultMessage": "Be the first to know"
- },
- "form_action_buttons.button.cancel": {
- "defaultMessage": "Cancel"
- },
- "form_action_buttons.button.save": {
- "defaultMessage": "Save"
- },
- "global.account.link.account_details": {
- "defaultMessage": "Account Details"
- },
- "global.account.link.addresses": {
- "defaultMessage": "Addresses"
- },
- "global.account.link.order_history": {
- "defaultMessage": "Order History"
- },
- "global.account.link.wishlist": {
- "defaultMessage": "Wishlist"
- },
- "global.error.create_account": {
- "defaultMessage": "This feature is not currently available. You must create an account to access this feature."
- },
- "global.error.feature_unavailable": {
- "defaultMessage": "This feature is not currently available."
- },
- "global.error.invalid_token": {
- "defaultMessage": "Invalid token, please try again."
- },
- "global.error.something_went_wrong": {
- "defaultMessage": "Something went wrong. Try again!"
- },
- "global.info.added_to_wishlist": {
- "defaultMessage": "{quantity} {quantity, plural, one {item} other {items}} added to wishlist"
- },
- "global.info.already_in_wishlist": {
- "defaultMessage": "Item is already in wishlist"
- },
- "global.info.removed_from_wishlist": {
- "defaultMessage": "Item removed from wishlist"
- },
- "global.link.added_to_wishlist.view_wishlist": {
- "defaultMessage": "View"
- },
- "header.button.assistive_msg.logo": {
- "defaultMessage": "Logo"
- },
- "header.button.assistive_msg.menu": {
- "defaultMessage": "Menu"
- },
- "header.button.assistive_msg.menu.open_dialog": {
- "defaultMessage": "Opens a dialog"
- },
- "header.button.assistive_msg.my_account": {
- "defaultMessage": "My Account"
- },
- "header.button.assistive_msg.my_account_menu": {
- "defaultMessage": "Open account menu"
- },
- "header.button.assistive_msg.my_cart_with_num_items": {
- "defaultMessage": "My cart, number of items: {numItems}"
- },
- "header.button.assistive_msg.store_locator": {
- "defaultMessage": "Store Locator"
- },
- "header.button.assistive_msg.wishlist": {
- "defaultMessage": "Wishlist"
- },
- "header.field.placeholder.search_for_products": {
- "defaultMessage": "Search for products..."
- },
- "header.popover.action.log_out": {
- "defaultMessage": "Log out"
- },
- "header.popover.title.my_account": {
- "defaultMessage": "My Account"
- },
- "home.description.features": {
- "defaultMessage": "Out-of-the-box features so that you focus only on adding enhancements."
- },
- "home.description.here_to_help": {
- "defaultMessage": "Contact our support staff."
- },
- "home.description.here_to_help_line_2": {
- "defaultMessage": "They will get you to the right place."
- },
- "home.description.shop_products": {
- "defaultMessage": "This section contains content from the catalog. {docLink} on how to replace it.",
- "description": "{docLink} is a html button that links the user to https://sfdc.co/business-manager-manage-catalogs"
- },
- "home.features.description.cart_checkout": {
- "defaultMessage": "Ecommerce best practice for a shopper's cart and checkout experience."
- },
- "home.features.description.components": {
- "defaultMessage": "Built using Chakra UI, a simple, modular and accessible React component library."
- },
- "home.features.description.einstein_recommendations": {
- "defaultMessage": "Deliver the next best product or offer to every shopper through product recommendations."
- },
- "home.features.description.my_account": {
- "defaultMessage": "Shoppers can manage account information such as their profile, addresses, payments and orders."
- },
- "home.features.description.shopper_login": {
- "defaultMessage": "Enable shoppers to easily log in with a more personalized shopping experience."
- },
- "home.features.description.wishlist": {
- "defaultMessage": "Registered shoppers can add product items to their wishlist from purchasing later."
- },
- "home.features.heading.cart_checkout": {
- "defaultMessage": "Cart & Checkout"
- },
- "home.features.heading.components": {
- "defaultMessage": "Components & Design Kit"
- },
- "home.features.heading.einstein_recommendations": {
- "defaultMessage": "Einstein Recommendations"
- },
- "home.features.heading.my_account": {
- "defaultMessage": "My Account"
- },
- "home.features.heading.shopper_login": {
- "defaultMessage": "Shopper Login and API Access Service"
- },
- "home.features.heading.wishlist": {
- "defaultMessage": "Wishlist"
- },
- "home.heading.features": {
- "defaultMessage": "Features"
- },
- "home.heading.here_to_help": {
- "defaultMessage": "We're here to help"
- },
- "home.heading.shop_products": {
- "defaultMessage": "Shop Products"
- },
- "home.hero_features.link.design_kit": {
- "defaultMessage": "Create with the Figma PWA Design Kit"
- },
- "home.hero_features.link.on_github": {
- "defaultMessage": "Download on Github"
- },
- "home.hero_features.link.on_managed_runtime": {
- "defaultMessage": "Deploy on Managed Runtime"
- },
- "home.link.contact_us": {
- "defaultMessage": "Contact Us"
- },
- "home.link.get_started": {
- "defaultMessage": "Get started"
- },
- "home.link.read_docs": {
- "defaultMessage": "Read docs"
- },
- "home.title.react_starter_store": {
- "defaultMessage": "The React PWA Starter Store for Retail"
- },
- "icons.assistive_msg.lock": {
- "defaultMessage": "Secure"
- },
- "item_attributes.label.promotions": {
- "defaultMessage": "Promotions"
- },
- "item_attributes.label.quantity": {
- "defaultMessage": "Quantity: {quantity}"
- },
- "item_attributes.label.selected_options": {
- "defaultMessage": "Selected Options"
- },
- "item_image.label.sale": {
- "defaultMessage": "Sale",
- "description": "A sale badge placed on top of a product image"
- },
- "item_image.label.unavailable": {
- "defaultMessage": "Unavailable",
- "description": "A unavailable badge placed on top of a product image"
- },
- "item_variant.assistive_msg.quantity": {
- "defaultMessage": "Quantity {quantity}"
- },
- "item_variant.quantity.label": {
- "defaultMessage": "Quantity selector for {productName}. Selected quantity is {quantity}"
- },
- "lCPCxk": {
- "defaultMessage": "Please select all your options above"
- },
- "list_menu.nav.assistive_msg": {
- "defaultMessage": "Main navigation"
- },
- "locale_text.message.ar-SA": {
- "defaultMessage": "Arabic (Saudi Arabia)"
- },
- "locale_text.message.bn-BD": {
- "defaultMessage": "Bangla (Bangladesh)"
- },
- "locale_text.message.bn-IN": {
- "defaultMessage": "Bangla (India)"
- },
- "locale_text.message.cs-CZ": {
- "defaultMessage": "Czech (Czech Republic)"
- },
- "locale_text.message.da-DK": {
- "defaultMessage": "Danish (Denmark)"
- },
- "locale_text.message.de-AT": {
- "defaultMessage": "German (Austria)"
- },
- "locale_text.message.de-CH": {
- "defaultMessage": "German (Switzerland)"
- },
- "locale_text.message.de-DE": {
- "defaultMessage": "German (Germany)"
- },
- "locale_text.message.el-GR": {
- "defaultMessage": "Greek (Greece)"
- },
- "locale_text.message.en-AU": {
- "defaultMessage": "English (Australia)"
- },
- "locale_text.message.en-CA": {
- "defaultMessage": "English (Canada)"
- },
- "locale_text.message.en-GB": {
- "defaultMessage": "English (United Kingdom)"
- },
- "locale_text.message.en-IE": {
- "defaultMessage": "English (Ireland)"
- },
- "locale_text.message.en-IN": {
- "defaultMessage": "English (India)"
- },
- "locale_text.message.en-NZ": {
- "defaultMessage": "English (New Zealand)"
- },
- "locale_text.message.en-US": {
- "defaultMessage": "English (United States)"
- },
- "locale_text.message.en-ZA": {
- "defaultMessage": "English (South Africa)"
- },
- "locale_text.message.es-AR": {
- "defaultMessage": "Spanish (Argentina)"
- },
- "locale_text.message.es-CL": {
- "defaultMessage": "Spanish (Chile)"
- },
- "locale_text.message.es-CO": {
- "defaultMessage": "Spanish (Columbia)"
- },
- "locale_text.message.es-ES": {
- "defaultMessage": "Spanish (Spain)"
- },
- "locale_text.message.es-MX": {
- "defaultMessage": "Spanish (Mexico)"
- },
- "locale_text.message.es-US": {
- "defaultMessage": "Spanish (United States)"
- },
- "locale_text.message.fi-FI": {
- "defaultMessage": "Finnish (Finland)"
- },
- "locale_text.message.fr-BE": {
- "defaultMessage": "French (Belgium)"
- },
- "locale_text.message.fr-CA": {
- "defaultMessage": "French (Canada)"
- },
- "locale_text.message.fr-CH": {
- "defaultMessage": "French (Switzerland)"
- },
- "locale_text.message.fr-FR": {
- "defaultMessage": "French (France)"
- },
- "locale_text.message.he-IL": {
- "defaultMessage": "Hebrew (Israel)"
- },
- "locale_text.message.hi-IN": {
- "defaultMessage": "Hindi (India)"
- },
- "locale_text.message.hu-HU": {
- "defaultMessage": "Hungarian (Hungary)"
- },
- "locale_text.message.id-ID": {
- "defaultMessage": "Indonesian (Indonesia)"
- },
- "locale_text.message.it-CH": {
- "defaultMessage": "Italian (Switzerland)"
- },
- "locale_text.message.it-IT": {
- "defaultMessage": "Italian (Italy)"
- },
- "locale_text.message.ja-JP": {
- "defaultMessage": "Japanese (Japan)"
- },
- "locale_text.message.ko-KR": {
- "defaultMessage": "Korean (Republic of Korea)"
- },
- "locale_text.message.nl-BE": {
- "defaultMessage": "Dutch (Belgium)"
- },
- "locale_text.message.nl-NL": {
- "defaultMessage": "Dutch (The Netherlands)"
- },
- "locale_text.message.no-NO": {
- "defaultMessage": "Norwegian (Norway)"
- },
- "locale_text.message.pl-PL": {
- "defaultMessage": "Polish (Poland)"
- },
- "locale_text.message.pt-BR": {
- "defaultMessage": "Portuguese (Brazil)"
- },
- "locale_text.message.pt-PT": {
- "defaultMessage": "Portuguese (Portugal)"
- },
- "locale_text.message.ro-RO": {
- "defaultMessage": "Romanian (Romania)"
- },
- "locale_text.message.ru-RU": {
- "defaultMessage": "Russian (Russian Federation)"
- },
- "locale_text.message.sk-SK": {
- "defaultMessage": "Slovak (Slovakia)"
- },
- "locale_text.message.sv-SE": {
- "defaultMessage": "Swedish (Sweden)"
- },
- "locale_text.message.ta-IN": {
- "defaultMessage": "Tamil (India)"
- },
- "locale_text.message.ta-LK": {
- "defaultMessage": "Tamil (Sri Lanka)"
- },
- "locale_text.message.th-TH": {
- "defaultMessage": "Thai (Thailand)"
- },
- "locale_text.message.tr-TR": {
- "defaultMessage": "Turkish (Turkey)"
- },
- "locale_text.message.zh-CN": {
- "defaultMessage": "Chinese (China)"
- },
- "locale_text.message.zh-HK": {
- "defaultMessage": "Chinese (Hong Kong)"
- },
- "locale_text.message.zh-TW": {
- "defaultMessage": "Chinese (Taiwan)"
- },
- "login_form.action.create_account": {
- "defaultMessage": "Create account"
- },
- "login_form.button.apple": {
- "defaultMessage": "Apple"
- },
- "login_form.button.back": {
- "defaultMessage": "Back to Sign In Options"
- },
- "login_form.button.continue_securely": {
- "defaultMessage": "Continue Securely"
- },
- "login_form.button.google": {
- "defaultMessage": "Google"
- },
- "login_form.button.password": {
- "defaultMessage": "Password"
- },
- "login_form.button.sign_in": {
- "defaultMessage": "Sign In"
- },
- "login_form.link.forgot_password": {
- "defaultMessage": "Forgot password?"
- },
- "login_form.message.dont_have_account": {
- "defaultMessage": "Don't have an account?"
- },
- "login_form.message.or_login_with": {
- "defaultMessage": "Or Login With"
- },
- "login_form.message.welcome_back": {
- "defaultMessage": "Welcome Back"
- },
- "login_page.error.incorrect_username_or_password": {
- "defaultMessage": "Incorrect username or password, please try again."
- },
- "offline_banner.description.browsing_offline_mode": {
- "defaultMessage": "You're currently browsing in offline mode"
- },
- "order_summary.action.remove_promo": {
- "defaultMessage": "Remove"
- },
- "order_summary.cart_items.action.num_of_items_in_cart": {
- "defaultMessage": "{itemCount, plural, =0 {0 items} one {# item} other {# items}} in cart",
- "description": "clicking it would expand/show the items in cart"
- },
- "order_summary.cart_items.link.edit_cart": {
- "defaultMessage": "Edit cart"
- },
- "order_summary.heading.order_summary": {
- "defaultMessage": "Order Summary"
- },
- "order_summary.label.estimated_total": {
- "defaultMessage": "Estimated Total"
- },
- "order_summary.label.free": {
- "defaultMessage": "Free"
- },
- "order_summary.label.order_total": {
- "defaultMessage": "Order Total"
- },
- "order_summary.label.promo_applied": {
- "defaultMessage": "Promotion applied"
- },
- "order_summary.label.promotions_applied": {
- "defaultMessage": "Promotions applied"
- },
- "order_summary.label.shipping": {
- "defaultMessage": "Shipping"
- },
- "order_summary.label.subtotal": {
- "defaultMessage": "Subtotal"
- },
- "order_summary.label.tax": {
- "defaultMessage": "Tax"
- },
- "page_not_found.action.go_back": {
- "defaultMessage": "Back to previous page"
- },
- "page_not_found.link.homepage": {
- "defaultMessage": "Go to home page"
- },
- "page_not_found.message.suggestion_to_try": {
- "defaultMessage": "Please try retyping the address, going back to the previous page, or going to the home page."
- },
- "page_not_found.title.page_cant_be_found": {
- "defaultMessage": "The page you're looking for can't be found."
- },
- "pagination.field.num_of_pages": {
- "defaultMessage": "of {numOfPages}"
- },
- "pagination.field.page_number_select": {
- "defaultMessage": "Select page number"
- },
- "pagination.link.next": {
- "defaultMessage": "Next"
- },
- "pagination.link.next.assistive_msg": {
- "defaultMessage": "Next Page"
- },
- "pagination.link.prev": {
- "defaultMessage": "Prev"
- },
- "pagination.link.prev.assistive_msg": {
- "defaultMessage": "Previous Page"
- },
- "password_card.info.password_updated": {
- "defaultMessage": "Password updated"
- },
- "password_card.label.password": {
- "defaultMessage": "Password"
- },
- "password_card.title.password": {
- "defaultMessage": "Password"
- },
- "password_requirements.error.eight_letter_minimum": {
- "defaultMessage": "8 characters minimum",
- "description": "Password requirement"
- },
- "password_requirements.error.one_lowercase_letter": {
- "defaultMessage": "1 lowercase letter",
- "description": "Password requirement"
- },
- "password_requirements.error.one_number": {
- "defaultMessage": "1 number",
- "description": "Password requirement"
- },
- "password_requirements.error.one_special_character": {
- "defaultMessage": "1 special character (example: , S ! % #)",
- "description": "Password requirement"
- },
- "password_requirements.error.one_uppercase_letter": {
- "defaultMessage": "1 uppercase letter",
- "description": "Password requirement"
- },
- "password_reset_success.toast": {
- "defaultMessage": "Password Reset Success"
- },
- "payment_selection.heading.credit_card": {
- "defaultMessage": "Credit Card"
- },
- "payment_selection.radio_group.assistive_msg": {
- "defaultMessage": "Payment"
- },
- "payment_selection.tooltip.secure_payment": {
- "defaultMessage": "This is a secure SSL encrypted payment."
- },
- "price_per_item.label.each": {
- "defaultMessage": "ea",
- "description": "Abbreviated 'each', follows price per item, like $10/ea"
- },
- "product_detail.accordion.button.product_detail": {
- "defaultMessage": "Product Detail"
- },
- "product_detail.accordion.button.questions": {
- "defaultMessage": "Questions"
- },
- "product_detail.accordion.button.reviews": {
- "defaultMessage": "Reviews"
- },
- "product_detail.accordion.button.size_fit": {
- "defaultMessage": "Size & Fit"
- },
- "product_detail.accordion.message.coming_soon": {
- "defaultMessage": "Coming Soon"
- },
- "product_detail.recommended_products.title.complete_set": {
- "defaultMessage": "Complete the Set"
- },
- "product_detail.recommended_products.title.might_also_like": {
- "defaultMessage": "You might also like"
- },
- "product_detail.recommended_products.title.recently_viewed": {
- "defaultMessage": "Recently Viewed"
- },
- "product_item.label.quantity": {
- "defaultMessage": "Quantity:"
- },
- "product_list.button.filter": {
- "defaultMessage": "Filter"
- },
- "product_list.button.sort_by": {
- "defaultMessage": "Sort By: {sortOption}"
- },
- "product_list.drawer.title.sort_by": {
- "defaultMessage": "Sort By"
- },
- "product_list.modal.button.clear_filters": {
- "defaultMessage": "Clear Filters"
- },
- "product_list.modal.button.view_items": {
- "defaultMessage": "View {prroductCount} items"
- },
- "product_list.modal.title.filter": {
- "defaultMessage": "Filter"
- },
- "product_list.refinements.button.assistive_msg.add_filter": {
- "defaultMessage": "Add filter: {label}"
- },
- "product_list.refinements.button.assistive_msg.add_filter_with_hit_count": {
- "defaultMessage": "Add filter: {label} ({hitCount})"
- },
- "product_list.refinements.button.assistive_msg.remove_filter": {
- "defaultMessage": "Remove filter: {label}"
- },
- "product_list.refinements.button.assistive_msg.remove_filter_with_hit_count": {
- "defaultMessage": "Remove filter: {label} ({hitCount})"
- },
- "product_list.select.sort_by": {
- "defaultMessage": "Sort By: {sortOption}"
- },
- "product_list.sort_by.label.assistive_msg": {
- "defaultMessage": "Sort products by"
- },
- "product_scroller.assistive_msg.scroll_left": {
- "defaultMessage": "Scroll products left"
- },
- "product_scroller.assistive_msg.scroll_right": {
- "defaultMessage": "Scroll products right"
- },
- "product_tile.assistive_msg.add_to_wishlist": {
- "defaultMessage": "Add {product} to wishlist"
- },
- "product_tile.assistive_msg.remove_from_wishlist": {
- "defaultMessage": "Remove {product} from wishlist"
- },
- "product_tile.badge.label.new": {
- "defaultMessage": "New"
- },
- "product_tile.badge.label.sale": {
- "defaultMessage": "Sale"
- },
- "product_view.button.add_bundle_to_cart": {
- "defaultMessage": "Add Bundle to Cart"
- },
- "product_view.button.add_bundle_to_wishlist": {
- "defaultMessage": "Add Bundle to Wishlist"
- },
- "product_view.button.add_set_to_cart": {
- "defaultMessage": "Add Set to Cart"
- },
- "product_view.button.add_set_to_wishlist": {
- "defaultMessage": "Add Set to Wishlist"
- },
- "product_view.button.add_to_cart": {
- "defaultMessage": "Add to Cart"
- },
- "product_view.button.add_to_wishlist": {
- "defaultMessage": "Add to Wishlist"
- },
- "product_view.button.update": {
- "defaultMessage": "Update"
- },
- "product_view.label.assistive_msg.quantity_decrement": {
- "defaultMessage": "Decrement Quantity for {productName}"
- },
- "product_view.label.assistive_msg.quantity_increment": {
- "defaultMessage": "Increment Quantity for {productName}"
- },
- "product_view.label.quantity": {
- "defaultMessage": "Quantity"
- },
- "product_view.label.quantity_decrement": {
- "defaultMessage": "−"
- },
- "product_view.label.quantity_increment": {
- "defaultMessage": "+"
- },
- "product_view.label.variant_type": {
- "defaultMessage": "{variantType}"
- },
- "product_view.link.full_details": {
- "defaultMessage": "See full details"
- },
- "profile_card.info.profile_updated": {
- "defaultMessage": "Profile updated"
- },
- "profile_card.label.email": {
- "defaultMessage": "Email"
- },
- "profile_card.label.full_name": {
- "defaultMessage": "Full Name"
- },
- "profile_card.label.phone": {
- "defaultMessage": "Phone Number"
- },
- "profile_card.message.not_provided": {
- "defaultMessage": "Not provided"
- },
- "profile_card.title.my_profile": {
- "defaultMessage": "My Profile"
- },
- "profile_fields.label.profile_form": {
- "defaultMessage": "Profile Form"
- },
- "promo_code_fields.button.apply": {
- "defaultMessage": "Apply"
- },
- "promo_popover.assistive_msg.info": {
- "defaultMessage": "Info"
- },
- "promo_popover.heading.promo_applied": {
- "defaultMessage": "Promotions Applied"
- },
- "promocode.accordion.button.have_promocode": {
- "defaultMessage": "Do you have a promo code?"
- },
- "recent_searches.action.clear_searches": {
- "defaultMessage": "Clear recent searches"
- },
- "recent_searches.heading.recent_searches": {
- "defaultMessage": "Recent Searches"
- },
- "register_form.action.sign_in": {
- "defaultMessage": "Sign in"
- },
- "register_form.button.create_account": {
- "defaultMessage": "Create Account"
- },
- "register_form.heading.lets_get_started": {
- "defaultMessage": "Let's get started!"
- },
- "register_form.message.agree_to_policy_terms": {
- "defaultMessage": "By creating an account, you agree to Salesforce Privacy Policy and Terms & Conditions "
- },
- "register_form.message.already_have_account": {
- "defaultMessage": "Already have an account?"
- },
- "register_form.message.create_an_account": {
- "defaultMessage": "Create an account and get first access to the very best products, inspiration and community."
- },
- "reset_password_form.action.sign_in": {
- "defaultMessage": "Sign in"
- },
- "reset_password_form.button.reset_password": {
- "defaultMessage": "Reset Password"
- },
- "reset_password_form.message.enter_your_email": {
- "defaultMessage": "Enter your email to receive instructions on how to reset your password"
- },
- "reset_password_form.message.return_to_sign_in": {
- "defaultMessage": "Or return to",
- "description": "Precedes link to return to sign in"
- },
- "reset_password_form.title.reset_password": {
- "defaultMessage": "Reset Password"
- },
- "search.action.cancel": {
- "defaultMessage": "Cancel"
- },
- "selected_refinements.action.assistive_msg.clear_all": {
- "defaultMessage": "Clear all filters"
- },
- "selected_refinements.action.clear_all": {
- "defaultMessage": "Clear All"
- },
- "shipping_address.button.continue_to_shipping": {
- "defaultMessage": "Continue to Shipping Method"
- },
- "shipping_address.label.edit_button": {
- "defaultMessage": "Edit {address}"
- },
- "shipping_address.label.remove_button": {
- "defaultMessage": "Remove {address}"
- },
- "shipping_address.label.shipping_address_form": {
- "defaultMessage": "Shipping Address Form"
- },
- "shipping_address.title.shipping_address": {
- "defaultMessage": "Shipping Address"
- },
- "shipping_address_edit_form.button.save_and_continue": {
- "defaultMessage": "Save & Continue to Shipping Method"
- },
- "shipping_address_form.heading.edit_address": {
- "defaultMessage": "Edit Address"
- },
- "shipping_address_form.heading.new_address": {
- "defaultMessage": "Add New Address"
- },
- "shipping_address_selection.button.add_address": {
- "defaultMessage": "Add New Address"
- },
- "shipping_address_selection.button.submit": {
- "defaultMessage": "Submit"
- },
- "shipping_address_selection.title.add_address": {
- "defaultMessage": "Add New Address"
- },
- "shipping_address_selection.title.edit_shipping": {
- "defaultMessage": "Edit Shipping Address"
- },
- "shipping_options.action.send_as_a_gift": {
- "defaultMessage": "Do you want to send this as a gift?"
- },
- "shipping_options.button.continue_to_payment": {
- "defaultMessage": "Continue to Payment"
- },
- "shipping_options.title.shipping_gift_options": {
- "defaultMessage": "Shipping & Gift Options"
- },
- "signout_confirmation_dialog.button.cancel": {
- "defaultMessage": "Cancel"
- },
- "signout_confirmation_dialog.button.sign_out": {
- "defaultMessage": "Sign Out"
- },
- "signout_confirmation_dialog.heading.sign_out": {
- "defaultMessage": "Sign Out"
- },
- "signout_confirmation_dialog.message.sure_to_sign_out": {
- "defaultMessage": "Are you sure you want to sign out? You will need to sign back in to proceed with your current order."
- },
- "social_login_redirect.message.authenticating": {
- "defaultMessage": "Authenticating..."
- },
- "social_login_redirect.message.redirect_link": {
- "defaultMessage": "If you are not automatically redirected, click this link to proceed."
- },
- "store_locator.action.find": {
- "defaultMessage": "Find"
- },
- "store_locator.action.select_a_country": {
- "defaultMessage": "Select a country"
- },
- "store_locator.action.use_my_location": {
- "defaultMessage": "Use My Location"
- },
- "store_locator.action.viewMore": {
- "defaultMessage": "View More"
- },
- "store_locator.description.away": {
- "defaultMessage": "away"
- },
- "store_locator.description.loading_locations": {
- "defaultMessage": "Loading locations..."
- },
- "store_locator.description.no_locations": {
- "defaultMessage": "Sorry, there are no locations in this area"
- },
- "store_locator.description.or": {
- "defaultMessage": "Or"
- },
- "store_locator.description.phone": {
- "defaultMessage": "Phone:"
- },
- "store_locator.description.viewing_near_postal_code": {
- "defaultMessage": "Viewing stores within {distance}{distanceUnit} of {postalCode} in"
- },
- "store_locator.description.viewing_near_your_location": {
- "defaultMessage": "Viewing stores near your location"
- },
- "store_locator.dropdown.germany": {
- "defaultMessage": "Germany"
- },
- "store_locator.dropdown.united_states": {
- "defaultMessage": "United States"
- },
- "store_locator.error.agree_to_share_your_location": {
- "defaultMessage": "Please agree to share your location"
- },
- "store_locator.error.please_enter_a_postal_code": {
- "defaultMessage": "Please enter a postal code."
- },
- "store_locator.error.please_select_a_country": {
- "defaultMessage": "Please select a country."
- },
- "store_locator.field.placeholder.enter_postal_code": {
- "defaultMessage": "Enter postal code"
- },
- "store_locator.pagination.load_more": {
- "defaultMessage": "Load More"
- },
- "store_locator.title": {
- "defaultMessage": "Find a Store"
- },
- "swatch_group.selected.label": {
- "defaultMessage": "{label}:"
- },
- "toggle_card.action.edit": {
- "defaultMessage": "Edit"
- },
- "toggle_card.action.editContactInfo": {
- "defaultMessage": "Edit Contact Info"
- },
- "toggle_card.action.editPaymentInfo": {
- "defaultMessage": "Edit Payment Info"
- },
- "toggle_card.action.editShippingAddress": {
- "defaultMessage": "Edit Shipping Address"
- },
- "toggle_card.action.editShippingOptions": {
- "defaultMessage": "Edit Shipping Options"
- },
- "update_password_fields.button.forgot_password": {
- "defaultMessage": "Forgot Password?"
- },
- "use_address_fields.error.please_enter_first_name": {
- "defaultMessage": "Please enter your first name."
- },
- "use_address_fields.error.please_enter_last_name": {
- "defaultMessage": "Please enter your last name."
- },
- "use_address_fields.error.please_enter_phone_number": {
- "defaultMessage": "Please enter your phone number."
- },
- "use_address_fields.error.please_enter_your_postal_or_zip": {
- "defaultMessage": "Please enter your zip code.",
- "description": "Error message for a blank zip code (US-specific checkout)"
- },
- "use_address_fields.error.please_select_your_address": {
- "defaultMessage": "Please enter your address."
- },
- "use_address_fields.error.please_select_your_city": {
- "defaultMessage": "Please enter your city."
- },
- "use_address_fields.error.please_select_your_country": {
- "defaultMessage": "Please select your country."
- },
- "use_address_fields.error.please_select_your_state_or_province": {
- "defaultMessage": "Please select your state.",
- "description": "Error message for a blank state (US-specific checkout)"
- },
- "use_address_fields.error.required": {
- "defaultMessage": "Required"
- },
- "use_address_fields.error.state_code_invalid": {
- "defaultMessage": "Please enter 2-letter state/province."
- },
- "use_address_fields.label.address": {
- "defaultMessage": "Address"
- },
- "use_address_fields.label.address_form": {
- "defaultMessage": "Address Form"
- },
- "use_address_fields.label.city": {
- "defaultMessage": "City"
- },
- "use_address_fields.label.country": {
- "defaultMessage": "Country"
- },
- "use_address_fields.label.first_name": {
- "defaultMessage": "First Name"
- },
- "use_address_fields.label.last_name": {
- "defaultMessage": "Last Name"
- },
- "use_address_fields.label.phone": {
- "defaultMessage": "Phone"
- },
- "use_address_fields.label.postal_code": {
- "defaultMessage": "Postal Code"
- },
- "use_address_fields.label.preferred": {
- "defaultMessage": "Set as default"
- },
- "use_address_fields.label.province": {
- "defaultMessage": "Province"
- },
- "use_address_fields.label.state": {
- "defaultMessage": "State"
- },
- "use_address_fields.label.zipCode": {
- "defaultMessage": "Zip Code"
- },
- "use_credit_card_fields.error.required": {
- "defaultMessage": "Required"
- },
- "use_credit_card_fields.error.required_card_number": {
- "defaultMessage": "Please enter your card number."
- },
- "use_credit_card_fields.error.required_expiry": {
- "defaultMessage": "Please enter your expiration date."
- },
- "use_credit_card_fields.error.required_name": {
- "defaultMessage": "Please enter your name as shown on your card."
- },
- "use_credit_card_fields.error.required_security_code": {
- "defaultMessage": "Please enter your security code."
- },
- "use_credit_card_fields.error.valid_card_number": {
- "defaultMessage": "Please enter a valid card number."
- },
- "use_credit_card_fields.error.valid_date": {
- "defaultMessage": "Please enter a valid date."
- },
- "use_credit_card_fields.error.valid_name": {
- "defaultMessage": "Please enter a valid name."
- },
- "use_credit_card_fields.error.valid_security_code": {
- "defaultMessage": "Please enter a valid security code."
- },
- "use_credit_card_fields.label.card_number": {
- "defaultMessage": "Card Number"
- },
- "use_credit_card_fields.label.card_type": {
- "defaultMessage": "Card Type"
- },
- "use_credit_card_fields.label.expiry": {
- "defaultMessage": "Expiration Date"
- },
- "use_credit_card_fields.label.name": {
- "defaultMessage": "Name on Card"
- },
- "use_credit_card_fields.label.security_code": {
- "defaultMessage": "Security Code"
- },
- "use_login_fields.error.required_email": {
- "defaultMessage": "Please enter your email address."
- },
- "use_login_fields.error.required_password": {
- "defaultMessage": "Please enter your password."
- },
- "use_login_fields.label.email": {
- "defaultMessage": "Email"
- },
- "use_login_fields.label.password": {
- "defaultMessage": "Password"
- },
- "use_product.message.inventory_remaining": {
- "defaultMessage": "Only {stockLevel} left!"
- },
- "use_product.message.inventory_remaining_for_product": {
- "defaultMessage": "Only {stockLevel} left for {productName}!"
- },
- "use_product.message.out_of_stock": {
- "defaultMessage": "Out of stock"
- },
- "use_product.message.out_of_stock_for_product": {
- "defaultMessage": "Out of stock for {productName}"
- },
- "use_profile_fields.error.required_email": {
- "defaultMessage": "Please enter a valid email address."
- },
- "use_profile_fields.error.required_first_name": {
- "defaultMessage": "Please enter your first name."
- },
- "use_profile_fields.error.required_last_name": {
- "defaultMessage": "Please enter your last name."
- },
- "use_profile_fields.error.required_phone": {
- "defaultMessage": "Please enter your phone number."
- },
- "use_profile_fields.label.email": {
- "defaultMessage": "Email"
- },
- "use_profile_fields.label.first_name": {
- "defaultMessage": "First Name"
- },
- "use_profile_fields.label.last_name": {
- "defaultMessage": "Last Name"
- },
- "use_profile_fields.label.phone": {
- "defaultMessage": "Phone Number"
- },
- "use_promo_code_fields.error.required_promo_code": {
- "defaultMessage": "Please provide a valid promo code."
- },
- "use_promo_code_fields.label.promo_code": {
- "defaultMessage": "Promo Code"
- },
- "use_promocode.error.check_the_code": {
- "defaultMessage": "Check the code and try again, it may already be applied or the promo has expired."
- },
- "use_promocode.info.promo_applied": {
- "defaultMessage": "Promotion applied"
- },
- "use_promocode.info.promo_removed": {
- "defaultMessage": "Promotion removed"
- },
- "use_registration_fields.error.contain_number": {
- "defaultMessage": "Password must contain at least one number."
- },
- "use_registration_fields.error.lowercase_letter": {
- "defaultMessage": "Password must contain at least one lowercase letter."
- },
- "use_registration_fields.error.minimum_characters": {
- "defaultMessage": "Password must contain at least 8 characters."
- },
- "use_registration_fields.error.required_email": {
- "defaultMessage": "Please enter a valid email address."
- },
- "use_registration_fields.error.required_first_name": {
- "defaultMessage": "Please enter your first name."
- },
- "use_registration_fields.error.required_last_name": {
- "defaultMessage": "Please enter your last name."
- },
- "use_registration_fields.error.required_password": {
- "defaultMessage": "Please create a password."
- },
- "use_registration_fields.error.special_character": {
- "defaultMessage": "Password must contain at least one special character."
- },
- "use_registration_fields.error.uppercase_letter": {
- "defaultMessage": "Password must contain at least one uppercase letter."
- },
- "use_registration_fields.label.email": {
- "defaultMessage": "Email"
- },
- "use_registration_fields.label.first_name": {
- "defaultMessage": "First Name"
- },
- "use_registration_fields.label.last_name": {
- "defaultMessage": "Last Name"
- },
- "use_registration_fields.label.password": {
- "defaultMessage": "Password"
- },
- "use_registration_fields.label.sign_up_to_emails": {
- "defaultMessage": "Sign me up for Salesforce emails (you can unsubscribe at any time)"
- },
- "use_reset_password_fields.error.required_email": {
- "defaultMessage": "Please enter a valid email address."
- },
- "use_reset_password_fields.label.email": {
- "defaultMessage": "Email"
- },
- "use_update_password_fields.error.contain_number": {
- "defaultMessage": "Password must contain at least one number."
- },
- "use_update_password_fields.error.lowercase_letter": {
- "defaultMessage": "Password must contain at least one lowercase letter."
- },
- "use_update_password_fields.error.minimum_characters": {
- "defaultMessage": "Password must contain at least 8 characters."
- },
- "use_update_password_fields.error.password_mismatch": {
- "defaultMessage": "Passwords do not match."
- },
- "use_update_password_fields.error.required_confirm_password": {
- "defaultMessage": "Please confirm your password."
- },
- "use_update_password_fields.error.required_new_password": {
- "defaultMessage": "Please provide a new password."
- },
- "use_update_password_fields.error.required_password": {
- "defaultMessage": "Please enter your password."
- },
- "use_update_password_fields.error.special_character": {
- "defaultMessage": "Password must contain at least one special character."
- },
- "use_update_password_fields.error.uppercase_letter": {
- "defaultMessage": "Password must contain at least one uppercase letter."
- },
- "use_update_password_fields.label.confirm_new_password": {
- "defaultMessage": "Confirm New Password"
- },
- "use_update_password_fields.label.current_password": {
- "defaultMessage": "Current Password"
- },
- "use_update_password_fields.label.new_password": {
- "defaultMessage": "New Password"
- },
- "wishlist_primary_action.button.addSetToCart.label": {
- "defaultMessage": "Add {productName} set to cart"
- },
- "wishlist_primary_action.button.addToCart.label": {
- "defaultMessage": "Add {productName} to cart"
- },
- "wishlist_primary_action.button.add_set_to_cart": {
- "defaultMessage": "Add Set to Cart"
- },
- "wishlist_primary_action.button.add_to_cart": {
- "defaultMessage": "Add to Cart"
- },
- "wishlist_primary_action.button.viewFullDetails.label": {
- "defaultMessage": "View full details for {productName}"
- },
- "wishlist_primary_action.button.view_full_details": {
- "defaultMessage": "View Full Details"
- },
- "wishlist_primary_action.button.view_options": {
- "defaultMessage": "View Options"
- },
- "wishlist_primary_action.button.view_options.label": {
- "defaultMessage": "View Options for {productName}"
- },
- "wishlist_primary_action.info.added_to_cart": {
- "defaultMessage": "{quantity} {quantity, plural, one {item} other {items}} added to cart"
- },
- "wishlist_secondary_button_group.action.remove": {
- "defaultMessage": "Remove"
- },
- "wishlist_secondary_button_group.info.item.remove.label": {
- "defaultMessage": "Remove {productName}"
- },
- "wishlist_secondary_button_group.info.item_removed": {
- "defaultMessage": "Item removed from wishlist"
- },
- "with_registration.info.please_sign_in": {
- "defaultMessage": "Please sign in to continue!"
- }
-}
diff --git a/packages/template-retail-react-app/translations/es-MX.json b/packages/template-retail-react-app/translations/es-MX.json
deleted file mode 100644
index 83b1b23661..0000000000
--- a/packages/template-retail-react-app/translations/es-MX.json
+++ /dev/null
@@ -1,1517 +0,0 @@
-{
- "account.accordion.button.my_account": {
- "defaultMessage": "Mi cuenta"
- },
- "account.heading.my_account": {
- "defaultMessage": "Mi cuenta"
- },
- "account.logout_button.button.log_out": {
- "defaultMessage": "Cerrar sesión"
- },
- "account_addresses.badge.default": {
- "defaultMessage": "Predeterminado"
- },
- "account_addresses.button.add_address": {
- "defaultMessage": "Agregar dirección"
- },
- "account_addresses.info.address_removed": {
- "defaultMessage": "Dirección eliminada"
- },
- "account_addresses.info.address_updated": {
- "defaultMessage": "Dirección actualizada"
- },
- "account_addresses.info.new_address_saved": {
- "defaultMessage": "Nueva dirección guardada"
- },
- "account_addresses.page_action_placeholder.button.add_address": {
- "defaultMessage": "Agregar dirección"
- },
- "account_addresses.page_action_placeholder.heading.no_saved_addresses": {
- "defaultMessage": "No hay direcciones guardadas"
- },
- "account_addresses.page_action_placeholder.message.add_new_address": {
- "defaultMessage": "Agrega un nuevo método de dirección para una finalización de la compra (checkout) más rápida."
- },
- "account_addresses.title.addresses": {
- "defaultMessage": "Direcciones"
- },
- "account_detail.title.account_details": {
- "defaultMessage": "Detalles de la cuenta"
- },
- "account_order_detail.heading.billing_address": {
- "defaultMessage": "Dirección de facturación"
- },
- "account_order_detail.heading.num_of_items": {
- "defaultMessage": "{count} artículos"
- },
- "account_order_detail.heading.payment_method": {
- "defaultMessage": "Método de pago"
- },
- "account_order_detail.heading.shipping_address": {
- "defaultMessage": "Dirección de envío"
- },
- "account_order_detail.heading.shipping_method": {
- "defaultMessage": "Método de envío"
- },
- "account_order_detail.label.order_number": {
- "defaultMessage": "Número de pedido: {orderNumber}"
- },
- "account_order_detail.label.ordered_date": {
- "defaultMessage": "Fecha del pedido: {date}"
- },
- "account_order_detail.label.pending_tracking_number": {
- "defaultMessage": "Pendiente"
- },
- "account_order_detail.label.tracking_number": {
- "defaultMessage": "Número de seguimiento"
- },
- "account_order_detail.link.back_to_history": {
- "defaultMessage": "Regresar a Historial de pedidos"
- },
- "account_order_detail.shipping_status.not_shipped": {
- "defaultMessage": "No enviado"
- },
- "account_order_detail.shipping_status.part_shipped": {
- "defaultMessage": "Parcialmente enviado"
- },
- "account_order_detail.shipping_status.shipped": {
- "defaultMessage": "Enviado"
- },
- "account_order_detail.title.order_details": {
- "defaultMessage": "Detelles del pedido"
- },
- "account_order_history.button.continue_shopping": {
- "defaultMessage": "Continuar comprando"
- },
- "account_order_history.description.once_you_place_order": {
- "defaultMessage": "Una vez que hagas un pedido, los detalles aparecerán aquí."
- },
- "account_order_history.heading.no_order_yet": {
- "defaultMessage": "Aún no has hecho un pedido."
- },
- "account_order_history.label.num_of_items": {
- "defaultMessage": "{count} artículos",
- "description": "Number of items in order"
- },
- "account_order_history.label.order_number": {
- "defaultMessage": "Número de pedido: {orderNumber}"
- },
- "account_order_history.label.ordered_date": {
- "defaultMessage": "Fecha del pedido: {date}"
- },
- "account_order_history.label.shipped_to": {
- "defaultMessage": "Enviado a: {name}"
- },
- "account_order_history.link.view_details": {
- "defaultMessage": "Ver información"
- },
- "account_order_history.title.order_history": {
- "defaultMessage": "Historial de pedidos"
- },
- "account_wishlist.button.continue_shopping": {
- "defaultMessage": "Continuar comprando"
- },
- "account_wishlist.description.continue_shopping": {
- "defaultMessage": "Continúa comprando y agrega artículos a su lista de deseos."
- },
- "account_wishlist.heading.no_wishlist": {
- "defaultMessage": "No hay artículos en la lista de deseos"
- },
- "account_wishlist.title.wishlist": {
- "defaultMessage": "Lista de deseos"
- },
- "action_card.action.edit": {
- "defaultMessage": "Editar"
- },
- "action_card.action.remove": {
- "defaultMessage": "Eliminar"
- },
- "add_to_cart_modal.info.added_to_cart": {
- "defaultMessage": "{quantity} {quantity, plural, one {artículo} other {artículos}} agregado(s) al carrito"
- },
- "add_to_cart_modal.label.cart_subtotal": {
- "defaultMessage": "Subtotal del carrito ({itemAccumulatedCount} artículo(s))"
- },
- "add_to_cart_modal.label.quantity": {
- "defaultMessage": "Cantidad"
- },
- "add_to_cart_modal.link.checkout": {
- "defaultMessage": "Finalizar la compra"
- },
- "add_to_cart_modal.link.view_cart": {
- "defaultMessage": "Ver carrito"
- },
- "add_to_cart_modal.recommended_products.title.might_also_like": {
- "defaultMessage": "Es posible que también te interese"
- },
- "auth_modal.button.close.assistive_msg": {
- "defaultMessage": "Cerrar formato de inicio de sesión"
- },
- "auth_modal.description.now_signed_in": {
- "defaultMessage": "Ha iniciado sesión."
- },
- "auth_modal.error.incorrect_email_or_password": {
- "defaultMessage": "Hay algún problema con tu correo electrónico o contraseña. Intenta de nuevo."
- },
- "auth_modal.info.welcome_user": {
- "defaultMessage": "Bienvenido {name},"
- },
- "auth_modal.password_reset_success.button.back_to_sign_in": {
- "defaultMessage": "Regresar a Registrarse"
- },
- "auth_modal.password_reset_success.info.will_email_shortly": {
- "defaultMessage": "Recibirás un correo electrónico en {email} con un vínculo para restablecer tu contraseña a la brevedad."
- },
- "auth_modal.password_reset_success.title.password_reset": {
- "defaultMessage": "Restablecimiento de contraseña"
- },
- "carousel.button.scroll_left.assistive_msg": {
- "defaultMessage": "Desplazar carrusel a la izquierda"
- },
- "carousel.button.scroll_right.assistive_msg": {
- "defaultMessage": "Desplazar carrusel a la derecha"
- },
- "cart.info.removed_from_cart": {
- "defaultMessage": "Artículo eliminado del carrito"
- },
- "cart.recommended_products.title.may_also_like": {
- "defaultMessage": "Quizás también te guste"
- },
- "cart.recommended_products.title.recently_viewed": {
- "defaultMessage": "Vistos recientemente"
- },
- "cart_cta.link.checkout": {
- "defaultMessage": "Finalizar la compra"
- },
- "cart_secondary_button_group.action.added_to_wishlist": {
- "defaultMessage": "Agregar a la lista de deseos"
- },
- "cart_secondary_button_group.action.edit": {
- "defaultMessage": "Editar"
- },
- "cart_secondary_button_group.action.remove": {
- "defaultMessage": "Eliminar"
- },
- "cart_secondary_button_group.label.this_is_gift": {
- "defaultMessage": "Este es un regalo."
- },
- "cart_skeleton.heading.order_summary": {
- "defaultMessage": "Resumen del pedido"
- },
- "cart_skeleton.title.cart": {
- "defaultMessage": "Carrito"
- },
- "cart_title.title.cart_num_of_items": {
- "defaultMessage": "Carrito ({itemCount, plural, =0 {0 artículos} one {# artículo} other {# artículos}})"
- },
- "cc_radio_group.action.remove": {
- "defaultMessage": "Eliminar"
- },
- "cc_radio_group.button.add_new_card": {
- "defaultMessage": "Agregar tarjeta nueva"
- },
- "checkout.button.place_order": {
- "defaultMessage": "Hacer pedido"
- },
- "checkout.message.generic_error": {
- "defaultMessage": "Se produjo un error inesperado durante el pago."
- },
- "checkout_confirmation.button.create_account": {
- "defaultMessage": "Crear cuenta"
- },
- "checkout_confirmation.heading.billing_address": {
- "defaultMessage": "Dirección de facturación"
- },
- "checkout_confirmation.heading.create_account": {
- "defaultMessage": "Crear una cuenta para una finalización de la compra (checkout) más rápida"
- },
- "checkout_confirmation.heading.credit_card": {
- "defaultMessage": "Tarjeta de crédito"
- },
- "checkout_confirmation.heading.delivery_details": {
- "defaultMessage": "Información de la entrega"
- },
- "checkout_confirmation.heading.order_summary": {
- "defaultMessage": "Resumen del pedido"
- },
- "checkout_confirmation.heading.payment_details": {
- "defaultMessage": "Información del pago"
- },
- "checkout_confirmation.heading.shipping_address": {
- "defaultMessage": "Dirección de envío"
- },
- "checkout_confirmation.heading.shipping_method": {
- "defaultMessage": "Método de envío"
- },
- "checkout_confirmation.heading.thank_you_for_order": {
- "defaultMessage": "¡Gracias por tu pedido!"
- },
- "checkout_confirmation.label.free": {
- "defaultMessage": "Gratis"
- },
- "checkout_confirmation.label.order_number": {
- "defaultMessage": "Número de pedido"
- },
- "checkout_confirmation.label.order_total": {
- "defaultMessage": "Total del pedido"
- },
- "checkout_confirmation.label.promo_applied": {
- "defaultMessage": "Promoción aplicada"
- },
- "checkout_confirmation.label.shipping": {
- "defaultMessage": "Envío"
- },
- "checkout_confirmation.label.subtotal": {
- "defaultMessage": "Subtotal"
- },
- "checkout_confirmation.label.tax": {
- "defaultMessage": "Impuesto"
- },
- "checkout_confirmation.link.continue_shopping": {
- "defaultMessage": "Continuar comprando"
- },
- "checkout_confirmation.link.login": {
- "defaultMessage": "Iniciar sesión aquí"
- },
- "checkout_confirmation.message.already_has_account": {
- "defaultMessage": "Este correo electrónico ya tiene una cuenta."
- },
- "checkout_confirmation.message.num_of_items_in_order": {
- "defaultMessage": "{itemCount, plural, =0 {0 artículos} one {# artículo} other {# artículos}}",
- "description": "# item(s) in order"
- },
- "checkout_confirmation.message.will_email_shortly": {
- "defaultMessage": "Enviaremos un correo electrónico a {email} con tu número de confirmación y recibo a la brevedad."
- },
- "checkout_footer.link.privacy_policy": {
- "defaultMessage": "Política de privacidad"
- },
- "checkout_footer.link.returns_exchanges": {
- "defaultMessage": "Devoluciones y cambios"
- },
- "checkout_footer.link.shipping": {
- "defaultMessage": "Envío"
- },
- "checkout_footer.link.site_map": {
- "defaultMessage": "Mapa del sitio"
- },
- "checkout_footer.link.terms_conditions": {
- "defaultMessage": "Términos y condiciones"
- },
- "checkout_footer.message.copyright": {
- "defaultMessage": "Salesforce o sus afiliados. Todos los derechos reservados. Esta es solo una tienda de demostración. Los pedidos realizados NO se procesarán."
- },
- "checkout_header.link.assistive_msg.cart": {
- "defaultMessage": "Regresar al carrito, número de artículos: {numItems}"
- },
- "checkout_header.link.cart": {
- "defaultMessage": "Regresar al carrito"
- },
- "checkout_payment.action.remove": {
- "defaultMessage": "Eliminar"
- },
- "checkout_payment.button.review_order": {
- "defaultMessage": "Revisar pedido"
- },
- "checkout_payment.heading.billing_address": {
- "defaultMessage": "Dirección de facturación"
- },
- "checkout_payment.heading.credit_card": {
- "defaultMessage": "Tarjeta de crédito"
- },
- "checkout_payment.label.same_as_shipping": {
- "defaultMessage": "Misma que la dirección de envío"
- },
- "checkout_payment.title.payment": {
- "defaultMessage": "Pago"
- },
- "colorRefinements.label.hitCount": {
- "defaultMessage": "{colorLabel} ({colorHitCount})"
- },
- "confirmation_modal.default.action.no": {
- "defaultMessage": "No"
- },
- "confirmation_modal.default.action.yes": {
- "defaultMessage": "Sí"
- },
- "confirmation_modal.default.message.you_want_to_continue": {
- "defaultMessage": "¿Está seguro de que desea continuar?"
- },
- "confirmation_modal.default.title.confirm_action": {
- "defaultMessage": "Confirmar acción"
- },
- "confirmation_modal.remove_cart_item.action.no": {
- "defaultMessage": "No, conservar artículo"
- },
- "confirmation_modal.remove_cart_item.action.remove": {
- "defaultMessage": "Eliminar"
- },
- "confirmation_modal.remove_cart_item.action.yes": {
- "defaultMessage": "Sí, eliminar artículo"
- },
- "confirmation_modal.remove_cart_item.message.need_to_remove_due_to_unavailability": {
- "defaultMessage": "Algunos artículos ya no están disponibles en línea y se eliminarán de su carrito."
- },
- "confirmation_modal.remove_cart_item.message.sure_to_remove": {
- "defaultMessage": "¿Está seguro de que desea eliminar este artículo de su carrito?"
- },
- "confirmation_modal.remove_cart_item.title.confirm_remove": {
- "defaultMessage": "Confirmar eliminación del artículo"
- },
- "confirmation_modal.remove_cart_item.title.items_unavailable": {
- "defaultMessage": "Artículos no disponibles"
- },
- "confirmation_modal.remove_wishlist_item.action.no": {
- "defaultMessage": "No, conservar artículo"
- },
- "confirmation_modal.remove_wishlist_item.action.yes": {
- "defaultMessage": "Sí, eliminar artículo"
- },
- "confirmation_modal.remove_wishlist_item.message.sure_to_remove": {
- "defaultMessage": "¿Está seguro de que desea eliminar este artículo de tu lista de deseos?"
- },
- "confirmation_modal.remove_wishlist_item.title.confirm_remove": {
- "defaultMessage": "Confirmar eliminación del artículo"
- },
- "contact_info.action.sign_out": {
- "defaultMessage": "Cerrar sesión"
- },
- "contact_info.button.already_have_account": {
- "defaultMessage": "¿Ya tienes una cuenta? Iniciar sesión"
- },
- "contact_info.button.checkout_as_guest": {
- "defaultMessage": "Proceso de compra como invitado"
- },
- "contact_info.button.login": {
- "defaultMessage": "Iniciar sesión"
- },
- "contact_info.error.incorrect_username_or_password": {
- "defaultMessage": "Nombre de usuario o contraseña incorrectos, intente de nuevo."
- },
- "contact_info.link.forgot_password": {
- "defaultMessage": "¿Olvidaste la contraseña?"
- },
- "contact_info.title.contact_info": {
- "defaultMessage": "Información de contacto"
- },
- "credit_card_fields.tool_tip.security_code": {
- "defaultMessage": "Este código de 3 dígitos se puede encontrar en la parte de atrás de tu tarjeta.",
- "description": "Generic credit card security code help text"
- },
- "credit_card_fields.tool_tip.security_code.american_express": {
- "defaultMessage": "Este código de 4 dígitos se puede encontrar en la parte de atrás de tu tarjeta.",
- "description": "American Express security code help text"
- },
- "credit_card_fields.tool_tip.security_code_aria_label": {
- "defaultMessage": "Información del código de seguridad"
- },
- "drawer_menu.button.account_details": {
- "defaultMessage": "Detalles de la cuenta"
- },
- "drawer_menu.button.addresses": {
- "defaultMessage": "Direcciones"
- },
- "drawer_menu.button.log_out": {
- "defaultMessage": "Cerrar sesión"
- },
- "drawer_menu.button.my_account": {
- "defaultMessage": "Mi cuenta"
- },
- "drawer_menu.button.order_history": {
- "defaultMessage": "Historial de pedidos"
- },
- "drawer_menu.link.about_us": {
- "defaultMessage": "Acerca de nosotros"
- },
- "drawer_menu.link.customer_support": {
- "defaultMessage": "Soporte al cliente"
- },
- "drawer_menu.link.customer_support.contact_us": {
- "defaultMessage": "Contáctanos"
- },
- "drawer_menu.link.customer_support.shipping_and_returns": {
- "defaultMessage": "Envío y devoluciones"
- },
- "drawer_menu.link.our_company": {
- "defaultMessage": "Nuestra empresa"
- },
- "drawer_menu.link.privacy_and_security": {
- "defaultMessage": "Privacidad y seguridad"
- },
- "drawer_menu.link.privacy_policy": {
- "defaultMessage": "Política de privacidad"
- },
- "drawer_menu.link.shop_all": {
- "defaultMessage": "Comprar todo"
- },
- "drawer_menu.link.sign_in": {
- "defaultMessage": "Registrarte"
- },
- "drawer_menu.link.site_map": {
- "defaultMessage": "Mapa del sitio"
- },
- "drawer_menu.link.store_locator": {
- "defaultMessage": "Localizador de tiendas"
- },
- "drawer_menu.link.terms_and_conditions": {
- "defaultMessage": "Términos y condiciones"
- },
- "empty_cart.description.empty_cart": {
- "defaultMessage": "Tu carrito está vacío."
- },
- "empty_cart.link.continue_shopping": {
- "defaultMessage": "Continuar comprando"
- },
- "empty_cart.link.sign_in": {
- "defaultMessage": "Registrarse"
- },
- "empty_cart.message.continue_shopping": {
- "defaultMessage": "Continúa comprando para agregar artículos a tu carrito."
- },
- "empty_cart.message.sign_in_or_continue_shopping": {
- "defaultMessage": "Regístrate para recuperar tus artículos guardados o continuar comprando."
- },
- "empty_search_results.info.cant_find_anything_for_category": {
- "defaultMessage": "No encontramos nada para {category}. Intenta buscar un producto o {link}."
- },
- "empty_search_results.info.cant_find_anything_for_query": {
- "defaultMessage": "No encontramos nada para \"{searchQuery}\"."
- },
- "empty_search_results.info.double_check_spelling": {
- "defaultMessage": "Verifica la ortografía e intenta de nuevo o {link}."
- },
- "empty_search_results.link.contact_us": {
- "defaultMessage": "Contáctanos"
- },
- "empty_search_results.recommended_products.title.most_viewed": {
- "defaultMessage": "Lo más visto"
- },
- "empty_search_results.recommended_products.title.top_sellers": {
- "defaultMessage": "Éxito de ventas"
- },
- "field.password.assistive_msg.hide_password": {
- "defaultMessage": "Ocultar contraseña"
- },
- "field.password.assistive_msg.show_password": {
- "defaultMessage": "Mostrar contraseña"
- },
- "footer.column.account": {
- "defaultMessage": "Cuenta"
- },
- "footer.column.customer_support": {
- "defaultMessage": "Soporte al cliente"
- },
- "footer.column.our_company": {
- "defaultMessage": "Nuestra empresa"
- },
- "footer.link.about_us": {
- "defaultMessage": "Acerca de nosotros"
- },
- "footer.link.contact_us": {
- "defaultMessage": "Contáctanos"
- },
- "footer.link.order_status": {
- "defaultMessage": "Estado del pedido"
- },
- "footer.link.privacy_policy": {
- "defaultMessage": "Política de privacidad"
- },
- "footer.link.shipping": {
- "defaultMessage": "Envío"
- },
- "footer.link.signin_create_account": {
- "defaultMessage": "Iniciar sesión o crear cuenta"
- },
- "footer.link.site_map": {
- "defaultMessage": "Mapa del sitio"
- },
- "footer.link.store_locator": {
- "defaultMessage": "Localizador de tiendas"
- },
- "footer.link.terms_conditions": {
- "defaultMessage": "Términos y condiciones"
- },
- "footer.message.copyright": {
- "defaultMessage": "Salesforce o sus afiliados. Todos los derechos reservados. Esta es solo una tienda de demostración. Los pedidos realizados NO se procesarán."
- },
- "footer.subscribe.button.sign_up": {
- "defaultMessage": "Registrarse"
- },
- "footer.subscribe.description.sign_up": {
- "defaultMessage": "Regístrese para mantenerse informado sobre las mejores ofertas"
- },
- "footer.subscribe.heading.first_to_know": {
- "defaultMessage": "Sea el primero en saber"
- },
- "form_action_buttons.button.cancel": {
- "defaultMessage": "Cancelar"
- },
- "form_action_buttons.button.save": {
- "defaultMessage": "Guardar"
- },
- "global.account.link.account_details": {
- "defaultMessage": "Detalles de la cuenta"
- },
- "global.account.link.addresses": {
- "defaultMessage": "Direcciones"
- },
- "global.account.link.order_history": {
- "defaultMessage": "Historial de pedidos"
- },
- "global.account.link.wishlist": {
- "defaultMessage": "Lista de deseos"
- },
- "global.error.something_went_wrong": {
- "defaultMessage": "Se produjo un error. ¡Intenta de nuevo!"
- },
- "global.info.added_to_wishlist": {
- "defaultMessage": "{quantity} {quantity, plural, one {artículo} other {artículos}} agregado(s) a la lista de deseos"
- },
- "global.info.already_in_wishlist": {
- "defaultMessage": "El artículo ya está en la lista de deseos."
- },
- "global.info.removed_from_wishlist": {
- "defaultMessage": "Artículo eliminado de la lista de deseos"
- },
- "global.link.added_to_wishlist.view_wishlist": {
- "defaultMessage": "Vista"
- },
- "header.button.assistive_msg.logo": {
- "defaultMessage": "Logotipo"
- },
- "header.button.assistive_msg.menu": {
- "defaultMessage": "Menú"
- },
- "header.button.assistive_msg.my_account": {
- "defaultMessage": "Mi cuenta"
- },
- "header.button.assistive_msg.my_account_menu": {
- "defaultMessage": "Abrir menú de la cuenta"
- },
- "header.button.assistive_msg.my_cart_with_num_items": {
- "defaultMessage": "Mi carrito, número de artículos: {numItems}"
- },
- "header.button.assistive_msg.wishlist": {
- "defaultMessage": "Lista de deseos"
- },
- "header.field.placeholder.search_for_products": {
- "defaultMessage": "Buscar productos..."
- },
- "header.popover.action.log_out": {
- "defaultMessage": "Cerrar sesión"
- },
- "header.popover.title.my_account": {
- "defaultMessage": "Mi cuenta"
- },
- "home.description.features": {
- "defaultMessage": "Características de disponibilidad inmediata para que se enfoque solo en agregar mejoras."
- },
- "home.description.here_to_help": {
- "defaultMessage": "Comunícate con nuestro personal de apoyo"
- },
- "home.description.here_to_help_line_2": {
- "defaultMessage": "Te llevarán al lugar correcto."
- },
- "home.description.shop_products": {
- "defaultMessage": "Esta sección tiene contenido del catálogo. {docLink} sobre cómo reemplazarlo.",
- "description": "{docLink} is a html button that links the user to https://sfdc.co/business-manager-manage-catalogs"
- },
- "home.features.description.cart_checkout": {
- "defaultMessage": "Mejores prácticas de comercio electrónico para el carrito y la experiencia de finalización de la compra (checkout) del comprador."
- },
- "home.features.description.components": {
- "defaultMessage": "Desarrollado con Chakra UI, una biblioteca de componentes de React simple, modular y accesible."
- },
- "home.features.description.einstein_recommendations": {
- "defaultMessage": "Brinde el mejor producto o la mejor oferta a cada comprador a través de recomendaciones de productos."
- },
- "home.features.description.my_account": {
- "defaultMessage": "Los compradores pueden gestionar información de la cuenta como su perfil, direcciones, pagos y pedidos."
- },
- "home.features.description.shopper_login": {
- "defaultMessage": "Habilite que los compradores inicien sesión fácilmente con una experiencia de compra más personalizada."
- },
- "home.features.description.wishlist": {
- "defaultMessage": "Los compradores registrados pueden agregar artículos del producto a su lista de deseos para comprar luego."
- },
- "home.features.heading.cart_checkout": {
- "defaultMessage": "Carrito y finalización de la compra"
- },
- "home.features.heading.components": {
- "defaultMessage": "Componentes y kit de diseño"
- },
- "home.features.heading.einstein_recommendations": {
- "defaultMessage": "Recomendaciones de Einstein"
- },
- "home.features.heading.my_account": {
- "defaultMessage": "Mi cuenta"
- },
- "home.features.heading.shopper_login": {
- "defaultMessage": "Shopper Login and API Access Service (SLAS)"
- },
- "home.features.heading.wishlist": {
- "defaultMessage": "Lista de deseos"
- },
- "home.heading.features": {
- "defaultMessage": "Características"
- },
- "home.heading.here_to_help": {
- "defaultMessage": "Estamos aquí para ayudarle"
- },
- "home.heading.shop_products": {
- "defaultMessage": "Comprar productos"
- },
- "home.hero_features.link.design_kit": {
- "defaultMessage": "Crear con el Figma PWA Design Kit"
- },
- "home.hero_features.link.on_github": {
- "defaultMessage": "Descargar en Github"
- },
- "home.hero_features.link.on_managed_runtime": {
- "defaultMessage": "Implementar en Managed Runtime"
- },
- "home.link.contact_us": {
- "defaultMessage": "Contáctanos"
- },
- "home.link.get_started": {
- "defaultMessage": "Comenzar"
- },
- "home.link.read_docs": {
- "defaultMessage": "Leer documentos"
- },
- "home.title.react_starter_store": {
- "defaultMessage": "React PWA Starter Store para venta minorista"
- },
- "icons.assistive_msg.lock": {
- "defaultMessage": "Seguro"
- },
- "item_attributes.label.promotions": {
- "defaultMessage": "Promociones"
- },
- "item_attributes.label.quantity": {
- "defaultMessage": "Cantidad: {quantity}"
- },
- "item_image.label.sale": {
- "defaultMessage": "Ofertas",
- "description": "A sale badge placed on top of a product image"
- },
- "item_image.label.unavailable": {
- "defaultMessage": "No disponible",
- "description": "A unavailable badge placed on top of a product image"
- },
- "item_price.label.starting_at": {
- "defaultMessage": "Comienza en"
- },
- "lCPCxk": {
- "defaultMessage": "Seleccione todas las opciones anteriores"
- },
- "list_menu.nav.assistive_msg": {
- "defaultMessage": "Navegación principal"
- },
- "locale_text.message.ar-SA": {
- "defaultMessage": "Árabe (Arabia Saudí)"
- },
- "locale_text.message.bn-BD": {
- "defaultMessage": "Bangalí (Bangladesh)"
- },
- "locale_text.message.bn-IN": {
- "defaultMessage": "Bangalí (India)"
- },
- "locale_text.message.cs-CZ": {
- "defaultMessage": "Checo (República Checa)"
- },
- "locale_text.message.da-DK": {
- "defaultMessage": "Danés (Dinamarca)"
- },
- "locale_text.message.de-AT": {
- "defaultMessage": "Alemán (Austria)"
- },
- "locale_text.message.de-CH": {
- "defaultMessage": "Alemán (Suiza)"
- },
- "locale_text.message.de-DE": {
- "defaultMessage": "Alemán (Alemania)"
- },
- "locale_text.message.el-GR": {
- "defaultMessage": "Griego (Grecia)"
- },
- "locale_text.message.en-AU": {
- "defaultMessage": "Inglés (Australia)"
- },
- "locale_text.message.en-CA": {
- "defaultMessage": "Inglés (Canadá)"
- },
- "locale_text.message.en-GB": {
- "defaultMessage": "Inglés (Reino Unido)"
- },
- "locale_text.message.en-IE": {
- "defaultMessage": "Inglés (Irlanda)"
- },
- "locale_text.message.en-IN": {
- "defaultMessage": "Inglés (India)"
- },
- "locale_text.message.en-NZ": {
- "defaultMessage": "Inglés (Nueva Zelanda)"
- },
- "locale_text.message.en-US": {
- "defaultMessage": "Inglés (Estados Unidos)"
- },
- "locale_text.message.en-ZA": {
- "defaultMessage": "Inglés (Sudáfrica)"
- },
- "locale_text.message.es-AR": {
- "defaultMessage": "Español (Argentina)"
- },
- "locale_text.message.es-CL": {
- "defaultMessage": "Español (Chile)"
- },
- "locale_text.message.es-CO": {
- "defaultMessage": "Español (Colombia)"
- },
- "locale_text.message.es-ES": {
- "defaultMessage": "Español (España)"
- },
- "locale_text.message.es-MX": {
- "defaultMessage": "Español (México)"
- },
- "locale_text.message.es-US": {
- "defaultMessage": "Español (Estados Unidos)"
- },
- "locale_text.message.fi-FI": {
- "defaultMessage": "Finlandés (Finlandia)"
- },
- "locale_text.message.fr-BE": {
- "defaultMessage": "Francés (Bélgica)"
- },
- "locale_text.message.fr-CA": {
- "defaultMessage": "Francés (Canadá)"
- },
- "locale_text.message.fr-CH": {
- "defaultMessage": "Francés (Suiza)"
- },
- "locale_text.message.fr-FR": {
- "defaultMessage": "Francés (Francia)"
- },
- "locale_text.message.he-IL": {
- "defaultMessage": "Hebreo (Israel)"
- },
- "locale_text.message.hi-IN": {
- "defaultMessage": "Hindi (India)"
- },
- "locale_text.message.hu-HU": {
- "defaultMessage": "Húngaro (Hungría)"
- },
- "locale_text.message.id-ID": {
- "defaultMessage": "Indonesio (Indonesia)"
- },
- "locale_text.message.it-CH": {
- "defaultMessage": "Italiano (Suiza)"
- },
- "locale_text.message.it-IT": {
- "defaultMessage": "Italiano (Italia)"
- },
- "locale_text.message.ja-JP": {
- "defaultMessage": "Japonés (Japón)"
- },
- "locale_text.message.ko-KR": {
- "defaultMessage": "Coreano (República de Corea)"
- },
- "locale_text.message.nl-BE": {
- "defaultMessage": "Neerlandés (Bélgica)"
- },
- "locale_text.message.nl-NL": {
- "defaultMessage": "Neerlandés (Países Bajos)"
- },
- "locale_text.message.no-NO": {
- "defaultMessage": "Noruego (Noruega)"
- },
- "locale_text.message.pl-PL": {
- "defaultMessage": "Polaco (Polonia)"
- },
- "locale_text.message.pt-BR": {
- "defaultMessage": "Portugués (Brasil)"
- },
- "locale_text.message.pt-PT": {
- "defaultMessage": "Portugués (Portugal)"
- },
- "locale_text.message.ro-RO": {
- "defaultMessage": "Rumano (Rumanía)"
- },
- "locale_text.message.ru-RU": {
- "defaultMessage": "Ruso (Federación Rusa)"
- },
- "locale_text.message.sk-SK": {
- "defaultMessage": "Eslovaco (Eslovaquia)"
- },
- "locale_text.message.sv-SE": {
- "defaultMessage": "Sueco (Suecia)"
- },
- "locale_text.message.ta-IN": {
- "defaultMessage": "Tamil (India)"
- },
- "locale_text.message.ta-LK": {
- "defaultMessage": "Tamil (Sri Lanka)"
- },
- "locale_text.message.th-TH": {
- "defaultMessage": "Tailandés (Tailandia)"
- },
- "locale_text.message.tr-TR": {
- "defaultMessage": "Turco (Turquía)"
- },
- "locale_text.message.zh-CN": {
- "defaultMessage": "Chino (China)"
- },
- "locale_text.message.zh-HK": {
- "defaultMessage": "Chino (Hong Kong)"
- },
- "locale_text.message.zh-TW": {
- "defaultMessage": "Chino (Taiwán)"
- },
- "login_form.action.create_account": {
- "defaultMessage": "Crear cuenta"
- },
- "login_form.button.sign_in": {
- "defaultMessage": "Registrarse"
- },
- "login_form.link.forgot_password": {
- "defaultMessage": "¿Olvidaste la contraseña?"
- },
- "login_form.message.dont_have_account": {
- "defaultMessage": "¿No tiene una cuenta?"
- },
- "login_form.message.welcome_back": {
- "defaultMessage": "Bienvenido otra vez"
- },
- "login_page.error.incorrect_username_or_password": {
- "defaultMessage": "Nombre de usuario o contraseña incorrectos, intente de nuevo."
- },
- "offline_banner.description.browsing_offline_mode": {
- "defaultMessage": "Actualmente está navegando sin conexión"
- },
- "order_summary.action.remove_promo": {
- "defaultMessage": "Eliminar"
- },
- "order_summary.cart_items.action.num_of_items_in_cart": {
- "defaultMessage": "{itemCount, plural, =0 {0 artículos} one {# artículo} other {# artículos}} en el carrito",
- "description": "clicking it would expand/show the items in cart"
- },
- "order_summary.cart_items.link.edit_cart": {
- "defaultMessage": "Editar carrito"
- },
- "order_summary.heading.order_summary": {
- "defaultMessage": "Resumen del pedido"
- },
- "order_summary.label.estimated_total": {
- "defaultMessage": "Total estimado"
- },
- "order_summary.label.free": {
- "defaultMessage": "Gratis"
- },
- "order_summary.label.order_total": {
- "defaultMessage": "Total del pedido"
- },
- "order_summary.label.promo_applied": {
- "defaultMessage": "Promoción aplicada"
- },
- "order_summary.label.promotions_applied": {
- "defaultMessage": "Promociones aplicadas"
- },
- "order_summary.label.shipping": {
- "defaultMessage": "Envío"
- },
- "order_summary.label.subtotal": {
- "defaultMessage": "Subtotal"
- },
- "order_summary.label.tax": {
- "defaultMessage": "Impuesto"
- },
- "page_not_found.action.go_back": {
- "defaultMessage": "Regresar a la página anterior"
- },
- "page_not_found.link.homepage": {
- "defaultMessage": "Ir a la página de inicio"
- },
- "page_not_found.message.suggestion_to_try": {
- "defaultMessage": "Intente volver a escribir la dirección, regresar a la página anterior o ir a la página de inicio."
- },
- "page_not_found.title.page_cant_be_found": {
- "defaultMessage": "No podemos encontrar la página que busca."
- },
- "pagination.field.num_of_pages": {
- "defaultMessage": "de {numOfPages}"
- },
- "pagination.link.next": {
- "defaultMessage": "Siguiente"
- },
- "pagination.link.next.assistive_msg": {
- "defaultMessage": "Página siguiente"
- },
- "pagination.link.prev": {
- "defaultMessage": "Anterior"
- },
- "pagination.link.prev.assistive_msg": {
- "defaultMessage": "Página anterior"
- },
- "password_card.info.password_updated": {
- "defaultMessage": "Contraseña actualizada"
- },
- "password_card.label.password": {
- "defaultMessage": "Contraseña"
- },
- "password_card.title.password": {
- "defaultMessage": "Contraseña"
- },
- "password_requirements.error.eight_letter_minimum": {
- "defaultMessage": "8 caracteres como mínimo",
- "description": "Password requirement"
- },
- "password_requirements.error.one_lowercase_letter": {
- "defaultMessage": "1 letra en minúscula",
- "description": "Password requirement"
- },
- "password_requirements.error.one_number": {
- "defaultMessage": "1 número",
- "description": "Password requirement"
- },
- "password_requirements.error.one_special_character": {
- "defaultMessage": "1 carácter especial (ejemplo, , S ! % #)",
- "description": "Password requirement"
- },
- "password_requirements.error.one_uppercase_letter": {
- "defaultMessage": "1 letra en mayúscula",
- "description": "Password requirement"
- },
- "payment_selection.heading.credit_card": {
- "defaultMessage": "Tarjeta de crédito"
- },
- "payment_selection.tooltip.secure_payment": {
- "defaultMessage": "Este es un pago cifrado con SSL seguro."
- },
- "price_per_item.label.each": {
- "defaultMessage": "ea",
- "description": "Abbreviated 'each', follows price per item, like $10/ea"
- },
- "product_detail.accordion.button.product_detail": {
- "defaultMessage": "Detalles del producto"
- },
- "product_detail.accordion.button.questions": {
- "defaultMessage": "Preguntas"
- },
- "product_detail.accordion.button.reviews": {
- "defaultMessage": "Revisiones"
- },
- "product_detail.accordion.button.size_fit": {
- "defaultMessage": "Tamaño y ajuste"
- },
- "product_detail.accordion.message.coming_soon": {
- "defaultMessage": "Próximamente"
- },
- "product_detail.recommended_products.title.complete_set": {
- "defaultMessage": "Completar el conjunto"
- },
- "product_detail.recommended_products.title.might_also_like": {
- "defaultMessage": "Es posible que también le interese"
- },
- "product_detail.recommended_products.title.recently_viewed": {
- "defaultMessage": "Vistos recientemente"
- },
- "product_item.label.quantity": {
- "defaultMessage": "Cantidad:"
- },
- "product_list.button.filter": {
- "defaultMessage": "Filtrar"
- },
- "product_list.button.sort_by": {
- "defaultMessage": "Clasificar por: {sortOption}"
- },
- "product_list.drawer.title.sort_by": {
- "defaultMessage": "Clasificar por"
- },
- "product_list.modal.button.clear_filters": {
- "defaultMessage": "Borrar filtros"
- },
- "product_list.modal.button.view_items": {
- "defaultMessage": "Ver {prroductCount} artículos"
- },
- "product_list.modal.title.filter": {
- "defaultMessage": "Filtrar"
- },
- "product_list.refinements.button.assistive_msg.add_filter": {
- "defaultMessage": "Agregar filtro: {label}"
- },
- "product_list.refinements.button.assistive_msg.add_filter_with_hit_count": {
- "defaultMessage": "Agregar filtro: {label} ({hitCount})"
- },
- "product_list.refinements.button.assistive_msg.remove_filter": {
- "defaultMessage": "Eliminar filtro: {label}"
- },
- "product_list.refinements.button.assistive_msg.remove_filter_with_hit_count": {
- "defaultMessage": "Eliminar filtro: {label} ({hitCount})"
- },
- "product_list.select.sort_by": {
- "defaultMessage": "Clasificar por: {sortOption}"
- },
- "product_scroller.assistive_msg.scroll_left": {
- "defaultMessage": "Desplazar productos a la izquierda"
- },
- "product_scroller.assistive_msg.scroll_right": {
- "defaultMessage": "Desplazar productos a la derecha"
- },
- "product_tile.assistive_msg.add_to_wishlist": {
- "defaultMessage": "Agregar {product} a la lista de deseos"
- },
- "product_tile.assistive_msg.remove_from_wishlist": {
- "defaultMessage": "Eliminar {product} de la lista de deseos"
- },
- "product_tile.label.starting_at_price": {
- "defaultMessage": "Comienza en {price}"
- },
- "product_view.button.add_set_to_cart": {
- "defaultMessage": "Agregar conjunto al carrito"
- },
- "product_view.button.add_set_to_wishlist": {
- "defaultMessage": "Agregar conjunto a la lista de deseos"
- },
- "product_view.button.add_to_cart": {
- "defaultMessage": "Agregar al carrito"
- },
- "product_view.button.add_to_wishlist": {
- "defaultMessage": "Agregar a la lista de deseos"
- },
- "product_view.button.update": {
- "defaultMessage": "Actualización"
- },
- "product_view.label.assistive_msg.quantity_decrement": {
- "defaultMessage": "Cantidad de decremento"
- },
- "product_view.label.assistive_msg.quantity_increment": {
- "defaultMessage": "Incrementar cantidad"
- },
- "product_view.label.quantity": {
- "defaultMessage": "Cantidad"
- },
- "product_view.label.quantity_decrement": {
- "defaultMessage": "−"
- },
- "product_view.label.quantity_increment": {
- "defaultMessage": "+"
- },
- "product_view.label.starting_at_price": {
- "defaultMessage": "Comienza en"
- },
- "product_view.label.variant_type": {
- "defaultMessage": "{variantType}"
- },
- "product_view.link.full_details": {
- "defaultMessage": "Ver información completa"
- },
- "profile_card.info.profile_updated": {
- "defaultMessage": "Perfil actualizado"
- },
- "profile_card.label.email": {
- "defaultMessage": "Correo electrónico"
- },
- "profile_card.label.full_name": {
- "defaultMessage": "Nombre completo"
- },
- "profile_card.label.phone": {
- "defaultMessage": "Número de teléfono"
- },
- "profile_card.message.not_provided": {
- "defaultMessage": "No proporcionado"
- },
- "profile_card.title.my_profile": {
- "defaultMessage": "Mi perfil"
- },
- "promo_code_fields.button.apply": {
- "defaultMessage": "Aplicar"
- },
- "promo_popover.assistive_msg.info": {
- "defaultMessage": "Información"
- },
- "promo_popover.heading.promo_applied": {
- "defaultMessage": "Promociones aplicadas"
- },
- "promocode.accordion.button.have_promocode": {
- "defaultMessage": "¿Tiene un código promocional?"
- },
- "recent_searches.action.clear_searches": {
- "defaultMessage": "Borrar búsquedas recientes"
- },
- "recent_searches.heading.recent_searches": {
- "defaultMessage": "Búsquedas recientes"
- },
- "register_form.action.sign_in": {
- "defaultMessage": "Registrarse"
- },
- "register_form.button.create_account": {
- "defaultMessage": "Crear cuenta"
- },
- "register_form.heading.lets_get_started": {
- "defaultMessage": "¡Comencemos!"
- },
- "register_form.message.agree_to_policy_terms": {
- "defaultMessage": "Al crear una cuenta, acepta la Política de privacidad y los Términos y condiciones de Salesforce"
- },
- "register_form.message.already_have_account": {
- "defaultMessage": "¿Ya tienes una cuenta?"
- },
- "register_form.message.create_an_account": {
- "defaultMessage": "Cree una cuenta y obtenga un primer acceso a los mejores productos, inspiración y comunidad."
- },
- "reset_password.button.back_to_sign_in": {
- "defaultMessage": "Regresar a Registrarse"
- },
- "reset_password.info.receive_email_shortly": {
- "defaultMessage": "Recibirás un correo electrónico en {email} con un vínculo para restablecer tu contraseña a la brevedad."
- },
- "reset_password.title.password_reset": {
- "defaultMessage": "Restablecimiento de contraseña"
- },
- "reset_password_form.action.sign_in": {
- "defaultMessage": "Registrarse"
- },
- "reset_password_form.button.reset_password": {
- "defaultMessage": "Restablecer contraseña"
- },
- "reset_password_form.message.enter_your_email": {
- "defaultMessage": "Ingrese su correo electrónico para recibir instrucciones sobre cómo restablecer su contraseña"
- },
- "reset_password_form.message.return_to_sign_in": {
- "defaultMessage": "O regresar a",
- "description": "Precedes link to return to sign in"
- },
- "reset_password_form.title.reset_password": {
- "defaultMessage": "Restablecer contraseña"
- },
- "search.action.cancel": {
- "defaultMessage": "Cancelar"
- },
- "selected_refinements.action.assistive_msg.clear_all": {
- "defaultMessage": "Borrar todos los filtros"
- },
- "selected_refinements.action.clear_all": {
- "defaultMessage": "Borrar todo"
- },
- "shipping_address.button.continue_to_shipping": {
- "defaultMessage": "Continuar a método de envío"
- },
- "shipping_address.title.shipping_address": {
- "defaultMessage": "Dirección de envío"
- },
- "shipping_address_edit_form.button.save_and_continue": {
- "defaultMessage": "Guardar y continuar a método de envío"
- },
- "shipping_address_form.heading.edit_address": {
- "defaultMessage": "Editar dirección"
- },
- "shipping_address_form.heading.new_address": {
- "defaultMessage": "Agregar dirección nueva"
- },
- "shipping_address_selection.button.add_address": {
- "defaultMessage": "Agregar dirección nueva"
- },
- "shipping_address_selection.button.submit": {
- "defaultMessage": "Enviar"
- },
- "shipping_address_selection.title.add_address": {
- "defaultMessage": "Agregar dirección nueva"
- },
- "shipping_address_selection.title.edit_shipping": {
- "defaultMessage": "Editar dirección de envío"
- },
- "shipping_options.action.send_as_a_gift": {
- "defaultMessage": "¿Desea enviarlo como regalo?"
- },
- "shipping_options.button.continue_to_payment": {
- "defaultMessage": "Continuar a Pago"
- },
- "shipping_options.title.shipping_gift_options": {
- "defaultMessage": "Envío y opciones de regalo"
- },
- "signout_confirmation_dialog.button.cancel": {
- "defaultMessage": "Cancelar"
- },
- "signout_confirmation_dialog.button.sign_out": {
- "defaultMessage": "Cerrar sesión"
- },
- "signout_confirmation_dialog.heading.sign_out": {
- "defaultMessage": "Cerrar sesión"
- },
- "signout_confirmation_dialog.message.sure_to_sign_out": {
- "defaultMessage": "¿Está seguro de que desea cerrar sesión? Deberá volver a registrarse para continuar con su pedido actual."
- },
- "swatch_group.selected.label": {
- "defaultMessage": "{label}:"
- },
- "toggle_card.action.edit": {
- "defaultMessage": "Editar"
- },
- "update_password_fields.button.forgot_password": {
- "defaultMessage": "¿Olvidó la contraseña?"
- },
- "use_address_fields.error.please_enter_first_name": {
- "defaultMessage": "Ingrese su nombre."
- },
- "use_address_fields.error.please_enter_last_name": {
- "defaultMessage": "Ingrese su apellido."
- },
- "use_address_fields.error.please_enter_phone_number": {
- "defaultMessage": "Ingrese su número de teléfono."
- },
- "use_address_fields.error.please_enter_your_postal_or_zip": {
- "defaultMessage": "Ingrese su código postal."
- },
- "use_address_fields.error.please_select_your_address": {
- "defaultMessage": "Ingrese su dirección."
- },
- "use_address_fields.error.please_select_your_city": {
- "defaultMessage": "Ingrese su ciudad."
- },
- "use_address_fields.error.please_select_your_country": {
- "defaultMessage": "Seleccione su país."
- },
- "use_address_fields.error.please_select_your_state_or_province": {
- "defaultMessage": "Seleccione su estado/provincia."
- },
- "use_address_fields.error.required": {
- "defaultMessage": "Obligatorio"
- },
- "use_address_fields.error.state_code_invalid": {
- "defaultMessage": "Ingrese el código de estado/provincia de 2 letras."
- },
- "use_address_fields.label.address": {
- "defaultMessage": "Dirección"
- },
- "use_address_fields.label.address_form": {
- "defaultMessage": "Formato de direcciones"
- },
- "use_address_fields.label.city": {
- "defaultMessage": "Ciudad"
- },
- "use_address_fields.label.country": {
- "defaultMessage": "País"
- },
- "use_address_fields.label.first_name": {
- "defaultMessage": "Nombre"
- },
- "use_address_fields.label.last_name": {
- "defaultMessage": "Apellido"
- },
- "use_address_fields.label.phone": {
- "defaultMessage": "Teléfono"
- },
- "use_address_fields.label.postal_code": {
- "defaultMessage": "Código postal"
- },
- "use_address_fields.label.preferred": {
- "defaultMessage": "Establecer como predeterminado"
- },
- "use_address_fields.label.province": {
- "defaultMessage": "Provincia"
- },
- "use_address_fields.label.state": {
- "defaultMessage": "Estado"
- },
- "use_address_fields.label.zipCode": {
- "defaultMessage": "Código postal"
- },
- "use_credit_card_fields.error.required": {
- "defaultMessage": "Obligatorio"
- },
- "use_credit_card_fields.error.required_card_number": {
- "defaultMessage": "Ingrese el número de su tarjeta."
- },
- "use_credit_card_fields.error.required_expiry": {
- "defaultMessage": "Ingrese la fecha de caducidad."
- },
- "use_credit_card_fields.error.required_name": {
- "defaultMessage": "Ingrese su nombre como figura en su tarjeta."
- },
- "use_credit_card_fields.error.required_security_code": {
- "defaultMessage": "Ingrese su código de seguridad."
- },
- "use_credit_card_fields.error.valid_card_number": {
- "defaultMessage": "Ingrese un número de tarjeta válido."
- },
- "use_credit_card_fields.error.valid_date": {
- "defaultMessage": "Ingrese una fecha válida."
- },
- "use_credit_card_fields.error.valid_name": {
- "defaultMessage": "Ingrese un nombre válido."
- },
- "use_credit_card_fields.error.valid_security_code": {
- "defaultMessage": "Ingrese un código de seguridad válido."
- },
- "use_credit_card_fields.label.card_number": {
- "defaultMessage": "Número de tarjeta"
- },
- "use_credit_card_fields.label.card_type": {
- "defaultMessage": "Tipo de tarjeta"
- },
- "use_credit_card_fields.label.expiry": {
- "defaultMessage": "Fecha de caducidad"
- },
- "use_credit_card_fields.label.name": {
- "defaultMessage": "Nombre del titular de la tarjeta"
- },
- "use_credit_card_fields.label.security_code": {
- "defaultMessage": "Código de seguridad"
- },
- "use_login_fields.error.required_email": {
- "defaultMessage": "Ingrese su dirección de correo electrónico."
- },
- "use_login_fields.error.required_password": {
- "defaultMessage": "Ingrese su contraseña."
- },
- "use_login_fields.label.email": {
- "defaultMessage": "Correo electrónico"
- },
- "use_login_fields.label.password": {
- "defaultMessage": "Contraseña"
- },
- "use_product.message.inventory_remaining": {
- "defaultMessage": "¡Solo quedan {stockLevel}!"
- },
- "use_product.message.out_of_stock": {
- "defaultMessage": "Agotado"
- },
- "use_profile_fields.error.required_email": {
- "defaultMessage": "Introduzca una dirección de correo electrónico válida."
- },
- "use_profile_fields.error.required_first_name": {
- "defaultMessage": "Ingrese su nombre."
- },
- "use_profile_fields.error.required_last_name": {
- "defaultMessage": "Ingrese su apellido."
- },
- "use_profile_fields.error.required_phone": {
- "defaultMessage": "Ingrese su número de teléfono."
- },
- "use_profile_fields.label.email": {
- "defaultMessage": "Correo electrónico"
- },
- "use_profile_fields.label.first_name": {
- "defaultMessage": "Nombre"
- },
- "use_profile_fields.label.last_name": {
- "defaultMessage": "Apellido"
- },
- "use_profile_fields.label.phone": {
- "defaultMessage": "Número de teléfono"
- },
- "use_promo_code_fields.error.required_promo_code": {
- "defaultMessage": "Proporcione un código promocional válido."
- },
- "use_promo_code_fields.label.promo_code": {
- "defaultMessage": "Código promocional"
- },
- "use_promocode.error.check_the_code": {
- "defaultMessage": "Verifique el código y vuelva a intentarlo; es posible que ya haya sido aplicado o que la promoción haya caducado."
- },
- "use_promocode.info.promo_applied": {
- "defaultMessage": "Promoción aplicada"
- },
- "use_promocode.info.promo_removed": {
- "defaultMessage": "Promoción eliminada"
- },
- "use_registration_fields.error.contain_number": {
- "defaultMessage": "La contraseña debe incluir al menos un número."
- },
- "use_registration_fields.error.lowercase_letter": {
- "defaultMessage": "La contraseña debe incluir al menos una letra en minúscula."
- },
- "use_registration_fields.error.minimum_characters": {
- "defaultMessage": "La contraseña debe incluir al menos 8 caracteres."
- },
- "use_registration_fields.error.required_email": {
- "defaultMessage": "Introduzca una dirección de correo electrónico válida."
- },
- "use_registration_fields.error.required_first_name": {
- "defaultMessage": "Ingrese su nombre."
- },
- "use_registration_fields.error.required_last_name": {
- "defaultMessage": "Ingrese su apellido."
- },
- "use_registration_fields.error.required_password": {
- "defaultMessage": "Cree una contraseña."
- },
- "use_registration_fields.error.special_character": {
- "defaultMessage": "La contraseña debe incluir al menos un carácter especial."
- },
- "use_registration_fields.error.uppercase_letter": {
- "defaultMessage": "La contraseña debe incluir al menos una letra en mayúscula."
- },
- "use_registration_fields.label.email": {
- "defaultMessage": "Correo electrónico"
- },
- "use_registration_fields.label.first_name": {
- "defaultMessage": "Nombre"
- },
- "use_registration_fields.label.last_name": {
- "defaultMessage": "Apellido"
- },
- "use_registration_fields.label.password": {
- "defaultMessage": "Contraseña"
- },
- "use_registration_fields.label.sign_up_to_emails": {
- "defaultMessage": "Registrarme para recibir correos electrónicos de Salesforce (puede cancelar la suscripción en cualquier momento)"
- },
- "use_reset_password_fields.error.required_email": {
- "defaultMessage": "Introduzca una dirección de correo electrónico válida."
- },
- "use_reset_password_fields.label.email": {
- "defaultMessage": "Correo electrónico"
- },
- "use_update_password_fields.error.contain_number": {
- "defaultMessage": "La contraseña debe incluir al menos un número."
- },
- "use_update_password_fields.error.lowercase_letter": {
- "defaultMessage": "La contraseña debe incluir al menos una letra en minúscula."
- },
- "use_update_password_fields.error.minimum_characters": {
- "defaultMessage": "La contraseña debe incluir al menos 8 caracteres."
- },
- "use_update_password_fields.error.required_new_password": {
- "defaultMessage": "Proporcione una contraseña nueva."
- },
- "use_update_password_fields.error.required_password": {
- "defaultMessage": "Ingrese su contraseña."
- },
- "use_update_password_fields.error.special_character": {
- "defaultMessage": "La contraseña debe incluir al menos un carácter especial."
- },
- "use_update_password_fields.error.uppercase_letter": {
- "defaultMessage": "La contraseña debe incluir al menos una letra en mayúscula."
- },
- "use_update_password_fields.label.current_password": {
- "defaultMessage": "Contraseña actual"
- },
- "use_update_password_fields.label.new_password": {
- "defaultMessage": "Contraseña nueva"
- },
- "wishlist_primary_action.button.add_set_to_cart": {
- "defaultMessage": "Agregar conjunto al carrito"
- },
- "wishlist_primary_action.button.add_to_cart": {
- "defaultMessage": "Agregar al carrito"
- },
- "wishlist_primary_action.button.view_full_details": {
- "defaultMessage": "Ver toda la información"
- },
- "wishlist_primary_action.button.view_options": {
- "defaultMessage": "Ver opciones"
- },
- "wishlist_primary_action.info.added_to_cart": {
- "defaultMessage": "{quantity} {quantity, plural, one {artículo} other {artículos}} agregado(s) al carrito"
- },
- "wishlist_secondary_button_group.action.remove": {
- "defaultMessage": "Eliminar"
- },
- "wishlist_secondary_button_group.info.item_removed": {
- "defaultMessage": "Artículo eliminado de la lista de deseos"
- },
- "with_registration.info.please_sign_in": {
- "defaultMessage": "¡Regístrese para continuar!"
- }
-}
diff --git a/packages/template-retail-react-app/translations/fr-FR.json b/packages/template-retail-react-app/translations/fr-FR.json
deleted file mode 100644
index 361367b97f..0000000000
--- a/packages/template-retail-react-app/translations/fr-FR.json
+++ /dev/null
@@ -1,1517 +0,0 @@
-{
- "account.accordion.button.my_account": {
- "defaultMessage": "Mon compte"
- },
- "account.heading.my_account": {
- "defaultMessage": "Mon compte"
- },
- "account.logout_button.button.log_out": {
- "defaultMessage": "Se déconnecter"
- },
- "account_addresses.badge.default": {
- "defaultMessage": "Valeur par défaut"
- },
- "account_addresses.button.add_address": {
- "defaultMessage": "Ajouter une adresse"
- },
- "account_addresses.info.address_removed": {
- "defaultMessage": "Adresse supprimée"
- },
- "account_addresses.info.address_updated": {
- "defaultMessage": "Adresse mise à jour"
- },
- "account_addresses.info.new_address_saved": {
- "defaultMessage": "Nouvelle adresse enregistrée"
- },
- "account_addresses.page_action_placeholder.button.add_address": {
- "defaultMessage": "Ajouter une adresse"
- },
- "account_addresses.page_action_placeholder.heading.no_saved_addresses": {
- "defaultMessage": "Aucune adresse enregistrée"
- },
- "account_addresses.page_action_placeholder.message.add_new_address": {
- "defaultMessage": "Ajoutez une adresse pour accélérer le checkout."
- },
- "account_addresses.title.addresses": {
- "defaultMessage": "Adresses"
- },
- "account_detail.title.account_details": {
- "defaultMessage": "Détails du compte"
- },
- "account_order_detail.heading.billing_address": {
- "defaultMessage": "Adresse de facturation"
- },
- "account_order_detail.heading.num_of_items": {
- "defaultMessage": "{count} articles"
- },
- "account_order_detail.heading.payment_method": {
- "defaultMessage": "Mode de paiement"
- },
- "account_order_detail.heading.shipping_address": {
- "defaultMessage": "Adresse de livraison"
- },
- "account_order_detail.heading.shipping_method": {
- "defaultMessage": "Mode de livraison"
- },
- "account_order_detail.label.order_number": {
- "defaultMessage": "Numéro de commande : {orderNumber}"
- },
- "account_order_detail.label.ordered_date": {
- "defaultMessage": "Commandé le : {date}"
- },
- "account_order_detail.label.pending_tracking_number": {
- "defaultMessage": "En attente"
- },
- "account_order_detail.label.tracking_number": {
- "defaultMessage": "N° de suivi"
- },
- "account_order_detail.link.back_to_history": {
- "defaultMessage": "Retour à l’historique des commandes"
- },
- "account_order_detail.shipping_status.not_shipped": {
- "defaultMessage": "Non expédiée"
- },
- "account_order_detail.shipping_status.part_shipped": {
- "defaultMessage": "Partiellement expédiée"
- },
- "account_order_detail.shipping_status.shipped": {
- "defaultMessage": "Expédiée"
- },
- "account_order_detail.title.order_details": {
- "defaultMessage": "Détails de la commande"
- },
- "account_order_history.button.continue_shopping": {
- "defaultMessage": "Continuer les achats"
- },
- "account_order_history.description.once_you_place_order": {
- "defaultMessage": "Une fois que vous aurez passé une commande, les détails s’afficheront ici."
- },
- "account_order_history.heading.no_order_yet": {
- "defaultMessage": "Vous n’avez pas encore passé de commande."
- },
- "account_order_history.label.num_of_items": {
- "defaultMessage": "{count} articles",
- "description": "Number of items in order"
- },
- "account_order_history.label.order_number": {
- "defaultMessage": "Numéro de commande : {orderNumber}"
- },
- "account_order_history.label.ordered_date": {
- "defaultMessage": "Commandé le : {date}"
- },
- "account_order_history.label.shipped_to": {
- "defaultMessage": "Expédiée à : {name}"
- },
- "account_order_history.link.view_details": {
- "defaultMessage": "Afficher les détails"
- },
- "account_order_history.title.order_history": {
- "defaultMessage": "Historique des commandes"
- },
- "account_wishlist.button.continue_shopping": {
- "defaultMessage": "Continuer les achats"
- },
- "account_wishlist.description.continue_shopping": {
- "defaultMessage": "Poursuivez votre visite et ajoutez des articles à votre liste de souhaits."
- },
- "account_wishlist.heading.no_wishlist": {
- "defaultMessage": "Aucun article dans la liste de souhaits"
- },
- "account_wishlist.title.wishlist": {
- "defaultMessage": "Liste de souhaits"
- },
- "action_card.action.edit": {
- "defaultMessage": "Modifier"
- },
- "action_card.action.remove": {
- "defaultMessage": "Supprimer"
- },
- "add_to_cart_modal.info.added_to_cart": {
- "defaultMessage": "{quantity} {quantity, plural, one {article ajouté} other {articles ajoutés}} au panier"
- },
- "add_to_cart_modal.label.cart_subtotal": {
- "defaultMessage": "Sous-total du panier ({itemAccumulatedCount} article)"
- },
- "add_to_cart_modal.label.quantity": {
- "defaultMessage": "Qté"
- },
- "add_to_cart_modal.link.checkout": {
- "defaultMessage": "Passer au checkout"
- },
- "add_to_cart_modal.link.view_cart": {
- "defaultMessage": "Afficher le panier"
- },
- "add_to_cart_modal.recommended_products.title.might_also_like": {
- "defaultMessage": "Vous aimerez peut-être aussi"
- },
- "auth_modal.button.close.assistive_msg": {
- "defaultMessage": "Fermer le formulaire de connexion"
- },
- "auth_modal.description.now_signed_in": {
- "defaultMessage": "Vous êtes bien connecté."
- },
- "auth_modal.error.incorrect_email_or_password": {
- "defaultMessage": "Il y a un problème avec votre adresse e-mail ou votre mot de passe. Veuillez réessayer."
- },
- "auth_modal.info.welcome_user": {
- "defaultMessage": "Bienvenue {name},"
- },
- "auth_modal.password_reset_success.button.back_to_sign_in": {
- "defaultMessage": "Retour à la page de connexion"
- },
- "auth_modal.password_reset_success.info.will_email_shortly": {
- "defaultMessage": "Vous recevrez sous peu un e-mail à l’adresse {email} avec un lien permettant de réinitialiser votre mot de passe."
- },
- "auth_modal.password_reset_success.title.password_reset": {
- "defaultMessage": "Réinitialisation du mot de passe"
- },
- "carousel.button.scroll_left.assistive_msg": {
- "defaultMessage": "Faire défiler le carrousel vers la gauche"
- },
- "carousel.button.scroll_right.assistive_msg": {
- "defaultMessage": "Faire défiler le carrousel vers la droite"
- },
- "cart.info.removed_from_cart": {
- "defaultMessage": "Article supprimé du panier"
- },
- "cart.recommended_products.title.may_also_like": {
- "defaultMessage": "Vous aimerez peut-être aussi"
- },
- "cart.recommended_products.title.recently_viewed": {
- "defaultMessage": "Consultés récemment"
- },
- "cart_cta.link.checkout": {
- "defaultMessage": "Passer au checkout"
- },
- "cart_secondary_button_group.action.added_to_wishlist": {
- "defaultMessage": "Ajouter à la liste de souhaits"
- },
- "cart_secondary_button_group.action.edit": {
- "defaultMessage": "Modifier"
- },
- "cart_secondary_button_group.action.remove": {
- "defaultMessage": "Supprimer"
- },
- "cart_secondary_button_group.label.this_is_gift": {
- "defaultMessage": "C’est un cadeau."
- },
- "cart_skeleton.heading.order_summary": {
- "defaultMessage": "Résumé de la commande"
- },
- "cart_skeleton.title.cart": {
- "defaultMessage": "Panier"
- },
- "cart_title.title.cart_num_of_items": {
- "defaultMessage": "Panier ({itemCount, plural, =0 {0 article} one {# article} other {# articles}})"
- },
- "cc_radio_group.action.remove": {
- "defaultMessage": "Supprimer"
- },
- "cc_radio_group.button.add_new_card": {
- "defaultMessage": "Ajouter une nouvelle carte"
- },
- "checkout.button.place_order": {
- "defaultMessage": "Passer commande"
- },
- "checkout.message.generic_error": {
- "defaultMessage": "Une erreur inattendue s'est produite durant le checkout."
- },
- "checkout_confirmation.button.create_account": {
- "defaultMessage": "Créer un compte"
- },
- "checkout_confirmation.heading.billing_address": {
- "defaultMessage": "Adresse de facturation"
- },
- "checkout_confirmation.heading.create_account": {
- "defaultMessage": "Créez un compte pour accélérer le checkout"
- },
- "checkout_confirmation.heading.credit_card": {
- "defaultMessage": "Carte de crédit"
- },
- "checkout_confirmation.heading.delivery_details": {
- "defaultMessage": "Détails de la livraison"
- },
- "checkout_confirmation.heading.order_summary": {
- "defaultMessage": "Résumé de la commande"
- },
- "checkout_confirmation.heading.payment_details": {
- "defaultMessage": "Détails du paiement"
- },
- "checkout_confirmation.heading.shipping_address": {
- "defaultMessage": "Adresse de livraison"
- },
- "checkout_confirmation.heading.shipping_method": {
- "defaultMessage": "Mode de livraison"
- },
- "checkout_confirmation.heading.thank_you_for_order": {
- "defaultMessage": "Merci pour votre commande !"
- },
- "checkout_confirmation.label.free": {
- "defaultMessage": "Gratuit"
- },
- "checkout_confirmation.label.order_number": {
- "defaultMessage": "Numéro de commande"
- },
- "checkout_confirmation.label.order_total": {
- "defaultMessage": "Total de la commande"
- },
- "checkout_confirmation.label.promo_applied": {
- "defaultMessage": "Promotion appliquée"
- },
- "checkout_confirmation.label.shipping": {
- "defaultMessage": "Livraison"
- },
- "checkout_confirmation.label.subtotal": {
- "defaultMessage": "Sous-total"
- },
- "checkout_confirmation.label.tax": {
- "defaultMessage": "Taxe"
- },
- "checkout_confirmation.link.continue_shopping": {
- "defaultMessage": "Continuer les achats"
- },
- "checkout_confirmation.link.login": {
- "defaultMessage": "Connectez-vous ici"
- },
- "checkout_confirmation.message.already_has_account": {
- "defaultMessage": "Cet e-mail a déjà un compte."
- },
- "checkout_confirmation.message.num_of_items_in_order": {
- "defaultMessage": "{itemCount, plural, =0 {0 article} one {# article} other {# articles}}",
- "description": "# item(s) in order"
- },
- "checkout_confirmation.message.will_email_shortly": {
- "defaultMessage": "Nous enverrons sous peu un e-mail à l’adresse {email} avec votre numéro de confirmation et votre reçu."
- },
- "checkout_footer.link.privacy_policy": {
- "defaultMessage": "Politique de confidentialité"
- },
- "checkout_footer.link.returns_exchanges": {
- "defaultMessage": "Retours et échanges"
- },
- "checkout_footer.link.shipping": {
- "defaultMessage": "Livraison"
- },
- "checkout_footer.link.site_map": {
- "defaultMessage": "Plan du site"
- },
- "checkout_footer.link.terms_conditions": {
- "defaultMessage": "Conditions générales"
- },
- "checkout_footer.message.copyright": {
- "defaultMessage": "Salesforce ou ses affiliés. Tous droits réservés. Ceci est une boutique de démonstration uniquement. Les commandes NE SERONT PAS traitées."
- },
- "checkout_header.link.assistive_msg.cart": {
- "defaultMessage": "Retour au panier, nombre d’articles : {numItems}"
- },
- "checkout_header.link.cart": {
- "defaultMessage": "Retour au panier"
- },
- "checkout_payment.action.remove": {
- "defaultMessage": "Supprimer"
- },
- "checkout_payment.button.review_order": {
- "defaultMessage": "Vérifier la commande"
- },
- "checkout_payment.heading.billing_address": {
- "defaultMessage": "Adresse de facturation"
- },
- "checkout_payment.heading.credit_card": {
- "defaultMessage": "Carte de crédit"
- },
- "checkout_payment.label.same_as_shipping": {
- "defaultMessage": "Identique à l’adresse de livraison"
- },
- "checkout_payment.title.payment": {
- "defaultMessage": "Paiement"
- },
- "colorRefinements.label.hitCount": {
- "defaultMessage": "{colorLabel} ({colorHitCount})"
- },
- "confirmation_modal.default.action.no": {
- "defaultMessage": "Non"
- },
- "confirmation_modal.default.action.yes": {
- "defaultMessage": "Oui"
- },
- "confirmation_modal.default.message.you_want_to_continue": {
- "defaultMessage": "Voulez-vous vraiment continuer ?"
- },
- "confirmation_modal.default.title.confirm_action": {
- "defaultMessage": "Confirmer l’action"
- },
- "confirmation_modal.remove_cart_item.action.no": {
- "defaultMessage": "Non, garder l’article"
- },
- "confirmation_modal.remove_cart_item.action.remove": {
- "defaultMessage": "Supprimer"
- },
- "confirmation_modal.remove_cart_item.action.yes": {
- "defaultMessage": "Oui, supprimer l’article"
- },
- "confirmation_modal.remove_cart_item.message.need_to_remove_due_to_unavailability": {
- "defaultMessage": "Certains articles ne sont plus disponibles en ligne et seront supprimés de votre panier."
- },
- "confirmation_modal.remove_cart_item.message.sure_to_remove": {
- "defaultMessage": "Voulez-vous vraiment supprimer cet article de votre panier ?"
- },
- "confirmation_modal.remove_cart_item.title.confirm_remove": {
- "defaultMessage": "Confirmer la suppression de l’article"
- },
- "confirmation_modal.remove_cart_item.title.items_unavailable": {
- "defaultMessage": "Articles non disponibles"
- },
- "confirmation_modal.remove_wishlist_item.action.no": {
- "defaultMessage": "Non, garder l’article"
- },
- "confirmation_modal.remove_wishlist_item.action.yes": {
- "defaultMessage": "Oui, supprimer l’article"
- },
- "confirmation_modal.remove_wishlist_item.message.sure_to_remove": {
- "defaultMessage": "Voulez-vous vraiment supprimer cet article de votre liste de souhaits ?"
- },
- "confirmation_modal.remove_wishlist_item.title.confirm_remove": {
- "defaultMessage": "Confirmer la suppression de l’article"
- },
- "contact_info.action.sign_out": {
- "defaultMessage": "Se déconnecter"
- },
- "contact_info.button.already_have_account": {
- "defaultMessage": "Vous avez déjà un compte ? Se connecter"
- },
- "contact_info.button.checkout_as_guest": {
- "defaultMessage": "Régler en tant qu'invité"
- },
- "contact_info.button.login": {
- "defaultMessage": "Se connecter"
- },
- "contact_info.error.incorrect_username_or_password": {
- "defaultMessage": "Le nom d’utilisateur ou le mot de passe est incorrect, veuillez réessayer."
- },
- "contact_info.link.forgot_password": {
- "defaultMessage": "Mot de passe oublié ?"
- },
- "contact_info.title.contact_info": {
- "defaultMessage": "Coordonnées"
- },
- "credit_card_fields.tool_tip.security_code": {
- "defaultMessage": "Ce code à 3 chiffres se trouve au dos de votre carte.",
- "description": "Generic credit card security code help text"
- },
- "credit_card_fields.tool_tip.security_code.american_express": {
- "defaultMessage": "Ce code à 4 chiffres se trouve sur le devant de votre carte.",
- "description": "American Express security code help text"
- },
- "credit_card_fields.tool_tip.security_code_aria_label": {
- "defaultMessage": "Cryptogramme"
- },
- "drawer_menu.button.account_details": {
- "defaultMessage": "Détails du compte"
- },
- "drawer_menu.button.addresses": {
- "defaultMessage": "Adresses"
- },
- "drawer_menu.button.log_out": {
- "defaultMessage": "Se déconnecter"
- },
- "drawer_menu.button.my_account": {
- "defaultMessage": "Mon compte"
- },
- "drawer_menu.button.order_history": {
- "defaultMessage": "Historique des commandes"
- },
- "drawer_menu.link.about_us": {
- "defaultMessage": "À propos de nous"
- },
- "drawer_menu.link.customer_support": {
- "defaultMessage": "Support client"
- },
- "drawer_menu.link.customer_support.contact_us": {
- "defaultMessage": "Contactez-nous"
- },
- "drawer_menu.link.customer_support.shipping_and_returns": {
- "defaultMessage": "Livraisons et retours"
- },
- "drawer_menu.link.our_company": {
- "defaultMessage": "Notre société"
- },
- "drawer_menu.link.privacy_and_security": {
- "defaultMessage": "Confidentialité et sécurité"
- },
- "drawer_menu.link.privacy_policy": {
- "defaultMessage": "Politique de confidentialité"
- },
- "drawer_menu.link.shop_all": {
- "defaultMessage": "Tous les articles"
- },
- "drawer_menu.link.sign_in": {
- "defaultMessage": "Se connecter"
- },
- "drawer_menu.link.site_map": {
- "defaultMessage": "Plan du site"
- },
- "drawer_menu.link.store_locator": {
- "defaultMessage": "Localisateur de magasins"
- },
- "drawer_menu.link.terms_and_conditions": {
- "defaultMessage": "Conditions générales"
- },
- "empty_cart.description.empty_cart": {
- "defaultMessage": "Votre panier est vide."
- },
- "empty_cart.link.continue_shopping": {
- "defaultMessage": "Continuer les achats"
- },
- "empty_cart.link.sign_in": {
- "defaultMessage": "Se connecter"
- },
- "empty_cart.message.continue_shopping": {
- "defaultMessage": "Poursuivez votre visite pour ajouter des articles à votre panier."
- },
- "empty_cart.message.sign_in_or_continue_shopping": {
- "defaultMessage": "Connectez-vous pour récupérer vos articles enregistrés ou poursuivre vos achats."
- },
- "empty_search_results.info.cant_find_anything_for_category": {
- "defaultMessage": "Aucun résultat trouvé pour {category}. Essayez de rechercher un produit ou {link}."
- },
- "empty_search_results.info.cant_find_anything_for_query": {
- "defaultMessage": "Aucun résultat trouvé pour « {searchQuery} »."
- },
- "empty_search_results.info.double_check_spelling": {
- "defaultMessage": "Vérifiez l’orthographe et réessayez ou {link}."
- },
- "empty_search_results.link.contact_us": {
- "defaultMessage": "Contactez-nous"
- },
- "empty_search_results.recommended_products.title.most_viewed": {
- "defaultMessage": "Les plus consultés"
- },
- "empty_search_results.recommended_products.title.top_sellers": {
- "defaultMessage": "Meilleures ventes"
- },
- "field.password.assistive_msg.hide_password": {
- "defaultMessage": "Réinitialiser le mot de passe"
- },
- "field.password.assistive_msg.show_password": {
- "defaultMessage": "Afficher le mot de passe"
- },
- "footer.column.account": {
- "defaultMessage": "Compte"
- },
- "footer.column.customer_support": {
- "defaultMessage": "Support client"
- },
- "footer.column.our_company": {
- "defaultMessage": "Notre société"
- },
- "footer.link.about_us": {
- "defaultMessage": "À propos de nous"
- },
- "footer.link.contact_us": {
- "defaultMessage": "Contactez-nous"
- },
- "footer.link.order_status": {
- "defaultMessage": "État des commandes"
- },
- "footer.link.privacy_policy": {
- "defaultMessage": "Politique de confidentialité"
- },
- "footer.link.shipping": {
- "defaultMessage": "Livraison"
- },
- "footer.link.signin_create_account": {
- "defaultMessage": "Se connecter ou créer un compte"
- },
- "footer.link.site_map": {
- "defaultMessage": "Plan du site"
- },
- "footer.link.store_locator": {
- "defaultMessage": "Localisateur de magasins"
- },
- "footer.link.terms_conditions": {
- "defaultMessage": "Conditions générales"
- },
- "footer.message.copyright": {
- "defaultMessage": "Salesforce ou ses affiliés. Tous droits réservés. Ceci est une boutique de démonstration uniquement. Les commandes NE SERONT PAS traitées."
- },
- "footer.subscribe.button.sign_up": {
- "defaultMessage": "Inscrivez-vous"
- },
- "footer.subscribe.description.sign_up": {
- "defaultMessage": "Abonnez-vous pour rester au courant des meilleures offres"
- },
- "footer.subscribe.heading.first_to_know": {
- "defaultMessage": "Soyez parmi les premiers informés"
- },
- "form_action_buttons.button.cancel": {
- "defaultMessage": "Annuler"
- },
- "form_action_buttons.button.save": {
- "defaultMessage": "Enregistrer"
- },
- "global.account.link.account_details": {
- "defaultMessage": "Détails du compte"
- },
- "global.account.link.addresses": {
- "defaultMessage": "Adresses"
- },
- "global.account.link.order_history": {
- "defaultMessage": "Historique des commandes"
- },
- "global.account.link.wishlist": {
- "defaultMessage": "Liste de souhaits"
- },
- "global.error.something_went_wrong": {
- "defaultMessage": "Un problème est survenu Veuillez réessayer."
- },
- "global.info.added_to_wishlist": {
- "defaultMessage": "{quantity} {quantity, plural, one {article ajouté} other {articles ajoutés}} à la liste de souhaits"
- },
- "global.info.already_in_wishlist": {
- "defaultMessage": "L’article figure déjà dans la liste de souhaits"
- },
- "global.info.removed_from_wishlist": {
- "defaultMessage": "Article supprimé de la liste de souhaits"
- },
- "global.link.added_to_wishlist.view_wishlist": {
- "defaultMessage": "Afficher"
- },
- "header.button.assistive_msg.logo": {
- "defaultMessage": "Logo"
- },
- "header.button.assistive_msg.menu": {
- "defaultMessage": "Menu"
- },
- "header.button.assistive_msg.my_account": {
- "defaultMessage": "Mon compte"
- },
- "header.button.assistive_msg.my_account_menu": {
- "defaultMessage": "Ouvrir le menu du compte"
- },
- "header.button.assistive_msg.my_cart_with_num_items": {
- "defaultMessage": "Mon panier, nombre d’articles : {numItems}"
- },
- "header.button.assistive_msg.wishlist": {
- "defaultMessage": "Liste de souhaits"
- },
- "header.field.placeholder.search_for_products": {
- "defaultMessage": "Recherche de produits…"
- },
- "header.popover.action.log_out": {
- "defaultMessage": "Se déconnecter"
- },
- "header.popover.title.my_account": {
- "defaultMessage": "Mon compte"
- },
- "home.description.features": {
- "defaultMessage": "Des fonctionnalités prêtes à l’emploi pour vous permettre de vous concentrer uniquement sur l’ajout d’améliorations."
- },
- "home.description.here_to_help": {
- "defaultMessage": "Contactez notre équipe de support."
- },
- "home.description.here_to_help_line_2": {
- "defaultMessage": "Elle vous amènera au bon endroit."
- },
- "home.description.shop_products": {
- "defaultMessage": "Cette section contient du contenu du catalogue. {docLink} pour savoir comment le remplacer.",
- "description": "{docLink} is a html button that links the user to https://sfdc.co/business-manager-manage-catalogs"
- },
- "home.features.description.cart_checkout": {
- "defaultMessage": "Meilleures pratiques de commerce électronique pour l’expérience de panier et de checkout de l’acheteur."
- },
- "home.features.description.components": {
- "defaultMessage": "Conçu à l’aide de Chakra UI, une bibliothèque de composants React simple, modulaire et accessible."
- },
- "home.features.description.einstein_recommendations": {
- "defaultMessage": "Proposez d’autres produits ou offres intéressantes à vos acheteurs grâce aux recommandations de produits."
- },
- "home.features.description.my_account": {
- "defaultMessage": "Les acheteurs peuvent gérer les informations de leur compte, comme leur profil, leurs adresses, leurs paiements et leurs commandes."
- },
- "home.features.description.shopper_login": {
- "defaultMessage": "Permettez aux acheteurs de se connecter facilement et de bénéficier d’une expérience d’achat plus personnalisée."
- },
- "home.features.description.wishlist": {
- "defaultMessage": "Les acheteurs enregistrés peuvent ajouter des articles à leur liste de souhaits pour les acheter plus tard."
- },
- "home.features.heading.cart_checkout": {
- "defaultMessage": "Panier et checkout"
- },
- "home.features.heading.components": {
- "defaultMessage": "Composants et kit de conception"
- },
- "home.features.heading.einstein_recommendations": {
- "defaultMessage": "Recommandations Einstein"
- },
- "home.features.heading.my_account": {
- "defaultMessage": "Mon compte"
- },
- "home.features.heading.shopper_login": {
- "defaultMessage": "Shopper Login and API Access Service (SLAS)"
- },
- "home.features.heading.wishlist": {
- "defaultMessage": "Liste de souhaits"
- },
- "home.heading.features": {
- "defaultMessage": "Fonctionnalités"
- },
- "home.heading.here_to_help": {
- "defaultMessage": "Nous sommes là pour vous aider"
- },
- "home.heading.shop_products": {
- "defaultMessage": "Acheter des produits"
- },
- "home.hero_features.link.design_kit": {
- "defaultMessage": "Créer avec le Figma PWA Design Kit"
- },
- "home.hero_features.link.on_github": {
- "defaultMessage": "Télécharger sur Github"
- },
- "home.hero_features.link.on_managed_runtime": {
- "defaultMessage": "Déployer sur Managed Runtime"
- },
- "home.link.contact_us": {
- "defaultMessage": "Contactez-nous"
- },
- "home.link.get_started": {
- "defaultMessage": "Premiers pas"
- },
- "home.link.read_docs": {
- "defaultMessage": "Lire la documentation"
- },
- "home.title.react_starter_store": {
- "defaultMessage": "React PWA Starter Store pour le retail"
- },
- "icons.assistive_msg.lock": {
- "defaultMessage": "Sécurisé"
- },
- "item_attributes.label.promotions": {
- "defaultMessage": "Promotions"
- },
- "item_attributes.label.quantity": {
- "defaultMessage": "Quantité : {quantity}"
- },
- "item_image.label.sale": {
- "defaultMessage": "Vente",
- "description": "A sale badge placed on top of a product image"
- },
- "item_image.label.unavailable": {
- "defaultMessage": "Non disponible",
- "description": "A unavailable badge placed on top of a product image"
- },
- "item_price.label.starting_at": {
- "defaultMessage": "À partir de"
- },
- "lCPCxk": {
- "defaultMessage": "Sélectionnez toutes vos options ci-dessus"
- },
- "list_menu.nav.assistive_msg": {
- "defaultMessage": "Navigation principale"
- },
- "locale_text.message.ar-SA": {
- "defaultMessage": "Arabe (Arabie Saoudite)"
- },
- "locale_text.message.bn-BD": {
- "defaultMessage": "Bangla (Bangladesh)"
- },
- "locale_text.message.bn-IN": {
- "defaultMessage": "Bangla (Inde)"
- },
- "locale_text.message.cs-CZ": {
- "defaultMessage": "Tchèque (République tchèque)"
- },
- "locale_text.message.da-DK": {
- "defaultMessage": "Danois (Danemark)"
- },
- "locale_text.message.de-AT": {
- "defaultMessage": "Allemand (Autriche)"
- },
- "locale_text.message.de-CH": {
- "defaultMessage": "Allemand (Suisse)"
- },
- "locale_text.message.de-DE": {
- "defaultMessage": "Allemand (Allemagne)"
- },
- "locale_text.message.el-GR": {
- "defaultMessage": "Grec (Grèce)"
- },
- "locale_text.message.en-AU": {
- "defaultMessage": "Anglais (Australie)"
- },
- "locale_text.message.en-CA": {
- "defaultMessage": "Anglais (Canada)"
- },
- "locale_text.message.en-GB": {
- "defaultMessage": "Anglais (Royaume-Uni)"
- },
- "locale_text.message.en-IE": {
- "defaultMessage": "Anglais (Irlande)"
- },
- "locale_text.message.en-IN": {
- "defaultMessage": "Anglais (Inde)"
- },
- "locale_text.message.en-NZ": {
- "defaultMessage": "Anglais (Nouvelle-Zélande)"
- },
- "locale_text.message.en-US": {
- "defaultMessage": "Anglais (États-Unis)"
- },
- "locale_text.message.en-ZA": {
- "defaultMessage": "Anglais (Afrique du Sud)"
- },
- "locale_text.message.es-AR": {
- "defaultMessage": "Espagnol (Argentine)"
- },
- "locale_text.message.es-CL": {
- "defaultMessage": "Espagnol (Chili)"
- },
- "locale_text.message.es-CO": {
- "defaultMessage": "Espagnol (Colombie)"
- },
- "locale_text.message.es-ES": {
- "defaultMessage": "Espagnol (Espagne)"
- },
- "locale_text.message.es-MX": {
- "defaultMessage": "Espagnol (Mexique)"
- },
- "locale_text.message.es-US": {
- "defaultMessage": "Espagnol (États-Unis)"
- },
- "locale_text.message.fi-FI": {
- "defaultMessage": "Finnois (Finlande)"
- },
- "locale_text.message.fr-BE": {
- "defaultMessage": "Français (Belgique)"
- },
- "locale_text.message.fr-CA": {
- "defaultMessage": "Français (Canada)"
- },
- "locale_text.message.fr-CH": {
- "defaultMessage": "Français (Suisse)"
- },
- "locale_text.message.fr-FR": {
- "defaultMessage": "Français (France)"
- },
- "locale_text.message.he-IL": {
- "defaultMessage": "Hébreu (Israël)"
- },
- "locale_text.message.hi-IN": {
- "defaultMessage": "Hindi (Inde)"
- },
- "locale_text.message.hu-HU": {
- "defaultMessage": "Hongrois (Hongrie)"
- },
- "locale_text.message.id-ID": {
- "defaultMessage": "Indonésien (Indonésie)"
- },
- "locale_text.message.it-CH": {
- "defaultMessage": "Italien (Suisse)"
- },
- "locale_text.message.it-IT": {
- "defaultMessage": "Italien (Italie)"
- },
- "locale_text.message.ja-JP": {
- "defaultMessage": "Japonais (Japon)"
- },
- "locale_text.message.ko-KR": {
- "defaultMessage": "Coréen (République de Corée)"
- },
- "locale_text.message.nl-BE": {
- "defaultMessage": "Néerlandais (Belgique)"
- },
- "locale_text.message.nl-NL": {
- "defaultMessage": "Néerlandais (Pays-Bas)"
- },
- "locale_text.message.no-NO": {
- "defaultMessage": "Norvégien (Norvège)"
- },
- "locale_text.message.pl-PL": {
- "defaultMessage": "Polonais (Pologne)"
- },
- "locale_text.message.pt-BR": {
- "defaultMessage": "Portugais (Brésil)"
- },
- "locale_text.message.pt-PT": {
- "defaultMessage": "Portugais (Portugal)"
- },
- "locale_text.message.ro-RO": {
- "defaultMessage": "Roumain (Roumanie)"
- },
- "locale_text.message.ru-RU": {
- "defaultMessage": "Russe (Fédération de Russie)"
- },
- "locale_text.message.sk-SK": {
- "defaultMessage": "Slovaque (Slovaquie)"
- },
- "locale_text.message.sv-SE": {
- "defaultMessage": "Suédois (Suède)"
- },
- "locale_text.message.ta-IN": {
- "defaultMessage": "Tamil (Inde)"
- },
- "locale_text.message.ta-LK": {
- "defaultMessage": "Tamil (Sri Lanka)"
- },
- "locale_text.message.th-TH": {
- "defaultMessage": "Thaï (Thaïlande)"
- },
- "locale_text.message.tr-TR": {
- "defaultMessage": "Turc (Turquie)"
- },
- "locale_text.message.zh-CN": {
- "defaultMessage": "Chinois (Chine)"
- },
- "locale_text.message.zh-HK": {
- "defaultMessage": "Chinois (Hong Kong)"
- },
- "locale_text.message.zh-TW": {
- "defaultMessage": "Chinois (Taiwan)"
- },
- "login_form.action.create_account": {
- "defaultMessage": "Créer un compte"
- },
- "login_form.button.sign_in": {
- "defaultMessage": "Se connecter"
- },
- "login_form.link.forgot_password": {
- "defaultMessage": "Mot de passe oublié ?"
- },
- "login_form.message.dont_have_account": {
- "defaultMessage": "Vous n’avez pas de compte ?"
- },
- "login_form.message.welcome_back": {
- "defaultMessage": "Nous sommes heureux de vous revoir"
- },
- "login_page.error.incorrect_username_or_password": {
- "defaultMessage": "Le nom d’utilisateur ou le mot de passe est incorrect, veuillez réessayer."
- },
- "offline_banner.description.browsing_offline_mode": {
- "defaultMessage": "Vous naviguez actuellement en mode hors ligne"
- },
- "order_summary.action.remove_promo": {
- "defaultMessage": "Supprimer"
- },
- "order_summary.cart_items.action.num_of_items_in_cart": {
- "defaultMessage": "{itemCount, plural, =0 {0 article} one {# article} other {# articles}} dans le panier",
- "description": "clicking it would expand/show the items in cart"
- },
- "order_summary.cart_items.link.edit_cart": {
- "defaultMessage": "Modifier le panier"
- },
- "order_summary.heading.order_summary": {
- "defaultMessage": "Résumé de la commande"
- },
- "order_summary.label.estimated_total": {
- "defaultMessage": "Total estimé"
- },
- "order_summary.label.free": {
- "defaultMessage": "Gratuit"
- },
- "order_summary.label.order_total": {
- "defaultMessage": "Total de la commande"
- },
- "order_summary.label.promo_applied": {
- "defaultMessage": "Promotion appliquée"
- },
- "order_summary.label.promotions_applied": {
- "defaultMessage": "Promotions appliquées"
- },
- "order_summary.label.shipping": {
- "defaultMessage": "Livraison"
- },
- "order_summary.label.subtotal": {
- "defaultMessage": "Sous-total"
- },
- "order_summary.label.tax": {
- "defaultMessage": "Taxe"
- },
- "page_not_found.action.go_back": {
- "defaultMessage": "Retour à la page précédente"
- },
- "page_not_found.link.homepage": {
- "defaultMessage": "Accéder à la page d’accueil"
- },
- "page_not_found.message.suggestion_to_try": {
- "defaultMessage": "Essayez de ressaisir l’adresse, de revenir à la page précédente ou d’accéder à la page d’accueil."
- },
- "page_not_found.title.page_cant_be_found": {
- "defaultMessage": "Impossible de trouver la page que vous cherchez."
- },
- "pagination.field.num_of_pages": {
- "defaultMessage": "sur {numOfPages}"
- },
- "pagination.link.next": {
- "defaultMessage": "Suivant"
- },
- "pagination.link.next.assistive_msg": {
- "defaultMessage": "Page suivante"
- },
- "pagination.link.prev": {
- "defaultMessage": "Préc."
- },
- "pagination.link.prev.assistive_msg": {
- "defaultMessage": "Page précédente"
- },
- "password_card.info.password_updated": {
- "defaultMessage": "Mot de passe mis à jour"
- },
- "password_card.label.password": {
- "defaultMessage": "Mot de passe"
- },
- "password_card.title.password": {
- "defaultMessage": "Mot de passe"
- },
- "password_requirements.error.eight_letter_minimum": {
- "defaultMessage": "8 caractères minimum",
- "description": "Password requirement"
- },
- "password_requirements.error.one_lowercase_letter": {
- "defaultMessage": "1 lettre minuscule",
- "description": "Password requirement"
- },
- "password_requirements.error.one_number": {
- "defaultMessage": "1 chiffre",
- "description": "Password requirement"
- },
- "password_requirements.error.one_special_character": {
- "defaultMessage": "1 caractère spécial (par exemple : , $ ! % #)",
- "description": "Password requirement"
- },
- "password_requirements.error.one_uppercase_letter": {
- "defaultMessage": "1 lettre majuscule",
- "description": "Password requirement"
- },
- "payment_selection.heading.credit_card": {
- "defaultMessage": "Carte de crédit"
- },
- "payment_selection.tooltip.secure_payment": {
- "defaultMessage": "Il s’agit d’un paiement sécurisé chiffré en SSL."
- },
- "price_per_item.label.each": {
- "defaultMessage": "pièce",
- "description": "Abbreviated 'each', follows price per item, like $10/ea"
- },
- "product_detail.accordion.button.product_detail": {
- "defaultMessage": "Détails du produit"
- },
- "product_detail.accordion.button.questions": {
- "defaultMessage": "Questions"
- },
- "product_detail.accordion.button.reviews": {
- "defaultMessage": "Avis"
- },
- "product_detail.accordion.button.size_fit": {
- "defaultMessage": "Taille et ajustement"
- },
- "product_detail.accordion.message.coming_soon": {
- "defaultMessage": "Bientôt disponibles"
- },
- "product_detail.recommended_products.title.complete_set": {
- "defaultMessage": "Complétez l'ensemble"
- },
- "product_detail.recommended_products.title.might_also_like": {
- "defaultMessage": "Vous aimerez peut-être aussi"
- },
- "product_detail.recommended_products.title.recently_viewed": {
- "defaultMessage": "Consultés récemment"
- },
- "product_item.label.quantity": {
- "defaultMessage": "Quantité :"
- },
- "product_list.button.filter": {
- "defaultMessage": "Filtrer"
- },
- "product_list.button.sort_by": {
- "defaultMessage": "Trier par : {sortOption}"
- },
- "product_list.drawer.title.sort_by": {
- "defaultMessage": "Trier par"
- },
- "product_list.modal.button.clear_filters": {
- "defaultMessage": "Effacer les filtres"
- },
- "product_list.modal.button.view_items": {
- "defaultMessage": "Afficher {prroductCount} articles"
- },
- "product_list.modal.title.filter": {
- "defaultMessage": "Filtrer"
- },
- "product_list.refinements.button.assistive_msg.add_filter": {
- "defaultMessage": "Ajouter un filtre : {label}"
- },
- "product_list.refinements.button.assistive_msg.add_filter_with_hit_count": {
- "defaultMessage": "Ajouter un filtre : {label} ({hitCount})"
- },
- "product_list.refinements.button.assistive_msg.remove_filter": {
- "defaultMessage": "Supprimer le filtre : {label}"
- },
- "product_list.refinements.button.assistive_msg.remove_filter_with_hit_count": {
- "defaultMessage": "Supprimer le filtre : {label} ({hitCount})"
- },
- "product_list.select.sort_by": {
- "defaultMessage": "Trier par : {sortOption}"
- },
- "product_scroller.assistive_msg.scroll_left": {
- "defaultMessage": "Faire défiler les produits vers la gauche"
- },
- "product_scroller.assistive_msg.scroll_right": {
- "defaultMessage": "Faire défiler les produits vers la droite"
- },
- "product_tile.assistive_msg.add_to_wishlist": {
- "defaultMessage": "Ajouter le/la {product} à la liste de souhaits"
- },
- "product_tile.assistive_msg.remove_from_wishlist": {
- "defaultMessage": "Supprimer {product} de la liste de souhaits"
- },
- "product_tile.label.starting_at_price": {
- "defaultMessage": "À partir de {price}"
- },
- "product_view.button.add_set_to_cart": {
- "defaultMessage": "Ajouter le lot au panier"
- },
- "product_view.button.add_set_to_wishlist": {
- "defaultMessage": "Ajouter le lot à la liste de souhaits"
- },
- "product_view.button.add_to_cart": {
- "defaultMessage": "Ajouter au panier"
- },
- "product_view.button.add_to_wishlist": {
- "defaultMessage": "Ajouter à la liste de souhaits"
- },
- "product_view.button.update": {
- "defaultMessage": "Mettre à jour"
- },
- "product_view.label.assistive_msg.quantity_decrement": {
- "defaultMessage": "Décrémenter la quantité"
- },
- "product_view.label.assistive_msg.quantity_increment": {
- "defaultMessage": "Incrémenter la quantité"
- },
- "product_view.label.quantity": {
- "defaultMessage": "Quantité"
- },
- "product_view.label.quantity_decrement": {
- "defaultMessage": "−"
- },
- "product_view.label.quantity_increment": {
- "defaultMessage": "+"
- },
- "product_view.label.starting_at_price": {
- "defaultMessage": "À partir de"
- },
- "product_view.label.variant_type": {
- "defaultMessage": "{variantType}"
- },
- "product_view.link.full_details": {
- "defaultMessage": "Afficher tous les détails"
- },
- "profile_card.info.profile_updated": {
- "defaultMessage": "Profil mis à jour"
- },
- "profile_card.label.email": {
- "defaultMessage": "E-mail"
- },
- "profile_card.label.full_name": {
- "defaultMessage": "Nom complet"
- },
- "profile_card.label.phone": {
- "defaultMessage": "Numéro de téléphone"
- },
- "profile_card.message.not_provided": {
- "defaultMessage": "Non fourni"
- },
- "profile_card.title.my_profile": {
- "defaultMessage": "Mon profil"
- },
- "promo_code_fields.button.apply": {
- "defaultMessage": "Appliquer"
- },
- "promo_popover.assistive_msg.info": {
- "defaultMessage": "Infos"
- },
- "promo_popover.heading.promo_applied": {
- "defaultMessage": "Promotions appliquées"
- },
- "promocode.accordion.button.have_promocode": {
- "defaultMessage": "Avez-vous un code promo ?"
- },
- "recent_searches.action.clear_searches": {
- "defaultMessage": "Effacer les recherches récentes"
- },
- "recent_searches.heading.recent_searches": {
- "defaultMessage": "Recherche récentes"
- },
- "register_form.action.sign_in": {
- "defaultMessage": "Se connecter"
- },
- "register_form.button.create_account": {
- "defaultMessage": "Créer un compte"
- },
- "register_form.heading.lets_get_started": {
- "defaultMessage": "C’est parti !"
- },
- "register_form.message.agree_to_policy_terms": {
- "defaultMessage": "En créant un compte, vous acceptez la Politique de confidentialité et les Conditions générales de Salesforce."
- },
- "register_form.message.already_have_account": {
- "defaultMessage": "Vous avez déjà un compte ?"
- },
- "register_form.message.create_an_account": {
- "defaultMessage": "Créez un compte pour bénéficier d’un accès privilégié aux meilleurs produits, à nos sources d’inspiration et à notre communauté."
- },
- "reset_password.button.back_to_sign_in": {
- "defaultMessage": "Retour à la page de connexion"
- },
- "reset_password.info.receive_email_shortly": {
- "defaultMessage": "Vous recevrez sous peu un e-mail à l’adresse {email} avec un lien permettant de réinitialiser votre mot de passe."
- },
- "reset_password.title.password_reset": {
- "defaultMessage": "Réinitialisation du mot de passe"
- },
- "reset_password_form.action.sign_in": {
- "defaultMessage": "Se connecter"
- },
- "reset_password_form.button.reset_password": {
- "defaultMessage": "Réinitialiser le mot de passe"
- },
- "reset_password_form.message.enter_your_email": {
- "defaultMessage": "Indiquez votre adresse e-mail pour recevoir des instructions concernant la réinitialisation de votre mot de passe"
- },
- "reset_password_form.message.return_to_sign_in": {
- "defaultMessage": "Ou revenez à",
- "description": "Precedes link to return to sign in"
- },
- "reset_password_form.title.reset_password": {
- "defaultMessage": "Réinitialiser le mot de passe"
- },
- "search.action.cancel": {
- "defaultMessage": "Annuler"
- },
- "selected_refinements.action.assistive_msg.clear_all": {
- "defaultMessage": "Effacer tous les filtres"
- },
- "selected_refinements.action.clear_all": {
- "defaultMessage": "Tout désélectionner"
- },
- "shipping_address.button.continue_to_shipping": {
- "defaultMessage": "Continuer vers le mode de livraison"
- },
- "shipping_address.title.shipping_address": {
- "defaultMessage": "Adresse de livraison"
- },
- "shipping_address_edit_form.button.save_and_continue": {
- "defaultMessage": "Enregistrer et continuer vers le mode de livraison"
- },
- "shipping_address_form.heading.edit_address": {
- "defaultMessage": "Modifier l’adresse"
- },
- "shipping_address_form.heading.new_address": {
- "defaultMessage": "Ajouter une nouvelle adresse"
- },
- "shipping_address_selection.button.add_address": {
- "defaultMessage": "Ajouter une nouvelle adresse"
- },
- "shipping_address_selection.button.submit": {
- "defaultMessage": "Envoyer"
- },
- "shipping_address_selection.title.add_address": {
- "defaultMessage": "Ajouter une nouvelle adresse"
- },
- "shipping_address_selection.title.edit_shipping": {
- "defaultMessage": "Modifier l’adresse de livraison"
- },
- "shipping_options.action.send_as_a_gift": {
- "defaultMessage": "Voulez-vous envoyer cet article comme cadeau ?"
- },
- "shipping_options.button.continue_to_payment": {
- "defaultMessage": "Continuer vers le paiement"
- },
- "shipping_options.title.shipping_gift_options": {
- "defaultMessage": "Options de livraison et de cadeau"
- },
- "signout_confirmation_dialog.button.cancel": {
- "defaultMessage": "Annuler"
- },
- "signout_confirmation_dialog.button.sign_out": {
- "defaultMessage": "Se déconnecter"
- },
- "signout_confirmation_dialog.heading.sign_out": {
- "defaultMessage": "Se déconnecter"
- },
- "signout_confirmation_dialog.message.sure_to_sign_out": {
- "defaultMessage": "Voulez-vous vraiment vous déconnecter ? Vous devrez vous reconnecter pour poursuivre votre commande en cours."
- },
- "swatch_group.selected.label": {
- "defaultMessage": "{label} :"
- },
- "toggle_card.action.edit": {
- "defaultMessage": "Modifier"
- },
- "update_password_fields.button.forgot_password": {
- "defaultMessage": "Mot de passe oublié ?"
- },
- "use_address_fields.error.please_enter_first_name": {
- "defaultMessage": "Veuillez indiquer votre prénom."
- },
- "use_address_fields.error.please_enter_last_name": {
- "defaultMessage": "Veuillez indiquer votre nom de famille."
- },
- "use_address_fields.error.please_enter_phone_number": {
- "defaultMessage": "Veuillez indiquer votre numéro de téléphone."
- },
- "use_address_fields.error.please_enter_your_postal_or_zip": {
- "defaultMessage": "Veuillez indiquer votre code postal."
- },
- "use_address_fields.error.please_select_your_address": {
- "defaultMessage": "Veuillez indiquer votre adresse."
- },
- "use_address_fields.error.please_select_your_city": {
- "defaultMessage": "Veuillez indiquer votre ville."
- },
- "use_address_fields.error.please_select_your_country": {
- "defaultMessage": "Veuillez sélectionner votre pays."
- },
- "use_address_fields.error.please_select_your_state_or_province": {
- "defaultMessage": "Veuillez sélectionner votre État/province."
- },
- "use_address_fields.error.required": {
- "defaultMessage": "Obligatoire"
- },
- "use_address_fields.error.state_code_invalid": {
- "defaultMessage": "Veuillez indiquer un État ou une province en 2 lettres."
- },
- "use_address_fields.label.address": {
- "defaultMessage": "Adresse"
- },
- "use_address_fields.label.address_form": {
- "defaultMessage": "Formulaire d'adresse"
- },
- "use_address_fields.label.city": {
- "defaultMessage": "Ville"
- },
- "use_address_fields.label.country": {
- "defaultMessage": "Pays"
- },
- "use_address_fields.label.first_name": {
- "defaultMessage": "Prénom"
- },
- "use_address_fields.label.last_name": {
- "defaultMessage": "Nom"
- },
- "use_address_fields.label.phone": {
- "defaultMessage": "Téléphone"
- },
- "use_address_fields.label.postal_code": {
- "defaultMessage": "Code postal"
- },
- "use_address_fields.label.preferred": {
- "defaultMessage": "Définir comme adresse par défaut"
- },
- "use_address_fields.label.province": {
- "defaultMessage": "Province"
- },
- "use_address_fields.label.state": {
- "defaultMessage": "État"
- },
- "use_address_fields.label.zipCode": {
- "defaultMessage": "Code postal"
- },
- "use_credit_card_fields.error.required": {
- "defaultMessage": "Obligatoire"
- },
- "use_credit_card_fields.error.required_card_number": {
- "defaultMessage": "Veuillez indiquer votre numéro de carte."
- },
- "use_credit_card_fields.error.required_expiry": {
- "defaultMessage": "Veuillez indiquer la date d’expiration."
- },
- "use_credit_card_fields.error.required_name": {
- "defaultMessage": "Veuillez indiquer votre nom tel qu’il figure sur votre carte."
- },
- "use_credit_card_fields.error.required_security_code": {
- "defaultMessage": "Veuillez saisir votre cryptogramme."
- },
- "use_credit_card_fields.error.valid_card_number": {
- "defaultMessage": "Veuillez indiquer un numéro de carte valide."
- },
- "use_credit_card_fields.error.valid_date": {
- "defaultMessage": "Saisissez une date valide."
- },
- "use_credit_card_fields.error.valid_name": {
- "defaultMessage": "Veuillez indiquer un nom valide."
- },
- "use_credit_card_fields.error.valid_security_code": {
- "defaultMessage": "Veuillez indiquer un cryptogramme valide."
- },
- "use_credit_card_fields.label.card_number": {
- "defaultMessage": "N° de carte"
- },
- "use_credit_card_fields.label.card_type": {
- "defaultMessage": "Type de carte"
- },
- "use_credit_card_fields.label.expiry": {
- "defaultMessage": "Date d'expiration"
- },
- "use_credit_card_fields.label.name": {
- "defaultMessage": "Nom sur la carte"
- },
- "use_credit_card_fields.label.security_code": {
- "defaultMessage": "Cryptogramme"
- },
- "use_login_fields.error.required_email": {
- "defaultMessage": "Veuillez indiquer votre adresse e-mail."
- },
- "use_login_fields.error.required_password": {
- "defaultMessage": "Veuillez indiquer votre mot de passe."
- },
- "use_login_fields.label.email": {
- "defaultMessage": "E-mail"
- },
- "use_login_fields.label.password": {
- "defaultMessage": "Mot de passe"
- },
- "use_product.message.inventory_remaining": {
- "defaultMessage": "Il n’en reste plus que {stockLevel} !"
- },
- "use_product.message.out_of_stock": {
- "defaultMessage": "En rupture de stock"
- },
- "use_profile_fields.error.required_email": {
- "defaultMessage": "Saisissez une adresse e-mail valide."
- },
- "use_profile_fields.error.required_first_name": {
- "defaultMessage": "Veuillez indiquer votre prénom."
- },
- "use_profile_fields.error.required_last_name": {
- "defaultMessage": "Veuillez indiquer votre nom de famille."
- },
- "use_profile_fields.error.required_phone": {
- "defaultMessage": "Veuillez indiquer votre numéro de téléphone."
- },
- "use_profile_fields.label.email": {
- "defaultMessage": "E-mail"
- },
- "use_profile_fields.label.first_name": {
- "defaultMessage": "Prénom"
- },
- "use_profile_fields.label.last_name": {
- "defaultMessage": "Nom"
- },
- "use_profile_fields.label.phone": {
- "defaultMessage": "Numéro de téléphone"
- },
- "use_promo_code_fields.error.required_promo_code": {
- "defaultMessage": "Veuillez fournir un code promo valide."
- },
- "use_promo_code_fields.label.promo_code": {
- "defaultMessage": "Code promotionnel"
- },
- "use_promocode.error.check_the_code": {
- "defaultMessage": "Vérifiez le code et réessayez. Il se peut qu’il soit déjà appliqué ou que la promotion ait expiré."
- },
- "use_promocode.info.promo_applied": {
- "defaultMessage": "Promotion appliquée"
- },
- "use_promocode.info.promo_removed": {
- "defaultMessage": "Promotion supprimée"
- },
- "use_registration_fields.error.contain_number": {
- "defaultMessage": "Le mot de passe doit contenir au moins un chiffre."
- },
- "use_registration_fields.error.lowercase_letter": {
- "defaultMessage": "Le mot de passe doit contenir au moins une lettre minuscule."
- },
- "use_registration_fields.error.minimum_characters": {
- "defaultMessage": "Le mot de passe doit contenir au moins 8 caractères."
- },
- "use_registration_fields.error.required_email": {
- "defaultMessage": "Saisissez une adresse e-mail valide."
- },
- "use_registration_fields.error.required_first_name": {
- "defaultMessage": "Veuillez indiquer votre prénom."
- },
- "use_registration_fields.error.required_last_name": {
- "defaultMessage": "Veuillez indiquer votre nom de famille."
- },
- "use_registration_fields.error.required_password": {
- "defaultMessage": "Veuillez créer un mot de passe."
- },
- "use_registration_fields.error.special_character": {
- "defaultMessage": "Le mot de passe doit contenir au moins un caractère spécial."
- },
- "use_registration_fields.error.uppercase_letter": {
- "defaultMessage": "Le mot de passe doit contenir au moins une lettre majuscule."
- },
- "use_registration_fields.label.email": {
- "defaultMessage": "E-mail"
- },
- "use_registration_fields.label.first_name": {
- "defaultMessage": "Prénom"
- },
- "use_registration_fields.label.last_name": {
- "defaultMessage": "Nom"
- },
- "use_registration_fields.label.password": {
- "defaultMessage": "Mot de passe"
- },
- "use_registration_fields.label.sign_up_to_emails": {
- "defaultMessage": "Abonnez-moi aux e-mails de Salesforce (vous pouvez vous désabonner à tout moment)"
- },
- "use_reset_password_fields.error.required_email": {
- "defaultMessage": "Saisissez une adresse e-mail valide."
- },
- "use_reset_password_fields.label.email": {
- "defaultMessage": "E-mail"
- },
- "use_update_password_fields.error.contain_number": {
- "defaultMessage": "Le mot de passe doit contenir au moins un chiffre."
- },
- "use_update_password_fields.error.lowercase_letter": {
- "defaultMessage": "Le mot de passe doit contenir au moins une lettre minuscule."
- },
- "use_update_password_fields.error.minimum_characters": {
- "defaultMessage": "Le mot de passe doit contenir au moins 8 caractères."
- },
- "use_update_password_fields.error.required_new_password": {
- "defaultMessage": "Veuillez indiquer un nouveau mot de passe."
- },
- "use_update_password_fields.error.required_password": {
- "defaultMessage": "Veuillez indiquer votre mot de passe."
- },
- "use_update_password_fields.error.special_character": {
- "defaultMessage": "Le mot de passe doit contenir au moins un caractère spécial."
- },
- "use_update_password_fields.error.uppercase_letter": {
- "defaultMessage": "Le mot de passe doit contenir au moins une lettre majuscule."
- },
- "use_update_password_fields.label.current_password": {
- "defaultMessage": "Mot de passe actuel"
- },
- "use_update_password_fields.label.new_password": {
- "defaultMessage": "Nouveau mot de passe"
- },
- "wishlist_primary_action.button.add_set_to_cart": {
- "defaultMessage": "Ajouter le lot au panier"
- },
- "wishlist_primary_action.button.add_to_cart": {
- "defaultMessage": "Ajouter au panier"
- },
- "wishlist_primary_action.button.view_full_details": {
- "defaultMessage": "Afficher tous les détails"
- },
- "wishlist_primary_action.button.view_options": {
- "defaultMessage": "Afficher les options"
- },
- "wishlist_primary_action.info.added_to_cart": {
- "defaultMessage": "{quantity} {quantity, plural, one {article ajouté} other {articles ajoutés}} au panier"
- },
- "wishlist_secondary_button_group.action.remove": {
- "defaultMessage": "Supprimer"
- },
- "wishlist_secondary_button_group.info.item_removed": {
- "defaultMessage": "Article supprimé de la liste de souhaits"
- },
- "with_registration.info.please_sign_in": {
- "defaultMessage": "Veuillez vous connecter pour continuer."
- }
-}
diff --git a/packages/template-retail-react-app/translations/it-IT.json b/packages/template-retail-react-app/translations/it-IT.json
deleted file mode 100644
index 2123617bcf..0000000000
--- a/packages/template-retail-react-app/translations/it-IT.json
+++ /dev/null
@@ -1,1517 +0,0 @@
-{
- "account.accordion.button.my_account": {
- "defaultMessage": "Il mio account"
- },
- "account.heading.my_account": {
- "defaultMessage": "Il mio account"
- },
- "account.logout_button.button.log_out": {
- "defaultMessage": "Esci"
- },
- "account_addresses.badge.default": {
- "defaultMessage": "Predefinito"
- },
- "account_addresses.button.add_address": {
- "defaultMessage": "Aggiungi indirizzo"
- },
- "account_addresses.info.address_removed": {
- "defaultMessage": "Indirizzo rimosso"
- },
- "account_addresses.info.address_updated": {
- "defaultMessage": "Indirizzo aggiornato"
- },
- "account_addresses.info.new_address_saved": {
- "defaultMessage": "Nuovo indirizzo salvato"
- },
- "account_addresses.page_action_placeholder.button.add_address": {
- "defaultMessage": "Aggiungi indirizzo"
- },
- "account_addresses.page_action_placeholder.heading.no_saved_addresses": {
- "defaultMessage": "Nessun indirizzo salvato"
- },
- "account_addresses.page_action_placeholder.message.add_new_address": {
- "defaultMessage": "Aggiungi un nuovo indirizzo per un checkout più veloce."
- },
- "account_addresses.title.addresses": {
- "defaultMessage": "Indirizzi"
- },
- "account_detail.title.account_details": {
- "defaultMessage": "Dettagli account"
- },
- "account_order_detail.heading.billing_address": {
- "defaultMessage": "Indirizzo di fatturazione"
- },
- "account_order_detail.heading.num_of_items": {
- "defaultMessage": "{count} articoli"
- },
- "account_order_detail.heading.payment_method": {
- "defaultMessage": "Metodo di pagamento"
- },
- "account_order_detail.heading.shipping_address": {
- "defaultMessage": "Indirizzo di spedizione"
- },
- "account_order_detail.heading.shipping_method": {
- "defaultMessage": "Metodo di spedizione"
- },
- "account_order_detail.label.order_number": {
- "defaultMessage": "Numero ordine: {orderNumber}"
- },
- "account_order_detail.label.ordered_date": {
- "defaultMessage": "Data ordine: {date}"
- },
- "account_order_detail.label.pending_tracking_number": {
- "defaultMessage": "In sospeso"
- },
- "account_order_detail.label.tracking_number": {
- "defaultMessage": "Numero di tracking"
- },
- "account_order_detail.link.back_to_history": {
- "defaultMessage": "Torna alla cronologia ordini"
- },
- "account_order_detail.shipping_status.not_shipped": {
- "defaultMessage": "Non spedito"
- },
- "account_order_detail.shipping_status.part_shipped": {
- "defaultMessage": "Spedito in parte"
- },
- "account_order_detail.shipping_status.shipped": {
- "defaultMessage": "Spedito"
- },
- "account_order_detail.title.order_details": {
- "defaultMessage": "Dettagli ordine"
- },
- "account_order_history.button.continue_shopping": {
- "defaultMessage": "Continua lo shopping"
- },
- "account_order_history.description.once_you_place_order": {
- "defaultMessage": "Una volta effettuato un ordine, i dettagli verranno visualizzati qui."
- },
- "account_order_history.heading.no_order_yet": {
- "defaultMessage": "Non hai ancora effettuato un ordine."
- },
- "account_order_history.label.num_of_items": {
- "defaultMessage": "{count} articoli",
- "description": "Number of items in order"
- },
- "account_order_history.label.order_number": {
- "defaultMessage": "Numero ordine: {orderNumber}"
- },
- "account_order_history.label.ordered_date": {
- "defaultMessage": "Data ordine: {date}"
- },
- "account_order_history.label.shipped_to": {
- "defaultMessage": "Destinatario spedizione: {name}"
- },
- "account_order_history.link.view_details": {
- "defaultMessage": "Visualizza dettagli"
- },
- "account_order_history.title.order_history": {
- "defaultMessage": "Cronologia ordini"
- },
- "account_wishlist.button.continue_shopping": {
- "defaultMessage": "Continua lo shopping"
- },
- "account_wishlist.description.continue_shopping": {
- "defaultMessage": "Continua con lo shopping e aggiungi articoli alla lista desideri."
- },
- "account_wishlist.heading.no_wishlist": {
- "defaultMessage": "Nessun articolo nella lista desideri"
- },
- "account_wishlist.title.wishlist": {
- "defaultMessage": "Lista desideri"
- },
- "action_card.action.edit": {
- "defaultMessage": "Modifica"
- },
- "action_card.action.remove": {
- "defaultMessage": "Rimuovi"
- },
- "add_to_cart_modal.info.added_to_cart": {
- "defaultMessage": "{quantity} {quantity, plural, one {articolo aggiunto} other {articoli aggiunti}} al carrello"
- },
- "add_to_cart_modal.label.cart_subtotal": {
- "defaultMessage": "Subtotale carrello ({itemAccumulatedCount} articolo)"
- },
- "add_to_cart_modal.label.quantity": {
- "defaultMessage": "Qtà"
- },
- "add_to_cart_modal.link.checkout": {
- "defaultMessage": "Passa al checkout"
- },
- "add_to_cart_modal.link.view_cart": {
- "defaultMessage": "Mostra carrello"
- },
- "add_to_cart_modal.recommended_products.title.might_also_like": {
- "defaultMessage": "Potrebbe interessarti anche"
- },
- "auth_modal.button.close.assistive_msg": {
- "defaultMessage": "Chiudi modulo di accesso"
- },
- "auth_modal.description.now_signed_in": {
- "defaultMessage": "hai eseguito l'accesso."
- },
- "auth_modal.error.incorrect_email_or_password": {
- "defaultMessage": "Qualcosa non va nell'indirizzo email o nella password. Riprova."
- },
- "auth_modal.info.welcome_user": {
- "defaultMessage": "Ti diamo il benvenuto {name},"
- },
- "auth_modal.password_reset_success.button.back_to_sign_in": {
- "defaultMessage": "Torna all'accesso"
- },
- "auth_modal.password_reset_success.info.will_email_shortly": {
- "defaultMessage": "A breve riceverai un'email all'indirizzo {email} con un link per la reimpostazione della password."
- },
- "auth_modal.password_reset_success.title.password_reset": {
- "defaultMessage": "Reimpostazione password"
- },
- "carousel.button.scroll_left.assistive_msg": {
- "defaultMessage": "Scorri sequenza a sinistra"
- },
- "carousel.button.scroll_right.assistive_msg": {
- "defaultMessage": "Scorri sequenza a destra"
- },
- "cart.info.removed_from_cart": {
- "defaultMessage": "Articolo rimosso dal carrello"
- },
- "cart.recommended_products.title.may_also_like": {
- "defaultMessage": "Potrebbe interessarti anche"
- },
- "cart.recommended_products.title.recently_viewed": {
- "defaultMessage": "Visualizzati di recente"
- },
- "cart_cta.link.checkout": {
- "defaultMessage": "Passa al checkout"
- },
- "cart_secondary_button_group.action.added_to_wishlist": {
- "defaultMessage": "Aggiungi alla lista desideri"
- },
- "cart_secondary_button_group.action.edit": {
- "defaultMessage": "Modifica"
- },
- "cart_secondary_button_group.action.remove": {
- "defaultMessage": "Rimuovi"
- },
- "cart_secondary_button_group.label.this_is_gift": {
- "defaultMessage": "Questo è un regalo."
- },
- "cart_skeleton.heading.order_summary": {
- "defaultMessage": "Riepilogo ordine"
- },
- "cart_skeleton.title.cart": {
- "defaultMessage": "Carrello"
- },
- "cart_title.title.cart_num_of_items": {
- "defaultMessage": "Carrello ({itemCount, plural, =0 {0 articoli} one {# articolo} other {# articoli}})"
- },
- "cc_radio_group.action.remove": {
- "defaultMessage": "Rimuovi"
- },
- "cc_radio_group.button.add_new_card": {
- "defaultMessage": "Aggiungi nuova carta"
- },
- "checkout.button.place_order": {
- "defaultMessage": "Invia ordine"
- },
- "checkout.message.generic_error": {
- "defaultMessage": "Si è verificato un errore inatteso durante il checkout."
- },
- "checkout_confirmation.button.create_account": {
- "defaultMessage": "Crea account"
- },
- "checkout_confirmation.heading.billing_address": {
- "defaultMessage": "Indirizzo di fatturazione"
- },
- "checkout_confirmation.heading.create_account": {
- "defaultMessage": "Crea un account per un checkout più veloce"
- },
- "checkout_confirmation.heading.credit_card": {
- "defaultMessage": "Carta di credito"
- },
- "checkout_confirmation.heading.delivery_details": {
- "defaultMessage": "Dettagli di consegna"
- },
- "checkout_confirmation.heading.order_summary": {
- "defaultMessage": "Riepilogo ordine"
- },
- "checkout_confirmation.heading.payment_details": {
- "defaultMessage": "Dettagli di pagamento"
- },
- "checkout_confirmation.heading.shipping_address": {
- "defaultMessage": "Indirizzo di spedizione"
- },
- "checkout_confirmation.heading.shipping_method": {
- "defaultMessage": "Metodo di spedizione"
- },
- "checkout_confirmation.heading.thank_you_for_order": {
- "defaultMessage": "Grazie per il tuo ordine!"
- },
- "checkout_confirmation.label.free": {
- "defaultMessage": "Gratuita"
- },
- "checkout_confirmation.label.order_number": {
- "defaultMessage": "Numero ordine"
- },
- "checkout_confirmation.label.order_total": {
- "defaultMessage": "Totale ordine"
- },
- "checkout_confirmation.label.promo_applied": {
- "defaultMessage": "Promozione applicata"
- },
- "checkout_confirmation.label.shipping": {
- "defaultMessage": "Spedizione"
- },
- "checkout_confirmation.label.subtotal": {
- "defaultMessage": "Subtotale"
- },
- "checkout_confirmation.label.tax": {
- "defaultMessage": "Imposta"
- },
- "checkout_confirmation.link.continue_shopping": {
- "defaultMessage": "Continua lo shopping"
- },
- "checkout_confirmation.link.login": {
- "defaultMessage": "Accedi qui"
- },
- "checkout_confirmation.message.already_has_account": {
- "defaultMessage": "Questo indirizzo email è già associato a un account."
- },
- "checkout_confirmation.message.num_of_items_in_order": {
- "defaultMessage": "{itemCount, plural, =0 {0 articoli} one {# articolo} other {# articoli}}",
- "description": "# item(s) in order"
- },
- "checkout_confirmation.message.will_email_shortly": {
- "defaultMessage": "A breve invieremo un'email all'indirizzo {email} con il numero di conferma e la ricevuta."
- },
- "checkout_footer.link.privacy_policy": {
- "defaultMessage": "Informativa sulla privacy"
- },
- "checkout_footer.link.returns_exchanges": {
- "defaultMessage": "Resi e cambi"
- },
- "checkout_footer.link.shipping": {
- "defaultMessage": "Spedizione"
- },
- "checkout_footer.link.site_map": {
- "defaultMessage": "Mappa del sito"
- },
- "checkout_footer.link.terms_conditions": {
- "defaultMessage": "Termini e condizioni"
- },
- "checkout_footer.message.copyright": {
- "defaultMessage": "Salesforce o società affiliate. Tutti i diritti riservati. Questo è un negozio fittizio a scopo dimostrativo. Gli ordini effettuati NON VERRANNO evasi."
- },
- "checkout_header.link.assistive_msg.cart": {
- "defaultMessage": "Torna al carrello, numero di articoli: {numItems}"
- },
- "checkout_header.link.cart": {
- "defaultMessage": "Torna al carrello"
- },
- "checkout_payment.action.remove": {
- "defaultMessage": "Rimuovi"
- },
- "checkout_payment.button.review_order": {
- "defaultMessage": "Rivedi ordine"
- },
- "checkout_payment.heading.billing_address": {
- "defaultMessage": "Indirizzo di fatturazione"
- },
- "checkout_payment.heading.credit_card": {
- "defaultMessage": "Carta di credito"
- },
- "checkout_payment.label.same_as_shipping": {
- "defaultMessage": "Identico all'indirizzo di spedizione"
- },
- "checkout_payment.title.payment": {
- "defaultMessage": "Pagamento"
- },
- "colorRefinements.label.hitCount": {
- "defaultMessage": "{colorLabel} ({colorHitCount})"
- },
- "confirmation_modal.default.action.no": {
- "defaultMessage": "No"
- },
- "confirmation_modal.default.action.yes": {
- "defaultMessage": "Sì"
- },
- "confirmation_modal.default.message.you_want_to_continue": {
- "defaultMessage": "Continuare?"
- },
- "confirmation_modal.default.title.confirm_action": {
- "defaultMessage": "Conferma azione"
- },
- "confirmation_modal.remove_cart_item.action.no": {
- "defaultMessage": "No, conserva articolo"
- },
- "confirmation_modal.remove_cart_item.action.remove": {
- "defaultMessage": "Rimuovi"
- },
- "confirmation_modal.remove_cart_item.action.yes": {
- "defaultMessage": "Sì, rimuovi articolo"
- },
- "confirmation_modal.remove_cart_item.message.need_to_remove_due_to_unavailability": {
- "defaultMessage": "Alcuni articoli non sono più dispoinibili online e verranno rimossi dal carrello."
- },
- "confirmation_modal.remove_cart_item.message.sure_to_remove": {
- "defaultMessage": "Rimuovere questo articolo dal carrello?"
- },
- "confirmation_modal.remove_cart_item.title.confirm_remove": {
- "defaultMessage": "Conferma rimozione articolo"
- },
- "confirmation_modal.remove_cart_item.title.items_unavailable": {
- "defaultMessage": "Articoli non disponibili"
- },
- "confirmation_modal.remove_wishlist_item.action.no": {
- "defaultMessage": "No, conserva articolo"
- },
- "confirmation_modal.remove_wishlist_item.action.yes": {
- "defaultMessage": "Sì, rimuovi articolo"
- },
- "confirmation_modal.remove_wishlist_item.message.sure_to_remove": {
- "defaultMessage": "Rimuovere questo articolo dalla lista desideri?"
- },
- "confirmation_modal.remove_wishlist_item.title.confirm_remove": {
- "defaultMessage": "Conferma rimozione articolo"
- },
- "contact_info.action.sign_out": {
- "defaultMessage": "Esci"
- },
- "contact_info.button.already_have_account": {
- "defaultMessage": "Hai già un account? Accedi"
- },
- "contact_info.button.checkout_as_guest": {
- "defaultMessage": "Checkout come ospite"
- },
- "contact_info.button.login": {
- "defaultMessage": "Accedi"
- },
- "contact_info.error.incorrect_username_or_password": {
- "defaultMessage": "Nome utente o password errati. Riprova."
- },
- "contact_info.link.forgot_password": {
- "defaultMessage": "Password dimenticata?"
- },
- "contact_info.title.contact_info": {
- "defaultMessage": "Informazioni di contatto"
- },
- "credit_card_fields.tool_tip.security_code": {
- "defaultMessage": "Questo codice a 3 cifre è presente sul retro della carta.",
- "description": "Generic credit card security code help text"
- },
- "credit_card_fields.tool_tip.security_code.american_express": {
- "defaultMessage": "Questo codice a 4 cifre è presente sul fronte della carta.",
- "description": "American Express security code help text"
- },
- "credit_card_fields.tool_tip.security_code_aria_label": {
- "defaultMessage": "Info codice di sicurezza"
- },
- "drawer_menu.button.account_details": {
- "defaultMessage": "Dettagli account"
- },
- "drawer_menu.button.addresses": {
- "defaultMessage": "Indirizzi"
- },
- "drawer_menu.button.log_out": {
- "defaultMessage": "Esci"
- },
- "drawer_menu.button.my_account": {
- "defaultMessage": "Il mio account"
- },
- "drawer_menu.button.order_history": {
- "defaultMessage": "Cronologia ordini"
- },
- "drawer_menu.link.about_us": {
- "defaultMessage": "Chi siamo"
- },
- "drawer_menu.link.customer_support": {
- "defaultMessage": "Supporto clienti"
- },
- "drawer_menu.link.customer_support.contact_us": {
- "defaultMessage": "Contattaci"
- },
- "drawer_menu.link.customer_support.shipping_and_returns": {
- "defaultMessage": "Spedizione e resi"
- },
- "drawer_menu.link.our_company": {
- "defaultMessage": "La nostra azienda"
- },
- "drawer_menu.link.privacy_and_security": {
- "defaultMessage": "Privacy e sicurezza"
- },
- "drawer_menu.link.privacy_policy": {
- "defaultMessage": "Informativa sulla privacy"
- },
- "drawer_menu.link.shop_all": {
- "defaultMessage": "Acquista tutto"
- },
- "drawer_menu.link.sign_in": {
- "defaultMessage": "Accedi"
- },
- "drawer_menu.link.site_map": {
- "defaultMessage": "Mappa del sito"
- },
- "drawer_menu.link.store_locator": {
- "defaultMessage": "Store locator"
- },
- "drawer_menu.link.terms_and_conditions": {
- "defaultMessage": "Termini e condizioni"
- },
- "empty_cart.description.empty_cart": {
- "defaultMessage": "Il tuo carrello è vuoto."
- },
- "empty_cart.link.continue_shopping": {
- "defaultMessage": "Continua lo shopping"
- },
- "empty_cart.link.sign_in": {
- "defaultMessage": "Accedi"
- },
- "empty_cart.message.continue_shopping": {
- "defaultMessage": "Continua con lo shopping per aggiungere articoli al carrello."
- },
- "empty_cart.message.sign_in_or_continue_shopping": {
- "defaultMessage": "Accedi per recuperare gli articoli salvati o continuare con lo shopping."
- },
- "empty_search_results.info.cant_find_anything_for_category": {
- "defaultMessage": "Non è stato trovato nulla per {category}. Prova a cercare un prodotto o {link}."
- },
- "empty_search_results.info.cant_find_anything_for_query": {
- "defaultMessage": "Non è stato trovato nulla per \"{searchQuery}\"."
- },
- "empty_search_results.info.double_check_spelling": {
- "defaultMessage": "Ricontrolla l'ortografia e riprova o {link}."
- },
- "empty_search_results.link.contact_us": {
- "defaultMessage": "Contattaci"
- },
- "empty_search_results.recommended_products.title.most_viewed": {
- "defaultMessage": "I più visualizzati"
- },
- "empty_search_results.recommended_products.title.top_sellers": {
- "defaultMessage": "I più venduti"
- },
- "field.password.assistive_msg.hide_password": {
- "defaultMessage": "Nascondi password"
- },
- "field.password.assistive_msg.show_password": {
- "defaultMessage": "Mosra password"
- },
- "footer.column.account": {
- "defaultMessage": "Account"
- },
- "footer.column.customer_support": {
- "defaultMessage": "Supporto clienti"
- },
- "footer.column.our_company": {
- "defaultMessage": "La nostra azienda"
- },
- "footer.link.about_us": {
- "defaultMessage": "Chi siamo"
- },
- "footer.link.contact_us": {
- "defaultMessage": "Contattaci"
- },
- "footer.link.order_status": {
- "defaultMessage": "Stato ordine"
- },
- "footer.link.privacy_policy": {
- "defaultMessage": "Informativa sulla privacy"
- },
- "footer.link.shipping": {
- "defaultMessage": "Spedizione"
- },
- "footer.link.signin_create_account": {
- "defaultMessage": "Accedi o crea account"
- },
- "footer.link.site_map": {
- "defaultMessage": "Mappa del sito"
- },
- "footer.link.store_locator": {
- "defaultMessage": "Store locator"
- },
- "footer.link.terms_conditions": {
- "defaultMessage": "Termini e condizioni"
- },
- "footer.message.copyright": {
- "defaultMessage": "Salesforce o società affiliate. Tutti i diritti riservati. Questo è un negozio fittizio a scopo dimostrativo. Gli ordini effettuati NON VERRANNO evasi."
- },
- "footer.subscribe.button.sign_up": {
- "defaultMessage": "Registrati"
- },
- "footer.subscribe.description.sign_up": {
- "defaultMessage": "Registrati per gli ultimi aggiornamenti sulle migliori offerte"
- },
- "footer.subscribe.heading.first_to_know": {
- "defaultMessage": "Ricevi le novità in anteprima"
- },
- "form_action_buttons.button.cancel": {
- "defaultMessage": "Annulla"
- },
- "form_action_buttons.button.save": {
- "defaultMessage": "Salva"
- },
- "global.account.link.account_details": {
- "defaultMessage": "Dettagli account"
- },
- "global.account.link.addresses": {
- "defaultMessage": "Indirizzi"
- },
- "global.account.link.order_history": {
- "defaultMessage": "Cronologia ordini"
- },
- "global.account.link.wishlist": {
- "defaultMessage": "Lista desideri"
- },
- "global.error.something_went_wrong": {
- "defaultMessage": "Si è verificato un problema. Riprova!"
- },
- "global.info.added_to_wishlist": {
- "defaultMessage": "{quantity} {quantity, plural, one {articolo aggiunto} other {articoli aggiunti}} alla lista desideri"
- },
- "global.info.already_in_wishlist": {
- "defaultMessage": "Articolo già presente nella lista desideri"
- },
- "global.info.removed_from_wishlist": {
- "defaultMessage": "Articolo rimosso dalla lista desideri"
- },
- "global.link.added_to_wishlist.view_wishlist": {
- "defaultMessage": "Visualizza"
- },
- "header.button.assistive_msg.logo": {
- "defaultMessage": "Logo"
- },
- "header.button.assistive_msg.menu": {
- "defaultMessage": "Menu"
- },
- "header.button.assistive_msg.my_account": {
- "defaultMessage": "Il mio account"
- },
- "header.button.assistive_msg.my_account_menu": {
- "defaultMessage": "Apri menu account"
- },
- "header.button.assistive_msg.my_cart_with_num_items": {
- "defaultMessage": "Il mio carrello, numero di articoli: {numItems}"
- },
- "header.button.assistive_msg.wishlist": {
- "defaultMessage": "Lista desideri"
- },
- "header.field.placeholder.search_for_products": {
- "defaultMessage": "Cerca prodotti..."
- },
- "header.popover.action.log_out": {
- "defaultMessage": "Esci"
- },
- "header.popover.title.my_account": {
- "defaultMessage": "Il mio account"
- },
- "home.description.features": {
- "defaultMessage": "Funzionalità pronte all'uso, così potrai dedicare il tuo tempo all'aggiunta di miglioramenti."
- },
- "home.description.here_to_help": {
- "defaultMessage": "Contatta il nostro personale di assistenza."
- },
- "home.description.here_to_help_line_2": {
- "defaultMessage": "Ti fornirà le indicazioni giuste."
- },
- "home.description.shop_products": {
- "defaultMessage": "Questa sezione presenta alcuni contenuti del catalogo. {docLink} su come cambiarli.",
- "description": "{docLink} is a html button that links the user to https://sfdc.co/business-manager-manage-catalogs"
- },
- "home.features.description.cart_checkout": {
- "defaultMessage": "Best practice di e-commerce per l'esperienza di carrello e checkout di un acquirente."
- },
- "home.features.description.components": {
- "defaultMessage": "Realizzato utilizzando Chakra UI, una libreria di componenti React semplice, modulare e accessibile."
- },
- "home.features.description.einstein_recommendations": {
- "defaultMessage": "Garantisci a ogni acquirente il miglior prodotto o la migliore offerta con i suggerimenti di prodotto."
- },
- "home.features.description.my_account": {
- "defaultMessage": "Gli acquirenti possono gestire le informazioni relative all'account come profilo, indirizzi, pagamenti e ordini."
- },
- "home.features.description.shopper_login": {
- "defaultMessage": "Consenti agli acquirenti di accedere facilmente grazie a un'esperienza di acquisto più personalizzata."
- },
- "home.features.description.wishlist": {
- "defaultMessage": "Gli acquirenti registrati possono aggiungere voci di prodotto alla lista desideri per acquisti futuri."
- },
- "home.features.heading.cart_checkout": {
- "defaultMessage": "Carrello e checkout"
- },
- "home.features.heading.components": {
- "defaultMessage": "Componenti e Design Kit"
- },
- "home.features.heading.einstein_recommendations": {
- "defaultMessage": "Suggerimenti Einstein"
- },
- "home.features.heading.my_account": {
- "defaultMessage": "Il mio account"
- },
- "home.features.heading.shopper_login": {
- "defaultMessage": "Shopper Login and API Access Service (SLAS)"
- },
- "home.features.heading.wishlist": {
- "defaultMessage": "Lista desideri"
- },
- "home.heading.features": {
- "defaultMessage": "Funzionalità"
- },
- "home.heading.here_to_help": {
- "defaultMessage": "Siamo qui per aiutarti"
- },
- "home.heading.shop_products": {
- "defaultMessage": "Acquista prodotti"
- },
- "home.hero_features.link.design_kit": {
- "defaultMessage": "Crea con Figma PWA Design Kit"
- },
- "home.hero_features.link.on_github": {
- "defaultMessage": "Scarica su GitHub"
- },
- "home.hero_features.link.on_managed_runtime": {
- "defaultMessage": "Distribuisci su Managed Runtime"
- },
- "home.link.contact_us": {
- "defaultMessage": "Contattaci"
- },
- "home.link.get_started": {
- "defaultMessage": "Inizia"
- },
- "home.link.read_docs": {
- "defaultMessage": "Leggi la documentazione"
- },
- "home.title.react_starter_store": {
- "defaultMessage": "React PWA Starter Store per il retail"
- },
- "icons.assistive_msg.lock": {
- "defaultMessage": "Protetto"
- },
- "item_attributes.label.promotions": {
- "defaultMessage": "Promozioni"
- },
- "item_attributes.label.quantity": {
- "defaultMessage": "Quantità: {quantity}"
- },
- "item_image.label.sale": {
- "defaultMessage": "Saldi",
- "description": "A sale badge placed on top of a product image"
- },
- "item_image.label.unavailable": {
- "defaultMessage": "Non disponibile",
- "description": "A unavailable badge placed on top of a product image"
- },
- "item_price.label.starting_at": {
- "defaultMessage": "A partire da"
- },
- "lCPCxk": {
- "defaultMessage": "Selezionare tutte le opzioni sopra riportate"
- },
- "list_menu.nav.assistive_msg": {
- "defaultMessage": "Navigazione principale"
- },
- "locale_text.message.ar-SA": {
- "defaultMessage": "Arabo (Arabia Saudita)"
- },
- "locale_text.message.bn-BD": {
- "defaultMessage": "Bengalese (Bangladesh)"
- },
- "locale_text.message.bn-IN": {
- "defaultMessage": "Bengalese (India)"
- },
- "locale_text.message.cs-CZ": {
- "defaultMessage": "Ceco (Repubblica Ceca)"
- },
- "locale_text.message.da-DK": {
- "defaultMessage": "Danese (Danimarca)"
- },
- "locale_text.message.de-AT": {
- "defaultMessage": "Tedesco (Austria)"
- },
- "locale_text.message.de-CH": {
- "defaultMessage": "Tedesco (Svizzera)"
- },
- "locale_text.message.de-DE": {
- "defaultMessage": "Tedesco (Germania)"
- },
- "locale_text.message.el-GR": {
- "defaultMessage": "Greco (Grecia)"
- },
- "locale_text.message.en-AU": {
- "defaultMessage": "Inglese (Australia)"
- },
- "locale_text.message.en-CA": {
- "defaultMessage": "Inglese (Canada)"
- },
- "locale_text.message.en-GB": {
- "defaultMessage": "Inglese (Regno Unito)"
- },
- "locale_text.message.en-IE": {
- "defaultMessage": "Inglese (Irlanda)"
- },
- "locale_text.message.en-IN": {
- "defaultMessage": "Inglese (India)"
- },
- "locale_text.message.en-NZ": {
- "defaultMessage": "Inglese (Nuova Zelanda)"
- },
- "locale_text.message.en-US": {
- "defaultMessage": "Inglese (Stati Uniti)"
- },
- "locale_text.message.en-ZA": {
- "defaultMessage": "Inglese (Sudafrica)"
- },
- "locale_text.message.es-AR": {
- "defaultMessage": "Spagnolo (Argentina)"
- },
- "locale_text.message.es-CL": {
- "defaultMessage": "Spagnolo (Cile)"
- },
- "locale_text.message.es-CO": {
- "defaultMessage": "Spagnolo (Colombia)"
- },
- "locale_text.message.es-ES": {
- "defaultMessage": "Spagnolo (Spagna)"
- },
- "locale_text.message.es-MX": {
- "defaultMessage": "Spagnolo (Messico)"
- },
- "locale_text.message.es-US": {
- "defaultMessage": "Spagnolo (Stati Uniti)"
- },
- "locale_text.message.fi-FI": {
- "defaultMessage": "Finlandese (Finlandia)"
- },
- "locale_text.message.fr-BE": {
- "defaultMessage": "Francese (Belgio)"
- },
- "locale_text.message.fr-CA": {
- "defaultMessage": "Francese (Canada)"
- },
- "locale_text.message.fr-CH": {
- "defaultMessage": "Francese (Svizzera)"
- },
- "locale_text.message.fr-FR": {
- "defaultMessage": "Francese (Francia)"
- },
- "locale_text.message.he-IL": {
- "defaultMessage": "Ebraico (Israele)"
- },
- "locale_text.message.hi-IN": {
- "defaultMessage": "Hindi (India)"
- },
- "locale_text.message.hu-HU": {
- "defaultMessage": "Ungherese (Ungheria)"
- },
- "locale_text.message.id-ID": {
- "defaultMessage": "Indonesiano (Indonesia)"
- },
- "locale_text.message.it-CH": {
- "defaultMessage": "Italiano (Svizzera)"
- },
- "locale_text.message.it-IT": {
- "defaultMessage": "Italiano (Italia)"
- },
- "locale_text.message.ja-JP": {
- "defaultMessage": "Giapponese (Giappone)"
- },
- "locale_text.message.ko-KR": {
- "defaultMessage": "Coreano (Repubblica di Corea)"
- },
- "locale_text.message.nl-BE": {
- "defaultMessage": "Olandese (Belgio)"
- },
- "locale_text.message.nl-NL": {
- "defaultMessage": "Olandese (Paesi Bassi)"
- },
- "locale_text.message.no-NO": {
- "defaultMessage": "Norvegese (Norvegia)"
- },
- "locale_text.message.pl-PL": {
- "defaultMessage": "Polacco (Polonia)"
- },
- "locale_text.message.pt-BR": {
- "defaultMessage": "Portoghese (Brasile)"
- },
- "locale_text.message.pt-PT": {
- "defaultMessage": "Portoghese (Portogallo)"
- },
- "locale_text.message.ro-RO": {
- "defaultMessage": "Rumeno (Romania)"
- },
- "locale_text.message.ru-RU": {
- "defaultMessage": "Russo (Federazione Russa)"
- },
- "locale_text.message.sk-SK": {
- "defaultMessage": "Slovacco (Slovacchia)"
- },
- "locale_text.message.sv-SE": {
- "defaultMessage": "Svedese (Svezia)"
- },
- "locale_text.message.ta-IN": {
- "defaultMessage": "Tamil (India)"
- },
- "locale_text.message.ta-LK": {
- "defaultMessage": "Tamil (Sri Lanka)"
- },
- "locale_text.message.th-TH": {
- "defaultMessage": "Tailandese (Tailandia)"
- },
- "locale_text.message.tr-TR": {
- "defaultMessage": "Turco (Turchia)"
- },
- "locale_text.message.zh-CN": {
- "defaultMessage": "Cinese (Cina)"
- },
- "locale_text.message.zh-HK": {
- "defaultMessage": "Cinese (Hong Kong)"
- },
- "locale_text.message.zh-TW": {
- "defaultMessage": "Cinese (Taiwan)"
- },
- "login_form.action.create_account": {
- "defaultMessage": "Crea account"
- },
- "login_form.button.sign_in": {
- "defaultMessage": "Accedi"
- },
- "login_form.link.forgot_password": {
- "defaultMessage": "Password dimenticata?"
- },
- "login_form.message.dont_have_account": {
- "defaultMessage": "Non hai un account?"
- },
- "login_form.message.welcome_back": {
- "defaultMessage": "Piacere di rivederti"
- },
- "login_page.error.incorrect_username_or_password": {
- "defaultMessage": "Nome utente o password errati. Riprova."
- },
- "offline_banner.description.browsing_offline_mode": {
- "defaultMessage": "Stai navigando in modalità offline"
- },
- "order_summary.action.remove_promo": {
- "defaultMessage": "Rimuovi"
- },
- "order_summary.cart_items.action.num_of_items_in_cart": {
- "defaultMessage": "{itemCount, plural, =0 {0 articoli} one {# articolo} other {# articoli}} nel carrello",
- "description": "clicking it would expand/show the items in cart"
- },
- "order_summary.cart_items.link.edit_cart": {
- "defaultMessage": "Modifica carrello"
- },
- "order_summary.heading.order_summary": {
- "defaultMessage": "Riepilogo ordine"
- },
- "order_summary.label.estimated_total": {
- "defaultMessage": "Totale stimato"
- },
- "order_summary.label.free": {
- "defaultMessage": "Gratuita"
- },
- "order_summary.label.order_total": {
- "defaultMessage": "Totale ordine"
- },
- "order_summary.label.promo_applied": {
- "defaultMessage": "Promozione applicata"
- },
- "order_summary.label.promotions_applied": {
- "defaultMessage": "Promozioni applicate"
- },
- "order_summary.label.shipping": {
- "defaultMessage": "Spedizione"
- },
- "order_summary.label.subtotal": {
- "defaultMessage": "Subtotale"
- },
- "order_summary.label.tax": {
- "defaultMessage": "Imposta"
- },
- "page_not_found.action.go_back": {
- "defaultMessage": "Torna alla pagina precedente"
- },
- "page_not_found.link.homepage": {
- "defaultMessage": "Vai alla pagina principale"
- },
- "page_not_found.message.suggestion_to_try": {
- "defaultMessage": "Prova a inserire di nuovo l'indirizzo tornando alla pagina precedente o passando alla pagina principale."
- },
- "page_not_found.title.page_cant_be_found": {
- "defaultMessage": "Impossibile trovare la pagina che stai cercando."
- },
- "pagination.field.num_of_pages": {
- "defaultMessage": "di {numOfPages}"
- },
- "pagination.link.next": {
- "defaultMessage": "Avanti"
- },
- "pagination.link.next.assistive_msg": {
- "defaultMessage": "Pagina successiva"
- },
- "pagination.link.prev": {
- "defaultMessage": "Indietro"
- },
- "pagination.link.prev.assistive_msg": {
- "defaultMessage": "Pagina precedente"
- },
- "password_card.info.password_updated": {
- "defaultMessage": "Password aggiornata"
- },
- "password_card.label.password": {
- "defaultMessage": "Password"
- },
- "password_card.title.password": {
- "defaultMessage": "Password"
- },
- "password_requirements.error.eight_letter_minimum": {
- "defaultMessage": "Minimo 8 caratteri",
- "description": "Password requirement"
- },
- "password_requirements.error.one_lowercase_letter": {
- "defaultMessage": "1 lettera minuscola",
- "description": "Password requirement"
- },
- "password_requirements.error.one_number": {
- "defaultMessage": "1 numero",
- "description": "Password requirement"
- },
- "password_requirements.error.one_special_character": {
- "defaultMessage": "1 carattere speciale (ad esempio: , $ ! % #)",
- "description": "Password requirement"
- },
- "password_requirements.error.one_uppercase_letter": {
- "defaultMessage": "1 lettera maiuscola",
- "description": "Password requirement"
- },
- "payment_selection.heading.credit_card": {
- "defaultMessage": "Carta di credito"
- },
- "payment_selection.tooltip.secure_payment": {
- "defaultMessage": "Questo è un pagamento crittografato con SSL sicuro."
- },
- "price_per_item.label.each": {
- "defaultMessage": " cad.",
- "description": "Abbreviated 'each', follows price per item, like $10/ea"
- },
- "product_detail.accordion.button.product_detail": {
- "defaultMessage": "Dettagli prodotto"
- },
- "product_detail.accordion.button.questions": {
- "defaultMessage": "Domande"
- },
- "product_detail.accordion.button.reviews": {
- "defaultMessage": "Revisioni"
- },
- "product_detail.accordion.button.size_fit": {
- "defaultMessage": "Taglie e vestibilità"
- },
- "product_detail.accordion.message.coming_soon": {
- "defaultMessage": "In arrivo"
- },
- "product_detail.recommended_products.title.complete_set": {
- "defaultMessage": "Completa il set"
- },
- "product_detail.recommended_products.title.might_also_like": {
- "defaultMessage": "Potrebbe interessarti anche"
- },
- "product_detail.recommended_products.title.recently_viewed": {
- "defaultMessage": "Visualizzati di recente"
- },
- "product_item.label.quantity": {
- "defaultMessage": "Quantità:"
- },
- "product_list.button.filter": {
- "defaultMessage": "Filtro"
- },
- "product_list.button.sort_by": {
- "defaultMessage": "Ordina per: {sortOption}"
- },
- "product_list.drawer.title.sort_by": {
- "defaultMessage": "Ordina per"
- },
- "product_list.modal.button.clear_filters": {
- "defaultMessage": "Cancella filtri"
- },
- "product_list.modal.button.view_items": {
- "defaultMessage": "Visualizza {prroductCount} articoli"
- },
- "product_list.modal.title.filter": {
- "defaultMessage": "Filtro"
- },
- "product_list.refinements.button.assistive_msg.add_filter": {
- "defaultMessage": "Aggiungi filtro: {label}"
- },
- "product_list.refinements.button.assistive_msg.add_filter_with_hit_count": {
- "defaultMessage": "Aggiungi filtro: {label} ({hitCount})"
- },
- "product_list.refinements.button.assistive_msg.remove_filter": {
- "defaultMessage": "Rimuovi filtro: {label}"
- },
- "product_list.refinements.button.assistive_msg.remove_filter_with_hit_count": {
- "defaultMessage": "Rimuovi filtro: {label} ({hitCount})"
- },
- "product_list.select.sort_by": {
- "defaultMessage": "Ordina per: {sortOption}"
- },
- "product_scroller.assistive_msg.scroll_left": {
- "defaultMessage": "Scorri prodotti a sinistra"
- },
- "product_scroller.assistive_msg.scroll_right": {
- "defaultMessage": "Scorri prodotti a destra"
- },
- "product_tile.assistive_msg.add_to_wishlist": {
- "defaultMessage": "Aggiungi {product} alla lista desideri"
- },
- "product_tile.assistive_msg.remove_from_wishlist": {
- "defaultMessage": "Rimuovi {product} dalla lista desideri"
- },
- "product_tile.label.starting_at_price": {
- "defaultMessage": "A partire da {price}"
- },
- "product_view.button.add_set_to_cart": {
- "defaultMessage": "Aggiungi set al carrello"
- },
- "product_view.button.add_set_to_wishlist": {
- "defaultMessage": "Aggiungi set alla lista desideri"
- },
- "product_view.button.add_to_cart": {
- "defaultMessage": "Aggiungi al carrello"
- },
- "product_view.button.add_to_wishlist": {
- "defaultMessage": "Aggiungi alla lista desideri"
- },
- "product_view.button.update": {
- "defaultMessage": "Aggiorna"
- },
- "product_view.label.assistive_msg.quantity_decrement": {
- "defaultMessage": "Riduci quantità"
- },
- "product_view.label.assistive_msg.quantity_increment": {
- "defaultMessage": "Incrementa quantità"
- },
- "product_view.label.quantity": {
- "defaultMessage": "Quantità"
- },
- "product_view.label.quantity_decrement": {
- "defaultMessage": "−"
- },
- "product_view.label.quantity_increment": {
- "defaultMessage": "+"
- },
- "product_view.label.starting_at_price": {
- "defaultMessage": "A partire da"
- },
- "product_view.label.variant_type": {
- "defaultMessage": "{variantType}"
- },
- "product_view.link.full_details": {
- "defaultMessage": "Vedi tutti i dettagli"
- },
- "profile_card.info.profile_updated": {
- "defaultMessage": "Profilo aggiornato"
- },
- "profile_card.label.email": {
- "defaultMessage": "E-mail"
- },
- "profile_card.label.full_name": {
- "defaultMessage": "Nome completo"
- },
- "profile_card.label.phone": {
- "defaultMessage": "Numero di telefono"
- },
- "profile_card.message.not_provided": {
- "defaultMessage": "Non specificato"
- },
- "profile_card.title.my_profile": {
- "defaultMessage": "Il mio profilo"
- },
- "promo_code_fields.button.apply": {
- "defaultMessage": "Applica"
- },
- "promo_popover.assistive_msg.info": {
- "defaultMessage": "Info"
- },
- "promo_popover.heading.promo_applied": {
- "defaultMessage": "Promozioni applicate"
- },
- "promocode.accordion.button.have_promocode": {
- "defaultMessage": "Hai un codice promozionale?"
- },
- "recent_searches.action.clear_searches": {
- "defaultMessage": "Cancella ricerche recenti"
- },
- "recent_searches.heading.recent_searches": {
- "defaultMessage": "Ricerche recenti"
- },
- "register_form.action.sign_in": {
- "defaultMessage": "Accedi"
- },
- "register_form.button.create_account": {
- "defaultMessage": "Crea account"
- },
- "register_form.heading.lets_get_started": {
- "defaultMessage": "Iniziamo!"
- },
- "register_form.message.agree_to_policy_terms": {
- "defaultMessage": "Creando un account, accetti l'Informativa sulla privacy e i Termini e condizioni di Salesforce"
- },
- "register_form.message.already_have_account": {
- "defaultMessage": "Hai già un account?"
- },
- "register_form.message.create_an_account": {
- "defaultMessage": "Crea un account e accedi in esclusiva ai prodotti, alle idee e alle community migliori."
- },
- "reset_password.button.back_to_sign_in": {
- "defaultMessage": "Torna all'accesso"
- },
- "reset_password.info.receive_email_shortly": {
- "defaultMessage": "A breve riceverai un'email all'indirizzo {email} con un link per la reimpostazione della password."
- },
- "reset_password.title.password_reset": {
- "defaultMessage": "Reimpostazione password"
- },
- "reset_password_form.action.sign_in": {
- "defaultMessage": "Accedi"
- },
- "reset_password_form.button.reset_password": {
- "defaultMessage": "Reimposta password"
- },
- "reset_password_form.message.enter_your_email": {
- "defaultMessage": "Inserisci il tuo indirizzo email per ricevere istruzioni su come reimpostare la password"
- },
- "reset_password_form.message.return_to_sign_in": {
- "defaultMessage": "Oppure torna a",
- "description": "Precedes link to return to sign in"
- },
- "reset_password_form.title.reset_password": {
- "defaultMessage": "Reimposta password"
- },
- "search.action.cancel": {
- "defaultMessage": "Annulla"
- },
- "selected_refinements.action.assistive_msg.clear_all": {
- "defaultMessage": "Cancella tutti i filtri"
- },
- "selected_refinements.action.clear_all": {
- "defaultMessage": "Deseleziona tutto"
- },
- "shipping_address.button.continue_to_shipping": {
- "defaultMessage": "Passa al metodo di spedizione"
- },
- "shipping_address.title.shipping_address": {
- "defaultMessage": "Indirizzo di spedizione"
- },
- "shipping_address_edit_form.button.save_and_continue": {
- "defaultMessage": "Salva e passa al metodo di spedizione"
- },
- "shipping_address_form.heading.edit_address": {
- "defaultMessage": "Modifica indirizzo"
- },
- "shipping_address_form.heading.new_address": {
- "defaultMessage": "Aggiungi nuovo indirizzo"
- },
- "shipping_address_selection.button.add_address": {
- "defaultMessage": "Aggiungi nuovo indirizzo"
- },
- "shipping_address_selection.button.submit": {
- "defaultMessage": "Invia"
- },
- "shipping_address_selection.title.add_address": {
- "defaultMessage": "Aggiungi nuovo indirizzo"
- },
- "shipping_address_selection.title.edit_shipping": {
- "defaultMessage": "Modifica indirizzo di spedizione"
- },
- "shipping_options.action.send_as_a_gift": {
- "defaultMessage": "Inviare come regalo?"
- },
- "shipping_options.button.continue_to_payment": {
- "defaultMessage": "Passa al pagamento"
- },
- "shipping_options.title.shipping_gift_options": {
- "defaultMessage": "Opzioni di spedizione e regalo"
- },
- "signout_confirmation_dialog.button.cancel": {
- "defaultMessage": "Annulla"
- },
- "signout_confirmation_dialog.button.sign_out": {
- "defaultMessage": "Esci"
- },
- "signout_confirmation_dialog.heading.sign_out": {
- "defaultMessage": "Esci"
- },
- "signout_confirmation_dialog.message.sure_to_sign_out": {
- "defaultMessage": "Uscire? Per procedere con l'ordine corrente devi eseguire di nuovo l'accesso."
- },
- "swatch_group.selected.label": {
- "defaultMessage": "{label}:"
- },
- "toggle_card.action.edit": {
- "defaultMessage": "Modifica"
- },
- "update_password_fields.button.forgot_password": {
- "defaultMessage": "Password dimenticata?"
- },
- "use_address_fields.error.please_enter_first_name": {
- "defaultMessage": "Inserisci il nome."
- },
- "use_address_fields.error.please_enter_last_name": {
- "defaultMessage": "Inserisci il cognome."
- },
- "use_address_fields.error.please_enter_phone_number": {
- "defaultMessage": "Inserisci il numero di telefono."
- },
- "use_address_fields.error.please_enter_your_postal_or_zip": {
- "defaultMessage": "Inserisci il codice postale."
- },
- "use_address_fields.error.please_select_your_address": {
- "defaultMessage": "Inserisci l'indirizzo."
- },
- "use_address_fields.error.please_select_your_city": {
- "defaultMessage": "Inserisci la città."
- },
- "use_address_fields.error.please_select_your_country": {
- "defaultMessage": "Seleziona il Paese."
- },
- "use_address_fields.error.please_select_your_state_or_province": {
- "defaultMessage": "Seleziona lo stato/la provincia."
- },
- "use_address_fields.error.required": {
- "defaultMessage": "Obbligatorio"
- },
- "use_address_fields.error.state_code_invalid": {
- "defaultMessage": "Inserisci la provincia di 2 lettere."
- },
- "use_address_fields.label.address": {
- "defaultMessage": "Indirizzo"
- },
- "use_address_fields.label.address_form": {
- "defaultMessage": "Modulo indirizzo"
- },
- "use_address_fields.label.city": {
- "defaultMessage": "Città"
- },
- "use_address_fields.label.country": {
- "defaultMessage": "Paese"
- },
- "use_address_fields.label.first_name": {
- "defaultMessage": "Nome"
- },
- "use_address_fields.label.last_name": {
- "defaultMessage": "Cognome"
- },
- "use_address_fields.label.phone": {
- "defaultMessage": "Telefono"
- },
- "use_address_fields.label.postal_code": {
- "defaultMessage": "Codice postale"
- },
- "use_address_fields.label.preferred": {
- "defaultMessage": "Imposta come predefinito"
- },
- "use_address_fields.label.province": {
- "defaultMessage": "Provincia"
- },
- "use_address_fields.label.state": {
- "defaultMessage": "Stato"
- },
- "use_address_fields.label.zipCode": {
- "defaultMessage": "CAP"
- },
- "use_credit_card_fields.error.required": {
- "defaultMessage": "Obbligatorio"
- },
- "use_credit_card_fields.error.required_card_number": {
- "defaultMessage": "Inserisci il numero di carta."
- },
- "use_credit_card_fields.error.required_expiry": {
- "defaultMessage": "Inserisci la data di scadenza."
- },
- "use_credit_card_fields.error.required_name": {
- "defaultMessage": "Inserisci il tuo nome come compare sulla carta."
- },
- "use_credit_card_fields.error.required_security_code": {
- "defaultMessage": "Inserisci il codice di sicurezza."
- },
- "use_credit_card_fields.error.valid_card_number": {
- "defaultMessage": "Inserisci un numero di carta valido."
- },
- "use_credit_card_fields.error.valid_date": {
- "defaultMessage": "Inserisci una data valida."
- },
- "use_credit_card_fields.error.valid_name": {
- "defaultMessage": "Inserisci un nome valido."
- },
- "use_credit_card_fields.error.valid_security_code": {
- "defaultMessage": "Inserisci un codice di sicurezza valido."
- },
- "use_credit_card_fields.label.card_number": {
- "defaultMessage": "Numero carta"
- },
- "use_credit_card_fields.label.card_type": {
- "defaultMessage": "Tipo di carta"
- },
- "use_credit_card_fields.label.expiry": {
- "defaultMessage": "Data di scadenza"
- },
- "use_credit_card_fields.label.name": {
- "defaultMessage": "Nome sulla carta"
- },
- "use_credit_card_fields.label.security_code": {
- "defaultMessage": "Codice di sicurezza"
- },
- "use_login_fields.error.required_email": {
- "defaultMessage": "Inserisci l'indirizzo email."
- },
- "use_login_fields.error.required_password": {
- "defaultMessage": "Inserisci la password."
- },
- "use_login_fields.label.email": {
- "defaultMessage": "E-mail"
- },
- "use_login_fields.label.password": {
- "defaultMessage": "Password"
- },
- "use_product.message.inventory_remaining": {
- "defaultMessage": "Solo {stockLevel} rimasti!"
- },
- "use_product.message.out_of_stock": {
- "defaultMessage": "Esaurito"
- },
- "use_profile_fields.error.required_email": {
- "defaultMessage": "Inserisci un indirizzo e-mail valido."
- },
- "use_profile_fields.error.required_first_name": {
- "defaultMessage": "Inserisci il nome."
- },
- "use_profile_fields.error.required_last_name": {
- "defaultMessage": "Inserisci il cognome."
- },
- "use_profile_fields.error.required_phone": {
- "defaultMessage": "Inserisci il numero di telefono."
- },
- "use_profile_fields.label.email": {
- "defaultMessage": "E-mail"
- },
- "use_profile_fields.label.first_name": {
- "defaultMessage": "Nome"
- },
- "use_profile_fields.label.last_name": {
- "defaultMessage": "Cognome"
- },
- "use_profile_fields.label.phone": {
- "defaultMessage": "Numero di telefono"
- },
- "use_promo_code_fields.error.required_promo_code": {
- "defaultMessage": "Specifica un codice promozionale valido."
- },
- "use_promo_code_fields.label.promo_code": {
- "defaultMessage": "Codice promozionale"
- },
- "use_promocode.error.check_the_code": {
- "defaultMessage": "Controlla il codice e riprova. È possibile che sia già stato applicato o che la promozione sia scaduta."
- },
- "use_promocode.info.promo_applied": {
- "defaultMessage": "Promozione applicata"
- },
- "use_promocode.info.promo_removed": {
- "defaultMessage": "Promozione eliminata"
- },
- "use_registration_fields.error.contain_number": {
- "defaultMessage": "La password deve contenere almeno un numero."
- },
- "use_registration_fields.error.lowercase_letter": {
- "defaultMessage": "La password deve contenere almeno una lettera minuscola."
- },
- "use_registration_fields.error.minimum_characters": {
- "defaultMessage": "La password deve contenere almeno 8 caratteri."
- },
- "use_registration_fields.error.required_email": {
- "defaultMessage": "Inserisci un indirizzo e-mail valido."
- },
- "use_registration_fields.error.required_first_name": {
- "defaultMessage": "Inserisci il nome."
- },
- "use_registration_fields.error.required_last_name": {
- "defaultMessage": "Inserisci il cognome."
- },
- "use_registration_fields.error.required_password": {
- "defaultMessage": "Creare una password."
- },
- "use_registration_fields.error.special_character": {
- "defaultMessage": "La password deve contenere almeno un carattere speciale."
- },
- "use_registration_fields.error.uppercase_letter": {
- "defaultMessage": "La password deve contenere almeno una lettera maiuscola."
- },
- "use_registration_fields.label.email": {
- "defaultMessage": "E-mail"
- },
- "use_registration_fields.label.first_name": {
- "defaultMessage": "Nome"
- },
- "use_registration_fields.label.last_name": {
- "defaultMessage": "Cognome"
- },
- "use_registration_fields.label.password": {
- "defaultMessage": "Password"
- },
- "use_registration_fields.label.sign_up_to_emails": {
- "defaultMessage": "Iscrivimi alle email di Salesforce (puoi annullare l'iscrizione in qualsiasi momento)"
- },
- "use_reset_password_fields.error.required_email": {
- "defaultMessage": "Inserisci un indirizzo e-mail valido."
- },
- "use_reset_password_fields.label.email": {
- "defaultMessage": "E-mail"
- },
- "use_update_password_fields.error.contain_number": {
- "defaultMessage": "La password deve contenere almeno un numero."
- },
- "use_update_password_fields.error.lowercase_letter": {
- "defaultMessage": "La password deve contenere almeno una lettera minuscola."
- },
- "use_update_password_fields.error.minimum_characters": {
- "defaultMessage": "La password deve contenere almeno 8 caratteri."
- },
- "use_update_password_fields.error.required_new_password": {
- "defaultMessage": "Specifica una nuova password."
- },
- "use_update_password_fields.error.required_password": {
- "defaultMessage": "Inserisci la password."
- },
- "use_update_password_fields.error.special_character": {
- "defaultMessage": "La password deve contenere almeno un carattere speciale."
- },
- "use_update_password_fields.error.uppercase_letter": {
- "defaultMessage": "La password deve contenere almeno una lettera maiuscola."
- },
- "use_update_password_fields.label.current_password": {
- "defaultMessage": "Password corrente"
- },
- "use_update_password_fields.label.new_password": {
- "defaultMessage": "Nuova password"
- },
- "wishlist_primary_action.button.add_set_to_cart": {
- "defaultMessage": "Aggiungi set al carrello"
- },
- "wishlist_primary_action.button.add_to_cart": {
- "defaultMessage": "Aggiungi al carrello"
- },
- "wishlist_primary_action.button.view_full_details": {
- "defaultMessage": "Mostra tutti i dettagli"
- },
- "wishlist_primary_action.button.view_options": {
- "defaultMessage": "Visualizza opzioni"
- },
- "wishlist_primary_action.info.added_to_cart": {
- "defaultMessage": "{quantity} {quantity, plural, one {articolo aggiunto} other {articoli aggiunti}} al carrello"
- },
- "wishlist_secondary_button_group.action.remove": {
- "defaultMessage": "Rimuovi"
- },
- "wishlist_secondary_button_group.info.item_removed": {
- "defaultMessage": "Articolo rimosso dalla lista desideri"
- },
- "with_registration.info.please_sign_in": {
- "defaultMessage": "Accedi per continuare!"
- }
-}
diff --git a/packages/template-retail-react-app/translations/ja-JP.json b/packages/template-retail-react-app/translations/ja-JP.json
deleted file mode 100644
index fe206d8b7e..0000000000
--- a/packages/template-retail-react-app/translations/ja-JP.json
+++ /dev/null
@@ -1,1517 +0,0 @@
-{
- "account.accordion.button.my_account": {
- "defaultMessage": "マイアカウント"
- },
- "account.heading.my_account": {
- "defaultMessage": "マイアカウント"
- },
- "account.logout_button.button.log_out": {
- "defaultMessage": "ログアウト"
- },
- "account_addresses.badge.default": {
- "defaultMessage": "デフォルト"
- },
- "account_addresses.button.add_address": {
- "defaultMessage": "住所の追加"
- },
- "account_addresses.info.address_removed": {
- "defaultMessage": "住所が削除されました"
- },
- "account_addresses.info.address_updated": {
- "defaultMessage": "住所が更新されました"
- },
- "account_addresses.info.new_address_saved": {
- "defaultMessage": "新しい住所が保存されました"
- },
- "account_addresses.page_action_placeholder.button.add_address": {
- "defaultMessage": "住所の追加"
- },
- "account_addresses.page_action_placeholder.heading.no_saved_addresses": {
- "defaultMessage": "保存されている住所はありません"
- },
- "account_addresses.page_action_placeholder.message.add_new_address": {
- "defaultMessage": "新しい住所を追加すると、注文手続きを素早く完了できます。"
- },
- "account_addresses.title.addresses": {
- "defaultMessage": "住所"
- },
- "account_detail.title.account_details": {
- "defaultMessage": "アカウントの詳細"
- },
- "account_order_detail.heading.billing_address": {
- "defaultMessage": "請求先住所"
- },
- "account_order_detail.heading.num_of_items": {
- "defaultMessage": "{count} 個の商品"
- },
- "account_order_detail.heading.payment_method": {
- "defaultMessage": "支払方法"
- },
- "account_order_detail.heading.shipping_address": {
- "defaultMessage": "配送先住所"
- },
- "account_order_detail.heading.shipping_method": {
- "defaultMessage": "配送方法"
- },
- "account_order_detail.label.order_number": {
- "defaultMessage": "注文番号: {orderNumber}"
- },
- "account_order_detail.label.ordered_date": {
- "defaultMessage": "注文日: {date}"
- },
- "account_order_detail.label.pending_tracking_number": {
- "defaultMessage": "保留中"
- },
- "account_order_detail.label.tracking_number": {
- "defaultMessage": "追跡番号"
- },
- "account_order_detail.link.back_to_history": {
- "defaultMessage": "注文履歴に戻る"
- },
- "account_order_detail.shipping_status.not_shipped": {
- "defaultMessage": "未出荷"
- },
- "account_order_detail.shipping_status.part_shipped": {
- "defaultMessage": "一部出荷済み"
- },
- "account_order_detail.shipping_status.shipped": {
- "defaultMessage": "出荷済み"
- },
- "account_order_detail.title.order_details": {
- "defaultMessage": "注文の詳細"
- },
- "account_order_history.button.continue_shopping": {
- "defaultMessage": "買い物を続ける"
- },
- "account_order_history.description.once_you_place_order": {
- "defaultMessage": "注文を確定すると、ここに詳細が表示されます。"
- },
- "account_order_history.heading.no_order_yet": {
- "defaultMessage": "まだ注文を確定していません。"
- },
- "account_order_history.label.num_of_items": {
- "defaultMessage": "{count} 個の商品",
- "description": "Number of items in order"
- },
- "account_order_history.label.order_number": {
- "defaultMessage": "注文番号: {orderNumber}"
- },
- "account_order_history.label.ordered_date": {
- "defaultMessage": "注文日: {date}"
- },
- "account_order_history.label.shipped_to": {
- "defaultMessage": "配送先: {name}"
- },
- "account_order_history.link.view_details": {
- "defaultMessage": "詳細の表示"
- },
- "account_order_history.title.order_history": {
- "defaultMessage": "注文履歴"
- },
- "account_wishlist.button.continue_shopping": {
- "defaultMessage": "買い物を続ける"
- },
- "account_wishlist.description.continue_shopping": {
- "defaultMessage": "買い物を続けて、ほしい物リストに商品を追加してください。"
- },
- "account_wishlist.heading.no_wishlist": {
- "defaultMessage": "ほしい物リストに商品がありません"
- },
- "account_wishlist.title.wishlist": {
- "defaultMessage": "ほしい物リスト"
- },
- "action_card.action.edit": {
- "defaultMessage": "編集"
- },
- "action_card.action.remove": {
- "defaultMessage": "削除"
- },
- "add_to_cart_modal.info.added_to_cart": {
- "defaultMessage": "{quantity} {quantity, plural, one { 個の商品} other { 個の商品}}が買い物カゴに追加されました"
- },
- "add_to_cart_modal.label.cart_subtotal": {
- "defaultMessage": "買い物カゴ小計 ({itemAccumulatedCount} 個の商品)"
- },
- "add_to_cart_modal.label.quantity": {
- "defaultMessage": "個数"
- },
- "add_to_cart_modal.link.checkout": {
- "defaultMessage": "注文手続きに進む"
- },
- "add_to_cart_modal.link.view_cart": {
- "defaultMessage": "買い物カゴを表示"
- },
- "add_to_cart_modal.recommended_products.title.might_also_like": {
- "defaultMessage": "こちらもどうぞ"
- },
- "auth_modal.button.close.assistive_msg": {
- "defaultMessage": "ログインフォームを閉じる"
- },
- "auth_modal.description.now_signed_in": {
- "defaultMessage": "サインインしました。"
- },
- "auth_modal.error.incorrect_email_or_password": {
- "defaultMessage": "Eメールまたはパスワードが正しくありません。もう一度お試しください。"
- },
- "auth_modal.info.welcome_user": {
- "defaultMessage": "ようこそ、{name}さん"
- },
- "auth_modal.password_reset_success.button.back_to_sign_in": {
- "defaultMessage": "サインインに戻る"
- },
- "auth_modal.password_reset_success.info.will_email_shortly": {
- "defaultMessage": "パスワードリセットのリンクが記載された Eメールがまもなく {email} に届きます。"
- },
- "auth_modal.password_reset_success.title.password_reset": {
- "defaultMessage": "パスワードのリセット"
- },
- "carousel.button.scroll_left.assistive_msg": {
- "defaultMessage": "カルーセルを左へスクロール"
- },
- "carousel.button.scroll_right.assistive_msg": {
- "defaultMessage": "カルーセルを右へスクロール"
- },
- "cart.info.removed_from_cart": {
- "defaultMessage": "買い物カゴから商品が削除されました"
- },
- "cart.recommended_products.title.may_also_like": {
- "defaultMessage": "こちらもおすすめ"
- },
- "cart.recommended_products.title.recently_viewed": {
- "defaultMessage": "最近見た商品"
- },
- "cart_cta.link.checkout": {
- "defaultMessage": "注文手続きに進む"
- },
- "cart_secondary_button_group.action.added_to_wishlist": {
- "defaultMessage": "ほしい物リストに追加"
- },
- "cart_secondary_button_group.action.edit": {
- "defaultMessage": "編集"
- },
- "cart_secondary_button_group.action.remove": {
- "defaultMessage": "削除"
- },
- "cart_secondary_button_group.label.this_is_gift": {
- "defaultMessage": "これはギフトです。"
- },
- "cart_skeleton.heading.order_summary": {
- "defaultMessage": "注文の概要"
- },
- "cart_skeleton.title.cart": {
- "defaultMessage": "買い物カゴ"
- },
- "cart_title.title.cart_num_of_items": {
- "defaultMessage": "買い物カゴ ({itemCount, plural, =0 {0 個の商品} one {# 個の商品} other {# 個の商品}})"
- },
- "cc_radio_group.action.remove": {
- "defaultMessage": "削除"
- },
- "cc_radio_group.button.add_new_card": {
- "defaultMessage": "新しいカードの追加"
- },
- "checkout.button.place_order": {
- "defaultMessage": "注文の確定"
- },
- "checkout.message.generic_error": {
- "defaultMessage": "注文手続き中に予期しないエラーが発生しました。"
- },
- "checkout_confirmation.button.create_account": {
- "defaultMessage": "アカウントの作成"
- },
- "checkout_confirmation.heading.billing_address": {
- "defaultMessage": "請求先住所"
- },
- "checkout_confirmation.heading.create_account": {
- "defaultMessage": "アカウントを作成すると、注文手続きを素早く完了できます"
- },
- "checkout_confirmation.heading.credit_card": {
- "defaultMessage": "クレジットカード"
- },
- "checkout_confirmation.heading.delivery_details": {
- "defaultMessage": "配送の詳細"
- },
- "checkout_confirmation.heading.order_summary": {
- "defaultMessage": "注文の概要"
- },
- "checkout_confirmation.heading.payment_details": {
- "defaultMessage": "支払の詳細"
- },
- "checkout_confirmation.heading.shipping_address": {
- "defaultMessage": "配送先住所"
- },
- "checkout_confirmation.heading.shipping_method": {
- "defaultMessage": "配送方法"
- },
- "checkout_confirmation.heading.thank_you_for_order": {
- "defaultMessage": "ご注文いただきありがとうございました!"
- },
- "checkout_confirmation.label.free": {
- "defaultMessage": "無料"
- },
- "checkout_confirmation.label.order_number": {
- "defaultMessage": "注文番号"
- },
- "checkout_confirmation.label.order_total": {
- "defaultMessage": "ご注文金額合計"
- },
- "checkout_confirmation.label.promo_applied": {
- "defaultMessage": "プロモーションが適用されました"
- },
- "checkout_confirmation.label.shipping": {
- "defaultMessage": "配送"
- },
- "checkout_confirmation.label.subtotal": {
- "defaultMessage": "小計"
- },
- "checkout_confirmation.label.tax": {
- "defaultMessage": "税金"
- },
- "checkout_confirmation.link.continue_shopping": {
- "defaultMessage": "買い物を続ける"
- },
- "checkout_confirmation.link.login": {
- "defaultMessage": "ログインはこちらから"
- },
- "checkout_confirmation.message.already_has_account": {
- "defaultMessage": "この Eメールにはすでにアカウントがあります。"
- },
- "checkout_confirmation.message.num_of_items_in_order": {
- "defaultMessage": "{itemCount, plural, =0 {0 個の商品} one {# 個の商品} other {# 個の商品}}",
- "description": "# item(s) in order"
- },
- "checkout_confirmation.message.will_email_shortly": {
- "defaultMessage": "確認番号と領収書が含まれる Eメールをまもなく {email} 宛にお送りします。"
- },
- "checkout_footer.link.privacy_policy": {
- "defaultMessage": "プライバシーポリシー"
- },
- "checkout_footer.link.returns_exchanges": {
- "defaultMessage": "返品および交換"
- },
- "checkout_footer.link.shipping": {
- "defaultMessage": "配送"
- },
- "checkout_footer.link.site_map": {
- "defaultMessage": "サイトマップ"
- },
- "checkout_footer.link.terms_conditions": {
- "defaultMessage": "使用条件"
- },
- "checkout_footer.message.copyright": {
- "defaultMessage": "Salesforce またはその系列会社。All Rights Reserved. これはデモのみを目的とするストアです。注文を確定しても処理されません。"
- },
- "checkout_header.link.assistive_msg.cart": {
- "defaultMessage": "買い物カゴに戻る、商品数: {numItems}"
- },
- "checkout_header.link.cart": {
- "defaultMessage": "買い物カゴに戻る"
- },
- "checkout_payment.action.remove": {
- "defaultMessage": "削除"
- },
- "checkout_payment.button.review_order": {
- "defaultMessage": "注文の確認"
- },
- "checkout_payment.heading.billing_address": {
- "defaultMessage": "請求先住所"
- },
- "checkout_payment.heading.credit_card": {
- "defaultMessage": "クレジットカード"
- },
- "checkout_payment.label.same_as_shipping": {
- "defaultMessage": "配送先住所と同じ"
- },
- "checkout_payment.title.payment": {
- "defaultMessage": "支払"
- },
- "colorRefinements.label.hitCount": {
- "defaultMessage": "{colorLabel} ({colorHitCount})"
- },
- "confirmation_modal.default.action.no": {
- "defaultMessage": "いいえ"
- },
- "confirmation_modal.default.action.yes": {
- "defaultMessage": "はい"
- },
- "confirmation_modal.default.message.you_want_to_continue": {
- "defaultMessage": "続行しますか?"
- },
- "confirmation_modal.default.title.confirm_action": {
- "defaultMessage": "操作の確認"
- },
- "confirmation_modal.remove_cart_item.action.no": {
- "defaultMessage": "いいえ、商品をキープします"
- },
- "confirmation_modal.remove_cart_item.action.remove": {
- "defaultMessage": "削除"
- },
- "confirmation_modal.remove_cart_item.action.yes": {
- "defaultMessage": "はい、商品を削除します"
- },
- "confirmation_modal.remove_cart_item.message.need_to_remove_due_to_unavailability": {
- "defaultMessage": "一部の商品がオンラインで入手できなくなったため、買い物カゴから削除されます。"
- },
- "confirmation_modal.remove_cart_item.message.sure_to_remove": {
- "defaultMessage": "この商品を買い物カゴから削除しますか?"
- },
- "confirmation_modal.remove_cart_item.title.confirm_remove": {
- "defaultMessage": "商品の削除の確認"
- },
- "confirmation_modal.remove_cart_item.title.items_unavailable": {
- "defaultMessage": "入手不可商品"
- },
- "confirmation_modal.remove_wishlist_item.action.no": {
- "defaultMessage": "いいえ、商品をキープします"
- },
- "confirmation_modal.remove_wishlist_item.action.yes": {
- "defaultMessage": "はい、商品を削除します"
- },
- "confirmation_modal.remove_wishlist_item.message.sure_to_remove": {
- "defaultMessage": "この商品をほしい物リストから削除しますか?"
- },
- "confirmation_modal.remove_wishlist_item.title.confirm_remove": {
- "defaultMessage": "商品の削除の確認"
- },
- "contact_info.action.sign_out": {
- "defaultMessage": "サインアウト"
- },
- "contact_info.button.already_have_account": {
- "defaultMessage": "すでにアカウントをお持ちですか?ログイン"
- },
- "contact_info.button.checkout_as_guest": {
- "defaultMessage": "ゲストとして注文手続きへ進む"
- },
- "contact_info.button.login": {
- "defaultMessage": "ログイン"
- },
- "contact_info.error.incorrect_username_or_password": {
- "defaultMessage": "ユーザー名またはパスワードが間違っています。もう一度お試しください。"
- },
- "contact_info.link.forgot_password": {
- "defaultMessage": "パスワードを忘れましたか?"
- },
- "contact_info.title.contact_info": {
- "defaultMessage": "連絡先情報"
- },
- "credit_card_fields.tool_tip.security_code": {
- "defaultMessage": "この 3 桁のコードはカードの裏面に記載されています。",
- "description": "Generic credit card security code help text"
- },
- "credit_card_fields.tool_tip.security_code.american_express": {
- "defaultMessage": "この 4 桁のコードはカードの表面に記載されています。",
- "description": "American Express security code help text"
- },
- "credit_card_fields.tool_tip.security_code_aria_label": {
- "defaultMessage": "セキュリティコード情報"
- },
- "drawer_menu.button.account_details": {
- "defaultMessage": "アカウントの詳細"
- },
- "drawer_menu.button.addresses": {
- "defaultMessage": "住所"
- },
- "drawer_menu.button.log_out": {
- "defaultMessage": "ログアウト"
- },
- "drawer_menu.button.my_account": {
- "defaultMessage": "マイアカウント"
- },
- "drawer_menu.button.order_history": {
- "defaultMessage": "注文履歴"
- },
- "drawer_menu.link.about_us": {
- "defaultMessage": "企業情報"
- },
- "drawer_menu.link.customer_support": {
- "defaultMessage": "カスタマーサポート"
- },
- "drawer_menu.link.customer_support.contact_us": {
- "defaultMessage": "お問い合わせ"
- },
- "drawer_menu.link.customer_support.shipping_and_returns": {
- "defaultMessage": "配送と返品"
- },
- "drawer_menu.link.our_company": {
- "defaultMessage": "当社について"
- },
- "drawer_menu.link.privacy_and_security": {
- "defaultMessage": "プライバシー & セキュリティ"
- },
- "drawer_menu.link.privacy_policy": {
- "defaultMessage": "プライバシーポリシー"
- },
- "drawer_menu.link.shop_all": {
- "defaultMessage": "すべての商品"
- },
- "drawer_menu.link.sign_in": {
- "defaultMessage": "サインイン"
- },
- "drawer_menu.link.site_map": {
- "defaultMessage": "サイトマップ"
- },
- "drawer_menu.link.store_locator": {
- "defaultMessage": "店舗検索"
- },
- "drawer_menu.link.terms_and_conditions": {
- "defaultMessage": "使用条件"
- },
- "empty_cart.description.empty_cart": {
- "defaultMessage": "買い物カゴは空です。"
- },
- "empty_cart.link.continue_shopping": {
- "defaultMessage": "買い物を続ける"
- },
- "empty_cart.link.sign_in": {
- "defaultMessage": "サインイン"
- },
- "empty_cart.message.continue_shopping": {
- "defaultMessage": "買い物を続けて、買い物カゴに商品を追加してください。"
- },
- "empty_cart.message.sign_in_or_continue_shopping": {
- "defaultMessage": "サインインして保存された商品を取得するか、買い物を続けてください。"
- },
- "empty_search_results.info.cant_find_anything_for_category": {
- "defaultMessage": "{category}では該当する商品が見つかりませんでした。商品を検索してみるか、または{link}ください。"
- },
- "empty_search_results.info.cant_find_anything_for_query": {
- "defaultMessage": "\"{searchQuery}\" では該当する商品が見つかりませんでした。"
- },
- "empty_search_results.info.double_check_spelling": {
- "defaultMessage": "入力内容に間違いがないか再度ご確認の上、もう一度やり直すか、または{link}ください。"
- },
- "empty_search_results.link.contact_us": {
- "defaultMessage": "お問い合わせ"
- },
- "empty_search_results.recommended_products.title.most_viewed": {
- "defaultMessage": "最も閲覧された商品"
- },
- "empty_search_results.recommended_products.title.top_sellers": {
- "defaultMessage": "売れ筋商品"
- },
- "field.password.assistive_msg.hide_password": {
- "defaultMessage": "パスワードを非表示"
- },
- "field.password.assistive_msg.show_password": {
- "defaultMessage": "パスワードを表示"
- },
- "footer.column.account": {
- "defaultMessage": "アカウント"
- },
- "footer.column.customer_support": {
- "defaultMessage": "カスタマーサポート"
- },
- "footer.column.our_company": {
- "defaultMessage": "当社について"
- },
- "footer.link.about_us": {
- "defaultMessage": "企業情報"
- },
- "footer.link.contact_us": {
- "defaultMessage": "お問い合わせ"
- },
- "footer.link.order_status": {
- "defaultMessage": "注文ステータス"
- },
- "footer.link.privacy_policy": {
- "defaultMessage": "プライバシーポリシー"
- },
- "footer.link.shipping": {
- "defaultMessage": "配送"
- },
- "footer.link.signin_create_account": {
- "defaultMessage": "サインインするかアカウントを作成してください"
- },
- "footer.link.site_map": {
- "defaultMessage": "サイトマップ"
- },
- "footer.link.store_locator": {
- "defaultMessage": "店舗検索"
- },
- "footer.link.terms_conditions": {
- "defaultMessage": "使用条件"
- },
- "footer.message.copyright": {
- "defaultMessage": "Salesforce またはその系列会社。All Rights Reserved. これはデモのみを目的とするストアです。注文を確定しても処理されません。"
- },
- "footer.subscribe.button.sign_up": {
- "defaultMessage": "サインアップ"
- },
- "footer.subscribe.description.sign_up": {
- "defaultMessage": "サインアップすると人気のお買い得商品について最新情報を入手できます"
- },
- "footer.subscribe.heading.first_to_know": {
- "defaultMessage": "最新情報を誰よりも早く入手"
- },
- "form_action_buttons.button.cancel": {
- "defaultMessage": "キャンセル"
- },
- "form_action_buttons.button.save": {
- "defaultMessage": "保存"
- },
- "global.account.link.account_details": {
- "defaultMessage": "アカウントの詳細"
- },
- "global.account.link.addresses": {
- "defaultMessage": "住所"
- },
- "global.account.link.order_history": {
- "defaultMessage": "注文履歴"
- },
- "global.account.link.wishlist": {
- "defaultMessage": "ほしい物リスト"
- },
- "global.error.something_went_wrong": {
- "defaultMessage": "問題が発生しました。もう一度お試しください!"
- },
- "global.info.added_to_wishlist": {
- "defaultMessage": "{quantity} {quantity, plural, one { 個の商品} other { 個の商品}}がほしい物リストに追加されました"
- },
- "global.info.already_in_wishlist": {
- "defaultMessage": "商品はすでにほしい物リストに追加されています"
- },
- "global.info.removed_from_wishlist": {
- "defaultMessage": "ほしい物リストから商品が削除されました"
- },
- "global.link.added_to_wishlist.view_wishlist": {
- "defaultMessage": "表示"
- },
- "header.button.assistive_msg.logo": {
- "defaultMessage": "ロゴ"
- },
- "header.button.assistive_msg.menu": {
- "defaultMessage": "メニュー"
- },
- "header.button.assistive_msg.my_account": {
- "defaultMessage": "マイアカウント"
- },
- "header.button.assistive_msg.my_account_menu": {
- "defaultMessage": "アカウントメニューを開く"
- },
- "header.button.assistive_msg.my_cart_with_num_items": {
- "defaultMessage": "マイ買い物カゴ、商品数: {numItems}"
- },
- "header.button.assistive_msg.wishlist": {
- "defaultMessage": "ほしい物リスト"
- },
- "header.field.placeholder.search_for_products": {
- "defaultMessage": "商品の検索..."
- },
- "header.popover.action.log_out": {
- "defaultMessage": "ログアウト"
- },
- "header.popover.title.my_account": {
- "defaultMessage": "マイアカウント"
- },
- "home.description.features": {
- "defaultMessage": "すぐに使える機能が用意されているため、機能の強化のみに注力できます。"
- },
- "home.description.here_to_help": {
- "defaultMessage": "サポート担当者にご連絡ください。"
- },
- "home.description.here_to_help_line_2": {
- "defaultMessage": "適切な部門におつなげします。"
- },
- "home.description.shop_products": {
- "defaultMessage": "このセクションには、カタログからのコンテンツが含まれています。カタログの置き換え方法に関する{docLink}。",
- "description": "{docLink} is a html button that links the user to https://sfdc.co/business-manager-manage-catalogs"
- },
- "home.features.description.cart_checkout": {
- "defaultMessage": "eコマースの買い物客の買い物カゴと注文手続き体験のベストプラクティス。"
- },
- "home.features.description.components": {
- "defaultMessage": "Chakra UI を使用して構築された、シンプルなモジュラー型のアクセシブルな React コンポーネントライブラリ。"
- },
- "home.features.description.einstein_recommendations": {
- "defaultMessage": "商品レコメンデーションにより、次善の商品やオファーをすべての買い物客に提示します。"
- },
- "home.features.description.my_account": {
- "defaultMessage": "買い物客は、プロフィール、住所、支払、注文などのアカウント情報を管理できます。"
- },
- "home.features.description.shopper_login": {
- "defaultMessage": "買い物客がより簡単にログインし、よりパーソナル化された買い物体験を得られるようにします。"
- },
- "home.features.description.wishlist": {
- "defaultMessage": "登録済みの買い物客は商品をほしい物リストに追加し、あとで購入できるようにしておけます。"
- },
- "home.features.heading.cart_checkout": {
- "defaultMessage": "買い物カゴ & 注文手続き"
- },
- "home.features.heading.components": {
- "defaultMessage": "コンポーネント & 設計キット"
- },
- "home.features.heading.einstein_recommendations": {
- "defaultMessage": "Einstein レコメンデーション"
- },
- "home.features.heading.my_account": {
- "defaultMessage": "マイアカウント"
- },
- "home.features.heading.shopper_login": {
- "defaultMessage": "Shopper Login and API Access Service (SLAS)"
- },
- "home.features.heading.wishlist": {
- "defaultMessage": "ほしい物リスト"
- },
- "home.heading.features": {
- "defaultMessage": "機能"
- },
- "home.heading.here_to_help": {
- "defaultMessage": "弊社にお任せください"
- },
- "home.heading.shop_products": {
- "defaultMessage": "ショップの商品"
- },
- "home.hero_features.link.design_kit": {
- "defaultMessage": "Figma PWA Design Kit で作成"
- },
- "home.hero_features.link.on_github": {
- "defaultMessage": "Github でダウンロード"
- },
- "home.hero_features.link.on_managed_runtime": {
- "defaultMessage": "Managed Runtime でデプロイ"
- },
- "home.link.contact_us": {
- "defaultMessage": "お問い合わせ"
- },
- "home.link.get_started": {
- "defaultMessage": "開始する"
- },
- "home.link.read_docs": {
- "defaultMessage": "ドキュメントを読む"
- },
- "home.title.react_starter_store": {
- "defaultMessage": "リテール用 React PWA Starter Store"
- },
- "icons.assistive_msg.lock": {
- "defaultMessage": "セキュア"
- },
- "item_attributes.label.promotions": {
- "defaultMessage": "プロモーション"
- },
- "item_attributes.label.quantity": {
- "defaultMessage": "数量: {quantity}"
- },
- "item_image.label.sale": {
- "defaultMessage": "セール",
- "description": "A sale badge placed on top of a product image"
- },
- "item_image.label.unavailable": {
- "defaultMessage": "入手不可",
- "description": "A unavailable badge placed on top of a product image"
- },
- "item_price.label.starting_at": {
- "defaultMessage": "最低価格"
- },
- "lCPCxk": {
- "defaultMessage": "上記のすべてのオプションを選択してください"
- },
- "list_menu.nav.assistive_msg": {
- "defaultMessage": "メインナビゲーション"
- },
- "locale_text.message.ar-SA": {
- "defaultMessage": "アラビア語 (サウジアラビア)"
- },
- "locale_text.message.bn-BD": {
- "defaultMessage": "バングラ語 (バングラデシュ)"
- },
- "locale_text.message.bn-IN": {
- "defaultMessage": "バングラ語 (インド)"
- },
- "locale_text.message.cs-CZ": {
- "defaultMessage": "チェコ語 (チェコ共和国)"
- },
- "locale_text.message.da-DK": {
- "defaultMessage": "デンマーク語 (デンマーク)"
- },
- "locale_text.message.de-AT": {
- "defaultMessage": "ドイツ語 (オーストリア)"
- },
- "locale_text.message.de-CH": {
- "defaultMessage": "ドイツ語 (スイス)"
- },
- "locale_text.message.de-DE": {
- "defaultMessage": "ドイツ語 (ドイツ)"
- },
- "locale_text.message.el-GR": {
- "defaultMessage": "ギリシャ語 (ギリシャ)"
- },
- "locale_text.message.en-AU": {
- "defaultMessage": "英語 (オーストラリア)"
- },
- "locale_text.message.en-CA": {
- "defaultMessage": "英語 (カナダ)"
- },
- "locale_text.message.en-GB": {
- "defaultMessage": "英語 (英国)"
- },
- "locale_text.message.en-IE": {
- "defaultMessage": "英語 (アイルランド)"
- },
- "locale_text.message.en-IN": {
- "defaultMessage": "英語 (インド)"
- },
- "locale_text.message.en-NZ": {
- "defaultMessage": "英語 (ニュージーランド)"
- },
- "locale_text.message.en-US": {
- "defaultMessage": "英語 (米国)"
- },
- "locale_text.message.en-ZA": {
- "defaultMessage": "英語 (南アフリカ)"
- },
- "locale_text.message.es-AR": {
- "defaultMessage": "スペイン語 (アルゼンチン)"
- },
- "locale_text.message.es-CL": {
- "defaultMessage": "スペイン語 (チリ)"
- },
- "locale_text.message.es-CO": {
- "defaultMessage": "スペイン語 (コロンビア)"
- },
- "locale_text.message.es-ES": {
- "defaultMessage": "スペイン語 (スペイン)"
- },
- "locale_text.message.es-MX": {
- "defaultMessage": "スペイン語 (メキシコ)"
- },
- "locale_text.message.es-US": {
- "defaultMessage": "スペイン語 (米国)"
- },
- "locale_text.message.fi-FI": {
- "defaultMessage": "フィンランド語 (フィンランド)"
- },
- "locale_text.message.fr-BE": {
- "defaultMessage": "フランス語 (ベルギー)"
- },
- "locale_text.message.fr-CA": {
- "defaultMessage": "フランス語 (カナダ)"
- },
- "locale_text.message.fr-CH": {
- "defaultMessage": "フランス語 (スイス)"
- },
- "locale_text.message.fr-FR": {
- "defaultMessage": "フランス語 (フランス)"
- },
- "locale_text.message.he-IL": {
- "defaultMessage": "ヘブライ語 (イスラエル)"
- },
- "locale_text.message.hi-IN": {
- "defaultMessage": "ヒンディー語 (インド)"
- },
- "locale_text.message.hu-HU": {
- "defaultMessage": "ハンガリー語 (ハンガリー)"
- },
- "locale_text.message.id-ID": {
- "defaultMessage": "インドネシア語 (インドネシア)"
- },
- "locale_text.message.it-CH": {
- "defaultMessage": "イタリア語 (スイス)"
- },
- "locale_text.message.it-IT": {
- "defaultMessage": "イタリア語 (イタリア)"
- },
- "locale_text.message.ja-JP": {
- "defaultMessage": "日本語 (日本)"
- },
- "locale_text.message.ko-KR": {
- "defaultMessage": "韓国語 (韓国)"
- },
- "locale_text.message.nl-BE": {
- "defaultMessage": "オランダ語 (ベルギー)"
- },
- "locale_text.message.nl-NL": {
- "defaultMessage": "オランダ語 (オランダ)"
- },
- "locale_text.message.no-NO": {
- "defaultMessage": "ノルウェー語 (ノルウェー)"
- },
- "locale_text.message.pl-PL": {
- "defaultMessage": "ポーランド語 (ポーランド)"
- },
- "locale_text.message.pt-BR": {
- "defaultMessage": "ポルトガル語 (ブラジル)"
- },
- "locale_text.message.pt-PT": {
- "defaultMessage": "ポルトガル語 (ポルトガル)"
- },
- "locale_text.message.ro-RO": {
- "defaultMessage": "ルーマニア語 (ルーマニア)"
- },
- "locale_text.message.ru-RU": {
- "defaultMessage": "ロシア語 (ロシア連邦)"
- },
- "locale_text.message.sk-SK": {
- "defaultMessage": "スロバキア語 (スロバキア)"
- },
- "locale_text.message.sv-SE": {
- "defaultMessage": "スウェーデン語 (スウェーデン)"
- },
- "locale_text.message.ta-IN": {
- "defaultMessage": "タミール語 (インド)"
- },
- "locale_text.message.ta-LK": {
- "defaultMessage": "タミール語 (スリランカ)"
- },
- "locale_text.message.th-TH": {
- "defaultMessage": "タイ語 (タイ)"
- },
- "locale_text.message.tr-TR": {
- "defaultMessage": "トルコ語 (トルコ)"
- },
- "locale_text.message.zh-CN": {
- "defaultMessage": "中国語 (中国)"
- },
- "locale_text.message.zh-HK": {
- "defaultMessage": "中国語 (香港)"
- },
- "locale_text.message.zh-TW": {
- "defaultMessage": "中国語 (台湾)"
- },
- "login_form.action.create_account": {
- "defaultMessage": "アカウントの作成"
- },
- "login_form.button.sign_in": {
- "defaultMessage": "サインイン"
- },
- "login_form.link.forgot_password": {
- "defaultMessage": "パスワードを忘れましたか?"
- },
- "login_form.message.dont_have_account": {
- "defaultMessage": "アカウントをお持ちではありませんか?"
- },
- "login_form.message.welcome_back": {
- "defaultMessage": "お帰りなさい"
- },
- "login_page.error.incorrect_username_or_password": {
- "defaultMessage": "ユーザー名またはパスワードが間違っています。もう一度お試しください。"
- },
- "offline_banner.description.browsing_offline_mode": {
- "defaultMessage": "現在オフラインモードで閲覧しています"
- },
- "order_summary.action.remove_promo": {
- "defaultMessage": "削除"
- },
- "order_summary.cart_items.action.num_of_items_in_cart": {
- "defaultMessage": "{itemCount, plural, =0 {0 個の商品} one {# 個の商品} other {# 個の商品}}が買い物カゴに入っています",
- "description": "clicking it would expand/show the items in cart"
- },
- "order_summary.cart_items.link.edit_cart": {
- "defaultMessage": "買い物カゴを編集する"
- },
- "order_summary.heading.order_summary": {
- "defaultMessage": "注文の概要"
- },
- "order_summary.label.estimated_total": {
- "defaultMessage": "見積合計金額"
- },
- "order_summary.label.free": {
- "defaultMessage": "無料"
- },
- "order_summary.label.order_total": {
- "defaultMessage": "ご注文金額合計"
- },
- "order_summary.label.promo_applied": {
- "defaultMessage": "プロモーションが適用されました"
- },
- "order_summary.label.promotions_applied": {
- "defaultMessage": "プロモーションが適用されました"
- },
- "order_summary.label.shipping": {
- "defaultMessage": "配送"
- },
- "order_summary.label.subtotal": {
- "defaultMessage": "小計"
- },
- "order_summary.label.tax": {
- "defaultMessage": "税金"
- },
- "page_not_found.action.go_back": {
- "defaultMessage": "前のページに戻る"
- },
- "page_not_found.link.homepage": {
- "defaultMessage": "ホームページに移動する"
- },
- "page_not_found.message.suggestion_to_try": {
- "defaultMessage": "アドレスを再入力するか、前のページに戻るか、ホームページに移動してください。"
- },
- "page_not_found.title.page_cant_be_found": {
- "defaultMessage": "お探しのページが見つかりません。"
- },
- "pagination.field.num_of_pages": {
- "defaultMessage": "/{numOfPages}"
- },
- "pagination.link.next": {
- "defaultMessage": "次へ"
- },
- "pagination.link.next.assistive_msg": {
- "defaultMessage": "次のページ"
- },
- "pagination.link.prev": {
- "defaultMessage": "前へ"
- },
- "pagination.link.prev.assistive_msg": {
- "defaultMessage": "前のページ"
- },
- "password_card.info.password_updated": {
- "defaultMessage": "パスワードが更新されました"
- },
- "password_card.label.password": {
- "defaultMessage": "パスワード"
- },
- "password_card.title.password": {
- "defaultMessage": "パスワード"
- },
- "password_requirements.error.eight_letter_minimum": {
- "defaultMessage": "最低 8 文字",
- "description": "Password requirement"
- },
- "password_requirements.error.one_lowercase_letter": {
- "defaultMessage": "小文字 1 個",
- "description": "Password requirement"
- },
- "password_requirements.error.one_number": {
- "defaultMessage": "数字 1 個",
- "description": "Password requirement"
- },
- "password_requirements.error.one_special_character": {
- "defaultMessage": "特殊文字 (例: , S ! % #) 1 個",
- "description": "Password requirement"
- },
- "password_requirements.error.one_uppercase_letter": {
- "defaultMessage": "大文字 1 個",
- "description": "Password requirement"
- },
- "payment_selection.heading.credit_card": {
- "defaultMessage": "クレジットカード"
- },
- "payment_selection.tooltip.secure_payment": {
- "defaultMessage": "これは SSL 暗号化によるセキュアな支払方法です。"
- },
- "price_per_item.label.each": {
- "defaultMessage": "単価",
- "description": "Abbreviated 'each', follows price per item, like $10/ea"
- },
- "product_detail.accordion.button.product_detail": {
- "defaultMessage": "商品の詳細"
- },
- "product_detail.accordion.button.questions": {
- "defaultMessage": "質問"
- },
- "product_detail.accordion.button.reviews": {
- "defaultMessage": "レビュー"
- },
- "product_detail.accordion.button.size_fit": {
- "defaultMessage": "サイズとフィット"
- },
- "product_detail.accordion.message.coming_soon": {
- "defaultMessage": "準備中"
- },
- "product_detail.recommended_products.title.complete_set": {
- "defaultMessage": "セットを完成"
- },
- "product_detail.recommended_products.title.might_also_like": {
- "defaultMessage": "こちらもどうぞ"
- },
- "product_detail.recommended_products.title.recently_viewed": {
- "defaultMessage": "最近見た商品"
- },
- "product_item.label.quantity": {
- "defaultMessage": "数量: "
- },
- "product_list.button.filter": {
- "defaultMessage": "フィルター"
- },
- "product_list.button.sort_by": {
- "defaultMessage": "並べ替え順: {sortOption}"
- },
- "product_list.drawer.title.sort_by": {
- "defaultMessage": "並べ替え順"
- },
- "product_list.modal.button.clear_filters": {
- "defaultMessage": "フィルターのクリア"
- },
- "product_list.modal.button.view_items": {
- "defaultMessage": "{prroductCount} 個の商品を表示"
- },
- "product_list.modal.title.filter": {
- "defaultMessage": "フィルター"
- },
- "product_list.refinements.button.assistive_msg.add_filter": {
- "defaultMessage": "フィルターの追加: {label}"
- },
- "product_list.refinements.button.assistive_msg.add_filter_with_hit_count": {
- "defaultMessage": "フィルターの追加: {label} ({hitCount})"
- },
- "product_list.refinements.button.assistive_msg.remove_filter": {
- "defaultMessage": "フィルターの削除: {label}"
- },
- "product_list.refinements.button.assistive_msg.remove_filter_with_hit_count": {
- "defaultMessage": "フィルターの削除: {label} ({hitCount})"
- },
- "product_list.select.sort_by": {
- "defaultMessage": "並べ替え順: {sortOption}"
- },
- "product_scroller.assistive_msg.scroll_left": {
- "defaultMessage": "商品を左へスクロール"
- },
- "product_scroller.assistive_msg.scroll_right": {
- "defaultMessage": "商品を右へスクロール"
- },
- "product_tile.assistive_msg.add_to_wishlist": {
- "defaultMessage": "{product} をほしい物リストに追加"
- },
- "product_tile.assistive_msg.remove_from_wishlist": {
- "defaultMessage": "{product} をほしい物リストから削除"
- },
- "product_tile.label.starting_at_price": {
- "defaultMessage": "最低価格: {price}"
- },
- "product_view.button.add_set_to_cart": {
- "defaultMessage": "セットを買い物カゴに追加"
- },
- "product_view.button.add_set_to_wishlist": {
- "defaultMessage": "セットをほしい物リストに追加"
- },
- "product_view.button.add_to_cart": {
- "defaultMessage": "買い物カゴに追加"
- },
- "product_view.button.add_to_wishlist": {
- "defaultMessage": "ほしい物リストに追加"
- },
- "product_view.button.update": {
- "defaultMessage": "更新"
- },
- "product_view.label.assistive_msg.quantity_decrement": {
- "defaultMessage": "数量を減らす"
- },
- "product_view.label.assistive_msg.quantity_increment": {
- "defaultMessage": "数量を増やす"
- },
- "product_view.label.quantity": {
- "defaultMessage": "数量"
- },
- "product_view.label.quantity_decrement": {
- "defaultMessage": "−"
- },
- "product_view.label.quantity_increment": {
- "defaultMessage": "+"
- },
- "product_view.label.starting_at_price": {
- "defaultMessage": "最低価格"
- },
- "product_view.label.variant_type": {
- "defaultMessage": "{variantType}"
- },
- "product_view.link.full_details": {
- "defaultMessage": "すべての情報を表示"
- },
- "profile_card.info.profile_updated": {
- "defaultMessage": "プロフィールが更新されました"
- },
- "profile_card.label.email": {
- "defaultMessage": "Eメール"
- },
- "profile_card.label.full_name": {
- "defaultMessage": "氏名"
- },
- "profile_card.label.phone": {
- "defaultMessage": "電話番号"
- },
- "profile_card.message.not_provided": {
- "defaultMessage": "指定されていません"
- },
- "profile_card.title.my_profile": {
- "defaultMessage": "マイプロフィール"
- },
- "promo_code_fields.button.apply": {
- "defaultMessage": "適用"
- },
- "promo_popover.assistive_msg.info": {
- "defaultMessage": "情報"
- },
- "promo_popover.heading.promo_applied": {
- "defaultMessage": "プロモーションが適用されました"
- },
- "promocode.accordion.button.have_promocode": {
- "defaultMessage": "プロモーションコードをお持ちですか?"
- },
- "recent_searches.action.clear_searches": {
- "defaultMessage": "最近の検索をクリア"
- },
- "recent_searches.heading.recent_searches": {
- "defaultMessage": "最近の検索"
- },
- "register_form.action.sign_in": {
- "defaultMessage": "サインイン"
- },
- "register_form.button.create_account": {
- "defaultMessage": "アカウントの作成"
- },
- "register_form.heading.lets_get_started": {
- "defaultMessage": "さあ、始めましょう!"
- },
- "register_form.message.agree_to_policy_terms": {
- "defaultMessage": "アカウントを作成した場合、Salesforce のプライバシーポリシー と使用条件 にご同意いただいたものと見なされます"
- },
- "register_form.message.already_have_account": {
- "defaultMessage": "すでにアカウントをお持ちですか?"
- },
- "register_form.message.create_an_account": {
- "defaultMessage": "アカウントを作成すると、売れ筋商品、インスピレーション、コミュニティに最初にアクセスできます。"
- },
- "reset_password.button.back_to_sign_in": {
- "defaultMessage": "サインインに戻る"
- },
- "reset_password.info.receive_email_shortly": {
- "defaultMessage": "パスワードリセットのリンクが記載された Eメールがまもなく {email} に届きます。"
- },
- "reset_password.title.password_reset": {
- "defaultMessage": "パスワードのリセット"
- },
- "reset_password_form.action.sign_in": {
- "defaultMessage": "サインイン"
- },
- "reset_password_form.button.reset_password": {
- "defaultMessage": "パスワードのリセット"
- },
- "reset_password_form.message.enter_your_email": {
- "defaultMessage": "パスワードのリセット方法を受け取るには Eメールを入力してください"
- },
- "reset_password_form.message.return_to_sign_in": {
- "defaultMessage": "または次のリンクをクリックしてください: ",
- "description": "Precedes link to return to sign in"
- },
- "reset_password_form.title.reset_password": {
- "defaultMessage": "パスワードのリセット"
- },
- "search.action.cancel": {
- "defaultMessage": "キャンセル"
- },
- "selected_refinements.action.assistive_msg.clear_all": {
- "defaultMessage": "すべてのフィルターをクリア"
- },
- "selected_refinements.action.clear_all": {
- "defaultMessage": "すべてクリア"
- },
- "shipping_address.button.continue_to_shipping": {
- "defaultMessage": "配送方法に進む"
- },
- "shipping_address.title.shipping_address": {
- "defaultMessage": "配送先住所"
- },
- "shipping_address_edit_form.button.save_and_continue": {
- "defaultMessage": "保存して配送方法に進む"
- },
- "shipping_address_form.heading.edit_address": {
- "defaultMessage": "住所を編集する"
- },
- "shipping_address_form.heading.new_address": {
- "defaultMessage": "新しい住所の追加"
- },
- "shipping_address_selection.button.add_address": {
- "defaultMessage": "新しい住所の追加"
- },
- "shipping_address_selection.button.submit": {
- "defaultMessage": "送信"
- },
- "shipping_address_selection.title.add_address": {
- "defaultMessage": "新しい住所の追加"
- },
- "shipping_address_selection.title.edit_shipping": {
- "defaultMessage": "配送先住所の編集"
- },
- "shipping_options.action.send_as_a_gift": {
- "defaultMessage": "ギフトとして発送しますか?"
- },
- "shipping_options.button.continue_to_payment": {
- "defaultMessage": "支払に進む"
- },
- "shipping_options.title.shipping_gift_options": {
- "defaultMessage": "配送とギフトのオプション"
- },
- "signout_confirmation_dialog.button.cancel": {
- "defaultMessage": "キャンセル"
- },
- "signout_confirmation_dialog.button.sign_out": {
- "defaultMessage": "サインアウト"
- },
- "signout_confirmation_dialog.heading.sign_out": {
- "defaultMessage": "サインアウト"
- },
- "signout_confirmation_dialog.message.sure_to_sign_out": {
- "defaultMessage": "サインアウトしますか?現在のご注文を処理するには、再度サインインする必要があります。"
- },
- "swatch_group.selected.label": {
- "defaultMessage": "{label}: "
- },
- "toggle_card.action.edit": {
- "defaultMessage": "編集"
- },
- "update_password_fields.button.forgot_password": {
- "defaultMessage": "パスワードを忘れましたか?"
- },
- "use_address_fields.error.please_enter_first_name": {
- "defaultMessage": "名を入力してください。"
- },
- "use_address_fields.error.please_enter_last_name": {
- "defaultMessage": "姓を入力してください。"
- },
- "use_address_fields.error.please_enter_phone_number": {
- "defaultMessage": "電話番号を入力してください。"
- },
- "use_address_fields.error.please_enter_your_postal_or_zip": {
- "defaultMessage": "郵便番号を入力してください。"
- },
- "use_address_fields.error.please_select_your_address": {
- "defaultMessage": "住所を入力してください。"
- },
- "use_address_fields.error.please_select_your_city": {
- "defaultMessage": "市区町村を入力してください。"
- },
- "use_address_fields.error.please_select_your_country": {
- "defaultMessage": "国を選択してください。"
- },
- "use_address_fields.error.please_select_your_state_or_province": {
- "defaultMessage": "州を選択してください。"
- },
- "use_address_fields.error.required": {
- "defaultMessage": "必須"
- },
- "use_address_fields.error.state_code_invalid": {
- "defaultMessage": "2 文字の州コードを入力してください。"
- },
- "use_address_fields.label.address": {
- "defaultMessage": "住所"
- },
- "use_address_fields.label.address_form": {
- "defaultMessage": "住所フォーム"
- },
- "use_address_fields.label.city": {
- "defaultMessage": "市区町村"
- },
- "use_address_fields.label.country": {
- "defaultMessage": "国"
- },
- "use_address_fields.label.first_name": {
- "defaultMessage": "名"
- },
- "use_address_fields.label.last_name": {
- "defaultMessage": "姓"
- },
- "use_address_fields.label.phone": {
- "defaultMessage": "電話"
- },
- "use_address_fields.label.postal_code": {
- "defaultMessage": "郵便番号"
- },
- "use_address_fields.label.preferred": {
- "defaultMessage": "デフォルトとして設定"
- },
- "use_address_fields.label.province": {
- "defaultMessage": "州"
- },
- "use_address_fields.label.state": {
- "defaultMessage": "州"
- },
- "use_address_fields.label.zipCode": {
- "defaultMessage": "郵便番号"
- },
- "use_credit_card_fields.error.required": {
- "defaultMessage": "必須"
- },
- "use_credit_card_fields.error.required_card_number": {
- "defaultMessage": "カード番号を入力してください"
- },
- "use_credit_card_fields.error.required_expiry": {
- "defaultMessage": "有効期限を入力してください。"
- },
- "use_credit_card_fields.error.required_name": {
- "defaultMessage": "カードに記載されている名前を入力してください。"
- },
- "use_credit_card_fields.error.required_security_code": {
- "defaultMessage": "セキュリティコードを入力してください。"
- },
- "use_credit_card_fields.error.valid_card_number": {
- "defaultMessage": "有効なカード番号を入力してください。"
- },
- "use_credit_card_fields.error.valid_date": {
- "defaultMessage": "有効な日付を入力してください。"
- },
- "use_credit_card_fields.error.valid_name": {
- "defaultMessage": "有効な名前を入力してください。"
- },
- "use_credit_card_fields.error.valid_security_code": {
- "defaultMessage": "有効なセキュリティコードを入力してください。"
- },
- "use_credit_card_fields.label.card_number": {
- "defaultMessage": "カード番号"
- },
- "use_credit_card_fields.label.card_type": {
- "defaultMessage": "カードタイプ"
- },
- "use_credit_card_fields.label.expiry": {
- "defaultMessage": "有効期限"
- },
- "use_credit_card_fields.label.name": {
- "defaultMessage": "カードに記載されている名前"
- },
- "use_credit_card_fields.label.security_code": {
- "defaultMessage": "セキュリティコード"
- },
- "use_login_fields.error.required_email": {
- "defaultMessage": "Eメールアドレスを入力してください。"
- },
- "use_login_fields.error.required_password": {
- "defaultMessage": "パスワードを入力してください。"
- },
- "use_login_fields.label.email": {
- "defaultMessage": "Eメール"
- },
- "use_login_fields.label.password": {
- "defaultMessage": "パスワード"
- },
- "use_product.message.inventory_remaining": {
- "defaultMessage": "残り {stockLevel} 点!"
- },
- "use_product.message.out_of_stock": {
- "defaultMessage": "在庫切れ"
- },
- "use_profile_fields.error.required_email": {
- "defaultMessage": "有効な Eメールアドレスを入力してください。"
- },
- "use_profile_fields.error.required_first_name": {
- "defaultMessage": "名を入力してください。"
- },
- "use_profile_fields.error.required_last_name": {
- "defaultMessage": "姓を入力してください。"
- },
- "use_profile_fields.error.required_phone": {
- "defaultMessage": "電話番号を入力してください。"
- },
- "use_profile_fields.label.email": {
- "defaultMessage": "Eメール"
- },
- "use_profile_fields.label.first_name": {
- "defaultMessage": "名"
- },
- "use_profile_fields.label.last_name": {
- "defaultMessage": "姓"
- },
- "use_profile_fields.label.phone": {
- "defaultMessage": "電話番号"
- },
- "use_promo_code_fields.error.required_promo_code": {
- "defaultMessage": "有効なプロモーションコードを入力してください。"
- },
- "use_promo_code_fields.label.promo_code": {
- "defaultMessage": "プロモーションコード"
- },
- "use_promocode.error.check_the_code": {
- "defaultMessage": "コードを確認してもう一度お試しください。コードはすでに使用済みか、または有効期限が切れている可能性があります。"
- },
- "use_promocode.info.promo_applied": {
- "defaultMessage": "プロモーションが適用されました"
- },
- "use_promocode.info.promo_removed": {
- "defaultMessage": "プロモーションが削除されました"
- },
- "use_registration_fields.error.contain_number": {
- "defaultMessage": "パスワードには、少なくとも 1 個の数字を含める必要があります。"
- },
- "use_registration_fields.error.lowercase_letter": {
- "defaultMessage": "パスワードには、少なくとも 1 個の小文字を含める必要があります。"
- },
- "use_registration_fields.error.minimum_characters": {
- "defaultMessage": "パスワードには、少なくとも 8 文字を含める必要があります。"
- },
- "use_registration_fields.error.required_email": {
- "defaultMessage": "有効な Eメールアドレスを入力してください。"
- },
- "use_registration_fields.error.required_first_name": {
- "defaultMessage": "名を入力してください。"
- },
- "use_registration_fields.error.required_last_name": {
- "defaultMessage": "姓を入力してください。"
- },
- "use_registration_fields.error.required_password": {
- "defaultMessage": "パスワードを作成してください。"
- },
- "use_registration_fields.error.special_character": {
- "defaultMessage": "パスワードには、少なくとも 1 個の特殊文字を含める必要があります。"
- },
- "use_registration_fields.error.uppercase_letter": {
- "defaultMessage": "パスワードには、少なくとも 1 個の大文字を含める必要があります。"
- },
- "use_registration_fields.label.email": {
- "defaultMessage": "Eメール"
- },
- "use_registration_fields.label.first_name": {
- "defaultMessage": "名"
- },
- "use_registration_fields.label.last_name": {
- "defaultMessage": "姓"
- },
- "use_registration_fields.label.password": {
- "defaultMessage": "パスワード"
- },
- "use_registration_fields.label.sign_up_to_emails": {
- "defaultMessage": "Salesforce Eメールにサインアップする (購読はいつでも解除できます)"
- },
- "use_reset_password_fields.error.required_email": {
- "defaultMessage": "有効な Eメールアドレスを入力してください。"
- },
- "use_reset_password_fields.label.email": {
- "defaultMessage": "Eメール"
- },
- "use_update_password_fields.error.contain_number": {
- "defaultMessage": "パスワードには、少なくとも 1 個の数字を含める必要があります。"
- },
- "use_update_password_fields.error.lowercase_letter": {
- "defaultMessage": "パスワードには、少なくとも 1 個の小文字を含める必要があります。"
- },
- "use_update_password_fields.error.minimum_characters": {
- "defaultMessage": "パスワードには、少なくとも 8 文字を含める必要があります。"
- },
- "use_update_password_fields.error.required_new_password": {
- "defaultMessage": "新しいパスワードを入力してください。"
- },
- "use_update_password_fields.error.required_password": {
- "defaultMessage": "パスワードを入力してください。"
- },
- "use_update_password_fields.error.special_character": {
- "defaultMessage": "パスワードには、少なくとも 1 個の特殊文字を含める必要があります。"
- },
- "use_update_password_fields.error.uppercase_letter": {
- "defaultMessage": "パスワードには、少なくとも 1 個の大文字を含める必要があります。"
- },
- "use_update_password_fields.label.current_password": {
- "defaultMessage": "現在のパスワード"
- },
- "use_update_password_fields.label.new_password": {
- "defaultMessage": "新しいパスワード:"
- },
- "wishlist_primary_action.button.add_set_to_cart": {
- "defaultMessage": "セットを買い物カゴに追加"
- },
- "wishlist_primary_action.button.add_to_cart": {
- "defaultMessage": "買い物カゴに追加"
- },
- "wishlist_primary_action.button.view_full_details": {
- "defaultMessage": "すべての情報を表示"
- },
- "wishlist_primary_action.button.view_options": {
- "defaultMessage": "オプションを表示"
- },
- "wishlist_primary_action.info.added_to_cart": {
- "defaultMessage": "{quantity} {quantity, plural, one { 個の商品} other { 個の商品}}が買い物カゴに追加されました"
- },
- "wishlist_secondary_button_group.action.remove": {
- "defaultMessage": "削除"
- },
- "wishlist_secondary_button_group.info.item_removed": {
- "defaultMessage": "ほしい物リストから商品が削除されました"
- },
- "with_registration.info.please_sign_in": {
- "defaultMessage": "先に進むにはサインインしてください!"
- }
-}
diff --git a/packages/template-retail-react-app/translations/ko-KR.json b/packages/template-retail-react-app/translations/ko-KR.json
deleted file mode 100644
index 65edc6a05d..0000000000
--- a/packages/template-retail-react-app/translations/ko-KR.json
+++ /dev/null
@@ -1,1517 +0,0 @@
-{
- "account.accordion.button.my_account": {
- "defaultMessage": "내 계정"
- },
- "account.heading.my_account": {
- "defaultMessage": "내 계정"
- },
- "account.logout_button.button.log_out": {
- "defaultMessage": "로그아웃"
- },
- "account_addresses.badge.default": {
- "defaultMessage": "기본값"
- },
- "account_addresses.button.add_address": {
- "defaultMessage": "주소 추가"
- },
- "account_addresses.info.address_removed": {
- "defaultMessage": "주소가 제거됨"
- },
- "account_addresses.info.address_updated": {
- "defaultMessage": "주소가 업데이트됨"
- },
- "account_addresses.info.new_address_saved": {
- "defaultMessage": "새 주소가 저장됨"
- },
- "account_addresses.page_action_placeholder.button.add_address": {
- "defaultMessage": "주소 추가"
- },
- "account_addresses.page_action_placeholder.heading.no_saved_addresses": {
- "defaultMessage": "저장된 주소 없음"
- },
- "account_addresses.page_action_placeholder.message.add_new_address": {
- "defaultMessage": "빠른 체크아웃을 위해 새 주소를 추가합니다."
- },
- "account_addresses.title.addresses": {
- "defaultMessage": "주소"
- },
- "account_detail.title.account_details": {
- "defaultMessage": "계정 세부 정보"
- },
- "account_order_detail.heading.billing_address": {
- "defaultMessage": "청구 주소"
- },
- "account_order_detail.heading.num_of_items": {
- "defaultMessage": "{count}개 항목"
- },
- "account_order_detail.heading.payment_method": {
- "defaultMessage": "결제 방법"
- },
- "account_order_detail.heading.shipping_address": {
- "defaultMessage": "배송 주소"
- },
- "account_order_detail.heading.shipping_method": {
- "defaultMessage": "배송 방법"
- },
- "account_order_detail.label.order_number": {
- "defaultMessage": "주문 번호: {orderNumber}"
- },
- "account_order_detail.label.ordered_date": {
- "defaultMessage": "주문 날짜: {date}"
- },
- "account_order_detail.label.pending_tracking_number": {
- "defaultMessage": "대기 중"
- },
- "account_order_detail.label.tracking_number": {
- "defaultMessage": "추적 번호"
- },
- "account_order_detail.link.back_to_history": {
- "defaultMessage": "주문 내역으로 돌아가기"
- },
- "account_order_detail.shipping_status.not_shipped": {
- "defaultMessage": "출고되지 않음"
- },
- "account_order_detail.shipping_status.part_shipped": {
- "defaultMessage": "부분 출고됨"
- },
- "account_order_detail.shipping_status.shipped": {
- "defaultMessage": "출고됨"
- },
- "account_order_detail.title.order_details": {
- "defaultMessage": "주문 세부 정보"
- },
- "account_order_history.button.continue_shopping": {
- "defaultMessage": "계속 쇼핑하기"
- },
- "account_order_history.description.once_you_place_order": {
- "defaultMessage": "주문을 하면 여기에 세부 정보가 표시됩니다."
- },
- "account_order_history.heading.no_order_yet": {
- "defaultMessage": "아직 주문한 내역이 없습니다."
- },
- "account_order_history.label.num_of_items": {
- "defaultMessage": "{count}개 항목",
- "description": "Number of items in order"
- },
- "account_order_history.label.order_number": {
- "defaultMessage": "주문 번호: {orderNumber}"
- },
- "account_order_history.label.ordered_date": {
- "defaultMessage": "주문 날짜: {date}"
- },
- "account_order_history.label.shipped_to": {
- "defaultMessage": "받는 사람: {name}"
- },
- "account_order_history.link.view_details": {
- "defaultMessage": "세부 정보 보기"
- },
- "account_order_history.title.order_history": {
- "defaultMessage": "주문 내역"
- },
- "account_wishlist.button.continue_shopping": {
- "defaultMessage": "계속 쇼핑하기"
- },
- "account_wishlist.description.continue_shopping": {
- "defaultMessage": "계속 쇼핑하면서 위시리스트에 항목을 추가합니다."
- },
- "account_wishlist.heading.no_wishlist": {
- "defaultMessage": "위시리스트 항목 없음"
- },
- "account_wishlist.title.wishlist": {
- "defaultMessage": "위시리스트"
- },
- "action_card.action.edit": {
- "defaultMessage": "편집"
- },
- "action_card.action.remove": {
- "defaultMessage": "제거"
- },
- "add_to_cart_modal.info.added_to_cart": {
- "defaultMessage": "{quantity} {quantity, plural, one {개 항목} other {개 항목}}이 카트에 추가됨"
- },
- "add_to_cart_modal.label.cart_subtotal": {
- "defaultMessage": "카트 소계({itemAccumulatedCount}개 항목)"
- },
- "add_to_cart_modal.label.quantity": {
- "defaultMessage": "수량"
- },
- "add_to_cart_modal.link.checkout": {
- "defaultMessage": "체크아웃 진행"
- },
- "add_to_cart_modal.link.view_cart": {
- "defaultMessage": "카트 보기"
- },
- "add_to_cart_modal.recommended_products.title.might_also_like": {
- "defaultMessage": "추천 상품"
- },
- "auth_modal.button.close.assistive_msg": {
- "defaultMessage": "로그인 양식 닫기"
- },
- "auth_modal.description.now_signed_in": {
- "defaultMessage": "이제 로그인되었습니다."
- },
- "auth_modal.error.incorrect_email_or_password": {
- "defaultMessage": "이메일 또는 암호가 잘못되었습니다. 다시 시도하십시오."
- },
- "auth_modal.info.welcome_user": {
- "defaultMessage": "{name} 님 안녕하세요."
- },
- "auth_modal.password_reset_success.button.back_to_sign_in": {
- "defaultMessage": "로그인 페이지로 돌아가기"
- },
- "auth_modal.password_reset_success.info.will_email_shortly": {
- "defaultMessage": "{email} (으)로 암호 재설정 링크가 포함된 이메일이 곧 발송됩니다."
- },
- "auth_modal.password_reset_success.title.password_reset": {
- "defaultMessage": "암호 재설정"
- },
- "carousel.button.scroll_left.assistive_msg": {
- "defaultMessage": "회전식 보기 왼쪽으로 스크롤"
- },
- "carousel.button.scroll_right.assistive_msg": {
- "defaultMessage": "회전식 보기 오른쪽으로 스크롤"
- },
- "cart.info.removed_from_cart": {
- "defaultMessage": "항목이 카트에서 제거됨"
- },
- "cart.recommended_products.title.may_also_like": {
- "defaultMessage": "추천 상품"
- },
- "cart.recommended_products.title.recently_viewed": {
- "defaultMessage": "최근에 봄"
- },
- "cart_cta.link.checkout": {
- "defaultMessage": "체크아웃 진행"
- },
- "cart_secondary_button_group.action.added_to_wishlist": {
- "defaultMessage": "위시리스트에 추가"
- },
- "cart_secondary_button_group.action.edit": {
- "defaultMessage": "편집"
- },
- "cart_secondary_button_group.action.remove": {
- "defaultMessage": "제거"
- },
- "cart_secondary_button_group.label.this_is_gift": {
- "defaultMessage": "선물로 구매"
- },
- "cart_skeleton.heading.order_summary": {
- "defaultMessage": "주문 요약"
- },
- "cart_skeleton.title.cart": {
- "defaultMessage": "카트"
- },
- "cart_title.title.cart_num_of_items": {
- "defaultMessage": "카트({itemCount, plural, =0 {0개 항목} one {#개 항목} other {#개 항목}})"
- },
- "cc_radio_group.action.remove": {
- "defaultMessage": "제거"
- },
- "cc_radio_group.button.add_new_card": {
- "defaultMessage": "새 카드 추가"
- },
- "checkout.button.place_order": {
- "defaultMessage": "주문하기"
- },
- "checkout.message.generic_error": {
- "defaultMessage": "체크아웃하는 중에 예상치 못한 오류가 발생했습니다. "
- },
- "checkout_confirmation.button.create_account": {
- "defaultMessage": "계정 생성"
- },
- "checkout_confirmation.heading.billing_address": {
- "defaultMessage": "청구 주소"
- },
- "checkout_confirmation.heading.create_account": {
- "defaultMessage": "빠른 체크아웃을 위해 계정을 만듭니다."
- },
- "checkout_confirmation.heading.credit_card": {
- "defaultMessage": "신용카드"
- },
- "checkout_confirmation.heading.delivery_details": {
- "defaultMessage": "배송 세부 정보"
- },
- "checkout_confirmation.heading.order_summary": {
- "defaultMessage": "주문 요약"
- },
- "checkout_confirmation.heading.payment_details": {
- "defaultMessage": "결제 세부 정보"
- },
- "checkout_confirmation.heading.shipping_address": {
- "defaultMessage": "배송 주소"
- },
- "checkout_confirmation.heading.shipping_method": {
- "defaultMessage": "배송 방법"
- },
- "checkout_confirmation.heading.thank_you_for_order": {
- "defaultMessage": "주문해 주셔서 감사합니다."
- },
- "checkout_confirmation.label.free": {
- "defaultMessage": "무료"
- },
- "checkout_confirmation.label.order_number": {
- "defaultMessage": "주문 번호"
- },
- "checkout_confirmation.label.order_total": {
- "defaultMessage": "주문 합계"
- },
- "checkout_confirmation.label.promo_applied": {
- "defaultMessage": "프로모션이 적용됨"
- },
- "checkout_confirmation.label.shipping": {
- "defaultMessage": "배송"
- },
- "checkout_confirmation.label.subtotal": {
- "defaultMessage": "소계"
- },
- "checkout_confirmation.label.tax": {
- "defaultMessage": "세금"
- },
- "checkout_confirmation.link.continue_shopping": {
- "defaultMessage": "계속 쇼핑하기"
- },
- "checkout_confirmation.link.login": {
- "defaultMessage": "여기서 로그인하십시오."
- },
- "checkout_confirmation.message.already_has_account": {
- "defaultMessage": "이 이메일을 사용한 계정이 이미 있습니다."
- },
- "checkout_confirmation.message.num_of_items_in_order": {
- "defaultMessage": "{itemCount, plural, =0 {0개 항목} one {#개 항목} other {#개 항목}}",
- "description": "# item(s) in order"
- },
- "checkout_confirmation.message.will_email_shortly": {
- "defaultMessage": "{email} (으)로 확인 번호와 영수증이 포함된 이메일을 곧 보내드리겠습니다."
- },
- "checkout_footer.link.privacy_policy": {
- "defaultMessage": "개인정보보호 정책"
- },
- "checkout_footer.link.returns_exchanges": {
- "defaultMessage": "반품 및 교환"
- },
- "checkout_footer.link.shipping": {
- "defaultMessage": "배송"
- },
- "checkout_footer.link.site_map": {
- "defaultMessage": "사이트 맵"
- },
- "checkout_footer.link.terms_conditions": {
- "defaultMessage": "이용 약관"
- },
- "checkout_footer.message.copyright": {
- "defaultMessage": "Salesforce or its affiliates. All rights reserved. 데모용 매장입니다. 주문이 처리되지 않습니다."
- },
- "checkout_header.link.assistive_msg.cart": {
- "defaultMessage": "카트로 돌아가기, 품목 수: {numItems}"
- },
- "checkout_header.link.cart": {
- "defaultMessage": "카트로 돌아가기"
- },
- "checkout_payment.action.remove": {
- "defaultMessage": "제거"
- },
- "checkout_payment.button.review_order": {
- "defaultMessage": "주문 검토"
- },
- "checkout_payment.heading.billing_address": {
- "defaultMessage": "청구 주소"
- },
- "checkout_payment.heading.credit_card": {
- "defaultMessage": "신용카드"
- },
- "checkout_payment.label.same_as_shipping": {
- "defaultMessage": "배송 주소와 동일"
- },
- "checkout_payment.title.payment": {
- "defaultMessage": "결제"
- },
- "colorRefinements.label.hitCount": {
- "defaultMessage": "{colorLabel}({colorHitCount})"
- },
- "confirmation_modal.default.action.no": {
- "defaultMessage": "아니요"
- },
- "confirmation_modal.default.action.yes": {
- "defaultMessage": "예"
- },
- "confirmation_modal.default.message.you_want_to_continue": {
- "defaultMessage": "계속하시겠습니까?"
- },
- "confirmation_modal.default.title.confirm_action": {
- "defaultMessage": "작업 확인"
- },
- "confirmation_modal.remove_cart_item.action.no": {
- "defaultMessage": "아니요. 항목을 그대로 둡니다."
- },
- "confirmation_modal.remove_cart_item.action.remove": {
- "defaultMessage": "제거"
- },
- "confirmation_modal.remove_cart_item.action.yes": {
- "defaultMessage": "예. 항목을 제거합니다."
- },
- "confirmation_modal.remove_cart_item.message.need_to_remove_due_to_unavailability": {
- "defaultMessage": "더 이상 온라인으로 구매할 수 없는 일부 품목이 카트에서 제거됩니다."
- },
- "confirmation_modal.remove_cart_item.message.sure_to_remove": {
- "defaultMessage": "이 항목을 카트에서 제거하시겠습니까?"
- },
- "confirmation_modal.remove_cart_item.title.confirm_remove": {
- "defaultMessage": "항목 제거 확인"
- },
- "confirmation_modal.remove_cart_item.title.items_unavailable": {
- "defaultMessage": "품목 구매 불가"
- },
- "confirmation_modal.remove_wishlist_item.action.no": {
- "defaultMessage": "아니요. 항목을 그대로 둡니다."
- },
- "confirmation_modal.remove_wishlist_item.action.yes": {
- "defaultMessage": "예. 항목을 제거합니다."
- },
- "confirmation_modal.remove_wishlist_item.message.sure_to_remove": {
- "defaultMessage": "이 항목을 위시리스트에서 제거하시겠습니까?"
- },
- "confirmation_modal.remove_wishlist_item.title.confirm_remove": {
- "defaultMessage": "항목 제거 확인"
- },
- "contact_info.action.sign_out": {
- "defaultMessage": "로그아웃"
- },
- "contact_info.button.already_have_account": {
- "defaultMessage": "계정이 이미 있습니까? 로그인"
- },
- "contact_info.button.checkout_as_guest": {
- "defaultMessage": "비회원으로 체크아웃"
- },
- "contact_info.button.login": {
- "defaultMessage": "로그인"
- },
- "contact_info.error.incorrect_username_or_password": {
- "defaultMessage": "사용자 이름 또는 암호가 올바르지 않습니다. 다시 시도하십시오."
- },
- "contact_info.link.forgot_password": {
- "defaultMessage": "암호가 기억나지 않습니까?"
- },
- "contact_info.title.contact_info": {
- "defaultMessage": "연락처 정보"
- },
- "credit_card_fields.tool_tip.security_code": {
- "defaultMessage": "이 3자리 코드는 카드의 뒷면에서 확인할 수 있습니다.",
- "description": "Generic credit card security code help text"
- },
- "credit_card_fields.tool_tip.security_code.american_express": {
- "defaultMessage": "이 4자리 코드는 카드의 전면에서 확인할 수 있습니다.",
- "description": "American Express security code help text"
- },
- "credit_card_fields.tool_tip.security_code_aria_label": {
- "defaultMessage": "보안 코드 정보"
- },
- "drawer_menu.button.account_details": {
- "defaultMessage": "계정 세부 정보"
- },
- "drawer_menu.button.addresses": {
- "defaultMessage": "주소"
- },
- "drawer_menu.button.log_out": {
- "defaultMessage": "로그아웃"
- },
- "drawer_menu.button.my_account": {
- "defaultMessage": "내 계정"
- },
- "drawer_menu.button.order_history": {
- "defaultMessage": "주문 내역"
- },
- "drawer_menu.link.about_us": {
- "defaultMessage": "회사 정보"
- },
- "drawer_menu.link.customer_support": {
- "defaultMessage": "고객 지원"
- },
- "drawer_menu.link.customer_support.contact_us": {
- "defaultMessage": "문의"
- },
- "drawer_menu.link.customer_support.shipping_and_returns": {
- "defaultMessage": "배송 및 반품"
- },
- "drawer_menu.link.our_company": {
- "defaultMessage": "회사"
- },
- "drawer_menu.link.privacy_and_security": {
- "defaultMessage": "개인정보보호 및 보안"
- },
- "drawer_menu.link.privacy_policy": {
- "defaultMessage": "개인정보보호 정책"
- },
- "drawer_menu.link.shop_all": {
- "defaultMessage": "모두 구매"
- },
- "drawer_menu.link.sign_in": {
- "defaultMessage": "로그인"
- },
- "drawer_menu.link.site_map": {
- "defaultMessage": "사이트 맵"
- },
- "drawer_menu.link.store_locator": {
- "defaultMessage": "매장 찾기"
- },
- "drawer_menu.link.terms_and_conditions": {
- "defaultMessage": "이용 약관"
- },
- "empty_cart.description.empty_cart": {
- "defaultMessage": "카트가 비어 있습니다."
- },
- "empty_cart.link.continue_shopping": {
- "defaultMessage": "계속 쇼핑하기"
- },
- "empty_cart.link.sign_in": {
- "defaultMessage": "로그인"
- },
- "empty_cart.message.continue_shopping": {
- "defaultMessage": "계속 쇼핑하면서 카트에 항목을 추가합니다."
- },
- "empty_cart.message.sign_in_or_continue_shopping": {
- "defaultMessage": "로그인하여 저장된 항목을 검색하거나 쇼핑을 계속하십시오."
- },
- "empty_search_results.info.cant_find_anything_for_category": {
- "defaultMessage": "{category}에 해당하는 항목을 찾을 수 없습니다. 제품을 검색하거나 {link}을(를) 클릭해 보십시오."
- },
- "empty_search_results.info.cant_find_anything_for_query": {
- "defaultMessage": "'{searchQuery}'에 해당하는 항목을 찾을 수 없습니다."
- },
- "empty_search_results.info.double_check_spelling": {
- "defaultMessage": "철자를 다시 확인하고 다시 시도하거나 {link}을(를) 클릭해 보십시오."
- },
- "empty_search_results.link.contact_us": {
- "defaultMessage": "문의"
- },
- "empty_search_results.recommended_products.title.most_viewed": {
- "defaultMessage": "가장 많이 본 항목"
- },
- "empty_search_results.recommended_products.title.top_sellers": {
- "defaultMessage": "탑셀러"
- },
- "field.password.assistive_msg.hide_password": {
- "defaultMessage": "암호 숨기기"
- },
- "field.password.assistive_msg.show_password": {
- "defaultMessage": "암호 표시"
- },
- "footer.column.account": {
- "defaultMessage": "계정"
- },
- "footer.column.customer_support": {
- "defaultMessage": "고객 지원"
- },
- "footer.column.our_company": {
- "defaultMessage": "회사"
- },
- "footer.link.about_us": {
- "defaultMessage": "회사 정보"
- },
- "footer.link.contact_us": {
- "defaultMessage": "문의"
- },
- "footer.link.order_status": {
- "defaultMessage": "주문 상태"
- },
- "footer.link.privacy_policy": {
- "defaultMessage": "개인정보보호 정책"
- },
- "footer.link.shipping": {
- "defaultMessage": "배송"
- },
- "footer.link.signin_create_account": {
- "defaultMessage": "로그인 또는 계정 생성"
- },
- "footer.link.site_map": {
- "defaultMessage": "사이트 맵"
- },
- "footer.link.store_locator": {
- "defaultMessage": "매장 찾기"
- },
- "footer.link.terms_conditions": {
- "defaultMessage": "이용 약관"
- },
- "footer.message.copyright": {
- "defaultMessage": "Salesforce or its affiliates. All rights reserved. 데모용 매장입니다. 주문이 처리되지 않습니다."
- },
- "footer.subscribe.button.sign_up": {
- "defaultMessage": "가입하기"
- },
- "footer.subscribe.description.sign_up": {
- "defaultMessage": "특별한 구매 기회를 놓치지 않으려면 가입하세요."
- },
- "footer.subscribe.heading.first_to_know": {
- "defaultMessage": "최신 정보를 누구보다 빨리 받아보세요."
- },
- "form_action_buttons.button.cancel": {
- "defaultMessage": "취소"
- },
- "form_action_buttons.button.save": {
- "defaultMessage": "저장"
- },
- "global.account.link.account_details": {
- "defaultMessage": "계정 세부 정보"
- },
- "global.account.link.addresses": {
- "defaultMessage": "주소"
- },
- "global.account.link.order_history": {
- "defaultMessage": "주문 내역"
- },
- "global.account.link.wishlist": {
- "defaultMessage": "위시리스트"
- },
- "global.error.something_went_wrong": {
- "defaultMessage": "문제가 발생했습니다. 다시 시도하십시오."
- },
- "global.info.added_to_wishlist": {
- "defaultMessage": "{quantity} {quantity, plural, one {개 항목} other {개 항목}}이 위시리스트에 추가됨"
- },
- "global.info.already_in_wishlist": {
- "defaultMessage": "이미 위시리스트에 추가한 품목"
- },
- "global.info.removed_from_wishlist": {
- "defaultMessage": "항목이 위시리스트에서 제거됨"
- },
- "global.link.added_to_wishlist.view_wishlist": {
- "defaultMessage": "보기"
- },
- "header.button.assistive_msg.logo": {
- "defaultMessage": "로고"
- },
- "header.button.assistive_msg.menu": {
- "defaultMessage": "메뉴"
- },
- "header.button.assistive_msg.my_account": {
- "defaultMessage": "내 계정"
- },
- "header.button.assistive_msg.my_account_menu": {
- "defaultMessage": "계정 메뉴 열기"
- },
- "header.button.assistive_msg.my_cart_with_num_items": {
- "defaultMessage": "내 카트, 품목 수: {numItems}"
- },
- "header.button.assistive_msg.wishlist": {
- "defaultMessage": "위시리스트"
- },
- "header.field.placeholder.search_for_products": {
- "defaultMessage": "제품 검색..."
- },
- "header.popover.action.log_out": {
- "defaultMessage": "로그아웃"
- },
- "header.popover.title.my_account": {
- "defaultMessage": "내 계정"
- },
- "home.description.features": {
- "defaultMessage": "향상된 기능을 추가하는 데 집중할 수 있도록 기본 기능을 제공합니다."
- },
- "home.description.here_to_help": {
- "defaultMessage": "지원 담당자에게 문의하세요."
- },
- "home.description.here_to_help_line_2": {
- "defaultMessage": "올바른 위치로 안내해 드립니다."
- },
- "home.description.shop_products": {
- "defaultMessage": "이 섹션에는 카탈로그의 컨텐츠가 포함되어 있습니다. 대체하는 방법은 {docLink}에서 확인하세요.",
- "description": "{docLink} is a html button that links the user to https://sfdc.co/business-manager-manage-catalogs"
- },
- "home.features.description.cart_checkout": {
- "defaultMessage": "구매자의 카트 및 체크아웃 경험에 대한 이커머스 모범 사례입니다."
- },
- "home.features.description.components": {
- "defaultMessage": "이용이 간편한 모듈식 React 구성요소 라이브러리인 Chakra UI를 사용하여 구축되었습니다."
- },
- "home.features.description.einstein_recommendations": {
- "defaultMessage": "권장 제품을 통해 모든 구매자에게 다른 추천 제품이나 오퍼를 제공합니다."
- },
- "home.features.description.my_account": {
- "defaultMessage": "구매자가 프로필, 주소, 결제, 주문 등의 계정 정보를 관리할 수 있습니다."
- },
- "home.features.description.shopper_login": {
- "defaultMessage": "구매자가 보다 개인화된 쇼핑 경험을 통해 편리하게 로그인할 수 있습니다."
- },
- "home.features.description.wishlist": {
- "defaultMessage": "등록된 구매자가 나중에 구매할 제품 항목을 위시리스트에 추가할 수 있습니다."
- },
- "home.features.heading.cart_checkout": {
- "defaultMessage": "카트 및 체크아웃"
- },
- "home.features.heading.components": {
- "defaultMessage": "구성요소 및 디자인 키트"
- },
- "home.features.heading.einstein_recommendations": {
- "defaultMessage": "Einstein 제품 추천"
- },
- "home.features.heading.my_account": {
- "defaultMessage": "내 계정"
- },
- "home.features.heading.shopper_login": {
- "defaultMessage": "Shopper Login and API Access Service(SLAS)"
- },
- "home.features.heading.wishlist": {
- "defaultMessage": "위시리스트"
- },
- "home.heading.features": {
- "defaultMessage": "기능"
- },
- "home.heading.here_to_help": {
- "defaultMessage": "도움 받기"
- },
- "home.heading.shop_products": {
- "defaultMessage": "제품 쇼핑"
- },
- "home.hero_features.link.design_kit": {
- "defaultMessage": "Figma PWA Design Kit를 사용하여 생성"
- },
- "home.hero_features.link.on_github": {
- "defaultMessage": "Github에서 다운로드"
- },
- "home.hero_features.link.on_managed_runtime": {
- "defaultMessage": "Managed Runtime에서 배포"
- },
- "home.link.contact_us": {
- "defaultMessage": "문의"
- },
- "home.link.get_started": {
- "defaultMessage": "시작하기"
- },
- "home.link.read_docs": {
- "defaultMessage": "문서 읽기"
- },
- "home.title.react_starter_store": {
- "defaultMessage": "소매점용 React PWA Starter Store"
- },
- "icons.assistive_msg.lock": {
- "defaultMessage": "보안"
- },
- "item_attributes.label.promotions": {
- "defaultMessage": "프로모션"
- },
- "item_attributes.label.quantity": {
- "defaultMessage": "수량: {quantity}"
- },
- "item_image.label.sale": {
- "defaultMessage": "판매",
- "description": "A sale badge placed on top of a product image"
- },
- "item_image.label.unavailable": {
- "defaultMessage": "사용 불가",
- "description": "A unavailable badge placed on top of a product image"
- },
- "item_price.label.starting_at": {
- "defaultMessage": "시작가"
- },
- "lCPCxk": {
- "defaultMessage": "위에서 옵션을 모두 선택하세요."
- },
- "list_menu.nav.assistive_msg": {
- "defaultMessage": "기본 탐색 메뉴"
- },
- "locale_text.message.ar-SA": {
- "defaultMessage": "아랍어(사우디아라비아)"
- },
- "locale_text.message.bn-BD": {
- "defaultMessage": "벵골어(방글라데시)"
- },
- "locale_text.message.bn-IN": {
- "defaultMessage": "벵골어(인도)"
- },
- "locale_text.message.cs-CZ": {
- "defaultMessage": "체코어(체코)"
- },
- "locale_text.message.da-DK": {
- "defaultMessage": "덴마크어(덴마크)"
- },
- "locale_text.message.de-AT": {
- "defaultMessage": "독일어(오스트리아)"
- },
- "locale_text.message.de-CH": {
- "defaultMessage": "독일어(스위스)"
- },
- "locale_text.message.de-DE": {
- "defaultMessage": "독일어(독일)"
- },
- "locale_text.message.el-GR": {
- "defaultMessage": "그리스어(그리스)"
- },
- "locale_text.message.en-AU": {
- "defaultMessage": "영어(오스트레일리아)"
- },
- "locale_text.message.en-CA": {
- "defaultMessage": "영어(캐나다)"
- },
- "locale_text.message.en-GB": {
- "defaultMessage": "영어(영국)"
- },
- "locale_text.message.en-IE": {
- "defaultMessage": "영어(아일랜드)"
- },
- "locale_text.message.en-IN": {
- "defaultMessage": "영어(인도)"
- },
- "locale_text.message.en-NZ": {
- "defaultMessage": "영어(뉴질랜드)"
- },
- "locale_text.message.en-US": {
- "defaultMessage": "영어(미국)"
- },
- "locale_text.message.en-ZA": {
- "defaultMessage": "영어(남아프리카공화국)"
- },
- "locale_text.message.es-AR": {
- "defaultMessage": "스페인어(아르헨티나)"
- },
- "locale_text.message.es-CL": {
- "defaultMessage": "스페인어(칠레)"
- },
- "locale_text.message.es-CO": {
- "defaultMessage": "스페인어(콜롬비아)"
- },
- "locale_text.message.es-ES": {
- "defaultMessage": "스페인어(스페인)"
- },
- "locale_text.message.es-MX": {
- "defaultMessage": "스페인어(멕시코)"
- },
- "locale_text.message.es-US": {
- "defaultMessage": "스페인어(미국)"
- },
- "locale_text.message.fi-FI": {
- "defaultMessage": "핀란드어(핀란드)"
- },
- "locale_text.message.fr-BE": {
- "defaultMessage": "프랑스어(벨기에)"
- },
- "locale_text.message.fr-CA": {
- "defaultMessage": "프랑스어(캐나다)"
- },
- "locale_text.message.fr-CH": {
- "defaultMessage": "프랑스어(스위스)"
- },
- "locale_text.message.fr-FR": {
- "defaultMessage": "프랑스어(프랑스)"
- },
- "locale_text.message.he-IL": {
- "defaultMessage": "히브리어(이스라엘)"
- },
- "locale_text.message.hi-IN": {
- "defaultMessage": "힌디어(인도)"
- },
- "locale_text.message.hu-HU": {
- "defaultMessage": "헝가리어(헝가리)"
- },
- "locale_text.message.id-ID": {
- "defaultMessage": "인도네시아어(인도네시아)"
- },
- "locale_text.message.it-CH": {
- "defaultMessage": "이탈리아어(스위스)"
- },
- "locale_text.message.it-IT": {
- "defaultMessage": "이탈리아어(이탈리아)"
- },
- "locale_text.message.ja-JP": {
- "defaultMessage": "일본어(일본)"
- },
- "locale_text.message.ko-KR": {
- "defaultMessage": "한국어(대한민국)"
- },
- "locale_text.message.nl-BE": {
- "defaultMessage": "네덜란드어(벨기에)"
- },
- "locale_text.message.nl-NL": {
- "defaultMessage": "네덜란드어(네덜란드)"
- },
- "locale_text.message.no-NO": {
- "defaultMessage": "노르웨이어(노르웨이)"
- },
- "locale_text.message.pl-PL": {
- "defaultMessage": "폴란드어(폴란드)"
- },
- "locale_text.message.pt-BR": {
- "defaultMessage": "포르투갈어(브라질)"
- },
- "locale_text.message.pt-PT": {
- "defaultMessage": "포르투갈어(포르투갈)"
- },
- "locale_text.message.ro-RO": {
- "defaultMessage": "루마니아어(루마니아)"
- },
- "locale_text.message.ru-RU": {
- "defaultMessage": "러시아어(러시아)"
- },
- "locale_text.message.sk-SK": {
- "defaultMessage": "슬로바키아어(슬로바키아)"
- },
- "locale_text.message.sv-SE": {
- "defaultMessage": "스웨덴어(스웨덴)"
- },
- "locale_text.message.ta-IN": {
- "defaultMessage": "타밀어(인도)"
- },
- "locale_text.message.ta-LK": {
- "defaultMessage": "타밀어(스리랑카)"
- },
- "locale_text.message.th-TH": {
- "defaultMessage": "태국어(태국)"
- },
- "locale_text.message.tr-TR": {
- "defaultMessage": "터키어(터키)"
- },
- "locale_text.message.zh-CN": {
- "defaultMessage": "중국어(중국)"
- },
- "locale_text.message.zh-HK": {
- "defaultMessage": "중국어(홍콩)"
- },
- "locale_text.message.zh-TW": {
- "defaultMessage": "중국어(타이완)"
- },
- "login_form.action.create_account": {
- "defaultMessage": "계정 생성"
- },
- "login_form.button.sign_in": {
- "defaultMessage": "로그인"
- },
- "login_form.link.forgot_password": {
- "defaultMessage": "암호가 기억나지 않습니까?"
- },
- "login_form.message.dont_have_account": {
- "defaultMessage": "계정이 없습니까?"
- },
- "login_form.message.welcome_back": {
- "defaultMessage": "다시 오신 것을 환영합니다."
- },
- "login_page.error.incorrect_username_or_password": {
- "defaultMessage": "사용자 이름 또는 암호가 올바르지 않습니다. 다시 시도하십시오."
- },
- "offline_banner.description.browsing_offline_mode": {
- "defaultMessage": "현재 오프라인 모드로 검색 중입니다."
- },
- "order_summary.action.remove_promo": {
- "defaultMessage": "제거"
- },
- "order_summary.cart_items.action.num_of_items_in_cart": {
- "defaultMessage": "카트에 {itemCount, plural, =0 {0개 항목} one {#개 항목} other {#개 항목}}이 있음",
- "description": "clicking it would expand/show the items in cart"
- },
- "order_summary.cart_items.link.edit_cart": {
- "defaultMessage": "카트 편집"
- },
- "order_summary.heading.order_summary": {
- "defaultMessage": "주문 요약"
- },
- "order_summary.label.estimated_total": {
- "defaultMessage": "예상 합계"
- },
- "order_summary.label.free": {
- "defaultMessage": "무료"
- },
- "order_summary.label.order_total": {
- "defaultMessage": "주문 합계"
- },
- "order_summary.label.promo_applied": {
- "defaultMessage": "프로모션이 적용됨"
- },
- "order_summary.label.promotions_applied": {
- "defaultMessage": "프로모션이 적용됨"
- },
- "order_summary.label.shipping": {
- "defaultMessage": "배송"
- },
- "order_summary.label.subtotal": {
- "defaultMessage": "소계"
- },
- "order_summary.label.tax": {
- "defaultMessage": "세금"
- },
- "page_not_found.action.go_back": {
- "defaultMessage": "이전 페이지로 돌아가기"
- },
- "page_not_found.link.homepage": {
- "defaultMessage": "홈 페이지로 이동"
- },
- "page_not_found.message.suggestion_to_try": {
- "defaultMessage": "이 주소로 다시 시도해보거나 이전 페이지로 돌아가거나 홈 페이지로 돌아가십시오."
- },
- "page_not_found.title.page_cant_be_found": {
- "defaultMessage": "해당 페이지를 찾을 수 없습니다."
- },
- "pagination.field.num_of_pages": {
- "defaultMessage": "/{numOfPages}"
- },
- "pagination.link.next": {
- "defaultMessage": "다음"
- },
- "pagination.link.next.assistive_msg": {
- "defaultMessage": "다음 페이지"
- },
- "pagination.link.prev": {
- "defaultMessage": "이전"
- },
- "pagination.link.prev.assistive_msg": {
- "defaultMessage": "이전 페이지"
- },
- "password_card.info.password_updated": {
- "defaultMessage": "암호가 업데이트됨"
- },
- "password_card.label.password": {
- "defaultMessage": "암호"
- },
- "password_card.title.password": {
- "defaultMessage": "암호"
- },
- "password_requirements.error.eight_letter_minimum": {
- "defaultMessage": "최소 8자",
- "description": "Password requirement"
- },
- "password_requirements.error.one_lowercase_letter": {
- "defaultMessage": "소문자 1개",
- "description": "Password requirement"
- },
- "password_requirements.error.one_number": {
- "defaultMessage": "숫자 1개",
- "description": "Password requirement"
- },
- "password_requirements.error.one_special_character": {
- "defaultMessage": "특수 문자 1개(예: , S ! % #)",
- "description": "Password requirement"
- },
- "password_requirements.error.one_uppercase_letter": {
- "defaultMessage": "대문자 1개",
- "description": "Password requirement"
- },
- "payment_selection.heading.credit_card": {
- "defaultMessage": "신용카드"
- },
- "payment_selection.tooltip.secure_payment": {
- "defaultMessage": "안전한 SSL 암호화 결제입니다."
- },
- "price_per_item.label.each": {
- "defaultMessage": "개",
- "description": "Abbreviated 'each', follows price per item, like $10/ea"
- },
- "product_detail.accordion.button.product_detail": {
- "defaultMessage": "제품 세부 정보"
- },
- "product_detail.accordion.button.questions": {
- "defaultMessage": "문의"
- },
- "product_detail.accordion.button.reviews": {
- "defaultMessage": "리뷰"
- },
- "product_detail.accordion.button.size_fit": {
- "defaultMessage": "사이즈와 핏"
- },
- "product_detail.accordion.message.coming_soon": {
- "defaultMessage": "제공 예정"
- },
- "product_detail.recommended_products.title.complete_set": {
- "defaultMessage": "세트 완성"
- },
- "product_detail.recommended_products.title.might_also_like": {
- "defaultMessage": "추천 상품"
- },
- "product_detail.recommended_products.title.recently_viewed": {
- "defaultMessage": "최근에 봄"
- },
- "product_item.label.quantity": {
- "defaultMessage": "수량:"
- },
- "product_list.button.filter": {
- "defaultMessage": "필터"
- },
- "product_list.button.sort_by": {
- "defaultMessage": "정렬 기준: {sortOption}"
- },
- "product_list.drawer.title.sort_by": {
- "defaultMessage": "정렬 기준"
- },
- "product_list.modal.button.clear_filters": {
- "defaultMessage": "필터 지우기"
- },
- "product_list.modal.button.view_items": {
- "defaultMessage": "{prroductCount}개 항목 보기"
- },
- "product_list.modal.title.filter": {
- "defaultMessage": "필터"
- },
- "product_list.refinements.button.assistive_msg.add_filter": {
- "defaultMessage": "필터 추가: {label}"
- },
- "product_list.refinements.button.assistive_msg.add_filter_with_hit_count": {
- "defaultMessage": "필터 추가: {label}({hitCount})"
- },
- "product_list.refinements.button.assistive_msg.remove_filter": {
- "defaultMessage": "필터 제거: {label}"
- },
- "product_list.refinements.button.assistive_msg.remove_filter_with_hit_count": {
- "defaultMessage": "필터 제거: {label}({hitCount})"
- },
- "product_list.select.sort_by": {
- "defaultMessage": "정렬 기준: {sortOption}"
- },
- "product_scroller.assistive_msg.scroll_left": {
- "defaultMessage": "제품 왼쪽으로 스크롤"
- },
- "product_scroller.assistive_msg.scroll_right": {
- "defaultMessage": "제품 오른쪽으로 스크롤"
- },
- "product_tile.assistive_msg.add_to_wishlist": {
- "defaultMessage": "위시리스트에 {product} 추가"
- },
- "product_tile.assistive_msg.remove_from_wishlist": {
- "defaultMessage": "위시리스트에서 {product} 제거"
- },
- "product_tile.label.starting_at_price": {
- "defaultMessage": "시작가: {price}"
- },
- "product_view.button.add_set_to_cart": {
- "defaultMessage": "카트에 세트 추가"
- },
- "product_view.button.add_set_to_wishlist": {
- "defaultMessage": "위시리스트에 세트 추가"
- },
- "product_view.button.add_to_cart": {
- "defaultMessage": "카트에 추가"
- },
- "product_view.button.add_to_wishlist": {
- "defaultMessage": "위시리스트에 추가"
- },
- "product_view.button.update": {
- "defaultMessage": "업데이트"
- },
- "product_view.label.assistive_msg.quantity_decrement": {
- "defaultMessage": "수량 줄이기"
- },
- "product_view.label.assistive_msg.quantity_increment": {
- "defaultMessage": "수량 늘리기"
- },
- "product_view.label.quantity": {
- "defaultMessage": "수량"
- },
- "product_view.label.quantity_decrement": {
- "defaultMessage": "−"
- },
- "product_view.label.quantity_increment": {
- "defaultMessage": "+"
- },
- "product_view.label.starting_at_price": {
- "defaultMessage": "시작가"
- },
- "product_view.label.variant_type": {
- "defaultMessage": "{variantType}"
- },
- "product_view.link.full_details": {
- "defaultMessage": "전체 세부 정보 보기"
- },
- "profile_card.info.profile_updated": {
- "defaultMessage": "프로필이 업데이트됨"
- },
- "profile_card.label.email": {
- "defaultMessage": "이메일"
- },
- "profile_card.label.full_name": {
- "defaultMessage": "성명"
- },
- "profile_card.label.phone": {
- "defaultMessage": "전화번호"
- },
- "profile_card.message.not_provided": {
- "defaultMessage": "제공되지 않음"
- },
- "profile_card.title.my_profile": {
- "defaultMessage": "내 프로필"
- },
- "promo_code_fields.button.apply": {
- "defaultMessage": "적용"
- },
- "promo_popover.assistive_msg.info": {
- "defaultMessage": "정보"
- },
- "promo_popover.heading.promo_applied": {
- "defaultMessage": "프로모션이 적용됨"
- },
- "promocode.accordion.button.have_promocode": {
- "defaultMessage": "프로모션 코드가 있습니까?"
- },
- "recent_searches.action.clear_searches": {
- "defaultMessage": "최근 검색 지우기"
- },
- "recent_searches.heading.recent_searches": {
- "defaultMessage": "최근 검색"
- },
- "register_form.action.sign_in": {
- "defaultMessage": "로그인"
- },
- "register_form.button.create_account": {
- "defaultMessage": "계정 생성"
- },
- "register_form.heading.lets_get_started": {
- "defaultMessage": "이제 시작하세요!"
- },
- "register_form.message.agree_to_policy_terms": {
- "defaultMessage": "계정을 만들면 Salesforce 개인정보보호 정책 과 이용 약관 에 동의한 것으로 간주됩니다."
- },
- "register_form.message.already_have_account": {
- "defaultMessage": "계정이 이미 있습니까?"
- },
- "register_form.message.create_an_account": {
- "defaultMessage": "계정을 만들고 최고의 제품, 아이디어, 커뮤니티를 누구보다 빨리 이용해 보세요."
- },
- "reset_password.button.back_to_sign_in": {
- "defaultMessage": "로그인 페이지로 돌아가기"
- },
- "reset_password.info.receive_email_shortly": {
- "defaultMessage": "{email} (으)로 암호 재설정 링크가 포함된 이메일이 곧 발송됩니다."
- },
- "reset_password.title.password_reset": {
- "defaultMessage": "암호 재설정"
- },
- "reset_password_form.action.sign_in": {
- "defaultMessage": "로그인"
- },
- "reset_password_form.button.reset_password": {
- "defaultMessage": "암호 재설정"
- },
- "reset_password_form.message.enter_your_email": {
- "defaultMessage": "암호를 재설정하는 방법에 대한 지침을 안내받으려면 이메일을 입력하십시오."
- },
- "reset_password_form.message.return_to_sign_in": {
- "defaultMessage": "돌아가기",
- "description": "Precedes link to return to sign in"
- },
- "reset_password_form.title.reset_password": {
- "defaultMessage": "암호 재설정"
- },
- "search.action.cancel": {
- "defaultMessage": "취소"
- },
- "selected_refinements.action.assistive_msg.clear_all": {
- "defaultMessage": "필터 모두 지우기"
- },
- "selected_refinements.action.clear_all": {
- "defaultMessage": "모두 지우기"
- },
- "shipping_address.button.continue_to_shipping": {
- "defaultMessage": "배송 방법으로 계속 진행하기"
- },
- "shipping_address.title.shipping_address": {
- "defaultMessage": "배송 주소"
- },
- "shipping_address_edit_form.button.save_and_continue": {
- "defaultMessage": "저장하고 배송 방법으로 계속 진행하기"
- },
- "shipping_address_form.heading.edit_address": {
- "defaultMessage": "주소 편집"
- },
- "shipping_address_form.heading.new_address": {
- "defaultMessage": "새 주소 추가"
- },
- "shipping_address_selection.button.add_address": {
- "defaultMessage": "새 주소 추가"
- },
- "shipping_address_selection.button.submit": {
- "defaultMessage": "제출"
- },
- "shipping_address_selection.title.add_address": {
- "defaultMessage": "새 주소 추가"
- },
- "shipping_address_selection.title.edit_shipping": {
- "defaultMessage": "배송 주소 편집"
- },
- "shipping_options.action.send_as_a_gift": {
- "defaultMessage": "이 제품을 선물로 보내시겠습니까?"
- },
- "shipping_options.button.continue_to_payment": {
- "defaultMessage": "결제로 계속 진행하기"
- },
- "shipping_options.title.shipping_gift_options": {
- "defaultMessage": "배송 및 선물 옵션"
- },
- "signout_confirmation_dialog.button.cancel": {
- "defaultMessage": "취소"
- },
- "signout_confirmation_dialog.button.sign_out": {
- "defaultMessage": "로그아웃"
- },
- "signout_confirmation_dialog.heading.sign_out": {
- "defaultMessage": "로그아웃"
- },
- "signout_confirmation_dialog.message.sure_to_sign_out": {
- "defaultMessage": "로그아웃하시겠습니까? 현재 주문을 처리하려면 다시 로그인해야 합니다."
- },
- "swatch_group.selected.label": {
- "defaultMessage": "{label}:"
- },
- "toggle_card.action.edit": {
- "defaultMessage": "편집"
- },
- "update_password_fields.button.forgot_password": {
- "defaultMessage": "암호가 기억나지 않습니까?"
- },
- "use_address_fields.error.please_enter_first_name": {
- "defaultMessage": "이름을 입력하십시오."
- },
- "use_address_fields.error.please_enter_last_name": {
- "defaultMessage": "성을 입력하십시오."
- },
- "use_address_fields.error.please_enter_phone_number": {
- "defaultMessage": "전화번호를 입력하십시오."
- },
- "use_address_fields.error.please_enter_your_postal_or_zip": {
- "defaultMessage": "우편번호를 입력하십시오."
- },
- "use_address_fields.error.please_select_your_address": {
- "defaultMessage": "주소를 입력하십시오."
- },
- "use_address_fields.error.please_select_your_city": {
- "defaultMessage": "구/군/시를 입력하십시오."
- },
- "use_address_fields.error.please_select_your_country": {
- "defaultMessage": "국가를 선택하십시오."
- },
- "use_address_fields.error.please_select_your_state_or_province": {
- "defaultMessage": "시/도를 선택하십시오."
- },
- "use_address_fields.error.required": {
- "defaultMessage": "필수"
- },
- "use_address_fields.error.state_code_invalid": {
- "defaultMessage": "2자리 시/도를 입력하십시오."
- },
- "use_address_fields.label.address": {
- "defaultMessage": "주소"
- },
- "use_address_fields.label.address_form": {
- "defaultMessage": "주소 양식"
- },
- "use_address_fields.label.city": {
- "defaultMessage": "구/군/시"
- },
- "use_address_fields.label.country": {
- "defaultMessage": "국가"
- },
- "use_address_fields.label.first_name": {
- "defaultMessage": "이름"
- },
- "use_address_fields.label.last_name": {
- "defaultMessage": "성"
- },
- "use_address_fields.label.phone": {
- "defaultMessage": "전화번호"
- },
- "use_address_fields.label.postal_code": {
- "defaultMessage": "우편번호"
- },
- "use_address_fields.label.preferred": {
- "defaultMessage": "기본값으로 설정"
- },
- "use_address_fields.label.province": {
- "defaultMessage": "시/도"
- },
- "use_address_fields.label.state": {
- "defaultMessage": "시/도"
- },
- "use_address_fields.label.zipCode": {
- "defaultMessage": "우편번호"
- },
- "use_credit_card_fields.error.required": {
- "defaultMessage": "필수"
- },
- "use_credit_card_fields.error.required_card_number": {
- "defaultMessage": "카드 번호를 입력하십시오."
- },
- "use_credit_card_fields.error.required_expiry": {
- "defaultMessage": "만료 날짜를 입력하십시오."
- },
- "use_credit_card_fields.error.required_name": {
- "defaultMessage": "카드에 표시된 대로 이름을 입력하십시오."
- },
- "use_credit_card_fields.error.required_security_code": {
- "defaultMessage": "보안 코드를 입력하십시오."
- },
- "use_credit_card_fields.error.valid_card_number": {
- "defaultMessage": "유효한 카드 번호를 입력하십시오."
- },
- "use_credit_card_fields.error.valid_date": {
- "defaultMessage": "유효한 날짜를 입력하십시오."
- },
- "use_credit_card_fields.error.valid_name": {
- "defaultMessage": "올바른 이름을 입력하십시오."
- },
- "use_credit_card_fields.error.valid_security_code": {
- "defaultMessage": "유효한 보안 코드를 입력하십시오."
- },
- "use_credit_card_fields.label.card_number": {
- "defaultMessage": "카드 번호"
- },
- "use_credit_card_fields.label.card_type": {
- "defaultMessage": "카드 유형"
- },
- "use_credit_card_fields.label.expiry": {
- "defaultMessage": "만료 날짜"
- },
- "use_credit_card_fields.label.name": {
- "defaultMessage": "카드에 표시된 이름"
- },
- "use_credit_card_fields.label.security_code": {
- "defaultMessage": "보안 코드"
- },
- "use_login_fields.error.required_email": {
- "defaultMessage": "이메일 주소를 입력하십시오."
- },
- "use_login_fields.error.required_password": {
- "defaultMessage": "암호를 입력하십시오."
- },
- "use_login_fields.label.email": {
- "defaultMessage": "이메일"
- },
- "use_login_fields.label.password": {
- "defaultMessage": "암호"
- },
- "use_product.message.inventory_remaining": {
- "defaultMessage": "품절 임박({stockLevel}개 남음)"
- },
- "use_product.message.out_of_stock": {
- "defaultMessage": "품절"
- },
- "use_profile_fields.error.required_email": {
- "defaultMessage": "유효한 이메일 주소를 입력하십시오."
- },
- "use_profile_fields.error.required_first_name": {
- "defaultMessage": "이름을 입력하십시오."
- },
- "use_profile_fields.error.required_last_name": {
- "defaultMessage": "성을 입력하십시오."
- },
- "use_profile_fields.error.required_phone": {
- "defaultMessage": "전화번호를 입력하십시오."
- },
- "use_profile_fields.label.email": {
- "defaultMessage": "이메일"
- },
- "use_profile_fields.label.first_name": {
- "defaultMessage": "이름"
- },
- "use_profile_fields.label.last_name": {
- "defaultMessage": "성"
- },
- "use_profile_fields.label.phone": {
- "defaultMessage": "전화번호"
- },
- "use_promo_code_fields.error.required_promo_code": {
- "defaultMessage": "유효한 프로모션 코드를 제공하십시오."
- },
- "use_promo_code_fields.label.promo_code": {
- "defaultMessage": "프로모션 코드"
- },
- "use_promocode.error.check_the_code": {
- "defaultMessage": "코드를 확인하고 다시 시도하십시오. 이미 적용되었거나 프로모션이 만료되었을 수 있습니다."
- },
- "use_promocode.info.promo_applied": {
- "defaultMessage": "프로모션이 적용됨"
- },
- "use_promocode.info.promo_removed": {
- "defaultMessage": "프로모션이 제거됨"
- },
- "use_registration_fields.error.contain_number": {
- "defaultMessage": "암호에는 숫자가 하나 이상 포함되어야 합니다."
- },
- "use_registration_fields.error.lowercase_letter": {
- "defaultMessage": "암호에는 소문자가 하나 이상 포함되어야 합니다."
- },
- "use_registration_fields.error.minimum_characters": {
- "defaultMessage": "암호는 8자 이상이어야 합니다."
- },
- "use_registration_fields.error.required_email": {
- "defaultMessage": "유효한 이메일 주소를 입력하십시오."
- },
- "use_registration_fields.error.required_first_name": {
- "defaultMessage": "이름을 입력하십시오."
- },
- "use_registration_fields.error.required_last_name": {
- "defaultMessage": "성을 입력하십시오."
- },
- "use_registration_fields.error.required_password": {
- "defaultMessage": "암호를 생성하십시오."
- },
- "use_registration_fields.error.special_character": {
- "defaultMessage": "암호에는 특수 문자가 하나 이상 포함되어야 합니다."
- },
- "use_registration_fields.error.uppercase_letter": {
- "defaultMessage": "암호에는 대문자가 하나 이상 포함되어야 합니다."
- },
- "use_registration_fields.label.email": {
- "defaultMessage": "이메일"
- },
- "use_registration_fields.label.first_name": {
- "defaultMessage": "이름"
- },
- "use_registration_fields.label.last_name": {
- "defaultMessage": "성"
- },
- "use_registration_fields.label.password": {
- "defaultMessage": "암호"
- },
- "use_registration_fields.label.sign_up_to_emails": {
- "defaultMessage": "Salesforce 이메일 가입(언제든지 탈퇴 가능)"
- },
- "use_reset_password_fields.error.required_email": {
- "defaultMessage": "유효한 이메일 주소를 입력하십시오."
- },
- "use_reset_password_fields.label.email": {
- "defaultMessage": "이메일"
- },
- "use_update_password_fields.error.contain_number": {
- "defaultMessage": "암호에는 숫자가 하나 이상 포함되어야 합니다."
- },
- "use_update_password_fields.error.lowercase_letter": {
- "defaultMessage": "암호에는 소문자가 하나 이상 포함되어야 합니다."
- },
- "use_update_password_fields.error.minimum_characters": {
- "defaultMessage": "암호는 8자 이상이어야 합니다."
- },
- "use_update_password_fields.error.required_new_password": {
- "defaultMessage": "새 암호를 제공하십시오."
- },
- "use_update_password_fields.error.required_password": {
- "defaultMessage": "암호를 입력하십시오."
- },
- "use_update_password_fields.error.special_character": {
- "defaultMessage": "암호에는 특수 문자가 하나 이상 포함되어야 합니다."
- },
- "use_update_password_fields.error.uppercase_letter": {
- "defaultMessage": "암호에는 대문자가 하나 이상 포함되어야 합니다."
- },
- "use_update_password_fields.label.current_password": {
- "defaultMessage": "현재 암호"
- },
- "use_update_password_fields.label.new_password": {
- "defaultMessage": "새 암호"
- },
- "wishlist_primary_action.button.add_set_to_cart": {
- "defaultMessage": "카트에 세트 추가"
- },
- "wishlist_primary_action.button.add_to_cart": {
- "defaultMessage": "카트에 추가"
- },
- "wishlist_primary_action.button.view_full_details": {
- "defaultMessage": "전체 세부 정보 보기"
- },
- "wishlist_primary_action.button.view_options": {
- "defaultMessage": "옵션 보기"
- },
- "wishlist_primary_action.info.added_to_cart": {
- "defaultMessage": "{quantity} {quantity, plural, one {개 항목} other {개 항목}}이 카트에 추가됨"
- },
- "wishlist_secondary_button_group.action.remove": {
- "defaultMessage": "제거"
- },
- "wishlist_secondary_button_group.info.item_removed": {
- "defaultMessage": "항목이 위시리스트에서 제거됨"
- },
- "with_registration.info.please_sign_in": {
- "defaultMessage": "계속하려면 로그인하십시오."
- }
-}
diff --git a/packages/template-retail-react-app/translations/pt-BR.json b/packages/template-retail-react-app/translations/pt-BR.json
deleted file mode 100644
index ea6935042b..0000000000
--- a/packages/template-retail-react-app/translations/pt-BR.json
+++ /dev/null
@@ -1,1517 +0,0 @@
-{
- "account.accordion.button.my_account": {
- "defaultMessage": "Minha conta"
- },
- "account.heading.my_account": {
- "defaultMessage": "Minha conta"
- },
- "account.logout_button.button.log_out": {
- "defaultMessage": "Sair"
- },
- "account_addresses.badge.default": {
- "defaultMessage": "Padrão"
- },
- "account_addresses.button.add_address": {
- "defaultMessage": "Adicionar endereço"
- },
- "account_addresses.info.address_removed": {
- "defaultMessage": "Endereço removido"
- },
- "account_addresses.info.address_updated": {
- "defaultMessage": "Endereço atualizado"
- },
- "account_addresses.info.new_address_saved": {
- "defaultMessage": "Novo endereço salvo"
- },
- "account_addresses.page_action_placeholder.button.add_address": {
- "defaultMessage": "Adicionar endereço"
- },
- "account_addresses.page_action_placeholder.heading.no_saved_addresses": {
- "defaultMessage": "Não há endereços salvos"
- },
- "account_addresses.page_action_placeholder.message.add_new_address": {
- "defaultMessage": "Adicione um novo método de endereço para agilizar o checkout."
- },
- "account_addresses.title.addresses": {
- "defaultMessage": "Endereços"
- },
- "account_detail.title.account_details": {
- "defaultMessage": "Detalhes da conta"
- },
- "account_order_detail.heading.billing_address": {
- "defaultMessage": "Endereço de cobrança"
- },
- "account_order_detail.heading.num_of_items": {
- "defaultMessage": "{count} itens"
- },
- "account_order_detail.heading.payment_method": {
- "defaultMessage": "Método de pagamento"
- },
- "account_order_detail.heading.shipping_address": {
- "defaultMessage": "Endereço de entrega"
- },
- "account_order_detail.heading.shipping_method": {
- "defaultMessage": "Método de entrega"
- },
- "account_order_detail.label.order_number": {
- "defaultMessage": "Número do pedido: {orderNumber}"
- },
- "account_order_detail.label.ordered_date": {
- "defaultMessage": "Pedido: {date}"
- },
- "account_order_detail.label.pending_tracking_number": {
- "defaultMessage": "Pendente"
- },
- "account_order_detail.label.tracking_number": {
- "defaultMessage": "Número de controle"
- },
- "account_order_detail.link.back_to_history": {
- "defaultMessage": "Voltar a Histórico de pedidos"
- },
- "account_order_detail.shipping_status.not_shipped": {
- "defaultMessage": "Não enviado"
- },
- "account_order_detail.shipping_status.part_shipped": {
- "defaultMessage": "Parcialmente enviado"
- },
- "account_order_detail.shipping_status.shipped": {
- "defaultMessage": "Enviado"
- },
- "account_order_detail.title.order_details": {
- "defaultMessage": "Detalhes do pedido"
- },
- "account_order_history.button.continue_shopping": {
- "defaultMessage": "Continuar comprando"
- },
- "account_order_history.description.once_you_place_order": {
- "defaultMessage": "Quando você faz um pedido, os detalhes aparecem aqui."
- },
- "account_order_history.heading.no_order_yet": {
- "defaultMessage": "Você ainda não fez um pedido."
- },
- "account_order_history.label.num_of_items": {
- "defaultMessage": "{count} itens",
- "description": "Number of items in order"
- },
- "account_order_history.label.order_number": {
- "defaultMessage": "Número do pedido: {orderNumber}"
- },
- "account_order_history.label.ordered_date": {
- "defaultMessage": "Pedido: {date}"
- },
- "account_order_history.label.shipped_to": {
- "defaultMessage": "Enviado para: {name}"
- },
- "account_order_history.link.view_details": {
- "defaultMessage": "Ver detalhes"
- },
- "account_order_history.title.order_history": {
- "defaultMessage": "Histórico de pedidos"
- },
- "account_wishlist.button.continue_shopping": {
- "defaultMessage": "Continuar comprando"
- },
- "account_wishlist.description.continue_shopping": {
- "defaultMessage": "Continue comprando e adicionando itens na sua lista de desejos."
- },
- "account_wishlist.heading.no_wishlist": {
- "defaultMessage": "Não há itens na lista de desejos"
- },
- "account_wishlist.title.wishlist": {
- "defaultMessage": "Lista de desejos"
- },
- "action_card.action.edit": {
- "defaultMessage": "Editar"
- },
- "action_card.action.remove": {
- "defaultMessage": "Remover"
- },
- "add_to_cart_modal.info.added_to_cart": {
- "defaultMessage": "{quantity} {quantity, plural, one {item} other {itens}} adicionado(s) ao carrinho"
- },
- "add_to_cart_modal.label.cart_subtotal": {
- "defaultMessage": "Subtotal do carrinho ({itemAccumulatedCount} item/itens)"
- },
- "add_to_cart_modal.label.quantity": {
- "defaultMessage": "Qtd."
- },
- "add_to_cart_modal.link.checkout": {
- "defaultMessage": "Pagar"
- },
- "add_to_cart_modal.link.view_cart": {
- "defaultMessage": "Ver carrinho"
- },
- "add_to_cart_modal.recommended_products.title.might_also_like": {
- "defaultMessage": "Talvez você também queira"
- },
- "auth_modal.button.close.assistive_msg": {
- "defaultMessage": "Fechar formulário de logon"
- },
- "auth_modal.description.now_signed_in": {
- "defaultMessage": "Agora você fez login na sua conta."
- },
- "auth_modal.error.incorrect_email_or_password": {
- "defaultMessage": "Há algo errado com seu e-mail ou senha. Tente novamente."
- },
- "auth_modal.info.welcome_user": {
- "defaultMessage": "Olá {name},"
- },
- "auth_modal.password_reset_success.button.back_to_sign_in": {
- "defaultMessage": "Fazer login novamente"
- },
- "auth_modal.password_reset_success.info.will_email_shortly": {
- "defaultMessage": "Em breve, você receberá um e-mail em {email} com um link para redefinir a senha."
- },
- "auth_modal.password_reset_success.title.password_reset": {
- "defaultMessage": "Redefinição de senha"
- },
- "carousel.button.scroll_left.assistive_msg": {
- "defaultMessage": "Rolar o carrossel para a esquerda"
- },
- "carousel.button.scroll_right.assistive_msg": {
- "defaultMessage": "Rolar o carrossel para a direita"
- },
- "cart.info.removed_from_cart": {
- "defaultMessage": "Item removido do carrinho"
- },
- "cart.recommended_products.title.may_also_like": {
- "defaultMessage": "Talvez você também queira"
- },
- "cart.recommended_products.title.recently_viewed": {
- "defaultMessage": "Recentemente visualizados"
- },
- "cart_cta.link.checkout": {
- "defaultMessage": "Pagar"
- },
- "cart_secondary_button_group.action.added_to_wishlist": {
- "defaultMessage": "Adicionar à lista de desejos"
- },
- "cart_secondary_button_group.action.edit": {
- "defaultMessage": "Editar"
- },
- "cart_secondary_button_group.action.remove": {
- "defaultMessage": "Remover"
- },
- "cart_secondary_button_group.label.this_is_gift": {
- "defaultMessage": "É um presente."
- },
- "cart_skeleton.heading.order_summary": {
- "defaultMessage": "Resumo do pedido"
- },
- "cart_skeleton.title.cart": {
- "defaultMessage": "Carrinho"
- },
- "cart_title.title.cart_num_of_items": {
- "defaultMessage": "Carrinho ({itemCount, plural, =0 {0 itens} one {# item} other {# itens}})"
- },
- "cc_radio_group.action.remove": {
- "defaultMessage": "Remover"
- },
- "cc_radio_group.button.add_new_card": {
- "defaultMessage": "Adicionar novo cartão"
- },
- "checkout.button.place_order": {
- "defaultMessage": "Fazer pedido"
- },
- "checkout.message.generic_error": {
- "defaultMessage": "Ocorreu um erro inesperado durante o checkout."
- },
- "checkout_confirmation.button.create_account": {
- "defaultMessage": "Criar conta"
- },
- "checkout_confirmation.heading.billing_address": {
- "defaultMessage": "Endereço de cobrança"
- },
- "checkout_confirmation.heading.create_account": {
- "defaultMessage": "Criar uma conta para agilizar o checkout"
- },
- "checkout_confirmation.heading.credit_card": {
- "defaultMessage": "Cartão de crédito"
- },
- "checkout_confirmation.heading.delivery_details": {
- "defaultMessage": "Detalhes da entrega"
- },
- "checkout_confirmation.heading.order_summary": {
- "defaultMessage": "Resumo do pedido"
- },
- "checkout_confirmation.heading.payment_details": {
- "defaultMessage": "Detalhes do pagamento"
- },
- "checkout_confirmation.heading.shipping_address": {
- "defaultMessage": "Endereço de entrega"
- },
- "checkout_confirmation.heading.shipping_method": {
- "defaultMessage": "Método de entrega"
- },
- "checkout_confirmation.heading.thank_you_for_order": {
- "defaultMessage": "Agradecemos o seu pedido!"
- },
- "checkout_confirmation.label.free": {
- "defaultMessage": "Gratuito"
- },
- "checkout_confirmation.label.order_number": {
- "defaultMessage": "Número do pedido"
- },
- "checkout_confirmation.label.order_total": {
- "defaultMessage": "Total do pedido"
- },
- "checkout_confirmation.label.promo_applied": {
- "defaultMessage": "Promoção aplicada"
- },
- "checkout_confirmation.label.shipping": {
- "defaultMessage": "Frete"
- },
- "checkout_confirmation.label.subtotal": {
- "defaultMessage": "Subtotal"
- },
- "checkout_confirmation.label.tax": {
- "defaultMessage": "Imposto"
- },
- "checkout_confirmation.link.continue_shopping": {
- "defaultMessage": "Continuar comprando"
- },
- "checkout_confirmation.link.login": {
- "defaultMessage": "Fazer logon aqui"
- },
- "checkout_confirmation.message.already_has_account": {
- "defaultMessage": "Já há uma conta com este mesmo endereço de e-mail."
- },
- "checkout_confirmation.message.num_of_items_in_order": {
- "defaultMessage": "{itemCount, plural, =0 {0 itens} one {# item} other {# itens}})",
- "description": "# item(s) in order"
- },
- "checkout_confirmation.message.will_email_shortly": {
- "defaultMessage": "Em breve, enviaremos um e-mail para {email} com seu número de confirmação e recibo."
- },
- "checkout_footer.link.privacy_policy": {
- "defaultMessage": "Política de privacidade"
- },
- "checkout_footer.link.returns_exchanges": {
- "defaultMessage": "Devoluções e trocas"
- },
- "checkout_footer.link.shipping": {
- "defaultMessage": "Frete"
- },
- "checkout_footer.link.site_map": {
- "defaultMessage": "Mapa do site"
- },
- "checkout_footer.link.terms_conditions": {
- "defaultMessage": "Termos e condições"
- },
- "checkout_footer.message.copyright": {
- "defaultMessage": "Salesforce ou suas afiliadas. Todos os direitos reservados. Esta é apenas uma loja de demonstração. Os pedidos feitos NÃO SERÃO processados."
- },
- "checkout_header.link.assistive_msg.cart": {
- "defaultMessage": "Voltar ao carrinho, número de itens: {numItems}"
- },
- "checkout_header.link.cart": {
- "defaultMessage": "Voltar ao carrinho"
- },
- "checkout_payment.action.remove": {
- "defaultMessage": "Remover"
- },
- "checkout_payment.button.review_order": {
- "defaultMessage": "Rever pedido"
- },
- "checkout_payment.heading.billing_address": {
- "defaultMessage": "Endereço de cobrança"
- },
- "checkout_payment.heading.credit_card": {
- "defaultMessage": "Cartão de crédito"
- },
- "checkout_payment.label.same_as_shipping": {
- "defaultMessage": "Igual ao endereço de entrega"
- },
- "checkout_payment.title.payment": {
- "defaultMessage": "Pagamento"
- },
- "colorRefinements.label.hitCount": {
- "defaultMessage": "{colorLabel} ({colorHitCount})"
- },
- "confirmation_modal.default.action.no": {
- "defaultMessage": "Não"
- },
- "confirmation_modal.default.action.yes": {
- "defaultMessage": "Sim"
- },
- "confirmation_modal.default.message.you_want_to_continue": {
- "defaultMessage": "Tem certeza de que deseja continuar?"
- },
- "confirmation_modal.default.title.confirm_action": {
- "defaultMessage": "Confirmar ação"
- },
- "confirmation_modal.remove_cart_item.action.no": {
- "defaultMessage": "Não, manter item"
- },
- "confirmation_modal.remove_cart_item.action.remove": {
- "defaultMessage": "Remover"
- },
- "confirmation_modal.remove_cart_item.action.yes": {
- "defaultMessage": "Sim, remover item"
- },
- "confirmation_modal.remove_cart_item.message.need_to_remove_due_to_unavailability": {
- "defaultMessage": "Alguns itens não estão mais disponíveis online e serão removidos de seu carrinho."
- },
- "confirmation_modal.remove_cart_item.message.sure_to_remove": {
- "defaultMessage": "Tem certeza de que deseja remover este item do carrinho?"
- },
- "confirmation_modal.remove_cart_item.title.confirm_remove": {
- "defaultMessage": "Confirmar remoção do item"
- },
- "confirmation_modal.remove_cart_item.title.items_unavailable": {
- "defaultMessage": "Itens indisponíveis"
- },
- "confirmation_modal.remove_wishlist_item.action.no": {
- "defaultMessage": "Não, manter item"
- },
- "confirmation_modal.remove_wishlist_item.action.yes": {
- "defaultMessage": "Sim, remover item"
- },
- "confirmation_modal.remove_wishlist_item.message.sure_to_remove": {
- "defaultMessage": "Tem certeza de que deseja remover este item da lista de desejos?"
- },
- "confirmation_modal.remove_wishlist_item.title.confirm_remove": {
- "defaultMessage": "Confirmar remoção do item"
- },
- "contact_info.action.sign_out": {
- "defaultMessage": "Fazer logoff"
- },
- "contact_info.button.already_have_account": {
- "defaultMessage": "Já tem uma conta? Fazer logon"
- },
- "contact_info.button.checkout_as_guest": {
- "defaultMessage": "Pagar como convidado"
- },
- "contact_info.button.login": {
- "defaultMessage": "Fazer logon"
- },
- "contact_info.error.incorrect_username_or_password": {
- "defaultMessage": "Nome de usuário ou senha incorreta. Tente novamente."
- },
- "contact_info.link.forgot_password": {
- "defaultMessage": "Esqueceu a senha?"
- },
- "contact_info.title.contact_info": {
- "defaultMessage": "Informações de contato"
- },
- "credit_card_fields.tool_tip.security_code": {
- "defaultMessage": "Este código de 3 dígitos pode ser encontrado no verso do seu cartão.",
- "description": "Generic credit card security code help text"
- },
- "credit_card_fields.tool_tip.security_code.american_express": {
- "defaultMessage": "Este código de 4 dígitos pode ser encontrado na frente do seu cartão.",
- "description": "American Express security code help text"
- },
- "credit_card_fields.tool_tip.security_code_aria_label": {
- "defaultMessage": "Informações do código de segurança"
- },
- "drawer_menu.button.account_details": {
- "defaultMessage": "Detalhes da conta"
- },
- "drawer_menu.button.addresses": {
- "defaultMessage": "Endereços"
- },
- "drawer_menu.button.log_out": {
- "defaultMessage": "Sair"
- },
- "drawer_menu.button.my_account": {
- "defaultMessage": "Minha conta"
- },
- "drawer_menu.button.order_history": {
- "defaultMessage": "Histórico de pedidos"
- },
- "drawer_menu.link.about_us": {
- "defaultMessage": "Sobre nós"
- },
- "drawer_menu.link.customer_support": {
- "defaultMessage": "Suporte ao cliente"
- },
- "drawer_menu.link.customer_support.contact_us": {
- "defaultMessage": "Entrar em contato"
- },
- "drawer_menu.link.customer_support.shipping_and_returns": {
- "defaultMessage": "Frete e devoluções"
- },
- "drawer_menu.link.our_company": {
- "defaultMessage": "Nossa empresa"
- },
- "drawer_menu.link.privacy_and_security": {
- "defaultMessage": "Privacidade e segurança"
- },
- "drawer_menu.link.privacy_policy": {
- "defaultMessage": "Política de privacidade"
- },
- "drawer_menu.link.shop_all": {
- "defaultMessage": "Ver tudo"
- },
- "drawer_menu.link.sign_in": {
- "defaultMessage": "Fazer logon"
- },
- "drawer_menu.link.site_map": {
- "defaultMessage": "Mapa do site"
- },
- "drawer_menu.link.store_locator": {
- "defaultMessage": "Localizador de lojas"
- },
- "drawer_menu.link.terms_and_conditions": {
- "defaultMessage": "Termos e condições"
- },
- "empty_cart.description.empty_cart": {
- "defaultMessage": "Seu carrinho está vazio."
- },
- "empty_cart.link.continue_shopping": {
- "defaultMessage": "Continuar comprando"
- },
- "empty_cart.link.sign_in": {
- "defaultMessage": "Fazer logon"
- },
- "empty_cart.message.continue_shopping": {
- "defaultMessage": "Continue comprando e adicione itens ao seu carrinho."
- },
- "empty_cart.message.sign_in_or_continue_shopping": {
- "defaultMessage": "Faça logon para recuperar seus itens salvos ou continuar a compra."
- },
- "empty_search_results.info.cant_find_anything_for_category": {
- "defaultMessage": "Não encontramos resultados para {category}. Tente pesquisar um produto ou {link}."
- },
- "empty_search_results.info.cant_find_anything_for_query": {
- "defaultMessage": "Não encontramos resultados para \"{searchQuery}\"."
- },
- "empty_search_results.info.double_check_spelling": {
- "defaultMessage": "Confira a ortografia e tente novamente ou {link}."
- },
- "empty_search_results.link.contact_us": {
- "defaultMessage": "Entre em contato"
- },
- "empty_search_results.recommended_products.title.most_viewed": {
- "defaultMessage": "Mais visto"
- },
- "empty_search_results.recommended_products.title.top_sellers": {
- "defaultMessage": "Mais vendidos"
- },
- "field.password.assistive_msg.hide_password": {
- "defaultMessage": "Ocultar senha"
- },
- "field.password.assistive_msg.show_password": {
- "defaultMessage": "Mostrar senha"
- },
- "footer.column.account": {
- "defaultMessage": "Conta"
- },
- "footer.column.customer_support": {
- "defaultMessage": "Suporte ao cliente"
- },
- "footer.column.our_company": {
- "defaultMessage": "Nossa empresa"
- },
- "footer.link.about_us": {
- "defaultMessage": "Sobre nós"
- },
- "footer.link.contact_us": {
- "defaultMessage": "Entre em contato"
- },
- "footer.link.order_status": {
- "defaultMessage": "Estado dos pedidos"
- },
- "footer.link.privacy_policy": {
- "defaultMessage": "Política de privacidade"
- },
- "footer.link.shipping": {
- "defaultMessage": "Frete"
- },
- "footer.link.signin_create_account": {
- "defaultMessage": "Fazer logon ou criar conta"
- },
- "footer.link.site_map": {
- "defaultMessage": "Mapa do site"
- },
- "footer.link.store_locator": {
- "defaultMessage": "Localizador de lojas"
- },
- "footer.link.terms_conditions": {
- "defaultMessage": "Termos e condições"
- },
- "footer.message.copyright": {
- "defaultMessage": "Salesforce ou suas afiliadas. Todos os direitos reservados. Esta é apenas uma loja de demonstração. Os pedidos feitos NÃO SERÃO processados."
- },
- "footer.subscribe.button.sign_up": {
- "defaultMessage": "Cadastro"
- },
- "footer.subscribe.description.sign_up": {
- "defaultMessage": "Registre-se para ficar por dentro de todas as ofertas"
- },
- "footer.subscribe.heading.first_to_know": {
- "defaultMessage": "Seja o primeiro a saber"
- },
- "form_action_buttons.button.cancel": {
- "defaultMessage": "Cancelar"
- },
- "form_action_buttons.button.save": {
- "defaultMessage": "Salvar"
- },
- "global.account.link.account_details": {
- "defaultMessage": "Detalhes da conta"
- },
- "global.account.link.addresses": {
- "defaultMessage": "Endereços"
- },
- "global.account.link.order_history": {
- "defaultMessage": "Histórico de pedidos"
- },
- "global.account.link.wishlist": {
- "defaultMessage": "Lista de desejos"
- },
- "global.error.something_went_wrong": {
- "defaultMessage": "Ocorreu um erro. Tente novamente."
- },
- "global.info.added_to_wishlist": {
- "defaultMessage": "{quantity} {quantity, plural, one {item} other {itens}} adicionado(s) à lista de desejos"
- },
- "global.info.already_in_wishlist": {
- "defaultMessage": "O item já está na lista de desejos"
- },
- "global.info.removed_from_wishlist": {
- "defaultMessage": "Item removido da lista de desejos"
- },
- "global.link.added_to_wishlist.view_wishlist": {
- "defaultMessage": "Ver"
- },
- "header.button.assistive_msg.logo": {
- "defaultMessage": "Logotipo"
- },
- "header.button.assistive_msg.menu": {
- "defaultMessage": "Menu"
- },
- "header.button.assistive_msg.my_account": {
- "defaultMessage": "Minha conta"
- },
- "header.button.assistive_msg.my_account_menu": {
- "defaultMessage": "Abrir menu de conta"
- },
- "header.button.assistive_msg.my_cart_with_num_items": {
- "defaultMessage": "Meu carrinho, número de itens: {numItems}"
- },
- "header.button.assistive_msg.wishlist": {
- "defaultMessage": "Lista de desejos"
- },
- "header.field.placeholder.search_for_products": {
- "defaultMessage": "Pesquisar produtos..."
- },
- "header.popover.action.log_out": {
- "defaultMessage": "Sair"
- },
- "header.popover.title.my_account": {
- "defaultMessage": "Minha conta"
- },
- "home.description.features": {
- "defaultMessage": "Recursos prontos para uso, para que você só precise adicionar melhorias."
- },
- "home.description.here_to_help": {
- "defaultMessage": "Entre em contato com nossa equipe de suporte."
- },
- "home.description.here_to_help_line_2": {
- "defaultMessage": "Eles vão levar você ao lugar certo."
- },
- "home.description.shop_products": {
- "defaultMessage": "Esta seção tem conteúdo do catálogo. {docLink} sobre como substitui-lo.",
- "description": "{docLink} is a html button that links the user to https://sfdc.co/business-manager-manage-catalogs"
- },
- "home.features.description.cart_checkout": {
- "defaultMessage": "Práticas recomendadas de comércio eletrônico para a experiência de carrinho e checkout do comprador."
- },
- "home.features.description.components": {
- "defaultMessage": "Criado com Chakra UI, uma biblioteca de componentes de React simples, modulares e acessíveis."
- },
- "home.features.description.einstein_recommendations": {
- "defaultMessage": "Entregue o próximo melhor produto ou oferta a cada comprador por meio de recomendações de produto."
- },
- "home.features.description.my_account": {
- "defaultMessage": "Os compradores podem gerenciar as informações da conta, como perfil, endereços, pagamentos e pedidos."
- },
- "home.features.description.shopper_login": {
- "defaultMessage": "Permite que os compradores façam logon com uma experiência de compra mais personalizada."
- },
- "home.features.description.wishlist": {
- "defaultMessage": "Os compradores registrados podem adicionar itens de produtos à lista de desejos para comprá-los mais tarde."
- },
- "home.features.heading.cart_checkout": {
- "defaultMessage": "Carrinho e Checkout"
- },
- "home.features.heading.components": {
- "defaultMessage": "Componentes e Kit de design"
- },
- "home.features.heading.einstein_recommendations": {
- "defaultMessage": "Recomendações do Einstein"
- },
- "home.features.heading.my_account": {
- "defaultMessage": "Minha conta"
- },
- "home.features.heading.shopper_login": {
- "defaultMessage": "Shopper Login and API Access Service (SLAS)"
- },
- "home.features.heading.wishlist": {
- "defaultMessage": "Lista de desejos"
- },
- "home.heading.features": {
- "defaultMessage": "Recursos"
- },
- "home.heading.here_to_help": {
- "defaultMessage": "Estamos aqui para ajudar"
- },
- "home.heading.shop_products": {
- "defaultMessage": "Comprar produtos"
- },
- "home.hero_features.link.design_kit": {
- "defaultMessage": "Criar com o Figma PWA Design Kit"
- },
- "home.hero_features.link.on_github": {
- "defaultMessage": "Baixar no Github"
- },
- "home.hero_features.link.on_managed_runtime": {
- "defaultMessage": "Implantar no Managed Runtime"
- },
- "home.link.contact_us": {
- "defaultMessage": "Entre em contato"
- },
- "home.link.get_started": {
- "defaultMessage": "Começar"
- },
- "home.link.read_docs": {
- "defaultMessage": "Leia os documentos"
- },
- "home.title.react_starter_store": {
- "defaultMessage": "React PWA Starter Store para varejo"
- },
- "icons.assistive_msg.lock": {
- "defaultMessage": "Seguro"
- },
- "item_attributes.label.promotions": {
- "defaultMessage": "Promoções"
- },
- "item_attributes.label.quantity": {
- "defaultMessage": "Quantidade: {quantity}"
- },
- "item_image.label.sale": {
- "defaultMessage": "Promoção",
- "description": "A sale badge placed on top of a product image"
- },
- "item_image.label.unavailable": {
- "defaultMessage": "Indisponível",
- "description": "A unavailable badge placed on top of a product image"
- },
- "item_price.label.starting_at": {
- "defaultMessage": "A partir de"
- },
- "lCPCxk": {
- "defaultMessage": "Selecione todas as opções acima"
- },
- "list_menu.nav.assistive_msg": {
- "defaultMessage": "Navegação principal"
- },
- "locale_text.message.ar-SA": {
- "defaultMessage": "Árabe (Arábia Saudita)"
- },
- "locale_text.message.bn-BD": {
- "defaultMessage": "Bengali (Bangladesh)"
- },
- "locale_text.message.bn-IN": {
- "defaultMessage": "Bengali (Índia)"
- },
- "locale_text.message.cs-CZ": {
- "defaultMessage": "Tcheco (República Tcheca)"
- },
- "locale_text.message.da-DK": {
- "defaultMessage": "Dinamarquês (Dinamarca)"
- },
- "locale_text.message.de-AT": {
- "defaultMessage": "Alemão (Áustria)"
- },
- "locale_text.message.de-CH": {
- "defaultMessage": "Alemão (Suíça)"
- },
- "locale_text.message.de-DE": {
- "defaultMessage": "Alemão (Alemanha)"
- },
- "locale_text.message.el-GR": {
- "defaultMessage": "Grego (Grécia)"
- },
- "locale_text.message.en-AU": {
- "defaultMessage": "Inglês (Austrália)"
- },
- "locale_text.message.en-CA": {
- "defaultMessage": "Inglês (Canadá)"
- },
- "locale_text.message.en-GB": {
- "defaultMessage": "Inglês (Reino Unido)"
- },
- "locale_text.message.en-IE": {
- "defaultMessage": "Inglês (Irlanda)"
- },
- "locale_text.message.en-IN": {
- "defaultMessage": "Inglês (Índia)"
- },
- "locale_text.message.en-NZ": {
- "defaultMessage": "Inglês (Nova Zelândia)"
- },
- "locale_text.message.en-US": {
- "defaultMessage": "Inglês (Estados Unidos)"
- },
- "locale_text.message.en-ZA": {
- "defaultMessage": "Inglês (África do Sul)"
- },
- "locale_text.message.es-AR": {
- "defaultMessage": "Espanhol (Argentina)"
- },
- "locale_text.message.es-CL": {
- "defaultMessage": "Espanhol (Chile)"
- },
- "locale_text.message.es-CO": {
- "defaultMessage": "Espanhol (Colômbia)"
- },
- "locale_text.message.es-ES": {
- "defaultMessage": "Espanhol (Espanha)"
- },
- "locale_text.message.es-MX": {
- "defaultMessage": "Espanhol (México)"
- },
- "locale_text.message.es-US": {
- "defaultMessage": "Espanhol (Estados Unidos)"
- },
- "locale_text.message.fi-FI": {
- "defaultMessage": "Finlandês (Finlândia)"
- },
- "locale_text.message.fr-BE": {
- "defaultMessage": "Francês (Bélgica)"
- },
- "locale_text.message.fr-CA": {
- "defaultMessage": "Francês (Canadá)"
- },
- "locale_text.message.fr-CH": {
- "defaultMessage": "Francês (Suíça)"
- },
- "locale_text.message.fr-FR": {
- "defaultMessage": "Francês (França)"
- },
- "locale_text.message.he-IL": {
- "defaultMessage": "Hebreu (Israel)"
- },
- "locale_text.message.hi-IN": {
- "defaultMessage": "Hindi (Índia)"
- },
- "locale_text.message.hu-HU": {
- "defaultMessage": "Húngaro (Hungria)"
- },
- "locale_text.message.id-ID": {
- "defaultMessage": "Indonésio (Indonésia)"
- },
- "locale_text.message.it-CH": {
- "defaultMessage": "Italiano (Suíça)"
- },
- "locale_text.message.it-IT": {
- "defaultMessage": "Italiano (Itália)"
- },
- "locale_text.message.ja-JP": {
- "defaultMessage": "Japonês (Japão)"
- },
- "locale_text.message.ko-KR": {
- "defaultMessage": "Coreano (Coreia do Sul)"
- },
- "locale_text.message.nl-BE": {
- "defaultMessage": "Holandês (Bélgica)"
- },
- "locale_text.message.nl-NL": {
- "defaultMessage": "Holandês (Países Baixos)"
- },
- "locale_text.message.no-NO": {
- "defaultMessage": "Norueguês (Noruega)"
- },
- "locale_text.message.pl-PL": {
- "defaultMessage": "Polonês (Polônia)"
- },
- "locale_text.message.pt-BR": {
- "defaultMessage": "Português (Brasil)"
- },
- "locale_text.message.pt-PT": {
- "defaultMessage": "Português (Portugal)"
- },
- "locale_text.message.ro-RO": {
- "defaultMessage": "Romeno (Romênia)"
- },
- "locale_text.message.ru-RU": {
- "defaultMessage": "Russo (Rússia)"
- },
- "locale_text.message.sk-SK": {
- "defaultMessage": "Eslovaco (Eslováquia)"
- },
- "locale_text.message.sv-SE": {
- "defaultMessage": "Sueco (Suécia)"
- },
- "locale_text.message.ta-IN": {
- "defaultMessage": "Tâmil (Índia)"
- },
- "locale_text.message.ta-LK": {
- "defaultMessage": "Tâmil (Sri Lanka)"
- },
- "locale_text.message.th-TH": {
- "defaultMessage": "Tailandês (Tailândia)"
- },
- "locale_text.message.tr-TR": {
- "defaultMessage": "Turco (Turquia)"
- },
- "locale_text.message.zh-CN": {
- "defaultMessage": "Chinês (China)"
- },
- "locale_text.message.zh-HK": {
- "defaultMessage": "Chinês (Hong Kong)"
- },
- "locale_text.message.zh-TW": {
- "defaultMessage": "Chinês (Taiwan)"
- },
- "login_form.action.create_account": {
- "defaultMessage": "Criar conta"
- },
- "login_form.button.sign_in": {
- "defaultMessage": "Fazer logon"
- },
- "login_form.link.forgot_password": {
- "defaultMessage": "Esqueceu a senha?"
- },
- "login_form.message.dont_have_account": {
- "defaultMessage": "Não tem uma conta?"
- },
- "login_form.message.welcome_back": {
- "defaultMessage": "Olá novamente"
- },
- "login_page.error.incorrect_username_or_password": {
- "defaultMessage": "Nome de usuário ou senha incorreta. Tente novamente."
- },
- "offline_banner.description.browsing_offline_mode": {
- "defaultMessage": "Você está navegando no modo offline"
- },
- "order_summary.action.remove_promo": {
- "defaultMessage": "Remover"
- },
- "order_summary.cart_items.action.num_of_items_in_cart": {
- "defaultMessage": "{itemCount, plural, =0 {0 itens} one {# item} other {# itens}} no carrinho",
- "description": "clicking it would expand/show the items in cart"
- },
- "order_summary.cart_items.link.edit_cart": {
- "defaultMessage": "Editar carrinho"
- },
- "order_summary.heading.order_summary": {
- "defaultMessage": "Resumo do pedido"
- },
- "order_summary.label.estimated_total": {
- "defaultMessage": "Total estimado"
- },
- "order_summary.label.free": {
- "defaultMessage": "Gratuito"
- },
- "order_summary.label.order_total": {
- "defaultMessage": "Total do pedido"
- },
- "order_summary.label.promo_applied": {
- "defaultMessage": "Promoção aplicada"
- },
- "order_summary.label.promotions_applied": {
- "defaultMessage": "Promoções aplicadas"
- },
- "order_summary.label.shipping": {
- "defaultMessage": "Frete"
- },
- "order_summary.label.subtotal": {
- "defaultMessage": "Subtotal"
- },
- "order_summary.label.tax": {
- "defaultMessage": "Imposto"
- },
- "page_not_found.action.go_back": {
- "defaultMessage": "Voltar à página anterior"
- },
- "page_not_found.link.homepage": {
- "defaultMessage": "Ir à página inicial"
- },
- "page_not_found.message.suggestion_to_try": {
- "defaultMessage": "Tente digitar o endereço novamente, voltar à página anterior ou à página inicial."
- },
- "page_not_found.title.page_cant_be_found": {
- "defaultMessage": "A página buscada não pôde ser encontrada."
- },
- "pagination.field.num_of_pages": {
- "defaultMessage": "de {numOfPages}"
- },
- "pagination.link.next": {
- "defaultMessage": "Próximo"
- },
- "pagination.link.next.assistive_msg": {
- "defaultMessage": "Próxima página"
- },
- "pagination.link.prev": {
- "defaultMessage": "Ant"
- },
- "pagination.link.prev.assistive_msg": {
- "defaultMessage": "Página anterior"
- },
- "password_card.info.password_updated": {
- "defaultMessage": "Senha atualizada"
- },
- "password_card.label.password": {
- "defaultMessage": "Senha"
- },
- "password_card.title.password": {
- "defaultMessage": "Senha"
- },
- "password_requirements.error.eight_letter_minimum": {
- "defaultMessage": "Mínimo de 8 caracteres",
- "description": "Password requirement"
- },
- "password_requirements.error.one_lowercase_letter": {
- "defaultMessage": "1 letra minúscula",
- "description": "Password requirement"
- },
- "password_requirements.error.one_number": {
- "defaultMessage": "1 número",
- "description": "Password requirement"
- },
- "password_requirements.error.one_special_character": {
- "defaultMessage": "1 caractere especial (exemplo: , $ ! % #)",
- "description": "Password requirement"
- },
- "password_requirements.error.one_uppercase_letter": {
- "defaultMessage": "1 letra maiúscula",
- "description": "Password requirement"
- },
- "payment_selection.heading.credit_card": {
- "defaultMessage": "Cartão de crédito"
- },
- "payment_selection.tooltip.secure_payment": {
- "defaultMessage": "Este é um pagamento protegido com criptografia SSL."
- },
- "price_per_item.label.each": {
- "defaultMessage": "cada",
- "description": "Abbreviated 'each', follows price per item, like $10/ea"
- },
- "product_detail.accordion.button.product_detail": {
- "defaultMessage": "Detalhe do produto"
- },
- "product_detail.accordion.button.questions": {
- "defaultMessage": "Perguntas"
- },
- "product_detail.accordion.button.reviews": {
- "defaultMessage": "Avaliações"
- },
- "product_detail.accordion.button.size_fit": {
- "defaultMessage": "Tamanho"
- },
- "product_detail.accordion.message.coming_soon": {
- "defaultMessage": "Em breve"
- },
- "product_detail.recommended_products.title.complete_set": {
- "defaultMessage": "Completar o conjunto"
- },
- "product_detail.recommended_products.title.might_also_like": {
- "defaultMessage": "Talvez você também queira"
- },
- "product_detail.recommended_products.title.recently_viewed": {
- "defaultMessage": "Recentemente visualizados"
- },
- "product_item.label.quantity": {
- "defaultMessage": "Quantidade:"
- },
- "product_list.button.filter": {
- "defaultMessage": "Filtrar"
- },
- "product_list.button.sort_by": {
- "defaultMessage": "Ordenar por: {sortOption}"
- },
- "product_list.drawer.title.sort_by": {
- "defaultMessage": "Ordenar por"
- },
- "product_list.modal.button.clear_filters": {
- "defaultMessage": "Limpar filtros"
- },
- "product_list.modal.button.view_items": {
- "defaultMessage": "Ver {prroductCount} itens"
- },
- "product_list.modal.title.filter": {
- "defaultMessage": "Filtrar"
- },
- "product_list.refinements.button.assistive_msg.add_filter": {
- "defaultMessage": "Adicionar filtro: {label}"
- },
- "product_list.refinements.button.assistive_msg.add_filter_with_hit_count": {
- "defaultMessage": "Adicionar filtro: {label} ({hitCount})"
- },
- "product_list.refinements.button.assistive_msg.remove_filter": {
- "defaultMessage": "Remover filtro: {label}"
- },
- "product_list.refinements.button.assistive_msg.remove_filter_with_hit_count": {
- "defaultMessage": "Remover filtro: {label} ({hitCount})"
- },
- "product_list.select.sort_by": {
- "defaultMessage": "Ordenar por: {sortOption}"
- },
- "product_scroller.assistive_msg.scroll_left": {
- "defaultMessage": "Rolar os produtos para a esquerda"
- },
- "product_scroller.assistive_msg.scroll_right": {
- "defaultMessage": "Rolar os produtos para a direita"
- },
- "product_tile.assistive_msg.add_to_wishlist": {
- "defaultMessage": "Adicionar {product} à lista de desejos"
- },
- "product_tile.assistive_msg.remove_from_wishlist": {
- "defaultMessage": "Remover {product} da lista de desejos"
- },
- "product_tile.label.starting_at_price": {
- "defaultMessage": "A partir de {price}"
- },
- "product_view.button.add_set_to_cart": {
- "defaultMessage": "Adicionar conjunto ao carrinho"
- },
- "product_view.button.add_set_to_wishlist": {
- "defaultMessage": "Adicionar conjunto à lista de desejos"
- },
- "product_view.button.add_to_cart": {
- "defaultMessage": "Adicionar ao carrinho"
- },
- "product_view.button.add_to_wishlist": {
- "defaultMessage": "Adicionar à lista de desejos"
- },
- "product_view.button.update": {
- "defaultMessage": "Atualizar"
- },
- "product_view.label.assistive_msg.quantity_decrement": {
- "defaultMessage": "Quantidade de decremento"
- },
- "product_view.label.assistive_msg.quantity_increment": {
- "defaultMessage": "Quantidade de incremento"
- },
- "product_view.label.quantity": {
- "defaultMessage": "Quantidade"
- },
- "product_view.label.quantity_decrement": {
- "defaultMessage": "−"
- },
- "product_view.label.quantity_increment": {
- "defaultMessage": "+"
- },
- "product_view.label.starting_at_price": {
- "defaultMessage": "A partir de"
- },
- "product_view.label.variant_type": {
- "defaultMessage": "{variantType}"
- },
- "product_view.link.full_details": {
- "defaultMessage": "Ver detalhes completos"
- },
- "profile_card.info.profile_updated": {
- "defaultMessage": "Perfil atualizado"
- },
- "profile_card.label.email": {
- "defaultMessage": "E-mail"
- },
- "profile_card.label.full_name": {
- "defaultMessage": "Nome"
- },
- "profile_card.label.phone": {
- "defaultMessage": "Número de telefone"
- },
- "profile_card.message.not_provided": {
- "defaultMessage": "Não fornecido"
- },
- "profile_card.title.my_profile": {
- "defaultMessage": "Meu perfil"
- },
- "promo_code_fields.button.apply": {
- "defaultMessage": "Aplicar"
- },
- "promo_popover.assistive_msg.info": {
- "defaultMessage": "Informações"
- },
- "promo_popover.heading.promo_applied": {
- "defaultMessage": "Promoções aplicadas"
- },
- "promocode.accordion.button.have_promocode": {
- "defaultMessage": "Você tem um código promocional?"
- },
- "recent_searches.action.clear_searches": {
- "defaultMessage": "Apagar pesquisas recentes"
- },
- "recent_searches.heading.recent_searches": {
- "defaultMessage": "Pesquisas recentes"
- },
- "register_form.action.sign_in": {
- "defaultMessage": "Fazer logon"
- },
- "register_form.button.create_account": {
- "defaultMessage": "Criar conta"
- },
- "register_form.heading.lets_get_started": {
- "defaultMessage": "Vamos começar!"
- },
- "register_form.message.agree_to_policy_terms": {
- "defaultMessage": "Ao criar uma conta, você concorda com a Política de privacidade e os Termos e condições da Salesforce"
- },
- "register_form.message.already_have_account": {
- "defaultMessage": "Já tem uma conta?"
- },
- "register_form.message.create_an_account": {
- "defaultMessage": "Crie uma conta e tenha acesso aos melhores produtos, ideias e comunidade."
- },
- "reset_password.button.back_to_sign_in": {
- "defaultMessage": "Fazer login novamente"
- },
- "reset_password.info.receive_email_shortly": {
- "defaultMessage": "Em breve, você receberá um e-mail em {email} com um link para redefinir a senha."
- },
- "reset_password.title.password_reset": {
- "defaultMessage": "Redefinição de senha"
- },
- "reset_password_form.action.sign_in": {
- "defaultMessage": "Fazer logon"
- },
- "reset_password_form.button.reset_password": {
- "defaultMessage": "Redefinir senha"
- },
- "reset_password_form.message.enter_your_email": {
- "defaultMessage": "Digite seu e-mail para receber instruções sobre como redefinir sua senha"
- },
- "reset_password_form.message.return_to_sign_in": {
- "defaultMessage": "Ou voltar para",
- "description": "Precedes link to return to sign in"
- },
- "reset_password_form.title.reset_password": {
- "defaultMessage": "Redefinir senha"
- },
- "search.action.cancel": {
- "defaultMessage": "Cancelar"
- },
- "selected_refinements.action.assistive_msg.clear_all": {
- "defaultMessage": "Apagar todos os filtros"
- },
- "selected_refinements.action.clear_all": {
- "defaultMessage": "Apagar tudo"
- },
- "shipping_address.button.continue_to_shipping": {
- "defaultMessage": "Ir ao método de entrega"
- },
- "shipping_address.title.shipping_address": {
- "defaultMessage": "Endereço de entrega"
- },
- "shipping_address_edit_form.button.save_and_continue": {
- "defaultMessage": "Salvar e ir ao método de entrega"
- },
- "shipping_address_form.heading.edit_address": {
- "defaultMessage": "Editar endereço"
- },
- "shipping_address_form.heading.new_address": {
- "defaultMessage": "Adicionar novo endereço"
- },
- "shipping_address_selection.button.add_address": {
- "defaultMessage": "Adicionar novo endereço"
- },
- "shipping_address_selection.button.submit": {
- "defaultMessage": "Enviar"
- },
- "shipping_address_selection.title.add_address": {
- "defaultMessage": "Adicionar novo endereço"
- },
- "shipping_address_selection.title.edit_shipping": {
- "defaultMessage": "Editar endereço de entrega"
- },
- "shipping_options.action.send_as_a_gift": {
- "defaultMessage": "Deseja enviar esse item como presente?"
- },
- "shipping_options.button.continue_to_payment": {
- "defaultMessage": "Ir ao Pagamento"
- },
- "shipping_options.title.shipping_gift_options": {
- "defaultMessage": "Opções de frete e presente"
- },
- "signout_confirmation_dialog.button.cancel": {
- "defaultMessage": "Cancelar"
- },
- "signout_confirmation_dialog.button.sign_out": {
- "defaultMessage": "Fazer logoff"
- },
- "signout_confirmation_dialog.heading.sign_out": {
- "defaultMessage": "Fazer logoff"
- },
- "signout_confirmation_dialog.message.sure_to_sign_out": {
- "defaultMessage": "Tem certeza de que deseja fazer logout? Será preciso fazer logon novamente para dar continuidade ao seu pedido atual."
- },
- "swatch_group.selected.label": {
- "defaultMessage": "{label}:"
- },
- "toggle_card.action.edit": {
- "defaultMessage": "Editar"
- },
- "update_password_fields.button.forgot_password": {
- "defaultMessage": "Esqueceu a senha?"
- },
- "use_address_fields.error.please_enter_first_name": {
- "defaultMessage": "Insira seu nome."
- },
- "use_address_fields.error.please_enter_last_name": {
- "defaultMessage": "Insira seu sobrenome."
- },
- "use_address_fields.error.please_enter_phone_number": {
- "defaultMessage": "Insira seu telefone."
- },
- "use_address_fields.error.please_enter_your_postal_or_zip": {
- "defaultMessage": "Insira seu código postal."
- },
- "use_address_fields.error.please_select_your_address": {
- "defaultMessage": "Insira seu endereço."
- },
- "use_address_fields.error.please_select_your_city": {
- "defaultMessage": "Insira sua cidade."
- },
- "use_address_fields.error.please_select_your_country": {
- "defaultMessage": "Selecione o país."
- },
- "use_address_fields.error.please_select_your_state_or_province": {
- "defaultMessage": "Selecione estado/província."
- },
- "use_address_fields.error.required": {
- "defaultMessage": "Requerido"
- },
- "use_address_fields.error.state_code_invalid": {
- "defaultMessage": "Insira 2 letras para estado/município."
- },
- "use_address_fields.label.address": {
- "defaultMessage": "Endereço"
- },
- "use_address_fields.label.address_form": {
- "defaultMessage": "Formulário de endereço"
- },
- "use_address_fields.label.city": {
- "defaultMessage": "Cidade"
- },
- "use_address_fields.label.country": {
- "defaultMessage": "País"
- },
- "use_address_fields.label.first_name": {
- "defaultMessage": "Nome"
- },
- "use_address_fields.label.last_name": {
- "defaultMessage": "Sobrenome"
- },
- "use_address_fields.label.phone": {
- "defaultMessage": "Telefone"
- },
- "use_address_fields.label.postal_code": {
- "defaultMessage": "Código postal"
- },
- "use_address_fields.label.preferred": {
- "defaultMessage": "Definir como padrão"
- },
- "use_address_fields.label.province": {
- "defaultMessage": "Município"
- },
- "use_address_fields.label.state": {
- "defaultMessage": "Estado"
- },
- "use_address_fields.label.zipCode": {
- "defaultMessage": "Código postal"
- },
- "use_credit_card_fields.error.required": {
- "defaultMessage": "Requerido"
- },
- "use_credit_card_fields.error.required_card_number": {
- "defaultMessage": "Insira o número de seu cartão."
- },
- "use_credit_card_fields.error.required_expiry": {
- "defaultMessage": "Insira a data de expiração."
- },
- "use_credit_card_fields.error.required_name": {
- "defaultMessage": "Insira seu nome exatamente como aparece no cartão."
- },
- "use_credit_card_fields.error.required_security_code": {
- "defaultMessage": "Insira seu código de segurança."
- },
- "use_credit_card_fields.error.valid_card_number": {
- "defaultMessage": "Insira um número de cartão válido."
- },
- "use_credit_card_fields.error.valid_date": {
- "defaultMessage": "Insira uma data válida."
- },
- "use_credit_card_fields.error.valid_name": {
- "defaultMessage": "Insira um nome válido."
- },
- "use_credit_card_fields.error.valid_security_code": {
- "defaultMessage": "Insira um código de segurança válido."
- },
- "use_credit_card_fields.label.card_number": {
- "defaultMessage": "Número de cartão"
- },
- "use_credit_card_fields.label.card_type": {
- "defaultMessage": "Tipo de cartão"
- },
- "use_credit_card_fields.label.expiry": {
- "defaultMessage": "Data de expiração"
- },
- "use_credit_card_fields.label.name": {
- "defaultMessage": "Nome no cartão"
- },
- "use_credit_card_fields.label.security_code": {
- "defaultMessage": "Código de segurança"
- },
- "use_login_fields.error.required_email": {
- "defaultMessage": "Insira seu endereço de e-mail."
- },
- "use_login_fields.error.required_password": {
- "defaultMessage": "Insira sua senha."
- },
- "use_login_fields.label.email": {
- "defaultMessage": "E-mail"
- },
- "use_login_fields.label.password": {
- "defaultMessage": "Senha"
- },
- "use_product.message.inventory_remaining": {
- "defaultMessage": "Somente {stockLevel} restante(s)!"
- },
- "use_product.message.out_of_stock": {
- "defaultMessage": "Fora de estoque"
- },
- "use_profile_fields.error.required_email": {
- "defaultMessage": "Insira um endereço de e-mail válido."
- },
- "use_profile_fields.error.required_first_name": {
- "defaultMessage": "Insira seu nome."
- },
- "use_profile_fields.error.required_last_name": {
- "defaultMessage": "Insira seu sobrenome."
- },
- "use_profile_fields.error.required_phone": {
- "defaultMessage": "Insira seu telefone."
- },
- "use_profile_fields.label.email": {
- "defaultMessage": "E-mail"
- },
- "use_profile_fields.label.first_name": {
- "defaultMessage": "Nome"
- },
- "use_profile_fields.label.last_name": {
- "defaultMessage": "Sobrenome"
- },
- "use_profile_fields.label.phone": {
- "defaultMessage": "Número de telefone"
- },
- "use_promo_code_fields.error.required_promo_code": {
- "defaultMessage": "Forneça um código promocional válido."
- },
- "use_promo_code_fields.label.promo_code": {
- "defaultMessage": "Código promocional"
- },
- "use_promocode.error.check_the_code": {
- "defaultMessage": "Verifique o código e tente novamente. Talvez ele já tenha sido utilizado ou a promoção já não é mais válida."
- },
- "use_promocode.info.promo_applied": {
- "defaultMessage": "Promoção aplicada"
- },
- "use_promocode.info.promo_removed": {
- "defaultMessage": "Promoção removida"
- },
- "use_registration_fields.error.contain_number": {
- "defaultMessage": "A senha deve conter pelo menos 1 número."
- },
- "use_registration_fields.error.lowercase_letter": {
- "defaultMessage": "A senha deve conter pelo menos 1 letra minúscula."
- },
- "use_registration_fields.error.minimum_characters": {
- "defaultMessage": "A senha deve conter pelo menos 8 caracteres."
- },
- "use_registration_fields.error.required_email": {
- "defaultMessage": "Insira um endereço de e-mail válido."
- },
- "use_registration_fields.error.required_first_name": {
- "defaultMessage": "Insira seu nome."
- },
- "use_registration_fields.error.required_last_name": {
- "defaultMessage": "Insira seu sobrenome."
- },
- "use_registration_fields.error.required_password": {
- "defaultMessage": "Crie uma senha."
- },
- "use_registration_fields.error.special_character": {
- "defaultMessage": "A senha deve conter pelo menos 1 caractere especial."
- },
- "use_registration_fields.error.uppercase_letter": {
- "defaultMessage": "A senha deve conter pelo menos 1 letra maiúscula."
- },
- "use_registration_fields.label.email": {
- "defaultMessage": "E-mail"
- },
- "use_registration_fields.label.first_name": {
- "defaultMessage": "Nome"
- },
- "use_registration_fields.label.last_name": {
- "defaultMessage": "Sobrenome"
- },
- "use_registration_fields.label.password": {
- "defaultMessage": "Senha"
- },
- "use_registration_fields.label.sign_up_to_emails": {
- "defaultMessage": "Fazer o meu registro para receber e-mails da Salesforce (você pode cancelar sua inscrição quando quiser)"
- },
- "use_reset_password_fields.error.required_email": {
- "defaultMessage": "Insira um endereço de e-mail válido."
- },
- "use_reset_password_fields.label.email": {
- "defaultMessage": "E-mail"
- },
- "use_update_password_fields.error.contain_number": {
- "defaultMessage": "A senha deve conter pelo menos 1 número."
- },
- "use_update_password_fields.error.lowercase_letter": {
- "defaultMessage": "A senha deve conter pelo menos 1 letra minúscula."
- },
- "use_update_password_fields.error.minimum_characters": {
- "defaultMessage": "A senha deve conter pelo menos 8 caracteres."
- },
- "use_update_password_fields.error.required_new_password": {
- "defaultMessage": "Forneça uma nova senha."
- },
- "use_update_password_fields.error.required_password": {
- "defaultMessage": "Insira sua senha."
- },
- "use_update_password_fields.error.special_character": {
- "defaultMessage": "A senha deve conter pelo menos 1 caractere especial."
- },
- "use_update_password_fields.error.uppercase_letter": {
- "defaultMessage": "A senha deve conter pelo menos 1 letra maiúscula."
- },
- "use_update_password_fields.label.current_password": {
- "defaultMessage": "Senha atual"
- },
- "use_update_password_fields.label.new_password": {
- "defaultMessage": "Nova senha"
- },
- "wishlist_primary_action.button.add_set_to_cart": {
- "defaultMessage": "Adicionar conjunto ao carrinho"
- },
- "wishlist_primary_action.button.add_to_cart": {
- "defaultMessage": "Adicionar ao carrinho"
- },
- "wishlist_primary_action.button.view_full_details": {
- "defaultMessage": "Ver detalhes completos"
- },
- "wishlist_primary_action.button.view_options": {
- "defaultMessage": "Ver opções"
- },
- "wishlist_primary_action.info.added_to_cart": {
- "defaultMessage": "{quantity} {quantity, plural, one {item} other {itens}} adicionado(s) ao carrinho"
- },
- "wishlist_secondary_button_group.action.remove": {
- "defaultMessage": "Remover"
- },
- "wishlist_secondary_button_group.info.item_removed": {
- "defaultMessage": "Item removido da lista de desejos"
- },
- "with_registration.info.please_sign_in": {
- "defaultMessage": "Faça logon para continuar!"
- }
-}
diff --git a/packages/template-retail-react-app/translations/zh-CN.json b/packages/template-retail-react-app/translations/zh-CN.json
deleted file mode 100644
index dbd4f6d9d8..0000000000
--- a/packages/template-retail-react-app/translations/zh-CN.json
+++ /dev/null
@@ -1,1517 +0,0 @@
-{
- "account.accordion.button.my_account": {
- "defaultMessage": "我的账户"
- },
- "account.heading.my_account": {
- "defaultMessage": "我的账户"
- },
- "account.logout_button.button.log_out": {
- "defaultMessage": "登出"
- },
- "account_addresses.badge.default": {
- "defaultMessage": "默认"
- },
- "account_addresses.button.add_address": {
- "defaultMessage": "添加地址"
- },
- "account_addresses.info.address_removed": {
- "defaultMessage": "已删除地址"
- },
- "account_addresses.info.address_updated": {
- "defaultMessage": "已更新地址"
- },
- "account_addresses.info.new_address_saved": {
- "defaultMessage": "已保存新地址"
- },
- "account_addresses.page_action_placeholder.button.add_address": {
- "defaultMessage": "添加地址"
- },
- "account_addresses.page_action_placeholder.heading.no_saved_addresses": {
- "defaultMessage": "没有保存的地址"
- },
- "account_addresses.page_action_placeholder.message.add_new_address": {
- "defaultMessage": "添加新地址方式,加快结账速度。"
- },
- "account_addresses.title.addresses": {
- "defaultMessage": "地址"
- },
- "account_detail.title.account_details": {
- "defaultMessage": "账户详情"
- },
- "account_order_detail.heading.billing_address": {
- "defaultMessage": "账单地址"
- },
- "account_order_detail.heading.num_of_items": {
- "defaultMessage": "{count} 件商品"
- },
- "account_order_detail.heading.payment_method": {
- "defaultMessage": "付款方式"
- },
- "account_order_detail.heading.shipping_address": {
- "defaultMessage": "送货地址"
- },
- "account_order_detail.heading.shipping_method": {
- "defaultMessage": "送货方式"
- },
- "account_order_detail.label.order_number": {
- "defaultMessage": "订单编号:{orderNumber}"
- },
- "account_order_detail.label.ordered_date": {
- "defaultMessage": "下单日期:{date}"
- },
- "account_order_detail.label.pending_tracking_number": {
- "defaultMessage": "待处理"
- },
- "account_order_detail.label.tracking_number": {
- "defaultMessage": "跟踪编号"
- },
- "account_order_detail.link.back_to_history": {
- "defaultMessage": "返回订单记录"
- },
- "account_order_detail.shipping_status.not_shipped": {
- "defaultMessage": "未发货"
- },
- "account_order_detail.shipping_status.part_shipped": {
- "defaultMessage": "部分已发货"
- },
- "account_order_detail.shipping_status.shipped": {
- "defaultMessage": "已发货"
- },
- "account_order_detail.title.order_details": {
- "defaultMessage": "订单详情"
- },
- "account_order_history.button.continue_shopping": {
- "defaultMessage": "继续购物"
- },
- "account_order_history.description.once_you_place_order": {
- "defaultMessage": "下订单后,详细信息将显示在此处。"
- },
- "account_order_history.heading.no_order_yet": {
- "defaultMessage": "您尚未下订单。"
- },
- "account_order_history.label.num_of_items": {
- "defaultMessage": "{count} 件商品",
- "description": "Number of items in order"
- },
- "account_order_history.label.order_number": {
- "defaultMessage": "订单编号:{orderNumber}"
- },
- "account_order_history.label.ordered_date": {
- "defaultMessage": "下单日期:{date}"
- },
- "account_order_history.label.shipped_to": {
- "defaultMessage": "送货至:{name}"
- },
- "account_order_history.link.view_details": {
- "defaultMessage": "查看详情"
- },
- "account_order_history.title.order_history": {
- "defaultMessage": "订单记录"
- },
- "account_wishlist.button.continue_shopping": {
- "defaultMessage": "继续购物"
- },
- "account_wishlist.description.continue_shopping": {
- "defaultMessage": "继续购物并将商品加入愿望清单。"
- },
- "account_wishlist.heading.no_wishlist": {
- "defaultMessage": "没有愿望清单商品"
- },
- "account_wishlist.title.wishlist": {
- "defaultMessage": "愿望清单"
- },
- "action_card.action.edit": {
- "defaultMessage": "编辑"
- },
- "action_card.action.remove": {
- "defaultMessage": "移除"
- },
- "add_to_cart_modal.info.added_to_cart": {
- "defaultMessage": "{quantity} {quantity, plural, one { 件商品} other { 件商品}}已添加至购物车"
- },
- "add_to_cart_modal.label.cart_subtotal": {
- "defaultMessage": "购物车小计({itemAccumulatedCount} 件商品)"
- },
- "add_to_cart_modal.label.quantity": {
- "defaultMessage": "数量"
- },
- "add_to_cart_modal.link.checkout": {
- "defaultMessage": "继续以结账"
- },
- "add_to_cart_modal.link.view_cart": {
- "defaultMessage": "查看购物车"
- },
- "add_to_cart_modal.recommended_products.title.might_also_like": {
- "defaultMessage": "您可能还喜欢"
- },
- "auth_modal.button.close.assistive_msg": {
- "defaultMessage": "关闭登录表单"
- },
- "auth_modal.description.now_signed_in": {
- "defaultMessage": "您现在已登录。"
- },
- "auth_modal.error.incorrect_email_or_password": {
- "defaultMessage": "您的电子邮件或密码有问题。重试"
- },
- "auth_modal.info.welcome_user": {
- "defaultMessage": "欢迎 {name},"
- },
- "auth_modal.password_reset_success.button.back_to_sign_in": {
- "defaultMessage": "返回登录"
- },
- "auth_modal.password_reset_success.info.will_email_shortly": {
- "defaultMessage": "您将通过 {email} 收到包含重置密码链接的电子邮件。"
- },
- "auth_modal.password_reset_success.title.password_reset": {
- "defaultMessage": "密码重置"
- },
- "carousel.button.scroll_left.assistive_msg": {
- "defaultMessage": "向左滚动转盘"
- },
- "carousel.button.scroll_right.assistive_msg": {
- "defaultMessage": "向右滚动转盘"
- },
- "cart.info.removed_from_cart": {
- "defaultMessage": "从购物车中移除商品"
- },
- "cart.recommended_products.title.may_also_like": {
- "defaultMessage": "您可能还喜欢"
- },
- "cart.recommended_products.title.recently_viewed": {
- "defaultMessage": "最近查看"
- },
- "cart_cta.link.checkout": {
- "defaultMessage": "继续以结账"
- },
- "cart_secondary_button_group.action.added_to_wishlist": {
- "defaultMessage": "添加到愿望清单"
- },
- "cart_secondary_button_group.action.edit": {
- "defaultMessage": "编辑"
- },
- "cart_secondary_button_group.action.remove": {
- "defaultMessage": "移除"
- },
- "cart_secondary_button_group.label.this_is_gift": {
- "defaultMessage": "这是礼品。"
- },
- "cart_skeleton.heading.order_summary": {
- "defaultMessage": "订单摘要"
- },
- "cart_skeleton.title.cart": {
- "defaultMessage": "购物车"
- },
- "cart_title.title.cart_num_of_items": {
- "defaultMessage": "购物车({itemCount, plural, =0 {0 件商品} one {# 件商品} other {# 件商品}})"
- },
- "cc_radio_group.action.remove": {
- "defaultMessage": "移除"
- },
- "cc_radio_group.button.add_new_card": {
- "defaultMessage": "添加新卡"
- },
- "checkout.button.place_order": {
- "defaultMessage": "下订单"
- },
- "checkout.message.generic_error": {
- "defaultMessage": "结账时发生意外错误。"
- },
- "checkout_confirmation.button.create_account": {
- "defaultMessage": "创建账户"
- },
- "checkout_confirmation.heading.billing_address": {
- "defaultMessage": "账单地址"
- },
- "checkout_confirmation.heading.create_account": {
- "defaultMessage": "创建账户,加快结账速度"
- },
- "checkout_confirmation.heading.credit_card": {
- "defaultMessage": "信用卡"
- },
- "checkout_confirmation.heading.delivery_details": {
- "defaultMessage": "交货详情"
- },
- "checkout_confirmation.heading.order_summary": {
- "defaultMessage": "订单摘要"
- },
- "checkout_confirmation.heading.payment_details": {
- "defaultMessage": "付款详情"
- },
- "checkout_confirmation.heading.shipping_address": {
- "defaultMessage": "送货地址"
- },
- "checkout_confirmation.heading.shipping_method": {
- "defaultMessage": "送货方式"
- },
- "checkout_confirmation.heading.thank_you_for_order": {
- "defaultMessage": "感谢您订购商品!"
- },
- "checkout_confirmation.label.free": {
- "defaultMessage": "免费"
- },
- "checkout_confirmation.label.order_number": {
- "defaultMessage": "订单编号"
- },
- "checkout_confirmation.label.order_total": {
- "defaultMessage": "订单总额"
- },
- "checkout_confirmation.label.promo_applied": {
- "defaultMessage": "已应用促销"
- },
- "checkout_confirmation.label.shipping": {
- "defaultMessage": "送货"
- },
- "checkout_confirmation.label.subtotal": {
- "defaultMessage": "小计"
- },
- "checkout_confirmation.label.tax": {
- "defaultMessage": "税项"
- },
- "checkout_confirmation.link.continue_shopping": {
- "defaultMessage": "继续购物"
- },
- "checkout_confirmation.link.login": {
- "defaultMessage": "在此处登录"
- },
- "checkout_confirmation.message.already_has_account": {
- "defaultMessage": "此电子邮件地址已注册账户。"
- },
- "checkout_confirmation.message.num_of_items_in_order": {
- "defaultMessage": "{itemCount, plural, =0 {0 件商品} one {# 件商品} other {# 件商品}}",
- "description": "# item(s) in order"
- },
- "checkout_confirmation.message.will_email_shortly": {
- "defaultMessage": "我们会尽快向 {email} 发送带有您的确认号码和收据的电子邮件。"
- },
- "checkout_footer.link.privacy_policy": {
- "defaultMessage": "隐私政策"
- },
- "checkout_footer.link.returns_exchanges": {
- "defaultMessage": "退货与换货"
- },
- "checkout_footer.link.shipping": {
- "defaultMessage": "送货"
- },
- "checkout_footer.link.site_map": {
- "defaultMessage": "站点地图"
- },
- "checkout_footer.link.terms_conditions": {
- "defaultMessage": "条款与条件"
- },
- "checkout_footer.message.copyright": {
- "defaultMessage": "Salesforce 或其附属公司。保留所有权利。此仅为示范商店。所下订单不会被处理。"
- },
- "checkout_header.link.assistive_msg.cart": {
- "defaultMessage": "返回购物车,商品数量:{numItems}"
- },
- "checkout_header.link.cart": {
- "defaultMessage": "返回购物车"
- },
- "checkout_payment.action.remove": {
- "defaultMessage": "移除"
- },
- "checkout_payment.button.review_order": {
- "defaultMessage": "检查订单"
- },
- "checkout_payment.heading.billing_address": {
- "defaultMessage": "账单地址"
- },
- "checkout_payment.heading.credit_card": {
- "defaultMessage": "信用卡"
- },
- "checkout_payment.label.same_as_shipping": {
- "defaultMessage": "与送货地址相同"
- },
- "checkout_payment.title.payment": {
- "defaultMessage": "付款"
- },
- "colorRefinements.label.hitCount": {
- "defaultMessage": "{colorLabel} ({colorHitCount})"
- },
- "confirmation_modal.default.action.no": {
- "defaultMessage": "否"
- },
- "confirmation_modal.default.action.yes": {
- "defaultMessage": "是"
- },
- "confirmation_modal.default.message.you_want_to_continue": {
- "defaultMessage": "是否确定要继续?"
- },
- "confirmation_modal.default.title.confirm_action": {
- "defaultMessage": "确认操作"
- },
- "confirmation_modal.remove_cart_item.action.no": {
- "defaultMessage": "否,保留商品"
- },
- "confirmation_modal.remove_cart_item.action.remove": {
- "defaultMessage": "移除"
- },
- "confirmation_modal.remove_cart_item.action.yes": {
- "defaultMessage": "是,移除商品"
- },
- "confirmation_modal.remove_cart_item.message.need_to_remove_due_to_unavailability": {
- "defaultMessage": "某些商品不再在线销售,并将从您的购物车中删除。"
- },
- "confirmation_modal.remove_cart_item.message.sure_to_remove": {
- "defaultMessage": "是否确定要从购物车移除此商品?"
- },
- "confirmation_modal.remove_cart_item.title.confirm_remove": {
- "defaultMessage": "确认移除商品"
- },
- "confirmation_modal.remove_cart_item.title.items_unavailable": {
- "defaultMessage": "商品缺货"
- },
- "confirmation_modal.remove_wishlist_item.action.no": {
- "defaultMessage": "否,保留商品"
- },
- "confirmation_modal.remove_wishlist_item.action.yes": {
- "defaultMessage": "是,移除商品"
- },
- "confirmation_modal.remove_wishlist_item.message.sure_to_remove": {
- "defaultMessage": "是否确定要从愿望清单移除此商品?"
- },
- "confirmation_modal.remove_wishlist_item.title.confirm_remove": {
- "defaultMessage": "确认移除商品"
- },
- "contact_info.action.sign_out": {
- "defaultMessage": "注销"
- },
- "contact_info.button.already_have_account": {
- "defaultMessage": "已有账户?登录"
- },
- "contact_info.button.checkout_as_guest": {
- "defaultMessage": "以访客身份结账"
- },
- "contact_info.button.login": {
- "defaultMessage": "登录"
- },
- "contact_info.error.incorrect_username_or_password": {
- "defaultMessage": "用户名或密码错误,请重试。"
- },
- "contact_info.link.forgot_password": {
- "defaultMessage": "忘记密码?"
- },
- "contact_info.title.contact_info": {
- "defaultMessage": "联系信息"
- },
- "credit_card_fields.tool_tip.security_code": {
- "defaultMessage": "此 3 位数字码可以在卡的背面找到。",
- "description": "Generic credit card security code help text"
- },
- "credit_card_fields.tool_tip.security_code.american_express": {
- "defaultMessage": "此 4 位数字码可以在卡的正找到。",
- "description": "American Express security code help text"
- },
- "credit_card_fields.tool_tip.security_code_aria_label": {
- "defaultMessage": "安全码信息"
- },
- "drawer_menu.button.account_details": {
- "defaultMessage": "账户详情"
- },
- "drawer_menu.button.addresses": {
- "defaultMessage": "地址"
- },
- "drawer_menu.button.log_out": {
- "defaultMessage": "登出"
- },
- "drawer_menu.button.my_account": {
- "defaultMessage": "我的账户"
- },
- "drawer_menu.button.order_history": {
- "defaultMessage": "订单记录"
- },
- "drawer_menu.link.about_us": {
- "defaultMessage": "关于我们"
- },
- "drawer_menu.link.customer_support": {
- "defaultMessage": "客户支持"
- },
- "drawer_menu.link.customer_support.contact_us": {
- "defaultMessage": "联系我们"
- },
- "drawer_menu.link.customer_support.shipping_and_returns": {
- "defaultMessage": "送货与退货"
- },
- "drawer_menu.link.our_company": {
- "defaultMessage": "我们的公司"
- },
- "drawer_menu.link.privacy_and_security": {
- "defaultMessage": "隐私及安全"
- },
- "drawer_menu.link.privacy_policy": {
- "defaultMessage": "隐私政策"
- },
- "drawer_menu.link.shop_all": {
- "defaultMessage": "购买全部"
- },
- "drawer_menu.link.sign_in": {
- "defaultMessage": "登录"
- },
- "drawer_menu.link.site_map": {
- "defaultMessage": "站点地图"
- },
- "drawer_menu.link.store_locator": {
- "defaultMessage": "实体店地址搜索"
- },
- "drawer_menu.link.terms_and_conditions": {
- "defaultMessage": "条款与条件"
- },
- "empty_cart.description.empty_cart": {
- "defaultMessage": "购物车内没有商品。"
- },
- "empty_cart.link.continue_shopping": {
- "defaultMessage": "继续购物"
- },
- "empty_cart.link.sign_in": {
- "defaultMessage": "登录"
- },
- "empty_cart.message.continue_shopping": {
- "defaultMessage": "继续购物并将商品加入购物车。"
- },
- "empty_cart.message.sign_in_or_continue_shopping": {
- "defaultMessage": "登录以检索您保存的商品或继续购物。"
- },
- "empty_search_results.info.cant_find_anything_for_category": {
- "defaultMessage": "我们找不到{category}的任何内容。尝试搜索产品或{link}。"
- },
- "empty_search_results.info.cant_find_anything_for_query": {
- "defaultMessage": "我们找不到“{searchQuery}”的任何内容。"
- },
- "empty_search_results.info.double_check_spelling": {
- "defaultMessage": "请仔细检查您的拼写并重试或{link}。"
- },
- "empty_search_results.link.contact_us": {
- "defaultMessage": "联系我们"
- },
- "empty_search_results.recommended_products.title.most_viewed": {
- "defaultMessage": "查看最多的商品"
- },
- "empty_search_results.recommended_products.title.top_sellers": {
- "defaultMessage": "最畅销"
- },
- "field.password.assistive_msg.hide_password": {
- "defaultMessage": "隐藏密码"
- },
- "field.password.assistive_msg.show_password": {
- "defaultMessage": "显示密码"
- },
- "footer.column.account": {
- "defaultMessage": "账户"
- },
- "footer.column.customer_support": {
- "defaultMessage": "客户支持"
- },
- "footer.column.our_company": {
- "defaultMessage": "我们的公司"
- },
- "footer.link.about_us": {
- "defaultMessage": "关于我们"
- },
- "footer.link.contact_us": {
- "defaultMessage": "联系我们"
- },
- "footer.link.order_status": {
- "defaultMessage": "订单状态"
- },
- "footer.link.privacy_policy": {
- "defaultMessage": "隐私政策"
- },
- "footer.link.shipping": {
- "defaultMessage": "送货"
- },
- "footer.link.signin_create_account": {
- "defaultMessage": "登录或创建账户"
- },
- "footer.link.site_map": {
- "defaultMessage": "站点地图"
- },
- "footer.link.store_locator": {
- "defaultMessage": "实体店地址搜索"
- },
- "footer.link.terms_conditions": {
- "defaultMessage": "条款与条件"
- },
- "footer.message.copyright": {
- "defaultMessage": "Salesforce 或其附属公司。保留所有权利。此仅为示范商店。所下订单不会被处理。"
- },
- "footer.subscribe.button.sign_up": {
- "defaultMessage": "注册"
- },
- "footer.subscribe.description.sign_up": {
- "defaultMessage": "注册以随时了解最热门的交易"
- },
- "footer.subscribe.heading.first_to_know": {
- "defaultMessage": "率先了解"
- },
- "form_action_buttons.button.cancel": {
- "defaultMessage": "取消"
- },
- "form_action_buttons.button.save": {
- "defaultMessage": "保存"
- },
- "global.account.link.account_details": {
- "defaultMessage": "账户详情"
- },
- "global.account.link.addresses": {
- "defaultMessage": "地址"
- },
- "global.account.link.order_history": {
- "defaultMessage": "订单记录"
- },
- "global.account.link.wishlist": {
- "defaultMessage": "愿望清单"
- },
- "global.error.something_went_wrong": {
- "defaultMessage": "出现错误。重试。"
- },
- "global.info.added_to_wishlist": {
- "defaultMessage": "{quantity} {quantity, plural, one { 件商品} other { 件商品}}已添加至愿望清单"
- },
- "global.info.already_in_wishlist": {
- "defaultMessage": "商品已在愿望清单中"
- },
- "global.info.removed_from_wishlist": {
- "defaultMessage": "从愿望清单中移除商品"
- },
- "global.link.added_to_wishlist.view_wishlist": {
- "defaultMessage": "查看"
- },
- "header.button.assistive_msg.logo": {
- "defaultMessage": "标志"
- },
- "header.button.assistive_msg.menu": {
- "defaultMessage": "菜单"
- },
- "header.button.assistive_msg.my_account": {
- "defaultMessage": "我的账户"
- },
- "header.button.assistive_msg.my_account_menu": {
- "defaultMessage": "打开账户菜单"
- },
- "header.button.assistive_msg.my_cart_with_num_items": {
- "defaultMessage": "我的购物车,商品数量:{numItems}"
- },
- "header.button.assistive_msg.wishlist": {
- "defaultMessage": "愿望清单"
- },
- "header.field.placeholder.search_for_products": {
- "defaultMessage": "搜索产品..."
- },
- "header.popover.action.log_out": {
- "defaultMessage": "登出"
- },
- "header.popover.title.my_account": {
- "defaultMessage": "我的账户"
- },
- "home.description.features": {
- "defaultMessage": "开箱即用的功能,让您只需专注于添加增强功能。"
- },
- "home.description.here_to_help": {
- "defaultMessage": "联系我们的支持人员。"
- },
- "home.description.here_to_help_line_2": {
- "defaultMessage": "他们将向您提供适当指导。"
- },
- "home.description.shop_products": {
- "defaultMessage": "本节包含目录中的内容。{docLink}了解如何进行更换。",
- "description": "{docLink} is a html button that links the user to https://sfdc.co/business-manager-manage-catalogs"
- },
- "home.features.description.cart_checkout": {
- "defaultMessage": "购物者购物车和结账体验的电子商务最佳实践。"
- },
- "home.features.description.components": {
- "defaultMessage": "使用 Chakra UI 构建,Chakra UI 是一个简单、模块化且可访问的 React 组件库。"
- },
- "home.features.description.einstein_recommendations": {
- "defaultMessage": "通过产品推荐向每位购物者提供下一个最佳产品或优惠。"
- },
- "home.features.description.my_account": {
- "defaultMessage": "购物者可以管理账户信息,例如个人概况、地址、付款和订单。"
- },
- "home.features.description.shopper_login": {
- "defaultMessage": "使购物者能够轻松登录并获得更加个性化的购物体验。"
- },
- "home.features.description.wishlist": {
- "defaultMessage": "已注册的购物者可以将产品添加到愿望清单,以便日后购买。"
- },
- "home.features.heading.cart_checkout": {
- "defaultMessage": "购物车和结账"
- },
- "home.features.heading.components": {
- "defaultMessage": "组件和设计套件"
- },
- "home.features.heading.einstein_recommendations": {
- "defaultMessage": "Einstein 推荐"
- },
- "home.features.heading.my_account": {
- "defaultMessage": "我的账户"
- },
- "home.features.heading.shopper_login": {
- "defaultMessage": "Shopper Login and API Access Service (SLAS)"
- },
- "home.features.heading.wishlist": {
- "defaultMessage": "愿望清单"
- },
- "home.heading.features": {
- "defaultMessage": "功能"
- },
- "home.heading.here_to_help": {
- "defaultMessage": "我们随时提供帮助"
- },
- "home.heading.shop_products": {
- "defaultMessage": "购买产品"
- },
- "home.hero_features.link.design_kit": {
- "defaultMessage": "采用 Figma PWA Design Kit 创建"
- },
- "home.hero_features.link.on_github": {
- "defaultMessage": "在 Github 下载"
- },
- "home.hero_features.link.on_managed_runtime": {
- "defaultMessage": "在 Managed Runtime 中部署"
- },
- "home.link.contact_us": {
- "defaultMessage": "联系我们"
- },
- "home.link.get_started": {
- "defaultMessage": "入门指南"
- },
- "home.link.read_docs": {
- "defaultMessage": "阅读文档"
- },
- "home.title.react_starter_store": {
- "defaultMessage": "零售 React PWA Starter Store"
- },
- "icons.assistive_msg.lock": {
- "defaultMessage": "安全"
- },
- "item_attributes.label.promotions": {
- "defaultMessage": "促销"
- },
- "item_attributes.label.quantity": {
- "defaultMessage": "数量:{quantity}"
- },
- "item_image.label.sale": {
- "defaultMessage": "销售",
- "description": "A sale badge placed on top of a product image"
- },
- "item_image.label.unavailable": {
- "defaultMessage": "不可用",
- "description": "A unavailable badge placed on top of a product image"
- },
- "item_price.label.starting_at": {
- "defaultMessage": "起价:"
- },
- "lCPCxk": {
- "defaultMessage": "请在上方选择您的所有选项"
- },
- "list_menu.nav.assistive_msg": {
- "defaultMessage": "主导航"
- },
- "locale_text.message.ar-SA": {
- "defaultMessage": "阿拉伯语(沙特阿拉伯)"
- },
- "locale_text.message.bn-BD": {
- "defaultMessage": "孟加拉语(孟加拉国)"
- },
- "locale_text.message.bn-IN": {
- "defaultMessage": "孟加拉语(印度)"
- },
- "locale_text.message.cs-CZ": {
- "defaultMessage": "捷克语(捷克共和国)"
- },
- "locale_text.message.da-DK": {
- "defaultMessage": "丹麦语(丹麦)"
- },
- "locale_text.message.de-AT": {
- "defaultMessage": "德语(奥地利)"
- },
- "locale_text.message.de-CH": {
- "defaultMessage": "德语(瑞士)"
- },
- "locale_text.message.de-DE": {
- "defaultMessage": "德语(德国)"
- },
- "locale_text.message.el-GR": {
- "defaultMessage": "希腊语(希腊)"
- },
- "locale_text.message.en-AU": {
- "defaultMessage": "英语(澳大利亚)"
- },
- "locale_text.message.en-CA": {
- "defaultMessage": "英语(加拿大)"
- },
- "locale_text.message.en-GB": {
- "defaultMessage": "英语(英国)"
- },
- "locale_text.message.en-IE": {
- "defaultMessage": "英语(爱尔兰)"
- },
- "locale_text.message.en-IN": {
- "defaultMessage": "英语(印度)"
- },
- "locale_text.message.en-NZ": {
- "defaultMessage": "英语(新西兰)"
- },
- "locale_text.message.en-US": {
- "defaultMessage": "英语(美国)"
- },
- "locale_text.message.en-ZA": {
- "defaultMessage": "英语(南非)"
- },
- "locale_text.message.es-AR": {
- "defaultMessage": "西班牙语(阿根廷)"
- },
- "locale_text.message.es-CL": {
- "defaultMessage": "西班牙语(智利)"
- },
- "locale_text.message.es-CO": {
- "defaultMessage": "西班牙语(哥伦比亚)"
- },
- "locale_text.message.es-ES": {
- "defaultMessage": "西班牙语(西班牙)"
- },
- "locale_text.message.es-MX": {
- "defaultMessage": "西班牙语(墨西哥)"
- },
- "locale_text.message.es-US": {
- "defaultMessage": "西班牙语(美国)"
- },
- "locale_text.message.fi-FI": {
- "defaultMessage": "芬兰语(芬兰)"
- },
- "locale_text.message.fr-BE": {
- "defaultMessage": "法语(比利时)"
- },
- "locale_text.message.fr-CA": {
- "defaultMessage": "法语(加拿大)"
- },
- "locale_text.message.fr-CH": {
- "defaultMessage": "法语(瑞士)"
- },
- "locale_text.message.fr-FR": {
- "defaultMessage": "法语(法国)"
- },
- "locale_text.message.he-IL": {
- "defaultMessage": "希伯来语(以色列)"
- },
- "locale_text.message.hi-IN": {
- "defaultMessage": "印地语(印度)"
- },
- "locale_text.message.hu-HU": {
- "defaultMessage": "匈牙利语(匈牙利)"
- },
- "locale_text.message.id-ID": {
- "defaultMessage": "印尼语(印度尼西亚)"
- },
- "locale_text.message.it-CH": {
- "defaultMessage": "意大利语(瑞士)"
- },
- "locale_text.message.it-IT": {
- "defaultMessage": "意大利语(意大利)"
- },
- "locale_text.message.ja-JP": {
- "defaultMessage": "日语(日本)"
- },
- "locale_text.message.ko-KR": {
- "defaultMessage": "韩语(韩国)"
- },
- "locale_text.message.nl-BE": {
- "defaultMessage": "荷兰语(比利时)"
- },
- "locale_text.message.nl-NL": {
- "defaultMessage": "荷兰语(荷兰)"
- },
- "locale_text.message.no-NO": {
- "defaultMessage": "挪威语(挪威)"
- },
- "locale_text.message.pl-PL": {
- "defaultMessage": "波兰语(波兰)"
- },
- "locale_text.message.pt-BR": {
- "defaultMessage": "葡萄牙语(巴西)"
- },
- "locale_text.message.pt-PT": {
- "defaultMessage": "葡萄牙语(葡萄牙)"
- },
- "locale_text.message.ro-RO": {
- "defaultMessage": "罗马尼亚语(罗马尼亚)"
- },
- "locale_text.message.ru-RU": {
- "defaultMessage": "俄语(俄罗斯联邦)"
- },
- "locale_text.message.sk-SK": {
- "defaultMessage": "斯洛伐克语(斯洛伐克)"
- },
- "locale_text.message.sv-SE": {
- "defaultMessage": "瑞典语(瑞典)"
- },
- "locale_text.message.ta-IN": {
- "defaultMessage": "泰米尔语(印度)"
- },
- "locale_text.message.ta-LK": {
- "defaultMessage": "泰米尔语(斯里兰卡)"
- },
- "locale_text.message.th-TH": {
- "defaultMessage": "泰语(泰国)"
- },
- "locale_text.message.tr-TR": {
- "defaultMessage": "土耳其语(土耳其)"
- },
- "locale_text.message.zh-CN": {
- "defaultMessage": "中文(中国)"
- },
- "locale_text.message.zh-HK": {
- "defaultMessage": "中文(香港)"
- },
- "locale_text.message.zh-TW": {
- "defaultMessage": "中文(台湾)"
- },
- "login_form.action.create_account": {
- "defaultMessage": "创建账户"
- },
- "login_form.button.sign_in": {
- "defaultMessage": "登录"
- },
- "login_form.link.forgot_password": {
- "defaultMessage": "忘记密码?"
- },
- "login_form.message.dont_have_account": {
- "defaultMessage": "没有账户?"
- },
- "login_form.message.welcome_back": {
- "defaultMessage": "欢迎回来"
- },
- "login_page.error.incorrect_username_or_password": {
- "defaultMessage": "用户名或密码错误,请重试。"
- },
- "offline_banner.description.browsing_offline_mode": {
- "defaultMessage": "您正在离线模式下浏览"
- },
- "order_summary.action.remove_promo": {
- "defaultMessage": "移除"
- },
- "order_summary.cart_items.action.num_of_items_in_cart": {
- "defaultMessage": "购物车内有 {itemCount, plural, =0 {0 件商品} one {# 件商品} other {# 件商品}}",
- "description": "clicking it would expand/show the items in cart"
- },
- "order_summary.cart_items.link.edit_cart": {
- "defaultMessage": "编辑购物车"
- },
- "order_summary.heading.order_summary": {
- "defaultMessage": "订单摘要"
- },
- "order_summary.label.estimated_total": {
- "defaultMessage": "预计总数"
- },
- "order_summary.label.free": {
- "defaultMessage": "免费"
- },
- "order_summary.label.order_total": {
- "defaultMessage": "订单总额"
- },
- "order_summary.label.promo_applied": {
- "defaultMessage": "已应用促销"
- },
- "order_summary.label.promotions_applied": {
- "defaultMessage": "已应用促销"
- },
- "order_summary.label.shipping": {
- "defaultMessage": "送货"
- },
- "order_summary.label.subtotal": {
- "defaultMessage": "小计"
- },
- "order_summary.label.tax": {
- "defaultMessage": "税项"
- },
- "page_not_found.action.go_back": {
- "defaultMessage": "返回上一页"
- },
- "page_not_found.link.homepage": {
- "defaultMessage": "返回主页"
- },
- "page_not_found.message.suggestion_to_try": {
- "defaultMessage": "请尝试重新输入地址、返回上一页或返回主页。"
- },
- "page_not_found.title.page_cant_be_found": {
- "defaultMessage": "找不到您要查找的页面。"
- },
- "pagination.field.num_of_pages": {
- "defaultMessage": "/ {numOfPages}"
- },
- "pagination.link.next": {
- "defaultMessage": "下一步"
- },
- "pagination.link.next.assistive_msg": {
- "defaultMessage": "下一页"
- },
- "pagination.link.prev": {
- "defaultMessage": "上一步"
- },
- "pagination.link.prev.assistive_msg": {
- "defaultMessage": "上一页"
- },
- "password_card.info.password_updated": {
- "defaultMessage": "密码已更新"
- },
- "password_card.label.password": {
- "defaultMessage": "密码"
- },
- "password_card.title.password": {
- "defaultMessage": "密码"
- },
- "password_requirements.error.eight_letter_minimum": {
- "defaultMessage": "最短 8 个字符",
- "description": "Password requirement"
- },
- "password_requirements.error.one_lowercase_letter": {
- "defaultMessage": "1 个小写字母",
- "description": "Password requirement"
- },
- "password_requirements.error.one_number": {
- "defaultMessage": "1 个数字",
- "description": "Password requirement"
- },
- "password_requirements.error.one_special_character": {
- "defaultMessage": "1 个特殊字符(例如:, S ! %)",
- "description": "Password requirement"
- },
- "password_requirements.error.one_uppercase_letter": {
- "defaultMessage": "1 个大写字母",
- "description": "Password requirement"
- },
- "payment_selection.heading.credit_card": {
- "defaultMessage": "信用卡"
- },
- "payment_selection.tooltip.secure_payment": {
- "defaultMessage": "这是一种安全的 SSL 加密支付。"
- },
- "price_per_item.label.each": {
- "defaultMessage": "每件",
- "description": "Abbreviated 'each', follows price per item, like $10/ea"
- },
- "product_detail.accordion.button.product_detail": {
- "defaultMessage": "产品详情"
- },
- "product_detail.accordion.button.questions": {
- "defaultMessage": "问题"
- },
- "product_detail.accordion.button.reviews": {
- "defaultMessage": "点评"
- },
- "product_detail.accordion.button.size_fit": {
- "defaultMessage": "尺寸与合身"
- },
- "product_detail.accordion.message.coming_soon": {
- "defaultMessage": "即将到货"
- },
- "product_detail.recommended_products.title.complete_set": {
- "defaultMessage": "Complete the Set(完成组合)"
- },
- "product_detail.recommended_products.title.might_also_like": {
- "defaultMessage": "您可能还喜欢"
- },
- "product_detail.recommended_products.title.recently_viewed": {
- "defaultMessage": "最近查看"
- },
- "product_item.label.quantity": {
- "defaultMessage": "数量:"
- },
- "product_list.button.filter": {
- "defaultMessage": "筛选器"
- },
- "product_list.button.sort_by": {
- "defaultMessage": "排序标准:{sortOption}"
- },
- "product_list.drawer.title.sort_by": {
- "defaultMessage": "排序标准"
- },
- "product_list.modal.button.clear_filters": {
- "defaultMessage": "清除筛选器"
- },
- "product_list.modal.button.view_items": {
- "defaultMessage": "查看 {prroductCount} 件商品"
- },
- "product_list.modal.title.filter": {
- "defaultMessage": "筛选器"
- },
- "product_list.refinements.button.assistive_msg.add_filter": {
- "defaultMessage": "添加筛选器:{label}"
- },
- "product_list.refinements.button.assistive_msg.add_filter_with_hit_count": {
- "defaultMessage": "添加筛选器:{label} ({hitCount})"
- },
- "product_list.refinements.button.assistive_msg.remove_filter": {
- "defaultMessage": "删除筛选器:{label}"
- },
- "product_list.refinements.button.assistive_msg.remove_filter_with_hit_count": {
- "defaultMessage": "删除筛选器:{label} ({hitCount})"
- },
- "product_list.select.sort_by": {
- "defaultMessage": "排序标准:{sortOption}"
- },
- "product_scroller.assistive_msg.scroll_left": {
- "defaultMessage": "向左滚动产品"
- },
- "product_scroller.assistive_msg.scroll_right": {
- "defaultMessage": "向右滚动产品"
- },
- "product_tile.assistive_msg.add_to_wishlist": {
- "defaultMessage": "添加 {product} 到愿望清单"
- },
- "product_tile.assistive_msg.remove_from_wishlist": {
- "defaultMessage": "从愿望清单删除 {product}"
- },
- "product_tile.label.starting_at_price": {
- "defaultMessage": "起价:{price}"
- },
- "product_view.button.add_set_to_cart": {
- "defaultMessage": "将套装添加到购物车"
- },
- "product_view.button.add_set_to_wishlist": {
- "defaultMessage": "将套装添加到愿望清单"
- },
- "product_view.button.add_to_cart": {
- "defaultMessage": "添加到购物车"
- },
- "product_view.button.add_to_wishlist": {
- "defaultMessage": "添加到愿望清单"
- },
- "product_view.button.update": {
- "defaultMessage": "更新"
- },
- "product_view.label.assistive_msg.quantity_decrement": {
- "defaultMessage": "递减数量"
- },
- "product_view.label.assistive_msg.quantity_increment": {
- "defaultMessage": "递增数量"
- },
- "product_view.label.quantity": {
- "defaultMessage": "数量"
- },
- "product_view.label.quantity_decrement": {
- "defaultMessage": "−"
- },
- "product_view.label.quantity_increment": {
- "defaultMessage": "+"
- },
- "product_view.label.starting_at_price": {
- "defaultMessage": "起价:"
- },
- "product_view.label.variant_type": {
- "defaultMessage": "{variantType}"
- },
- "product_view.link.full_details": {
- "defaultMessage": "查看完整详情"
- },
- "profile_card.info.profile_updated": {
- "defaultMessage": "已更新概况"
- },
- "profile_card.label.email": {
- "defaultMessage": "电子邮件"
- },
- "profile_card.label.full_name": {
- "defaultMessage": "全名"
- },
- "profile_card.label.phone": {
- "defaultMessage": "电话号码"
- },
- "profile_card.message.not_provided": {
- "defaultMessage": "未提供"
- },
- "profile_card.title.my_profile": {
- "defaultMessage": "我的概况"
- },
- "promo_code_fields.button.apply": {
- "defaultMessage": "确定"
- },
- "promo_popover.assistive_msg.info": {
- "defaultMessage": "Info"
- },
- "promo_popover.heading.promo_applied": {
- "defaultMessage": "已应用促销"
- },
- "promocode.accordion.button.have_promocode": {
- "defaultMessage": "您是否有促销码?"
- },
- "recent_searches.action.clear_searches": {
- "defaultMessage": "清除最近搜索"
- },
- "recent_searches.heading.recent_searches": {
- "defaultMessage": "最近搜索"
- },
- "register_form.action.sign_in": {
- "defaultMessage": "登录"
- },
- "register_form.button.create_account": {
- "defaultMessage": "创建账户"
- },
- "register_form.heading.lets_get_started": {
- "defaultMessage": "开始使用!"
- },
- "register_form.message.agree_to_policy_terms": {
- "defaultMessage": "创建账户即表明您同意 Salesforce 隐私政策 以及条款与条件 "
- },
- "register_form.message.already_have_account": {
- "defaultMessage": "已有账户?"
- },
- "register_form.message.create_an_account": {
- "defaultMessage": "创建账户并首先查看最佳产品、妙招和虚拟社区。"
- },
- "reset_password.button.back_to_sign_in": {
- "defaultMessage": "返回登录"
- },
- "reset_password.info.receive_email_shortly": {
- "defaultMessage": "您将通过 {email} 收到包含重置密码链接的电子邮件。"
- },
- "reset_password.title.password_reset": {
- "defaultMessage": "密码重置"
- },
- "reset_password_form.action.sign_in": {
- "defaultMessage": "登录"
- },
- "reset_password_form.button.reset_password": {
- "defaultMessage": "重置密码"
- },
- "reset_password_form.message.enter_your_email": {
- "defaultMessage": "进入您的电子邮件,获取重置密码说明"
- },
- "reset_password_form.message.return_to_sign_in": {
- "defaultMessage": "或返回",
- "description": "Precedes link to return to sign in"
- },
- "reset_password_form.title.reset_password": {
- "defaultMessage": "重置密码"
- },
- "search.action.cancel": {
- "defaultMessage": "取消"
- },
- "selected_refinements.action.assistive_msg.clear_all": {
- "defaultMessage": "清除所有筛选器"
- },
- "selected_refinements.action.clear_all": {
- "defaultMessage": "全部清除"
- },
- "shipping_address.button.continue_to_shipping": {
- "defaultMessage": "继续并选择送货方式"
- },
- "shipping_address.title.shipping_address": {
- "defaultMessage": "送货地址"
- },
- "shipping_address_edit_form.button.save_and_continue": {
- "defaultMessage": "保存并继续选择送货方式"
- },
- "shipping_address_form.heading.edit_address": {
- "defaultMessage": "编辑地址"
- },
- "shipping_address_form.heading.new_address": {
- "defaultMessage": "添加新地址"
- },
- "shipping_address_selection.button.add_address": {
- "defaultMessage": "添加新地址"
- },
- "shipping_address_selection.button.submit": {
- "defaultMessage": "提交"
- },
- "shipping_address_selection.title.add_address": {
- "defaultMessage": "添加新地址"
- },
- "shipping_address_selection.title.edit_shipping": {
- "defaultMessage": "编辑送货地址"
- },
- "shipping_options.action.send_as_a_gift": {
- "defaultMessage": "您想将此作为礼品发送吗?"
- },
- "shipping_options.button.continue_to_payment": {
- "defaultMessage": "继续并选择付款"
- },
- "shipping_options.title.shipping_gift_options": {
- "defaultMessage": "送货与礼品选项"
- },
- "signout_confirmation_dialog.button.cancel": {
- "defaultMessage": "取消"
- },
- "signout_confirmation_dialog.button.sign_out": {
- "defaultMessage": "注销"
- },
- "signout_confirmation_dialog.heading.sign_out": {
- "defaultMessage": "注销"
- },
- "signout_confirmation_dialog.message.sure_to_sign_out": {
- "defaultMessage": "是否确定要注销?您需要重新登录才能继续处理当前订单。"
- },
- "swatch_group.selected.label": {
- "defaultMessage": "{label}:"
- },
- "toggle_card.action.edit": {
- "defaultMessage": "编辑"
- },
- "update_password_fields.button.forgot_password": {
- "defaultMessage": "忘记密码?"
- },
- "use_address_fields.error.please_enter_first_name": {
- "defaultMessage": "请输入您的名字。"
- },
- "use_address_fields.error.please_enter_last_name": {
- "defaultMessage": "请输入您的姓氏。"
- },
- "use_address_fields.error.please_enter_phone_number": {
- "defaultMessage": "请输入您的电话号码。"
- },
- "use_address_fields.error.please_enter_your_postal_or_zip": {
- "defaultMessage": "请输入您的邮政编码。"
- },
- "use_address_fields.error.please_select_your_address": {
- "defaultMessage": "请输入您的地址。"
- },
- "use_address_fields.error.please_select_your_city": {
- "defaultMessage": "请输入您所在城市。"
- },
- "use_address_fields.error.please_select_your_country": {
- "defaultMessage": "请输入您所在国家/地区。"
- },
- "use_address_fields.error.please_select_your_state_or_province": {
- "defaultMessage": "请选择您所在的州/省。"
- },
- "use_address_fields.error.required": {
- "defaultMessage": "必填"
- },
- "use_address_fields.error.state_code_invalid": {
- "defaultMessage": "请输入两个字母的州/省名称。"
- },
- "use_address_fields.label.address": {
- "defaultMessage": "地址"
- },
- "use_address_fields.label.address_form": {
- "defaultMessage": "地址表格"
- },
- "use_address_fields.label.city": {
- "defaultMessage": "城市"
- },
- "use_address_fields.label.country": {
- "defaultMessage": "国家"
- },
- "use_address_fields.label.first_name": {
- "defaultMessage": "名字"
- },
- "use_address_fields.label.last_name": {
- "defaultMessage": "姓氏"
- },
- "use_address_fields.label.phone": {
- "defaultMessage": "电话"
- },
- "use_address_fields.label.postal_code": {
- "defaultMessage": "邮政编码"
- },
- "use_address_fields.label.preferred": {
- "defaultMessage": "设为默认值"
- },
- "use_address_fields.label.province": {
- "defaultMessage": "省"
- },
- "use_address_fields.label.state": {
- "defaultMessage": "州/省"
- },
- "use_address_fields.label.zipCode": {
- "defaultMessage": "邮政编码"
- },
- "use_credit_card_fields.error.required": {
- "defaultMessage": "必填"
- },
- "use_credit_card_fields.error.required_card_number": {
- "defaultMessage": "请输入您的卡号。"
- },
- "use_credit_card_fields.error.required_expiry": {
- "defaultMessage": "请输入卡的到期日期。"
- },
- "use_credit_card_fields.error.required_name": {
- "defaultMessage": "请输入卡上显示的名字。"
- },
- "use_credit_card_fields.error.required_security_code": {
- "defaultMessage": "请输入您的安全码。"
- },
- "use_credit_card_fields.error.valid_card_number": {
- "defaultMessage": "请输入有效的卡号。"
- },
- "use_credit_card_fields.error.valid_date": {
- "defaultMessage": "请输入有效的日期。"
- },
- "use_credit_card_fields.error.valid_name": {
- "defaultMessage": "请输入有效的名称。"
- },
- "use_credit_card_fields.error.valid_security_code": {
- "defaultMessage": "请输入有效的安全码。"
- },
- "use_credit_card_fields.label.card_number": {
- "defaultMessage": "卡号"
- },
- "use_credit_card_fields.label.card_type": {
- "defaultMessage": "卡类型"
- },
- "use_credit_card_fields.label.expiry": {
- "defaultMessage": "到期日期"
- },
- "use_credit_card_fields.label.name": {
- "defaultMessage": "持卡人姓名"
- },
- "use_credit_card_fields.label.security_code": {
- "defaultMessage": "安全码"
- },
- "use_login_fields.error.required_email": {
- "defaultMessage": "请输入您的电子邮件地址。"
- },
- "use_login_fields.error.required_password": {
- "defaultMessage": "请输入您的密码。"
- },
- "use_login_fields.label.email": {
- "defaultMessage": "电子邮件"
- },
- "use_login_fields.label.password": {
- "defaultMessage": "密码"
- },
- "use_product.message.inventory_remaining": {
- "defaultMessage": "仅剩 {stockLevel} 件!"
- },
- "use_product.message.out_of_stock": {
- "defaultMessage": "无库存"
- },
- "use_profile_fields.error.required_email": {
- "defaultMessage": "请输入有效的电子邮件地址。"
- },
- "use_profile_fields.error.required_first_name": {
- "defaultMessage": "请输入您的名字。"
- },
- "use_profile_fields.error.required_last_name": {
- "defaultMessage": "请输入您的姓氏。"
- },
- "use_profile_fields.error.required_phone": {
- "defaultMessage": "请输入您的电话号码。"
- },
- "use_profile_fields.label.email": {
- "defaultMessage": "电子邮件"
- },
- "use_profile_fields.label.first_name": {
- "defaultMessage": "名字"
- },
- "use_profile_fields.label.last_name": {
- "defaultMessage": "姓氏"
- },
- "use_profile_fields.label.phone": {
- "defaultMessage": "电话号码"
- },
- "use_promo_code_fields.error.required_promo_code": {
- "defaultMessage": "请提供有效的促销码。"
- },
- "use_promo_code_fields.label.promo_code": {
- "defaultMessage": "促销码"
- },
- "use_promocode.error.check_the_code": {
- "defaultMessage": "检查促销码并重试,该促销码可能已被使用或促销已过期。"
- },
- "use_promocode.info.promo_applied": {
- "defaultMessage": "已应用促销"
- },
- "use_promocode.info.promo_removed": {
- "defaultMessage": "已删除促销"
- },
- "use_registration_fields.error.contain_number": {
- "defaultMessage": "密码必须至少包含一个数字。"
- },
- "use_registration_fields.error.lowercase_letter": {
- "defaultMessage": "密码必须至少包含一个小写字母。"
- },
- "use_registration_fields.error.minimum_characters": {
- "defaultMessage": "密码必须至少包含 8 个字符。"
- },
- "use_registration_fields.error.required_email": {
- "defaultMessage": "请输入有效的电子邮件地址。"
- },
- "use_registration_fields.error.required_first_name": {
- "defaultMessage": "请输入您的名字。"
- },
- "use_registration_fields.error.required_last_name": {
- "defaultMessage": "请输入您的姓氏。"
- },
- "use_registration_fields.error.required_password": {
- "defaultMessage": "请创建密码。"
- },
- "use_registration_fields.error.special_character": {
- "defaultMessage": "密码必须至少包含一个特殊字符。"
- },
- "use_registration_fields.error.uppercase_letter": {
- "defaultMessage": "密码必须至少包含一个大写字母。"
- },
- "use_registration_fields.label.email": {
- "defaultMessage": "电子邮件"
- },
- "use_registration_fields.label.first_name": {
- "defaultMessage": "名字"
- },
- "use_registration_fields.label.last_name": {
- "defaultMessage": "姓氏"
- },
- "use_registration_fields.label.password": {
- "defaultMessage": "密码"
- },
- "use_registration_fields.label.sign_up_to_emails": {
- "defaultMessage": "为我注册 Salesforce 电子邮件(您可以随时取消订阅)"
- },
- "use_reset_password_fields.error.required_email": {
- "defaultMessage": "请输入有效的电子邮件地址。"
- },
- "use_reset_password_fields.label.email": {
- "defaultMessage": "电子邮件"
- },
- "use_update_password_fields.error.contain_number": {
- "defaultMessage": "密码必须至少包含一个数字。"
- },
- "use_update_password_fields.error.lowercase_letter": {
- "defaultMessage": "密码必须至少包含一个小写字母。"
- },
- "use_update_password_fields.error.minimum_characters": {
- "defaultMessage": "密码必须至少包含 8 个字符。"
- },
- "use_update_password_fields.error.required_new_password": {
- "defaultMessage": "请提供新密码。"
- },
- "use_update_password_fields.error.required_password": {
- "defaultMessage": "请输入您的密码。"
- },
- "use_update_password_fields.error.special_character": {
- "defaultMessage": "密码必须至少包含一个特殊字符。"
- },
- "use_update_password_fields.error.uppercase_letter": {
- "defaultMessage": "密码必须至少包含一个大写字母。"
- },
- "use_update_password_fields.label.current_password": {
- "defaultMessage": "当前密码"
- },
- "use_update_password_fields.label.new_password": {
- "defaultMessage": "新密码"
- },
- "wishlist_primary_action.button.add_set_to_cart": {
- "defaultMessage": "将套装添加到购物车"
- },
- "wishlist_primary_action.button.add_to_cart": {
- "defaultMessage": "添加到购物车"
- },
- "wishlist_primary_action.button.view_full_details": {
- "defaultMessage": "查看完整详情"
- },
- "wishlist_primary_action.button.view_options": {
- "defaultMessage": "查看选项"
- },
- "wishlist_primary_action.info.added_to_cart": {
- "defaultMessage": "{quantity} {quantity, plural, one { 件商品} other { 件商品}}已添加至购物车"
- },
- "wishlist_secondary_button_group.action.remove": {
- "defaultMessage": "移除"
- },
- "wishlist_secondary_button_group.info.item_removed": {
- "defaultMessage": "从愿望清单中移除商品"
- },
- "with_registration.info.please_sign_in": {
- "defaultMessage": "请登录以继续!"
- }
-}
diff --git a/packages/template-retail-react-app/translations/zh-TW.json b/packages/template-retail-react-app/translations/zh-TW.json
deleted file mode 100644
index ef358ce253..0000000000
--- a/packages/template-retail-react-app/translations/zh-TW.json
+++ /dev/null
@@ -1,1517 +0,0 @@
-{
- "account.accordion.button.my_account": {
- "defaultMessage": "我的帳戶"
- },
- "account.heading.my_account": {
- "defaultMessage": "我的帳戶"
- },
- "account.logout_button.button.log_out": {
- "defaultMessage": "登出"
- },
- "account_addresses.badge.default": {
- "defaultMessage": "預設"
- },
- "account_addresses.button.add_address": {
- "defaultMessage": "新增地址"
- },
- "account_addresses.info.address_removed": {
- "defaultMessage": "已移除地址"
- },
- "account_addresses.info.address_updated": {
- "defaultMessage": "地址已更新"
- },
- "account_addresses.info.new_address_saved": {
- "defaultMessage": "新地址已儲存"
- },
- "account_addresses.page_action_placeholder.button.add_address": {
- "defaultMessage": "新增地址"
- },
- "account_addresses.page_action_placeholder.heading.no_saved_addresses": {
- "defaultMessage": "沒有已儲存的地址"
- },
- "account_addresses.page_action_placeholder.message.add_new_address": {
- "defaultMessage": "新增地址,加快結帳流程。"
- },
- "account_addresses.title.addresses": {
- "defaultMessage": "地址"
- },
- "account_detail.title.account_details": {
- "defaultMessage": "帳戶詳細資料"
- },
- "account_order_detail.heading.billing_address": {
- "defaultMessage": "帳單地址"
- },
- "account_order_detail.heading.num_of_items": {
- "defaultMessage": "{count} 件商品"
- },
- "account_order_detail.heading.payment_method": {
- "defaultMessage": "付款方式"
- },
- "account_order_detail.heading.shipping_address": {
- "defaultMessage": "運送地址"
- },
- "account_order_detail.heading.shipping_method": {
- "defaultMessage": "運送方式"
- },
- "account_order_detail.label.order_number": {
- "defaultMessage": "訂單編號:{orderNumber}"
- },
- "account_order_detail.label.ordered_date": {
- "defaultMessage": "下單日期:{date}"
- },
- "account_order_detail.label.pending_tracking_number": {
- "defaultMessage": "待處理"
- },
- "account_order_detail.label.tracking_number": {
- "defaultMessage": "追蹤編號"
- },
- "account_order_detail.link.back_to_history": {
- "defaultMessage": "返回訂單記錄"
- },
- "account_order_detail.shipping_status.not_shipped": {
- "defaultMessage": "未出貨"
- },
- "account_order_detail.shipping_status.part_shipped": {
- "defaultMessage": "已部分出貨"
- },
- "account_order_detail.shipping_status.shipped": {
- "defaultMessage": "已出貨"
- },
- "account_order_detail.title.order_details": {
- "defaultMessage": "訂單詳細資料"
- },
- "account_order_history.button.continue_shopping": {
- "defaultMessage": "繼續選購"
- },
- "account_order_history.description.once_you_place_order": {
- "defaultMessage": "下訂單後,詳細資料將會在這裡顯示。"
- },
- "account_order_history.heading.no_order_yet": {
- "defaultMessage": "您尚未下訂單。"
- },
- "account_order_history.label.num_of_items": {
- "defaultMessage": "{count} 件商品",
- "description": "Number of items in order"
- },
- "account_order_history.label.order_number": {
- "defaultMessage": "訂單編號:{orderNumber}"
- },
- "account_order_history.label.ordered_date": {
- "defaultMessage": "下單日期:{date}"
- },
- "account_order_history.label.shipped_to": {
- "defaultMessage": "已出貨至:{name}"
- },
- "account_order_history.link.view_details": {
- "defaultMessage": "檢視詳細資料"
- },
- "account_order_history.title.order_history": {
- "defaultMessage": "訂單記錄"
- },
- "account_wishlist.button.continue_shopping": {
- "defaultMessage": "繼續選購"
- },
- "account_wishlist.description.continue_shopping": {
- "defaultMessage": "繼續選購,並將商品新增至願望清單。"
- },
- "account_wishlist.heading.no_wishlist": {
- "defaultMessage": "沒有願望清單商品"
- },
- "account_wishlist.title.wishlist": {
- "defaultMessage": "願望清單"
- },
- "action_card.action.edit": {
- "defaultMessage": "編輯"
- },
- "action_card.action.remove": {
- "defaultMessage": "移除"
- },
- "add_to_cart_modal.info.added_to_cart": {
- "defaultMessage": "{quantity} {quantity, plural, one {件商品} other {件商品}}已新增至購物車"
- },
- "add_to_cart_modal.label.cart_subtotal": {
- "defaultMessage": "購物車小計 ({itemAccumulatedCount} 件商品)"
- },
- "add_to_cart_modal.label.quantity": {
- "defaultMessage": "數量"
- },
- "add_to_cart_modal.link.checkout": {
- "defaultMessage": "繼續以結帳"
- },
- "add_to_cart_modal.link.view_cart": {
- "defaultMessage": "檢視購物車"
- },
- "add_to_cart_modal.recommended_products.title.might_also_like": {
- "defaultMessage": "您可能也喜歡"
- },
- "auth_modal.button.close.assistive_msg": {
- "defaultMessage": "關閉登入表單"
- },
- "auth_modal.description.now_signed_in": {
- "defaultMessage": "您現在已登入。"
- },
- "auth_modal.error.incorrect_email_or_password": {
- "defaultMessage": "您的電子郵件或密碼不正確。請再試一次。"
- },
- "auth_modal.info.welcome_user": {
- "defaultMessage": "{name},歡迎:"
- },
- "auth_modal.password_reset_success.button.back_to_sign_in": {
- "defaultMessage": "返回登入"
- },
- "auth_modal.password_reset_success.info.will_email_shortly": {
- "defaultMessage": "您很快就會在 {email} 收到一封電子郵件,內含重設密碼的連結。"
- },
- "auth_modal.password_reset_success.title.password_reset": {
- "defaultMessage": "重設密碼"
- },
- "carousel.button.scroll_left.assistive_msg": {
- "defaultMessage": "向左捲動輪播"
- },
- "carousel.button.scroll_right.assistive_msg": {
- "defaultMessage": "向右捲動輪播"
- },
- "cart.info.removed_from_cart": {
- "defaultMessage": "已從購物車移除商品"
- },
- "cart.recommended_products.title.may_also_like": {
- "defaultMessage": "您可能也喜歡"
- },
- "cart.recommended_products.title.recently_viewed": {
- "defaultMessage": "最近檢視"
- },
- "cart_cta.link.checkout": {
- "defaultMessage": "繼續以結帳"
- },
- "cart_secondary_button_group.action.added_to_wishlist": {
- "defaultMessage": "新增至願望清單"
- },
- "cart_secondary_button_group.action.edit": {
- "defaultMessage": "編輯"
- },
- "cart_secondary_button_group.action.remove": {
- "defaultMessage": "移除"
- },
- "cart_secondary_button_group.label.this_is_gift": {
- "defaultMessage": "這是禮物。"
- },
- "cart_skeleton.heading.order_summary": {
- "defaultMessage": "訂單摘要"
- },
- "cart_skeleton.title.cart": {
- "defaultMessage": "購物車"
- },
- "cart_title.title.cart_num_of_items": {
- "defaultMessage": "購物車 ({itemCount, plural, =0 {0 件商品} one {# 件商品} other {# 件商品}})"
- },
- "cc_radio_group.action.remove": {
- "defaultMessage": "移除"
- },
- "cc_radio_group.button.add_new_card": {
- "defaultMessage": "新增卡片"
- },
- "checkout.button.place_order": {
- "defaultMessage": "送出訂單"
- },
- "checkout.message.generic_error": {
- "defaultMessage": "結帳時發生意外錯誤。"
- },
- "checkout_confirmation.button.create_account": {
- "defaultMessage": "建立帳戶"
- },
- "checkout_confirmation.heading.billing_address": {
- "defaultMessage": "帳單地址"
- },
- "checkout_confirmation.heading.create_account": {
- "defaultMessage": "建立帳戶,加快結帳流程"
- },
- "checkout_confirmation.heading.credit_card": {
- "defaultMessage": "信用卡"
- },
- "checkout_confirmation.heading.delivery_details": {
- "defaultMessage": "運送詳細資料"
- },
- "checkout_confirmation.heading.order_summary": {
- "defaultMessage": "訂單摘要"
- },
- "checkout_confirmation.heading.payment_details": {
- "defaultMessage": "付款詳細資料"
- },
- "checkout_confirmation.heading.shipping_address": {
- "defaultMessage": "運送地址"
- },
- "checkout_confirmation.heading.shipping_method": {
- "defaultMessage": "運送方式"
- },
- "checkout_confirmation.heading.thank_you_for_order": {
- "defaultMessage": "感謝您的訂購!"
- },
- "checkout_confirmation.label.free": {
- "defaultMessage": "免費"
- },
- "checkout_confirmation.label.order_number": {
- "defaultMessage": "訂單編號"
- },
- "checkout_confirmation.label.order_total": {
- "defaultMessage": "訂單總計"
- },
- "checkout_confirmation.label.promo_applied": {
- "defaultMessage": "已套用促銷"
- },
- "checkout_confirmation.label.shipping": {
- "defaultMessage": "運送"
- },
- "checkout_confirmation.label.subtotal": {
- "defaultMessage": "小計"
- },
- "checkout_confirmation.label.tax": {
- "defaultMessage": "稅項"
- },
- "checkout_confirmation.link.continue_shopping": {
- "defaultMessage": "繼續選購"
- },
- "checkout_confirmation.link.login": {
- "defaultMessage": "於此處登入"
- },
- "checkout_confirmation.message.already_has_account": {
- "defaultMessage": "此電子郵件已擁有帳戶。"
- },
- "checkout_confirmation.message.num_of_items_in_order": {
- "defaultMessage": "{itemCount, plural, =0 {0 件商品} one {# 件商品} other {# 件商品}}",
- "description": "# item(s) in order"
- },
- "checkout_confirmation.message.will_email_shortly": {
- "defaultMessage": "我們很快就會寄送電子郵件至 {email} ,內含您的確認號碼和收據。"
- },
- "checkout_footer.link.privacy_policy": {
- "defaultMessage": "隱私政策"
- },
- "checkout_footer.link.returns_exchanges": {
- "defaultMessage": "退貨與換貨"
- },
- "checkout_footer.link.shipping": {
- "defaultMessage": "運送"
- },
- "checkout_footer.link.site_map": {
- "defaultMessage": "網站地圖"
- },
- "checkout_footer.link.terms_conditions": {
- "defaultMessage": "條款與條件"
- },
- "checkout_footer.message.copyright": {
- "defaultMessage": "Salesforce 或相關企業。保留一切權利。這只是一個示範商店。在此下單將「不會」進行處理。"
- },
- "checkout_header.link.assistive_msg.cart": {
- "defaultMessage": "返回購物車,商品數量:{numItems}"
- },
- "checkout_header.link.cart": {
- "defaultMessage": "返回購物車"
- },
- "checkout_payment.action.remove": {
- "defaultMessage": "移除"
- },
- "checkout_payment.button.review_order": {
- "defaultMessage": "檢查訂單"
- },
- "checkout_payment.heading.billing_address": {
- "defaultMessage": "帳單地址"
- },
- "checkout_payment.heading.credit_card": {
- "defaultMessage": "信用卡"
- },
- "checkout_payment.label.same_as_shipping": {
- "defaultMessage": "與運送地址相同"
- },
- "checkout_payment.title.payment": {
- "defaultMessage": "付款"
- },
- "colorRefinements.label.hitCount": {
- "defaultMessage": "{colorLabel} ({colorHitCount})"
- },
- "confirmation_modal.default.action.no": {
- "defaultMessage": "否"
- },
- "confirmation_modal.default.action.yes": {
- "defaultMessage": "是"
- },
- "confirmation_modal.default.message.you_want_to_continue": {
- "defaultMessage": "確定要繼續嗎?"
- },
- "confirmation_modal.default.title.confirm_action": {
- "defaultMessage": "確認動作"
- },
- "confirmation_modal.remove_cart_item.action.no": {
- "defaultMessage": "否,保留商品"
- },
- "confirmation_modal.remove_cart_item.action.remove": {
- "defaultMessage": "移除"
- },
- "confirmation_modal.remove_cart_item.action.yes": {
- "defaultMessage": "是,移除商品"
- },
- "confirmation_modal.remove_cart_item.message.need_to_remove_due_to_unavailability": {
- "defaultMessage": "有些商品已無法再於線上取得,因此將從您的購物車中移除。"
- },
- "confirmation_modal.remove_cart_item.message.sure_to_remove": {
- "defaultMessage": "確定要將商品從購物車中移除嗎?"
- },
- "confirmation_modal.remove_cart_item.title.confirm_remove": {
- "defaultMessage": "確認移除商品"
- },
- "confirmation_modal.remove_cart_item.title.items_unavailable": {
- "defaultMessage": "商品不可用"
- },
- "confirmation_modal.remove_wishlist_item.action.no": {
- "defaultMessage": "否,保留商品"
- },
- "confirmation_modal.remove_wishlist_item.action.yes": {
- "defaultMessage": "是,移除商品"
- },
- "confirmation_modal.remove_wishlist_item.message.sure_to_remove": {
- "defaultMessage": "確定要將商品從願望清單中移除嗎?"
- },
- "confirmation_modal.remove_wishlist_item.title.confirm_remove": {
- "defaultMessage": "確認移除商品"
- },
- "contact_info.action.sign_out": {
- "defaultMessage": "登出"
- },
- "contact_info.button.already_have_account": {
- "defaultMessage": "已經有帳戶了?登入"
- },
- "contact_info.button.checkout_as_guest": {
- "defaultMessage": "以訪客身份結帳"
- },
- "contact_info.button.login": {
- "defaultMessage": "登入"
- },
- "contact_info.error.incorrect_username_or_password": {
- "defaultMessage": "使用者名稱或密碼不正確,請再試一次。"
- },
- "contact_info.link.forgot_password": {
- "defaultMessage": "忘記密碼了嗎?"
- },
- "contact_info.title.contact_info": {
- "defaultMessage": "聯絡資訊"
- },
- "credit_card_fields.tool_tip.security_code": {
- "defaultMessage": "此 3 位數代碼可在您卡片的背面找到。",
- "description": "Generic credit card security code help text"
- },
- "credit_card_fields.tool_tip.security_code.american_express": {
- "defaultMessage": "此 4 位數代碼可在您卡片的正面找到。",
- "description": "American Express security code help text"
- },
- "credit_card_fields.tool_tip.security_code_aria_label": {
- "defaultMessage": "安全碼資訊"
- },
- "drawer_menu.button.account_details": {
- "defaultMessage": "帳戶詳細資料"
- },
- "drawer_menu.button.addresses": {
- "defaultMessage": "地址"
- },
- "drawer_menu.button.log_out": {
- "defaultMessage": "登出"
- },
- "drawer_menu.button.my_account": {
- "defaultMessage": "我的帳戶"
- },
- "drawer_menu.button.order_history": {
- "defaultMessage": "訂單記錄"
- },
- "drawer_menu.link.about_us": {
- "defaultMessage": "關於我們"
- },
- "drawer_menu.link.customer_support": {
- "defaultMessage": "客戶支援"
- },
- "drawer_menu.link.customer_support.contact_us": {
- "defaultMessage": "聯絡我們"
- },
- "drawer_menu.link.customer_support.shipping_and_returns": {
- "defaultMessage": "運送與退貨"
- },
- "drawer_menu.link.our_company": {
- "defaultMessage": "我們的公司"
- },
- "drawer_menu.link.privacy_and_security": {
- "defaultMessage": "隱私與安全"
- },
- "drawer_menu.link.privacy_policy": {
- "defaultMessage": "隱私政策"
- },
- "drawer_menu.link.shop_all": {
- "defaultMessage": "選購全部"
- },
- "drawer_menu.link.sign_in": {
- "defaultMessage": "登入"
- },
- "drawer_menu.link.site_map": {
- "defaultMessage": "網站地圖"
- },
- "drawer_menu.link.store_locator": {
- "defaultMessage": "商店位置搜尋"
- },
- "drawer_menu.link.terms_and_conditions": {
- "defaultMessage": "條款與條件"
- },
- "empty_cart.description.empty_cart": {
- "defaultMessage": "您的購物車是空的。"
- },
- "empty_cart.link.continue_shopping": {
- "defaultMessage": "繼續選購"
- },
- "empty_cart.link.sign_in": {
- "defaultMessage": "登入"
- },
- "empty_cart.message.continue_shopping": {
- "defaultMessage": "繼續選購,並將商品新增至購物車。"
- },
- "empty_cart.message.sign_in_or_continue_shopping": {
- "defaultMessage": "登入來存取您所儲存的商品,或繼續選購。"
- },
- "empty_search_results.info.cant_find_anything_for_category": {
- "defaultMessage": "我們找不到{category}的結果。請嘗試搜尋產品或{link}。"
- },
- "empty_search_results.info.cant_find_anything_for_query": {
- "defaultMessage": "我們找不到「{searchQuery}」的結果。"
- },
- "empty_search_results.info.double_check_spelling": {
- "defaultMessage": "請確認拼字並再試一次,或{link}。"
- },
- "empty_search_results.link.contact_us": {
- "defaultMessage": "聯絡我們"
- },
- "empty_search_results.recommended_products.title.most_viewed": {
- "defaultMessage": "最多檢視"
- },
- "empty_search_results.recommended_products.title.top_sellers": {
- "defaultMessage": "最暢銷產品"
- },
- "field.password.assistive_msg.hide_password": {
- "defaultMessage": "隱藏密碼"
- },
- "field.password.assistive_msg.show_password": {
- "defaultMessage": "顯示密碼"
- },
- "footer.column.account": {
- "defaultMessage": "帳戶"
- },
- "footer.column.customer_support": {
- "defaultMessage": "客戶支援"
- },
- "footer.column.our_company": {
- "defaultMessage": "我們的公司"
- },
- "footer.link.about_us": {
- "defaultMessage": "關於我們"
- },
- "footer.link.contact_us": {
- "defaultMessage": "聯絡我們"
- },
- "footer.link.order_status": {
- "defaultMessage": "訂單狀態"
- },
- "footer.link.privacy_policy": {
- "defaultMessage": "隱私政策"
- },
- "footer.link.shipping": {
- "defaultMessage": "運送"
- },
- "footer.link.signin_create_account": {
- "defaultMessage": "登入或建立帳戶"
- },
- "footer.link.site_map": {
- "defaultMessage": "網站地圖"
- },
- "footer.link.store_locator": {
- "defaultMessage": "商店位置搜尋"
- },
- "footer.link.terms_conditions": {
- "defaultMessage": "條款與條件"
- },
- "footer.message.copyright": {
- "defaultMessage": "Salesforce 或相關企業。保留一切權利。這只是一個示範商店。在此下單將「不會」進行處理。"
- },
- "footer.subscribe.button.sign_up": {
- "defaultMessage": "註冊"
- },
- "footer.subscribe.description.sign_up": {
- "defaultMessage": "註冊來獲得最熱門的優惠消息"
- },
- "footer.subscribe.heading.first_to_know": {
- "defaultMessage": "搶先獲得消息"
- },
- "form_action_buttons.button.cancel": {
- "defaultMessage": "取消"
- },
- "form_action_buttons.button.save": {
- "defaultMessage": "儲存"
- },
- "global.account.link.account_details": {
- "defaultMessage": "帳戶詳細資料"
- },
- "global.account.link.addresses": {
- "defaultMessage": "地址"
- },
- "global.account.link.order_history": {
- "defaultMessage": "訂單記錄"
- },
- "global.account.link.wishlist": {
- "defaultMessage": "願望清單"
- },
- "global.error.something_went_wrong": {
- "defaultMessage": "發生錯誤。請再試一次。"
- },
- "global.info.added_to_wishlist": {
- "defaultMessage": "{quantity} {quantity, plural, one {件商品} other {件商品}}已新增至願望清單"
- },
- "global.info.already_in_wishlist": {
- "defaultMessage": "商品已在願望清單中"
- },
- "global.info.removed_from_wishlist": {
- "defaultMessage": "已從願望清單移除商品"
- },
- "global.link.added_to_wishlist.view_wishlist": {
- "defaultMessage": "檢視"
- },
- "header.button.assistive_msg.logo": {
- "defaultMessage": "標誌"
- },
- "header.button.assistive_msg.menu": {
- "defaultMessage": "選單"
- },
- "header.button.assistive_msg.my_account": {
- "defaultMessage": "我的帳戶"
- },
- "header.button.assistive_msg.my_account_menu": {
- "defaultMessage": "開啟帳戶選單"
- },
- "header.button.assistive_msg.my_cart_with_num_items": {
- "defaultMessage": "我的購物車,商品數量:{numItems}"
- },
- "header.button.assistive_msg.wishlist": {
- "defaultMessage": "願望清單"
- },
- "header.field.placeholder.search_for_products": {
- "defaultMessage": "搜尋產品..."
- },
- "header.popover.action.log_out": {
- "defaultMessage": "登出"
- },
- "header.popover.title.my_account": {
- "defaultMessage": "我的帳戶"
- },
- "home.description.features": {
- "defaultMessage": "功能皆可立即使用,您只需專注於如何精益求精。"
- },
- "home.description.here_to_help": {
- "defaultMessage": "聯絡我們的支援人員,"
- },
- "home.description.here_to_help_line_2": {
- "defaultMessage": "讓他們為您指點迷津。"
- },
- "home.description.shop_products": {
- "defaultMessage": "此區塊包含來自目錄的內容。{docLink}來了解如何取代。",
- "description": "{docLink} is a html button that links the user to https://sfdc.co/business-manager-manage-catalogs"
- },
- "home.features.description.cart_checkout": {
- "defaultMessage": "為購物者提供購物車和結帳體驗的電子商務最佳做法。"
- },
- "home.features.description.components": {
- "defaultMessage": "以簡單、模組化、無障礙設計的 React 元件庫 Chakra UI 打造而成。"
- },
- "home.features.description.einstein_recommendations": {
- "defaultMessage": "透過產品推薦,向每位購物者傳遞下一個最佳產品或優惠。"
- },
- "home.features.description.my_account": {
- "defaultMessage": "購物者可管理帳戶資訊,例如個人資料、地址、付款和訂單。"
- },
- "home.features.description.shopper_login": {
- "defaultMessage": "讓購物者能夠輕鬆登入,享受更加個人化的購物體驗。"
- },
- "home.features.description.wishlist": {
- "defaultMessage": "已註冊的購物者可以新增產品至願望清單,留待日後購買。"
- },
- "home.features.heading.cart_checkout": {
- "defaultMessage": "購物車與結帳"
- },
- "home.features.heading.components": {
- "defaultMessage": "元件與設計套件"
- },
- "home.features.heading.einstein_recommendations": {
- "defaultMessage": "Einstein 推薦"
- },
- "home.features.heading.my_account": {
- "defaultMessage": "我的帳戶"
- },
- "home.features.heading.shopper_login": {
- "defaultMessage": "Shopper Login and API Access Service (SLAS)"
- },
- "home.features.heading.wishlist": {
- "defaultMessage": "願望清單"
- },
- "home.heading.features": {
- "defaultMessage": "功能"
- },
- "home.heading.here_to_help": {
- "defaultMessage": "我們很樂意隨時提供協助"
- },
- "home.heading.shop_products": {
- "defaultMessage": "選購產品"
- },
- "home.hero_features.link.design_kit": {
- "defaultMessage": "使用 Figma PWA Design Kit 揮灑創意"
- },
- "home.hero_features.link.on_github": {
- "defaultMessage": "前往 Github 下載"
- },
- "home.hero_features.link.on_managed_runtime": {
- "defaultMessage": "在 Managed Runtime 上部署"
- },
- "home.link.contact_us": {
- "defaultMessage": "聯絡我們"
- },
- "home.link.get_started": {
- "defaultMessage": "開始使用"
- },
- "home.link.read_docs": {
- "defaultMessage": "閱讀文件"
- },
- "home.title.react_starter_store": {
- "defaultMessage": "零售型 React PWA Starter Store"
- },
- "icons.assistive_msg.lock": {
- "defaultMessage": "安全"
- },
- "item_attributes.label.promotions": {
- "defaultMessage": "促銷"
- },
- "item_attributes.label.quantity": {
- "defaultMessage": "數量:{quantity}"
- },
- "item_image.label.sale": {
- "defaultMessage": "特價",
- "description": "A sale badge placed on top of a product image"
- },
- "item_image.label.unavailable": {
- "defaultMessage": "不可用",
- "description": "A unavailable badge placed on top of a product image"
- },
- "item_price.label.starting_at": {
- "defaultMessage": "起始"
- },
- "lCPCxk": {
- "defaultMessage": "請在上方選擇所有選項"
- },
- "list_menu.nav.assistive_msg": {
- "defaultMessage": "主導覽選單"
- },
- "locale_text.message.ar-SA": {
- "defaultMessage": "阿拉伯文 (沙烏地阿拉伯)"
- },
- "locale_text.message.bn-BD": {
- "defaultMessage": "孟加拉文 (孟加拉)"
- },
- "locale_text.message.bn-IN": {
- "defaultMessage": "孟加拉文 (印度)"
- },
- "locale_text.message.cs-CZ": {
- "defaultMessage": "捷克文 (捷克)"
- },
- "locale_text.message.da-DK": {
- "defaultMessage": "丹麥文 (丹麥)"
- },
- "locale_text.message.de-AT": {
- "defaultMessage": "德文 (奧地利)"
- },
- "locale_text.message.de-CH": {
- "defaultMessage": "德文 (瑞士)"
- },
- "locale_text.message.de-DE": {
- "defaultMessage": "德文 (德國)"
- },
- "locale_text.message.el-GR": {
- "defaultMessage": "希臘文 (希臘)"
- },
- "locale_text.message.en-AU": {
- "defaultMessage": "英文 (澳洲)"
- },
- "locale_text.message.en-CA": {
- "defaultMessage": "英文 (加拿大)"
- },
- "locale_text.message.en-GB": {
- "defaultMessage": "英文 (英國)"
- },
- "locale_text.message.en-IE": {
- "defaultMessage": "英文 (愛爾蘭)"
- },
- "locale_text.message.en-IN": {
- "defaultMessage": "英文 (印度)"
- },
- "locale_text.message.en-NZ": {
- "defaultMessage": "英文 (紐西蘭)"
- },
- "locale_text.message.en-US": {
- "defaultMessage": "英文 (美國)"
- },
- "locale_text.message.en-ZA": {
- "defaultMessage": "英文 (南非)"
- },
- "locale_text.message.es-AR": {
- "defaultMessage": "西班牙文 (阿根廷)"
- },
- "locale_text.message.es-CL": {
- "defaultMessage": "西班牙文 (智利)"
- },
- "locale_text.message.es-CO": {
- "defaultMessage": "西班牙文 (哥倫比亞)"
- },
- "locale_text.message.es-ES": {
- "defaultMessage": "西班牙文 (西班牙)"
- },
- "locale_text.message.es-MX": {
- "defaultMessage": "西班牙文 (墨西哥)"
- },
- "locale_text.message.es-US": {
- "defaultMessage": "西班牙文 (美國)"
- },
- "locale_text.message.fi-FI": {
- "defaultMessage": "芬蘭文 (芬蘭)"
- },
- "locale_text.message.fr-BE": {
- "defaultMessage": "法文 (比利時)"
- },
- "locale_text.message.fr-CA": {
- "defaultMessage": "法文 (加拿大)"
- },
- "locale_text.message.fr-CH": {
- "defaultMessage": "法文 (瑞士)"
- },
- "locale_text.message.fr-FR": {
- "defaultMessage": "法文 (法國)"
- },
- "locale_text.message.he-IL": {
- "defaultMessage": "希伯來文 (以色列)"
- },
- "locale_text.message.hi-IN": {
- "defaultMessage": "印度文 (印度)"
- },
- "locale_text.message.hu-HU": {
- "defaultMessage": "匈牙利文 (匈牙利)"
- },
- "locale_text.message.id-ID": {
- "defaultMessage": "印尼文 (印尼)"
- },
- "locale_text.message.it-CH": {
- "defaultMessage": "義大利文 (瑞士)"
- },
- "locale_text.message.it-IT": {
- "defaultMessage": "義大利文 (義大利)"
- },
- "locale_text.message.ja-JP": {
- "defaultMessage": "日文 (日本)"
- },
- "locale_text.message.ko-KR": {
- "defaultMessage": "韓文 (韓國)"
- },
- "locale_text.message.nl-BE": {
- "defaultMessage": "荷蘭文 (比利時)"
- },
- "locale_text.message.nl-NL": {
- "defaultMessage": "荷蘭文 (荷蘭)"
- },
- "locale_text.message.no-NO": {
- "defaultMessage": "挪威文 (挪威)"
- },
- "locale_text.message.pl-PL": {
- "defaultMessage": "波蘭文 (波蘭)"
- },
- "locale_text.message.pt-BR": {
- "defaultMessage": "葡萄牙文 (巴西)"
- },
- "locale_text.message.pt-PT": {
- "defaultMessage": "葡萄牙文 (葡萄牙)"
- },
- "locale_text.message.ro-RO": {
- "defaultMessage": "羅馬尼亞文 (羅馬尼亞)"
- },
- "locale_text.message.ru-RU": {
- "defaultMessage": "俄文 (俄羅斯聯邦)"
- },
- "locale_text.message.sk-SK": {
- "defaultMessage": "斯洛伐克文 (斯洛伐克)"
- },
- "locale_text.message.sv-SE": {
- "defaultMessage": "瑞典文 (瑞典)"
- },
- "locale_text.message.ta-IN": {
- "defaultMessage": "泰米爾文 (印度)"
- },
- "locale_text.message.ta-LK": {
- "defaultMessage": "泰米爾文 (斯里蘭卡)"
- },
- "locale_text.message.th-TH": {
- "defaultMessage": "泰文 (泰國)"
- },
- "locale_text.message.tr-TR": {
- "defaultMessage": "土耳其文 (土耳其)"
- },
- "locale_text.message.zh-CN": {
- "defaultMessage": "中文 (中國)"
- },
- "locale_text.message.zh-HK": {
- "defaultMessage": "中文 (香港)"
- },
- "locale_text.message.zh-TW": {
- "defaultMessage": "中文 (台灣)"
- },
- "login_form.action.create_account": {
- "defaultMessage": "建立帳戶"
- },
- "login_form.button.sign_in": {
- "defaultMessage": "登入"
- },
- "login_form.link.forgot_password": {
- "defaultMessage": "忘記密碼了嗎?"
- },
- "login_form.message.dont_have_account": {
- "defaultMessage": "沒有帳戶嗎?"
- },
- "login_form.message.welcome_back": {
- "defaultMessage": "歡迎回來"
- },
- "login_page.error.incorrect_username_or_password": {
- "defaultMessage": "使用者名稱或密碼不正確,請再試一次。"
- },
- "offline_banner.description.browsing_offline_mode": {
- "defaultMessage": "您目前正以離線模式瀏覽"
- },
- "order_summary.action.remove_promo": {
- "defaultMessage": "移除"
- },
- "order_summary.cart_items.action.num_of_items_in_cart": {
- "defaultMessage": "購物車有 {itemCount, plural, =0 {0 件商品} one {# 件商品} other {# 件商品}}",
- "description": "clicking it would expand/show the items in cart"
- },
- "order_summary.cart_items.link.edit_cart": {
- "defaultMessage": "編輯購物車"
- },
- "order_summary.heading.order_summary": {
- "defaultMessage": "訂單摘要"
- },
- "order_summary.label.estimated_total": {
- "defaultMessage": "預估總計"
- },
- "order_summary.label.free": {
- "defaultMessage": "免費"
- },
- "order_summary.label.order_total": {
- "defaultMessage": "訂單總計"
- },
- "order_summary.label.promo_applied": {
- "defaultMessage": "已套用促銷"
- },
- "order_summary.label.promotions_applied": {
- "defaultMessage": "已套用促銷"
- },
- "order_summary.label.shipping": {
- "defaultMessage": "運送"
- },
- "order_summary.label.subtotal": {
- "defaultMessage": "小計"
- },
- "order_summary.label.tax": {
- "defaultMessage": "稅項"
- },
- "page_not_found.action.go_back": {
- "defaultMessage": "返回上一頁"
- },
- "page_not_found.link.homepage": {
- "defaultMessage": "前往首頁"
- },
- "page_not_found.message.suggestion_to_try": {
- "defaultMessage": "請嘗試重新輸入地址、返回上一頁或前往首頁。"
- },
- "page_not_found.title.page_cant_be_found": {
- "defaultMessage": "找不到您在尋找的頁面。"
- },
- "pagination.field.num_of_pages": {
- "defaultMessage": "{numOfPages} 頁"
- },
- "pagination.link.next": {
- "defaultMessage": "下一頁"
- },
- "pagination.link.next.assistive_msg": {
- "defaultMessage": "下一頁"
- },
- "pagination.link.prev": {
- "defaultMessage": "上一頁"
- },
- "pagination.link.prev.assistive_msg": {
- "defaultMessage": "上一頁"
- },
- "password_card.info.password_updated": {
- "defaultMessage": "密碼已更新"
- },
- "password_card.label.password": {
- "defaultMessage": "密碼"
- },
- "password_card.title.password": {
- "defaultMessage": "密碼"
- },
- "password_requirements.error.eight_letter_minimum": {
- "defaultMessage": "最少 8 個字元",
- "description": "Password requirement"
- },
- "password_requirements.error.one_lowercase_letter": {
- "defaultMessage": "1 個小寫字母",
- "description": "Password requirement"
- },
- "password_requirements.error.one_number": {
- "defaultMessage": "1 個數字",
- "description": "Password requirement"
- },
- "password_requirements.error.one_special_character": {
- "defaultMessage": "1 個特殊字元 (例如:, $ ! % #)",
- "description": "Password requirement"
- },
- "password_requirements.error.one_uppercase_letter": {
- "defaultMessage": "1 個大寫字母",
- "description": "Password requirement"
- },
- "payment_selection.heading.credit_card": {
- "defaultMessage": "信用卡"
- },
- "payment_selection.tooltip.secure_payment": {
- "defaultMessage": "此為安全 SSL 加密付款。"
- },
- "price_per_item.label.each": {
- "defaultMessage": "每件",
- "description": "Abbreviated 'each', follows price per item, like $10/ea"
- },
- "product_detail.accordion.button.product_detail": {
- "defaultMessage": "產品詳細資料"
- },
- "product_detail.accordion.button.questions": {
- "defaultMessage": "問題"
- },
- "product_detail.accordion.button.reviews": {
- "defaultMessage": "評價"
- },
- "product_detail.accordion.button.size_fit": {
- "defaultMessage": "尺寸與版型"
- },
- "product_detail.accordion.message.coming_soon": {
- "defaultMessage": "即將推出"
- },
- "product_detail.recommended_products.title.complete_set": {
- "defaultMessage": "完成組合"
- },
- "product_detail.recommended_products.title.might_also_like": {
- "defaultMessage": "您可能也喜歡"
- },
- "product_detail.recommended_products.title.recently_viewed": {
- "defaultMessage": "最近檢視"
- },
- "product_item.label.quantity": {
- "defaultMessage": "數量:"
- },
- "product_list.button.filter": {
- "defaultMessage": "篩選條件"
- },
- "product_list.button.sort_by": {
- "defaultMessage": "排序方式:{sortOption}"
- },
- "product_list.drawer.title.sort_by": {
- "defaultMessage": "排序方式"
- },
- "product_list.modal.button.clear_filters": {
- "defaultMessage": "清除篩選條件"
- },
- "product_list.modal.button.view_items": {
- "defaultMessage": "檢視 {prroductCount} 件商品"
- },
- "product_list.modal.title.filter": {
- "defaultMessage": "篩選條件"
- },
- "product_list.refinements.button.assistive_msg.add_filter": {
- "defaultMessage": "新增篩選條件:{label}"
- },
- "product_list.refinements.button.assistive_msg.add_filter_with_hit_count": {
- "defaultMessage": "新增篩選條件:{label} ({hitCount})"
- },
- "product_list.refinements.button.assistive_msg.remove_filter": {
- "defaultMessage": "移除篩選條件:{label}"
- },
- "product_list.refinements.button.assistive_msg.remove_filter_with_hit_count": {
- "defaultMessage": "移除篩選條件:{label} ({hitCount})"
- },
- "product_list.select.sort_by": {
- "defaultMessage": "排序方式:{sortOption}"
- },
- "product_scroller.assistive_msg.scroll_left": {
- "defaultMessage": "向左捲動產品"
- },
- "product_scroller.assistive_msg.scroll_right": {
- "defaultMessage": "向右捲動產品"
- },
- "product_tile.assistive_msg.add_to_wishlist": {
- "defaultMessage": "將 {product} 新增至願望清單"
- },
- "product_tile.assistive_msg.remove_from_wishlist": {
- "defaultMessage": "從願望清單移除 {product}"
- },
- "product_tile.label.starting_at_price": {
- "defaultMessage": "{price} 起"
- },
- "product_view.button.add_set_to_cart": {
- "defaultMessage": "新增組合至購物車"
- },
- "product_view.button.add_set_to_wishlist": {
- "defaultMessage": "新增組合至願望清單"
- },
- "product_view.button.add_to_cart": {
- "defaultMessage": "新增至購物車"
- },
- "product_view.button.add_to_wishlist": {
- "defaultMessage": "新增至願望清單"
- },
- "product_view.button.update": {
- "defaultMessage": "更新"
- },
- "product_view.label.assistive_msg.quantity_decrement": {
- "defaultMessage": "遞減數量"
- },
- "product_view.label.assistive_msg.quantity_increment": {
- "defaultMessage": "遞增數量"
- },
- "product_view.label.quantity": {
- "defaultMessage": "數量"
- },
- "product_view.label.quantity_decrement": {
- "defaultMessage": "−"
- },
- "product_view.label.quantity_increment": {
- "defaultMessage": "+"
- },
- "product_view.label.starting_at_price": {
- "defaultMessage": "起始"
- },
- "product_view.label.variant_type": {
- "defaultMessage": "{variantType}"
- },
- "product_view.link.full_details": {
- "defaultMessage": "檢視完整詳細資料"
- },
- "profile_card.info.profile_updated": {
- "defaultMessage": "個人資料已更新"
- },
- "profile_card.label.email": {
- "defaultMessage": "電子郵件"
- },
- "profile_card.label.full_name": {
- "defaultMessage": "全名"
- },
- "profile_card.label.phone": {
- "defaultMessage": "電話號碼"
- },
- "profile_card.message.not_provided": {
- "defaultMessage": "未提供"
- },
- "profile_card.title.my_profile": {
- "defaultMessage": "我的個人資料"
- },
- "promo_code_fields.button.apply": {
- "defaultMessage": "套用"
- },
- "promo_popover.assistive_msg.info": {
- "defaultMessage": "資訊"
- },
- "promo_popover.heading.promo_applied": {
- "defaultMessage": "已套用促銷"
- },
- "promocode.accordion.button.have_promocode": {
- "defaultMessage": "您有促銷代碼嗎?"
- },
- "recent_searches.action.clear_searches": {
- "defaultMessage": "清除最近搜尋"
- },
- "recent_searches.heading.recent_searches": {
- "defaultMessage": "最近搜尋"
- },
- "register_form.action.sign_in": {
- "defaultMessage": "登入"
- },
- "register_form.button.create_account": {
- "defaultMessage": "建立帳戶"
- },
- "register_form.heading.lets_get_started": {
- "defaultMessage": "讓我們開始吧!"
- },
- "register_form.message.agree_to_policy_terms": {
- "defaultMessage": "建立帳戶即代表您同意 Salesforce 隱私權政策 和條款與條件 "
- },
- "register_form.message.already_have_account": {
- "defaultMessage": "已經有帳戶了?"
- },
- "register_form.message.create_an_account": {
- "defaultMessage": "建立帳戶,就能搶先獲得最棒產品、靈感來源和社群最新消息。"
- },
- "reset_password.button.back_to_sign_in": {
- "defaultMessage": "返回登入"
- },
- "reset_password.info.receive_email_shortly": {
- "defaultMessage": "您很快就會在 {email} 收到一封電子郵件,內含重設密碼的連結。"
- },
- "reset_password.title.password_reset": {
- "defaultMessage": "重設密碼"
- },
- "reset_password_form.action.sign_in": {
- "defaultMessage": "登入"
- },
- "reset_password_form.button.reset_password": {
- "defaultMessage": "重設密碼"
- },
- "reset_password_form.message.enter_your_email": {
- "defaultMessage": "請輸入您的電子郵件,以便接收重設密碼的說明"
- },
- "reset_password_form.message.return_to_sign_in": {
- "defaultMessage": "或返回",
- "description": "Precedes link to return to sign in"
- },
- "reset_password_form.title.reset_password": {
- "defaultMessage": "重設密碼"
- },
- "search.action.cancel": {
- "defaultMessage": "取消"
- },
- "selected_refinements.action.assistive_msg.clear_all": {
- "defaultMessage": "清除所有篩選條件"
- },
- "selected_refinements.action.clear_all": {
- "defaultMessage": "全部清除"
- },
- "shipping_address.button.continue_to_shipping": {
- "defaultMessage": "繼續前往運送方式"
- },
- "shipping_address.title.shipping_address": {
- "defaultMessage": "運送地址"
- },
- "shipping_address_edit_form.button.save_and_continue": {
- "defaultMessage": "儲存並繼續前往運送方式"
- },
- "shipping_address_form.heading.edit_address": {
- "defaultMessage": "編輯地址"
- },
- "shipping_address_form.heading.new_address": {
- "defaultMessage": "新增地址"
- },
- "shipping_address_selection.button.add_address": {
- "defaultMessage": "新增地址"
- },
- "shipping_address_selection.button.submit": {
- "defaultMessage": "提交"
- },
- "shipping_address_selection.title.add_address": {
- "defaultMessage": "新增地址"
- },
- "shipping_address_selection.title.edit_shipping": {
- "defaultMessage": "編輯運送地址"
- },
- "shipping_options.action.send_as_a_gift": {
- "defaultMessage": "您想以禮品方式寄送嗎?"
- },
- "shipping_options.button.continue_to_payment": {
- "defaultMessage": "繼續前往付款"
- },
- "shipping_options.title.shipping_gift_options": {
- "defaultMessage": "運送與禮品選項"
- },
- "signout_confirmation_dialog.button.cancel": {
- "defaultMessage": "取消"
- },
- "signout_confirmation_dialog.button.sign_out": {
- "defaultMessage": "登出"
- },
- "signout_confirmation_dialog.heading.sign_out": {
- "defaultMessage": "登出"
- },
- "signout_confirmation_dialog.message.sure_to_sign_out": {
- "defaultMessage": "確定要登出嗎?您必須重新登入,才能繼續目前的訂單流程。"
- },
- "swatch_group.selected.label": {
- "defaultMessage": "{label}:"
- },
- "toggle_card.action.edit": {
- "defaultMessage": "編輯"
- },
- "update_password_fields.button.forgot_password": {
- "defaultMessage": "忘記密碼了嗎?"
- },
- "use_address_fields.error.please_enter_first_name": {
- "defaultMessage": "請輸入您的名字。"
- },
- "use_address_fields.error.please_enter_last_name": {
- "defaultMessage": "請輸入您的姓氏。"
- },
- "use_address_fields.error.please_enter_phone_number": {
- "defaultMessage": "請輸入您的電話號碼。"
- },
- "use_address_fields.error.please_enter_your_postal_or_zip": {
- "defaultMessage": "請輸入您的郵遞區號。"
- },
- "use_address_fields.error.please_select_your_address": {
- "defaultMessage": "請輸入您的地址。"
- },
- "use_address_fields.error.please_select_your_city": {
- "defaultMessage": "請輸入您的城市。"
- },
- "use_address_fields.error.please_select_your_country": {
- "defaultMessage": "請選擇您的國家/地區。"
- },
- "use_address_fields.error.please_select_your_state_or_province": {
- "defaultMessage": "請選擇您的州/省。"
- },
- "use_address_fields.error.required": {
- "defaultMessage": "必填"
- },
- "use_address_fields.error.state_code_invalid": {
- "defaultMessage": "請輸入 2 個字母的州/省名。"
- },
- "use_address_fields.label.address": {
- "defaultMessage": "地址"
- },
- "use_address_fields.label.address_form": {
- "defaultMessage": "地址表單"
- },
- "use_address_fields.label.city": {
- "defaultMessage": "城市"
- },
- "use_address_fields.label.country": {
- "defaultMessage": "國家/地區"
- },
- "use_address_fields.label.first_name": {
- "defaultMessage": "名字"
- },
- "use_address_fields.label.last_name": {
- "defaultMessage": "姓氏"
- },
- "use_address_fields.label.phone": {
- "defaultMessage": "電話"
- },
- "use_address_fields.label.postal_code": {
- "defaultMessage": "郵遞區號"
- },
- "use_address_fields.label.preferred": {
- "defaultMessage": "設為預設"
- },
- "use_address_fields.label.province": {
- "defaultMessage": "省"
- },
- "use_address_fields.label.state": {
- "defaultMessage": "州"
- },
- "use_address_fields.label.zipCode": {
- "defaultMessage": "郵遞區號"
- },
- "use_credit_card_fields.error.required": {
- "defaultMessage": "必填"
- },
- "use_credit_card_fields.error.required_card_number": {
- "defaultMessage": "請輸入您的卡片號碼。"
- },
- "use_credit_card_fields.error.required_expiry": {
- "defaultMessage": "請輸入您的到期日。"
- },
- "use_credit_card_fields.error.required_name": {
- "defaultMessage": "請輸入您卡片上的姓名。"
- },
- "use_credit_card_fields.error.required_security_code": {
- "defaultMessage": "請輸入您的安全碼。"
- },
- "use_credit_card_fields.error.valid_card_number": {
- "defaultMessage": "請輸入有效的卡片號碼。"
- },
- "use_credit_card_fields.error.valid_date": {
- "defaultMessage": "請輸入有效的日期。"
- },
- "use_credit_card_fields.error.valid_name": {
- "defaultMessage": "請輸入有效的姓名。"
- },
- "use_credit_card_fields.error.valid_security_code": {
- "defaultMessage": "請輸入有效的安全碼。"
- },
- "use_credit_card_fields.label.card_number": {
- "defaultMessage": "卡片號碼"
- },
- "use_credit_card_fields.label.card_type": {
- "defaultMessage": "卡片類型"
- },
- "use_credit_card_fields.label.expiry": {
- "defaultMessage": "到期日"
- },
- "use_credit_card_fields.label.name": {
- "defaultMessage": "持卡人姓名"
- },
- "use_credit_card_fields.label.security_code": {
- "defaultMessage": "安全碼"
- },
- "use_login_fields.error.required_email": {
- "defaultMessage": "請輸入您的電子郵件地址。"
- },
- "use_login_fields.error.required_password": {
- "defaultMessage": "請輸入您的密碼。"
- },
- "use_login_fields.label.email": {
- "defaultMessage": "電子郵件"
- },
- "use_login_fields.label.password": {
- "defaultMessage": "密碼"
- },
- "use_product.message.inventory_remaining": {
- "defaultMessage": "只剩 {stockLevel} 個!"
- },
- "use_product.message.out_of_stock": {
- "defaultMessage": "缺貨"
- },
- "use_profile_fields.error.required_email": {
- "defaultMessage": "請輸入有效的電子郵件地址。"
- },
- "use_profile_fields.error.required_first_name": {
- "defaultMessage": "請輸入您的名字。"
- },
- "use_profile_fields.error.required_last_name": {
- "defaultMessage": "請輸入您的姓氏。"
- },
- "use_profile_fields.error.required_phone": {
- "defaultMessage": "請輸入您的電話號碼。"
- },
- "use_profile_fields.label.email": {
- "defaultMessage": "電子郵件"
- },
- "use_profile_fields.label.first_name": {
- "defaultMessage": "名字"
- },
- "use_profile_fields.label.last_name": {
- "defaultMessage": "姓氏"
- },
- "use_profile_fields.label.phone": {
- "defaultMessage": "電話號碼"
- },
- "use_promo_code_fields.error.required_promo_code": {
- "defaultMessage": "請提供有效的促銷代碼。"
- },
- "use_promo_code_fields.label.promo_code": {
- "defaultMessage": "促銷代碼"
- },
- "use_promocode.error.check_the_code": {
- "defaultMessage": "請檢查代碼並再試一次,代碼可能已套用過或促銷已過期。"
- },
- "use_promocode.info.promo_applied": {
- "defaultMessage": "已套用促銷"
- },
- "use_promocode.info.promo_removed": {
- "defaultMessage": "已移除促銷"
- },
- "use_registration_fields.error.contain_number": {
- "defaultMessage": "密碼必須包含至少 1 個數字。"
- },
- "use_registration_fields.error.lowercase_letter": {
- "defaultMessage": "密碼必須包含至少 1 個小寫字母。"
- },
- "use_registration_fields.error.minimum_characters": {
- "defaultMessage": "密碼必須包含至少 8 個字元。"
- },
- "use_registration_fields.error.required_email": {
- "defaultMessage": "請輸入有效的電子郵件地址。"
- },
- "use_registration_fields.error.required_first_name": {
- "defaultMessage": "請輸入您的名字。"
- },
- "use_registration_fields.error.required_last_name": {
- "defaultMessage": "請輸入您的姓氏。"
- },
- "use_registration_fields.error.required_password": {
- "defaultMessage": "請建立密碼。"
- },
- "use_registration_fields.error.special_character": {
- "defaultMessage": "密碼必須包含至少 1 個特殊字元。"
- },
- "use_registration_fields.error.uppercase_letter": {
- "defaultMessage": "密碼必須包含至少 1 個大寫字母。"
- },
- "use_registration_fields.label.email": {
- "defaultMessage": "電子郵件"
- },
- "use_registration_fields.label.first_name": {
- "defaultMessage": "名字"
- },
- "use_registration_fields.label.last_name": {
- "defaultMessage": "姓氏"
- },
- "use_registration_fields.label.password": {
- "defaultMessage": "密碼"
- },
- "use_registration_fields.label.sign_up_to_emails": {
- "defaultMessage": "我要訂閱 Salesforce 電子報 (可以隨時取消訂閱)"
- },
- "use_reset_password_fields.error.required_email": {
- "defaultMessage": "請輸入有效的電子郵件地址。"
- },
- "use_reset_password_fields.label.email": {
- "defaultMessage": "電子郵件"
- },
- "use_update_password_fields.error.contain_number": {
- "defaultMessage": "密碼必須包含至少 1 個數字。"
- },
- "use_update_password_fields.error.lowercase_letter": {
- "defaultMessage": "密碼必須包含至少 1 個小寫字母。"
- },
- "use_update_password_fields.error.minimum_characters": {
- "defaultMessage": "密碼必須包含至少 8 個字元。"
- },
- "use_update_password_fields.error.required_new_password": {
- "defaultMessage": "請提供新密碼。"
- },
- "use_update_password_fields.error.required_password": {
- "defaultMessage": "請輸入您的密碼。"
- },
- "use_update_password_fields.error.special_character": {
- "defaultMessage": "密碼必須包含至少 1 個特殊字元。"
- },
- "use_update_password_fields.error.uppercase_letter": {
- "defaultMessage": "密碼必須包含至少 1 個大寫字母。"
- },
- "use_update_password_fields.label.current_password": {
- "defaultMessage": "目前密碼"
- },
- "use_update_password_fields.label.new_password": {
- "defaultMessage": "新密碼"
- },
- "wishlist_primary_action.button.add_set_to_cart": {
- "defaultMessage": "新增組合至購物車"
- },
- "wishlist_primary_action.button.add_to_cart": {
- "defaultMessage": "新增至購物車"
- },
- "wishlist_primary_action.button.view_full_details": {
- "defaultMessage": "檢視完整詳細資料"
- },
- "wishlist_primary_action.button.view_options": {
- "defaultMessage": "檢視選項"
- },
- "wishlist_primary_action.info.added_to_cart": {
- "defaultMessage": "{quantity} {quantity, plural, one {件商品} other {件商品}}已新增至購物車"
- },
- "wishlist_secondary_button_group.action.remove": {
- "defaultMessage": "移除"
- },
- "wishlist_secondary_button_group.info.item_removed": {
- "defaultMessage": "已從願望清單移除商品"
- },
- "with_registration.info.please_sign_in": {
- "defaultMessage": "請登入以繼續。"
- }
-}
diff --git a/packages/template-typescript-minimal/.eslintignore b/packages/template-typescript-minimal/.eslintignore
index 4329a9339b..c77e824ce9 100644
--- a/packages/template-typescript-minimal/.eslintignore
+++ b/packages/template-typescript-minimal/.eslintignore
@@ -2,6 +2,7 @@ build
coverage
docs
app/static
+app/application-extensions
jest.config.js
webpack
scripts/generator/assets
diff --git a/packages/template-typescript-minimal/.force_overrides b/packages/template-typescript-minimal/.force_overrides
new file mode 100644
index 0000000000..65c0904c4f
--- /dev/null
+++ b/packages/template-typescript-minimal/.force_overrides
@@ -0,0 +1,11 @@
+// DISCLAIMER
+//
+// BY USING THIS FILE, YOU AGREE THAT THE FUNCTIONALITY OF YOUR INSTALLED EXTENSION(S) IS NOT GUARANTEED.
+// ADDITIONALLY UPGRADABILITY OF EXTENSIONS CAN ALSO NO LONGER BE GUARANTEED AND IS NOT SUPPORTED BY SALESFORCE.
+// USE ONLY AS A TEMPORARY SOLUTION TO URGENTLY PATCH/UPDATE AN EXTENSION.
+//
+// USAGE:
+// PLACE THE RELATIVE __POSIX__ PATH TO THE EXTENSION FILE YOU WANT TO OVERRIDE STARTING WITH THE EXTENSION PACKAGE NAME.
+// MULTIPLE OVERRIDES CAN BE ADDED TO THIS FILE, ONE PER LINE.\
+// EXAMPLE:
+// ./node_modules/@salesforce/extension-starter/src/pages/sample.tsx
\ No newline at end of file
diff --git a/packages/template-typescript-minimal/app/pages/home.tsx b/packages/template-typescript-minimal/app/pages/home.tsx
deleted file mode 100644
index 02d42102e8..0000000000
--- a/packages/template-typescript-minimal/app/pages/home.tsx
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * Copyright (c) 2023, Salesforce, Inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-import React, {useEffect, useState} from 'react'
-import {useQuery} from '@tanstack/react-query'
-
-import HelloTS from '../components/hello-typescript'
-import HelloJS from '../components/hello-javascript'
-
-interface Props {
- value: number
-}
-
-const style = `
-body {
- background: linear-gradient(-45deg, #e73c7e, #23a6d5, #ee7752);
- background-size: 400% 400%;
- animation: gradient 10s ease infinite;
- height: 100vh;
-}
-@keyframes gradient {
- 0% {
- background-position: 0% 50%;
- }
- 50% {
- background-position: 100% 50%;
- }
- 100% {
- background-position: 0% 50%;
- }
-}
-@keyframes fade {
- 0% { opacity: 0 }
- 100% { opacity: 1 }
-}
-.fade-in {
- font-size: 18px;
- opacity: 0;
- animation: fade 1s ease-in-out;
- animation-fill-mode: forwards;
-}
-.fade-in-0 { animation-delay: 0s}
-.fade-in-1 { animation-delay: 4s}
-.fade-in-2 { animation-delay: 8s}
-.fade-in-3 { animation-delay: 12s}
-.fade-in-4 { animation-delay: 16s}
-.fade-in-5 { animation-delay: 20s}
-body {
- font-family: "Helvetica", sans-serif;
- font-weight: 300;
- color: rgba(255,255,255,0.8);
- color: chartreuse;
-}
-.loading-screen {
- mix-blend-mode: color-dodge;
- display: flex;
- flex-direction: row;
- flex-wrap: nowrap;
- justify-content: center;
- align-items: center;
- height: 100vh;
-}
-h1 {
- font-size: 10em;
- font-weight: 900;
- letter-spacing: -0.05em;
-}
-.title {
- text-align: right;
-}
-.divider {
- mix-blend-mode: lighten;
- width: 8px;
- background-color: chartreuse;
- height: 507px;
- margin-left: 5em;
- margin-right: 3em;
-}
-`
-
-const Home = ({value}: Props) => {
- const [counter, setCounter] = useState(0)
-
- useEffect(() => {
- const interval = setInterval(() => {
- setCounter(counter + 1)
- }, 1000)
- return () => clearInterval(interval)
- }, [counter, setCounter])
-
- const query = useQuery(
- ['example-data'],
- () =>
- new Promise((resolve) => {
- setTimeout(() => {
- resolve('This came from react-query')
- }, 1000)
- })
- )
-
- return (
-
-
-
-
-
- Typescript
-
- Support!
-
-
-
-
-
- <>
- This page is written in Typescript
-
-
- React query works if this is not empty: "{query.data}"
-
-
- Server-side getProps works if this is a valid expression: "5 times
- 7 is {value}
- "
-
-
- Client-side JS works if this counter increments: {counter}
-
-
- You can mix-and-match JS and TS
-
-
-
-
-
- >
-
-
-
-
- )
-}
-
-Home.getTemplateName = () => 'home'
-
-Home.getProps = async () => {
- // Note: This is simply a mock function to demo deferred execution for fetching props (e.g.: Making a call to the server to fetch data)
- const getData = (a: number, b: number) => {
- return new Promise((resolve) => {
- setTimeout(() => {
- resolve(a * b)
- }, 1000)
- })
- }
- const value = await getData(5, 7)
- return {value}
-}
-
-export default Home
diff --git a/packages/template-typescript-minimal/app/routes.tsx b/packages/template-typescript-minimal/app/routes.tsx
deleted file mode 100644
index b0e5aaf66a..0000000000
--- a/packages/template-typescript-minimal/app/routes.tsx
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * Copyright (c) 2023, Salesforce, Inc.
- * All rights reserved.
- * SPDX-License-Identifier: BSD-3-Clause
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
- */
-import loadable, {LoadableComponent} from '@loadable/component'
-
-const Home = loadable(() => import('./pages/home'))
-
-const routes = [
- {
- path: '/',
- exact: true,
- // Type assertion because otherwise we encounter this error:
- // Exported variable 'routes' has or is using name 'Props' from external module "./app/pages/home" but cannot be named.
- component: Home as LoadableComponent
- }
-]
-
-export default routes
diff --git a/packages/template-typescript-minimal/package-lock.json b/packages/template-typescript-minimal/package-lock.json
index abc067e650..0275800f27 100644
--- a/packages/template-typescript-minimal/package-lock.json
+++ b/packages/template-typescript-minimal/package-lock.json
@@ -1,34 +1,126 @@
{
"name": "typescript-minimal",
- "version": "3.10.0-dev.1",
+ "version": "4.0.0-extensibility-preview.5",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "typescript-minimal",
- "version": "3.10.0-dev.1",
+ "version": "4.0.0-extensibility-preview.5",
"devDependencies": {
+ "@chakra-ui/react": "^2.8.2",
+ "@emotion/react": "^11.13.3",
+ "@emotion/styled": "^11.13.0",
"@loadable/component": "^5.15.3",
"@tanstack/react-query": "^4.28.0",
"@types/loadable__component": "~5.13.4",
"@types/react": "~18.2.0",
"@types/react-dom": "~18.2.1",
+ "@types/react-router-dom": "~5.3.3",
+ "cross-env": "^5.2.1",
+ "framer-motion": "^11.5.4",
+ "full-icu": "^1.5.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-helmet": "^6.1.0",
+ "react-intl": "^5.25.1",
"react-router-dom": "^5.3.4",
- "typescript": "4.9.5"
+ "typescript": "4.9.5",
+ "zustand": "5.0.3"
},
"engines": {
"node": "^16.11.0 || ^18.0.0 || ^20.0.0 || ^22.0.0",
"npm": "^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0"
}
},
+ "node_modules/@babel/code-frame": {
+ "version": "7.26.2",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz",
+ "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-validator-identifier": "^7.25.9",
+ "js-tokens": "^4.0.0",
+ "picocolors": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/generator": {
+ "version": "7.26.10",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.10.tgz",
+ "integrity": "sha512-rRHT8siFIXQrAYOYqZQVsAr8vJ+cBNqcVAY6m5V8/4QqzaPl+zDBe6cLEPRDuNOUf3ww8RfJVlOyQMoSI+5Ang==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.26.10",
+ "@babel/types": "^7.26.10",
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.25",
+ "jsesc": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-imports": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz",
+ "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/traverse": "^7.25.9",
+ "@babel/types": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-string-parser": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz",
+ "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-identifier": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz",
+ "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/parser": {
+ "version": "7.26.10",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.10.tgz",
+ "integrity": "sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.26.10"
+ },
+ "bin": {
+ "parser": "bin/babel-parser.js"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
"node_modules/@babel/runtime": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.7.tgz",
- "integrity": "sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==",
+ "version": "7.26.10",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.10.tgz",
+ "integrity": "sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"regenerator-runtime": "^0.14.0"
},
@@ -36,11 +128,478 @@
"node": ">=6.9.0"
}
},
+ "node_modules/@babel/template": {
+ "version": "7.26.9",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.26.9.tgz",
+ "integrity": "sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.26.2",
+ "@babel/parser": "^7.26.9",
+ "@babel/types": "^7.26.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/traverse": {
+ "version": "7.26.10",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.10.tgz",
+ "integrity": "sha512-k8NuDrxr0WrPH5Aupqb2LCVURP/S0vBEn5mK6iH+GIYob66U5EtoZvcdudR2jQ4cmTwhEwW1DLB+Yyas9zjF6A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.26.2",
+ "@babel/generator": "^7.26.10",
+ "@babel/parser": "^7.26.10",
+ "@babel/template": "^7.26.9",
+ "@babel/types": "^7.26.10",
+ "debug": "^4.3.1",
+ "globals": "^11.1.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/types": {
+ "version": "7.26.10",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.10.tgz",
+ "integrity": "sha512-emqcG3vHrpxUKTrxcblR36dcrcoRDvKmnL/dCL6ZsHaShW80qxCAcNhzQZrpeM765VzEos+xOi4s+r4IXzTwdQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-string-parser": "^7.25.9",
+ "@babel/helper-validator-identifier": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@chakra-ui/anatomy": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/@chakra-ui/anatomy/-/anatomy-2.3.6.tgz",
+ "integrity": "sha512-TjmjyQouIZzha/l8JxdBZN1pKZTj7sLpJ0YkFnQFyqHcbfWggW9jKWzY1E0VBnhtFz/xF3KC6UAVuZVSJx+y0g==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@chakra-ui/hooks": {
+ "version": "2.4.4",
+ "resolved": "https://registry.npmjs.org/@chakra-ui/hooks/-/hooks-2.4.4.tgz",
+ "integrity": "sha512-+gMwLIkabtddIL/GICU7JmnYtvfONP+fNiTfdYLV9/I1eyCz8igKgLmFJOGM6F+BpUev6hh+/+DX5ezGQ9VTbQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@chakra-ui/utils": "2.2.4",
+ "@zag-js/element-size": "0.31.1",
+ "copy-to-clipboard": "3.3.3",
+ "framesync": "6.1.2"
+ },
+ "peerDependencies": {
+ "react": ">=18"
+ }
+ },
+ "node_modules/@chakra-ui/react": {
+ "version": "2.10.7",
+ "resolved": "https://registry.npmjs.org/@chakra-ui/react/-/react-2.10.7.tgz",
+ "integrity": "sha512-GX1dCmnvrxxyZEofDX9GMAtRakZJKnUqFM9k8qhaycPaeyfkiTNNTjhPNX917hgVx1yhC3kcJOs5IeC7yW56/g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@chakra-ui/hooks": "2.4.4",
+ "@chakra-ui/styled-system": "2.12.2",
+ "@chakra-ui/theme": "3.4.8",
+ "@chakra-ui/utils": "2.2.4",
+ "@popperjs/core": "^2.11.8",
+ "@zag-js/focus-visible": "^0.31.1",
+ "aria-hidden": "^1.2.3",
+ "react-fast-compare": "3.2.2",
+ "react-focus-lock": "^2.9.6",
+ "react-remove-scroll": "^2.5.7"
+ },
+ "peerDependencies": {
+ "@emotion/react": ">=11",
+ "@emotion/styled": ">=11",
+ "framer-motion": ">=4.0.0",
+ "react": ">=18",
+ "react-dom": ">=18"
+ }
+ },
+ "node_modules/@chakra-ui/styled-system": {
+ "version": "2.12.2",
+ "resolved": "https://registry.npmjs.org/@chakra-ui/styled-system/-/styled-system-2.12.2.tgz",
+ "integrity": "sha512-BlQ7i3+GYC0S0c72B+paa0sYo+QeNSMfz6fwQRFsc8A5Aax9i9lSdRL+vwJVC+k6r/0HWfRwk016R2RD2ihEwQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@chakra-ui/utils": "2.2.4",
+ "csstype": "^3.1.2"
+ }
+ },
+ "node_modules/@chakra-ui/theme": {
+ "version": "3.4.8",
+ "resolved": "https://registry.npmjs.org/@chakra-ui/theme/-/theme-3.4.8.tgz",
+ "integrity": "sha512-ZLMP2Gek38ZTIlj+sMZLsd1TW27yVdmUKMfBmjsr1psAeOa5bDBLKDszICjhEqk7gAbiWB7jr1/HzBXid4kduQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@chakra-ui/anatomy": "2.3.6",
+ "@chakra-ui/theme-tools": "2.2.8",
+ "@chakra-ui/utils": "2.2.4"
+ },
+ "peerDependencies": {
+ "@chakra-ui/styled-system": ">=2.8.0"
+ }
+ },
+ "node_modules/@chakra-ui/theme-tools": {
+ "version": "2.2.8",
+ "resolved": "https://registry.npmjs.org/@chakra-ui/theme-tools/-/theme-tools-2.2.8.tgz",
+ "integrity": "sha512-X2i2qgkG+k3DQfh/adn3zzM4Ty8QrGobVPjMl9rMrEYq3ac+pur6KVdVHy/SwwoPvB6S4i84uq7y35+KbJan9g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@chakra-ui/anatomy": "2.3.6",
+ "@chakra-ui/utils": "2.2.4",
+ "color2k": "^2.0.2"
+ },
+ "peerDependencies": {
+ "@chakra-ui/styled-system": ">=2.0.0"
+ }
+ },
+ "node_modules/@chakra-ui/utils": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/@chakra-ui/utils/-/utils-2.2.4.tgz",
+ "integrity": "sha512-nRpR9SnX7aLcJx7lKu8kgQWxdJso1oR/78HcBI+mzidvWdTykbTGdm5Q2R7S0PVH1IFBzBTgi6TiAjHvu96auA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/lodash.mergewith": "4.6.9",
+ "lodash.mergewith": "4.6.2"
+ },
+ "peerDependencies": {
+ "react": ">=16.8.0"
+ }
+ },
+ "node_modules/@emotion/babel-plugin": {
+ "version": "11.13.5",
+ "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.13.5.tgz",
+ "integrity": "sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.16.7",
+ "@babel/runtime": "^7.18.3",
+ "@emotion/hash": "^0.9.2",
+ "@emotion/memoize": "^0.9.0",
+ "@emotion/serialize": "^1.3.3",
+ "babel-plugin-macros": "^3.1.0",
+ "convert-source-map": "^1.5.0",
+ "escape-string-regexp": "^4.0.0",
+ "find-root": "^1.1.0",
+ "source-map": "^0.5.7",
+ "stylis": "4.2.0"
+ }
+ },
+ "node_modules/@emotion/cache": {
+ "version": "11.14.0",
+ "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.14.0.tgz",
+ "integrity": "sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@emotion/memoize": "^0.9.0",
+ "@emotion/sheet": "^1.4.0",
+ "@emotion/utils": "^1.4.2",
+ "@emotion/weak-memoize": "^0.4.0",
+ "stylis": "4.2.0"
+ }
+ },
+ "node_modules/@emotion/hash": {
+ "version": "0.9.2",
+ "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz",
+ "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@emotion/is-prop-valid": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.3.1.tgz",
+ "integrity": "sha512-/ACwoqx7XQi9knQs/G0qKvv5teDMhD7bXYns9N/wM8ah8iNb8jZ2uNO0YOgiq2o2poIvVtJS2YALasQuMSQ7Kw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@emotion/memoize": "^0.9.0"
+ }
+ },
+ "node_modules/@emotion/memoize": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.9.0.tgz",
+ "integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@emotion/react": {
+ "version": "11.14.0",
+ "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.14.0.tgz",
+ "integrity": "sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.18.3",
+ "@emotion/babel-plugin": "^11.13.5",
+ "@emotion/cache": "^11.14.0",
+ "@emotion/serialize": "^1.3.3",
+ "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0",
+ "@emotion/utils": "^1.4.2",
+ "@emotion/weak-memoize": "^0.4.0",
+ "hoist-non-react-statics": "^3.3.1"
+ },
+ "peerDependencies": {
+ "react": ">=16.8.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@emotion/serialize": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.3.tgz",
+ "integrity": "sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@emotion/hash": "^0.9.2",
+ "@emotion/memoize": "^0.9.0",
+ "@emotion/unitless": "^0.10.0",
+ "@emotion/utils": "^1.4.2",
+ "csstype": "^3.0.2"
+ }
+ },
+ "node_modules/@emotion/sheet": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.4.0.tgz",
+ "integrity": "sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@emotion/styled": {
+ "version": "11.14.0",
+ "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.14.0.tgz",
+ "integrity": "sha512-XxfOnXFffatap2IyCeJyNov3kiDQWoR08gPUQxvbL7fxKryGBKUZUkG6Hz48DZwVrJSVh9sJboyV1Ds4OW6SgA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.18.3",
+ "@emotion/babel-plugin": "^11.13.5",
+ "@emotion/is-prop-valid": "^1.3.0",
+ "@emotion/serialize": "^1.3.3",
+ "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0",
+ "@emotion/utils": "^1.4.2"
+ },
+ "peerDependencies": {
+ "@emotion/react": "^11.0.0-rc.0",
+ "react": ">=16.8.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@emotion/unitless": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.10.0.tgz",
+ "integrity": "sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@emotion/use-insertion-effect-with-fallbacks": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.2.0.tgz",
+ "integrity": "sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "react": ">=16.8.0"
+ }
+ },
+ "node_modules/@emotion/utils": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.4.2.tgz",
+ "integrity": "sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@emotion/weak-memoize": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz",
+ "integrity": "sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@formatjs/ecma402-abstract": {
+ "version": "1.11.4",
+ "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz",
+ "integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@formatjs/intl-localematcher": "0.2.25",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@formatjs/fast-memoize": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-1.2.1.tgz",
+ "integrity": "sha512-Rg0e76nomkz3vF9IPlKeV+Qynok0r7YZjL6syLz4/urSg0IbjPZCB/iYUMNsYA643gh4mgrX3T7KEIFIxJBQeg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@formatjs/icu-messageformat-parser": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.1.0.tgz",
+ "integrity": "sha512-Qxv/lmCN6hKpBSss2uQ8IROVnta2r9jd3ymUEIjm2UyIkUCHVcbUVRGL/KS/wv7876edvsPe+hjHVJ4z8YuVaw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@formatjs/ecma402-abstract": "1.11.4",
+ "@formatjs/icu-skeleton-parser": "1.3.6",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@formatjs/icu-skeleton-parser": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.3.6.tgz",
+ "integrity": "sha512-I96mOxvml/YLrwU2Txnd4klA7V8fRhb6JG/4hm3VMNmeJo1F03IpV2L3wWt7EweqNLES59SZ4d6hVOPCSf80Bg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@formatjs/ecma402-abstract": "1.11.4",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@formatjs/intl": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/@formatjs/intl/-/intl-2.2.1.tgz",
+ "integrity": "sha512-vgvyUOOrzqVaOFYzTf2d3+ToSkH2JpR7x/4U1RyoHQLmvEaTQvXJ7A2qm1Iy3brGNXC/+/7bUlc3lpH+h/LOJA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@formatjs/ecma402-abstract": "1.11.4",
+ "@formatjs/fast-memoize": "1.2.1",
+ "@formatjs/icu-messageformat-parser": "2.1.0",
+ "@formatjs/intl-displaynames": "5.4.3",
+ "@formatjs/intl-listformat": "6.5.3",
+ "intl-messageformat": "9.13.0",
+ "tslib": "^2.1.0"
+ },
+ "peerDependencies": {
+ "typescript": "^4.5"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@formatjs/intl-displaynames": {
+ "version": "5.4.3",
+ "resolved": "https://registry.npmjs.org/@formatjs/intl-displaynames/-/intl-displaynames-5.4.3.tgz",
+ "integrity": "sha512-4r12A3mS5dp5hnSaQCWBuBNfi9Amgx2dzhU4lTFfhSxgb5DOAiAbMpg6+7gpWZgl4ahsj3l2r/iHIjdmdXOE2Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@formatjs/ecma402-abstract": "1.11.4",
+ "@formatjs/intl-localematcher": "0.2.25",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@formatjs/intl-listformat": {
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/@formatjs/intl-listformat/-/intl-listformat-6.5.3.tgz",
+ "integrity": "sha512-ozpz515F/+3CU+HnLi5DYPsLa6JoCfBggBSSg/8nOB5LYSFW9+ZgNQJxJ8tdhKYeODT+4qVHX27EeJLoxLGLNg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@formatjs/ecma402-abstract": "1.11.4",
+ "@formatjs/intl-localematcher": "0.2.25",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@formatjs/intl-localematcher": {
+ "version": "0.2.25",
+ "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.2.25.tgz",
+ "integrity": "sha512-YmLcX70BxoSopLFdLr1Ds99NdlTI2oWoLbaUW2M406lxOIPzE1KQhRz2fPUkq34xVZQaihCoU29h0KK7An3bhA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.8",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz",
+ "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/set-array": "^1.2.1",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/resolve-uri": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/set-array": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
+ "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
+ "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.25",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
+ "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
+ }
+ },
"node_modules/@loadable/component": {
"version": "5.16.4",
"resolved": "https://registry.npmjs.org/@loadable/component/-/component-5.16.4.tgz",
"integrity": "sha512-fJWxx9b5WHX90QKmizo9B+es2so8DnBthI1mbflwCoOyvzEwxiZ/SVDCTtXEnHG72/kGBdzr297SSIekYtzSOQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/runtime": "^7.12.18",
"hoist-non-react-statics": "^3.3.1",
@@ -57,11 +616,23 @@
"react": "^16.3.0 || ^17.0.0 || ^18.0.0"
}
},
+ "node_modules/@popperjs/core": {
+ "version": "2.11.8",
+ "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz",
+ "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/popperjs"
+ }
+ },
"node_modules/@tanstack/query-core": {
"version": "4.36.1",
"resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-4.36.1.tgz",
"integrity": "sha512-DJSilV5+ytBP1FbFcEJovv4rnnm/CokuVvrBEtW/Va9DvuJ3HksbXUJEpI0aV1KtuL4ZoO9AVE6PyNLzF7tLeA==",
"dev": true,
+ "license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/tannerlinsley"
@@ -72,6 +643,7 @@
"resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-4.36.1.tgz",
"integrity": "sha512-y7ySVHFyyQblPl3J3eQBWpXZkliroki3ARnBKsdJchlgt7yJLRDUcf4B8soufgiYt3pEQIkBWBx1N9/ZPIeUWw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@tanstack/query-core": "4.36.1",
"use-sync-external-store": "^1.2.0"
@@ -94,26 +666,71 @@
}
}
},
+ "node_modules/@types/history": {
+ "version": "4.7.11",
+ "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz",
+ "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/hoist-non-react-statics": {
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.6.tgz",
+ "integrity": "sha512-lPByRJUer/iN/xa4qpyL0qmL11DqNW81iU/IG1S3uvRUq4oKagz8VCxZjiWkumgt66YT3vOdDgZ0o32sGKtCEw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/react": "*",
+ "hoist-non-react-statics": "^3.3.0"
+ }
+ },
"node_modules/@types/loadable__component": {
"version": "5.13.9",
"resolved": "https://registry.npmjs.org/@types/loadable__component/-/loadable__component-5.13.9.tgz",
"integrity": "sha512-QWOtIkwZqHNdQj3nixQ8oyihQiTMKZLk/DNuvNxMSbTfxf47w+kqcbnxlUeBgAxdOtW0Dh48dTAIp83iJKtnrQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/react": "*"
}
},
+ "node_modules/@types/lodash": {
+ "version": "4.17.16",
+ "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.16.tgz",
+ "integrity": "sha512-HX7Em5NYQAXKW+1T+FiuG27NGwzJfCX3s1GjOa7ujxZa52kjJLOr4FUxT+giF6Tgxv1e+/czV/iTtBw27WTU9g==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/lodash.mergewith": {
+ "version": "4.6.9",
+ "resolved": "https://registry.npmjs.org/@types/lodash.mergewith/-/lodash.mergewith-4.6.9.tgz",
+ "integrity": "sha512-fgkoCAOF47K7sxrQ7Mlud2TH023itugZs2bUg8h/KzT+BnZNrR2jAOmaokbLunHNnobXVWOezAeNn/lZqwxkcw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/lodash": "*"
+ }
+ },
+ "node_modules/@types/parse-json": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz",
+ "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/@types/prop-types": {
- "version": "15.7.12",
- "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz",
- "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==",
- "dev": true
+ "version": "15.7.14",
+ "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz",
+ "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/react": {
"version": "18.2.79",
"resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.79.tgz",
"integrity": "sha512-RwGAGXPl9kSXwdNTafkOEuFrTBD5SA2B3iEB96xi8+xu5ddUa/cpvyVCSNn+asgLCTHkb5ZxN8gbuibYJi4s1w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/prop-types": "*",
"csstype": "^3.0.2"
@@ -124,21 +741,376 @@
"resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.25.tgz",
"integrity": "sha512-o/V48vf4MQh7juIKZU2QGDfli6p1+OOi5oXx36Hffpc9adsHeXjVp8rHuPkjd8VT8sOJ2Zp05HR7CdpGTIUFUA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/react": "*"
}
},
+ "node_modules/@types/react-router": {
+ "version": "5.1.20",
+ "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.20.tgz",
+ "integrity": "sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/history": "^4.7.11",
+ "@types/react": "*"
+ }
+ },
+ "node_modules/@types/react-router-dom": {
+ "version": "5.3.3",
+ "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz",
+ "integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/history": "^4.7.11",
+ "@types/react": "*",
+ "@types/react-router": "*"
+ }
+ },
+ "node_modules/@zag-js/dom-query": {
+ "version": "0.31.1",
+ "resolved": "https://registry.npmjs.org/@zag-js/dom-query/-/dom-query-0.31.1.tgz",
+ "integrity": "sha512-oiuohEXAXhBxpzzNm9k2VHGEOLC1SXlXSbRPcfBZ9so5NRQUA++zCE7cyQJqGLTZR0t3itFLlZqDbYEXRrefwg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@zag-js/element-size": {
+ "version": "0.31.1",
+ "resolved": "https://registry.npmjs.org/@zag-js/element-size/-/element-size-0.31.1.tgz",
+ "integrity": "sha512-4T3yvn5NqqAjhlP326Fv+w9RqMIBbNN9H72g5q2ohwzhSgSfZzrKtjL4rs9axY/cw9UfMfXjRjEE98e5CMq7WQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@zag-js/focus-visible": {
+ "version": "0.31.1",
+ "resolved": "https://registry.npmjs.org/@zag-js/focus-visible/-/focus-visible-0.31.1.tgz",
+ "integrity": "sha512-dbLksz7FEwyFoANbpIlNnd3bVm0clQSUsnP8yUVQucStZPsuWjCrhL2jlAbGNrTrahX96ntUMXHb/sM68TibFg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@zag-js/dom-query": "0.31.1"
+ }
+ },
+ "node_modules/aria-hidden": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.4.tgz",
+ "integrity": "sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/babel-plugin-macros": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz",
+ "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.12.5",
+ "cosmiconfig": "^7.0.0",
+ "resolve": "^1.19.0"
+ },
+ "engines": {
+ "node": ">=10",
+ "npm": ">=6"
+ }
+ },
+ "node_modules/buffer-crc32": {
+ "version": "0.2.13",
+ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
+ "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/color2k": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/color2k/-/color2k-2.0.3.tgz",
+ "integrity": "sha512-zW190nQTIoXcGCaU08DvVNFTmQhUpnJfVuAKfWqUQkflXKpaDdpaYoM0iluLS9lgJNHyBF58KKA2FBEwkD7wog==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/convert-source-map": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
+ "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/copy-to-clipboard": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz",
+ "integrity": "sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "toggle-selection": "^1.0.6"
+ }
+ },
+ "node_modules/cosmiconfig": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz",
+ "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/parse-json": "^4.0.0",
+ "import-fresh": "^3.2.1",
+ "parse-json": "^5.0.0",
+ "path-type": "^4.0.0",
+ "yaml": "^1.10.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/cross-env": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.2.1.tgz",
+ "integrity": "sha512-1yHhtcfAd1r4nwQgknowuUNfIT9E8dOMMspC36g45dN+iD1blloi7xp8X/xAIDnjHWyt1uQ8PHk2fkNaym7soQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cross-spawn": "^6.0.5"
+ },
+ "bin": {
+ "cross-env": "dist/bin/cross-env.js",
+ "cross-env-shell": "dist/bin/cross-env-shell.js"
+ },
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/cross-spawn": {
+ "version": "6.0.6",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.6.tgz",
+ "integrity": "sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ },
+ "engines": {
+ "node": ">=4.8"
+ }
+ },
"node_modules/csstype": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
"integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/debug": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz",
+ "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/detect-node-es": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz",
+ "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/error-ex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "node_modules/escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/fd-slicer": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
+ "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "pend": "~1.2.0"
+ }
+ },
+ "node_modules/find-root": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz",
+ "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/focus-lock": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/focus-lock/-/focus-lock-1.3.6.tgz",
+ "integrity": "sha512-Ik/6OCk9RQQ0T5Xw+hKNLWrjSMtv51dD4GRmJjbD5a58TIEpI5a5iXagKVl3Z5UuyslMCA8Xwnu76jQob62Yhg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.0.3"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/framer-motion": {
+ "version": "11.18.2",
+ "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-11.18.2.tgz",
+ "integrity": "sha512-5F5Och7wrvtLVElIpclDT0CBzMVg3dL22B64aZwHtsIY8RB4mXICLrkajK4G9R+ieSAGcgrLeae2SeUTg2pr6w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "motion-dom": "^11.18.1",
+ "motion-utils": "^11.18.1",
+ "tslib": "^2.4.0"
+ },
+ "peerDependencies": {
+ "@emotion/is-prop-valid": "*",
+ "react": "^18.0.0 || ^19.0.0",
+ "react-dom": "^18.0.0 || ^19.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@emotion/is-prop-valid": {
+ "optional": true
+ },
+ "react": {
+ "optional": true
+ },
+ "react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/framesync": {
+ "version": "6.1.2",
+ "resolved": "https://registry.npmjs.org/framesync/-/framesync-6.1.2.tgz",
+ "integrity": "sha512-jBTqhX6KaQVDyus8muwZbBeGGP0XgujBRbQ7gM7BRdS3CadCZIHiawyzYLnafYcvZIh5j8WE7cxZKFn7dXhu9g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "2.4.0"
+ }
+ },
+ "node_modules/framesync/node_modules/tslib": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
+ "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==",
+ "dev": true,
+ "license": "0BSD"
+ },
+ "node_modules/full-icu": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/full-icu/-/full-icu-1.5.0.tgz",
+ "integrity": "sha512-BxB2otKUSFyvENjbI8EtQscpiPOEnhrf5V4MVpa6PjzsrLmdKKUUhulbydsfKS4ve6cGXNVRLlrOjizby/ZfDA==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "Unicode-DFS-2016",
+ "dependencies": {
+ "yauzl": "^2.10.0"
+ },
+ "bin": {
+ "full-icu": "node-full-icu.js",
+ "node-full-icu-path": "node-icu-data.js"
+ }
+ },
+ "node_modules/function-bind": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/get-nonce": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz",
+ "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/globals": {
+ "version": "11.12.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/hasown": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
},
"node_modules/history": {
"version": "4.10.1",
"resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz",
"integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/runtime": "^7.1.2",
"loose-envify": "^1.2.0",
@@ -153,27 +1125,125 @@
"resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
"integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
"react-is": "^16.7.0"
}
},
+ "node_modules/import-fresh": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz",
+ "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/intl-messageformat": {
+ "version": "9.13.0",
+ "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-9.13.0.tgz",
+ "integrity": "sha512-7sGC7QnSQGa5LZP7bXLDhVDtQOeKGeBFGHF2Y8LVBwYZoQZCgWeKoPGTa5GMG8g/TzDgeXuYJQis7Ggiw2xTOw==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@formatjs/ecma402-abstract": "1.11.4",
+ "@formatjs/fast-memoize": "1.2.1",
+ "@formatjs/icu-messageformat-parser": "2.1.0",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/is-core-module": {
+ "version": "2.16.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz",
+ "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "hasown": "^2.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/isarray": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
"integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+ "dev": true,
+ "license": "ISC"
},
"node_modules/js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/jsesc": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
+ "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "jsesc": "bin/jsesc"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/json-parse-even-better-errors": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/lines-and-columns": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
+ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/lodash.mergewith": {
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz",
+ "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/loose-envify": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
"integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"js-tokens": "^3.0.0 || ^4.0.0"
},
@@ -181,29 +1251,136 @@
"loose-envify": "cli.js"
}
},
+ "node_modules/motion-dom": {
+ "version": "11.18.1",
+ "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-11.18.1.tgz",
+ "integrity": "sha512-g76KvA001z+atjfxczdRtw/RXOM3OMSdd1f4DL77qCTF/+avrRJiawSG4yDibEQ215sr9kpinSlX2pCTJ9zbhw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "motion-utils": "^11.18.1"
+ }
+ },
+ "node_modules/motion-utils": {
+ "version": "11.18.1",
+ "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-11.18.1.tgz",
+ "integrity": "sha512-49Kt+HKjtbJKLtgO/LKj9Ld+6vw9BjH5d9sc40R/kVyH8GLAXgT42M2NnuPcJNuA3s9ZfZBUcwIgpmZWGEE+hA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/nice-try": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
+ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
+ "node_modules/parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "callsites": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/parse-json": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
+ "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-even-better-errors": "^2.3.0",
+ "lines-and-columns": "^1.1.6"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/path-to-regexp": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz",
- "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==",
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.9.0.tgz",
+ "integrity": "sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"isarray": "0.0.1"
}
},
+ "node_modules/path-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/pend": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
+ "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/picocolors": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
+ "dev": true,
+ "license": "ISC"
+ },
"node_modules/prop-types": {
"version": "15.8.1",
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
"integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"loose-envify": "^1.4.0",
"object-assign": "^4.1.1",
@@ -215,6 +1392,7 @@
"resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
"integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"loose-envify": "^1.1.0"
},
@@ -222,11 +1400,25 @@
"node": ">=0.10.0"
}
},
+ "node_modules/react-clientside-effect": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/react-clientside-effect/-/react-clientside-effect-1.2.7.tgz",
+ "integrity": "sha512-gce9m0Pk/xYYMEojRI9bgvqQAkl6hm7ozQvqWPyQx+kULiatdHgkNM1QG4DQRx5N9BAzWSCJmt9mMV8/KsdgVg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.12.13"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc"
+ }
+ },
"node_modules/react-dom": {
"version": "18.3.1",
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz",
"integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"loose-envify": "^1.1.0",
"scheduler": "^0.23.2"
@@ -239,13 +1431,39 @@
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz",
"integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/react-focus-lock": {
+ "version": "2.13.6",
+ "resolved": "https://registry.npmjs.org/react-focus-lock/-/react-focus-lock-2.13.6.tgz",
+ "integrity": "sha512-ehylFFWyYtBKXjAO9+3v8d0i+cnc1trGS0vlTGhzFW1vbFXVUTmR8s2tt/ZQG8x5hElg6rhENlLG1H3EZK0Llg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.0.0",
+ "focus-lock": "^1.3.6",
+ "prop-types": "^15.6.2",
+ "react-clientside-effect": "^1.2.7",
+ "use-callback-ref": "^1.3.3",
+ "use-sidecar": "^1.1.3"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
},
"node_modules/react-helmet": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/react-helmet/-/react-helmet-6.1.0.tgz",
"integrity": "sha512-4uMzEY9nlDlgxr61NL3XbKRy1hEkXmKNXhjbAIOVw5vcFrsdYbH2FEwcNyWvWinl103nXgzYNlns9ca+8kFiWw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"object-assign": "^4.1.1",
"prop-types": "^15.7.2",
@@ -256,17 +1474,96 @@
"react": ">=16.3.0"
}
},
+ "node_modules/react-intl": {
+ "version": "5.25.1",
+ "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-5.25.1.tgz",
+ "integrity": "sha512-pkjdQDvpJROoXLMltkP/5mZb0/XqrqLoPGKUCfbdkP8m6U9xbK40K51Wu+a4aQqTEvEK5lHBk0fWzUV72SJ3Hg==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@formatjs/ecma402-abstract": "1.11.4",
+ "@formatjs/icu-messageformat-parser": "2.1.0",
+ "@formatjs/intl": "2.2.1",
+ "@formatjs/intl-displaynames": "5.4.3",
+ "@formatjs/intl-listformat": "6.5.3",
+ "@types/hoist-non-react-statics": "^3.3.1",
+ "@types/react": "16 || 17 || 18",
+ "hoist-non-react-statics": "^3.3.2",
+ "intl-messageformat": "9.13.0",
+ "tslib": "^2.1.0"
+ },
+ "peerDependencies": {
+ "react": "^16.3.0 || 17 || 18",
+ "typescript": "^4.5"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
"node_modules/react-is": {
"version": "16.13.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/react-remove-scroll": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.6.3.tgz",
+ "integrity": "sha512-pnAi91oOk8g8ABQKGF5/M9qxmmOPxaAnopyTHYfqYEwJhyFrbbBtHuSgtKEoH0jpcxx5o3hXqH1mNd9/Oi+8iQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "react-remove-scroll-bar": "^2.3.7",
+ "react-style-singleton": "^2.2.3",
+ "tslib": "^2.1.0",
+ "use-callback-ref": "^1.3.3",
+ "use-sidecar": "^1.1.3"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/react-remove-scroll-bar": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz",
+ "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "react-style-singleton": "^2.2.2",
+ "tslib": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
},
"node_modules/react-router": {
"version": "5.3.4",
"resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz",
"integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/runtime": "^7.12.13",
"history": "^4.9.0",
@@ -287,6 +1584,7 @@
"resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.4.tgz",
"integrity": "sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/runtime": "^7.12.13",
"history": "^4.9.0",
@@ -305,48 +1603,186 @@
"resolved": "https://registry.npmjs.org/react-side-effect/-/react-side-effect-2.1.2.tgz",
"integrity": "sha512-PVjOcvVOyIILrYoyGEpDN3vmYNLdy1CajSFNt4TDsVQC5KpTijDvWVoR+/7Rz2xT978D8/ZtFceXxzsPwZEDvw==",
"dev": true,
+ "license": "MIT",
"peerDependencies": {
"react": "^16.3.0 || ^17.0.0 || ^18.0.0"
}
},
+ "node_modules/react-style-singleton": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz",
+ "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "get-nonce": "^1.0.0",
+ "tslib": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
"node_modules/regenerator-runtime": {
"version": "0.14.1",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
"integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/resolve": {
+ "version": "1.22.10",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz",
+ "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-core-module": "^2.16.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
},
"node_modules/resolve-pathname": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz",
"integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/scheduler": {
"version": "0.23.2",
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz",
"integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"loose-envify": "^1.1.0"
}
},
+ "node_modules/semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "shebang-regex": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/stylis": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz",
+ "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/tiny-invariant": {
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz",
"integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/tiny-warning": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz",
"integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/toggle-selection": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz",
+ "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/tslib": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
+ "dev": true,
+ "license": "0BSD"
},
"node_modules/typescript": {
"version": "4.9.5",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
"integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
"dev": true,
+ "license": "Apache-2.0",
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
@@ -355,20 +1791,131 @@
"node": ">=4.2.0"
}
},
+ "node_modules/use-callback-ref": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz",
+ "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/use-sidecar": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz",
+ "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "detect-node-es": "^1.1.0",
+ "tslib": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
"node_modules/use-sync-external-store": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz",
- "integrity": "sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz",
+ "integrity": "sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==",
"dev": true,
+ "license": "MIT",
"peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
}
},
"node_modules/value-equal": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz",
"integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/which": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "which": "bin/which"
+ }
+ },
+ "node_modules/yaml": {
+ "version": "1.10.2",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
+ "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/yauzl": {
+ "version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
+ "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "buffer-crc32": "~0.2.3",
+ "fd-slicer": "~1.1.0"
+ }
+ },
+ "node_modules/zustand": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.3.tgz",
+ "integrity": "sha512-14fwWQtU3pH4dE0dOpdMiWjddcH+QzKIgk1cl8epwSE7yag43k/AD/m4L6+K7DytAOr9gGBe3/EXj9g7cdostg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.20.0"
+ },
+ "peerDependencies": {
+ "@types/react": ">=18.0.0",
+ "immer": ">=9.0.6",
+ "react": ">=18.0.0",
+ "use-sync-external-store": ">=1.2.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "immer": {
+ "optional": true
+ },
+ "react": {
+ "optional": true
+ },
+ "use-sync-external-store": {
+ "optional": true
+ }
+ }
}
}
}
diff --git a/packages/template-typescript-minimal/package.json b/packages/template-typescript-minimal/package.json
index 810ac169cd..8db5316651 100644
--- a/packages/template-typescript-minimal/package.json
+++ b/packages/template-typescript-minimal/package.json
@@ -1,8 +1,9 @@
{
"name": "typescript-minimal",
- "version": "3.10.0-dev.1",
+ "version": "4.0.0-extensibility-preview.5",
"private": true,
"scripts": {
+ "analyze-build": "cross-env MOBIFY_ANALYZE=true npm run build",
"build": "pwa-kit-dev build",
"format": "pwa-kit-dev format \"**/*.{js,jsx,ts,tsx}\"",
"lint": "npm run lint:js && npm run typecheck",
@@ -10,32 +11,44 @@
"lint:js": "pwa-kit-dev lint \"**/*.{js,jsx,ts,tsx}\"",
"push": "npm run build && pwa-kit-dev push",
"save-credentials": "pwa-kit-dev save-credentials",
- "start": "pwa-kit-dev start",
+ "start": "cross-env NODE_ICU_DATA=node_modules/full-icu pwa-kit-dev start",
"start:inspect": "npm run start -- --inspect",
"tail-logs": "pwa-kit-dev tail-logs",
"test": "pwa-kit-dev test",
"typecheck": "tsc --noEmit"
},
"devDependencies": {
+ "@chakra-ui/react": "^2.8.2",
+ "@emotion/react": "^11.13.3",
+ "@emotion/styled": "^11.13.0",
"@loadable/component": "^5.15.3",
- "@salesforce/pwa-kit-dev": "3.10.0-dev.1",
- "@salesforce/pwa-kit-react-sdk": "3.10.0-dev.1",
- "@salesforce/pwa-kit-runtime": "3.10.0-dev.1",
+ "@salesforce/pwa-kit-dev": "4.0.0-extensibility-preview.5",
+ "@salesforce/pwa-kit-react-sdk": "4.0.0-extensibility-preview.5",
+ "@salesforce/pwa-kit-runtime": "4.0.0-extensibility-preview.5",
"@tanstack/react-query": "^4.28.0",
"@types/loadable__component": "~5.13.4",
"@types/react": "~18.2.0",
"@types/react-dom": "~18.2.1",
+ "@types/react-router-dom": "~5.3.3",
+ "cross-env": "^5.2.1",
+ "framer-motion": "^11.5.4",
+ "full-icu": "^1.5.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-helmet": "^6.1.0",
+ "react-intl": "^5.25.1",
"react-router-dom": "^5.3.4",
- "typescript": "4.9.5"
+ "typescript": "4.9.5",
+ "zustand": "5.0.3"
},
"engines": {
"node": "^16.11.0 || ^18.0.0 || ^20.0.0 || ^22.0.0",
"npm": "^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0"
},
"mobify": {
+ "app": {
+ "extensions": []
+ },
"ssrEnabled": true,
"ssrOnly": [
"ssr.js",
diff --git a/packages/template-typescript-minimal/app/components/_app-config/index.js b/packages/template-typescript-minimal/src/components/_app-config/index.js
similarity index 96%
rename from packages/template-typescript-minimal/app/components/_app-config/index.js
rename to packages/template-typescript-minimal/src/components/_app-config/index.js
index 6d9fb3950a..4f351a471e 100644
--- a/packages/template-typescript-minimal/app/components/_app-config/index.js
+++ b/packages/template-typescript-minimal/src/components/_app-config/index.js
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2023, Salesforce, Inc.
+ * Copyright (c) 2024, Salesforce, Inc.
* All rights reserved.
* SPDX-License-Identifier: BSD-3-Clause
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
diff --git a/packages/template-typescript-minimal/app/components/hello-javascript.jsx b/packages/template-typescript-minimal/src/components/hello-javascript.jsx
similarity index 100%
rename from packages/template-typescript-minimal/app/components/hello-javascript.jsx
rename to packages/template-typescript-minimal/src/components/hello-javascript.jsx
diff --git a/packages/template-typescript-minimal/app/components/hello-typescript.tsx b/packages/template-typescript-minimal/src/components/hello-typescript.tsx
similarity index 100%
rename from packages/template-typescript-minimal/app/components/hello-typescript.tsx
rename to packages/template-typescript-minimal/src/components/hello-typescript.tsx
diff --git a/packages/template-typescript-minimal/app/main.test.js b/packages/template-typescript-minimal/src/main.test.js
similarity index 100%
rename from packages/template-typescript-minimal/app/main.test.js
rename to packages/template-typescript-minimal/src/main.test.js
diff --git a/packages/template-typescript-minimal/app/main.tsx b/packages/template-typescript-minimal/src/main.tsx
similarity index 100%
rename from packages/template-typescript-minimal/app/main.tsx
rename to packages/template-typescript-minimal/src/main.tsx
diff --git a/packages/template-typescript-minimal/src/pages/getting-started.tsx b/packages/template-typescript-minimal/src/pages/getting-started.tsx
new file mode 100644
index 0000000000..27945d93d3
--- /dev/null
+++ b/packages/template-typescript-minimal/src/pages/getting-started.tsx
@@ -0,0 +1,85 @@
+/*
+ * Copyright (c) 2023, Salesforce, Inc.
+ * All rights reserved.
+ * SPDX-License-Identifier: BSD-3-Clause
+ * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
+ */
+import React from 'react'
+
+const style = `
+.content {
+ font-size: 18px;
+ font-family: "Helvetica", sans-serif;
+}
+.content h1 {
+ font-size: 8em;
+ font-weight: 900;
+ letter-spacing: -0.05em;
+}
+.content p,
+.content ul {
+ margin: 1em 0;
+}
+.loading-screen {
+ display: flex;
+ flex-direction: row;
+ flex-wrap: nowrap;
+ justify-content: center;
+ align-items: center;
+ height: 100vh;
+}
+.title {
+ text-align: right;
+}
+.divider {
+ width: 8px;
+ background-color: black;
+ height: 300px;
+ margin-left: 5em;
+ margin-right: 3em;
+}
+.button {
+ display: inline-block;
+ padding: 10px 20px;
+ font-size: 16px;
+ font-weight: bold;
+ color: white;
+ background-color: #0176D3;
+ text-align: center;
+ text-decoration: none;
+ border-radius: 5px;
+}
+`
+
+const GettingStarted = () => {
+ return (
+
+ )
+}
+
+GettingStarted.getTemplateName = () => 'getting-started'
+
+export default GettingStarted
diff --git a/packages/template-typescript-minimal/app/request-processor.js b/packages/template-typescript-minimal/src/request-processor.js
similarity index 100%
rename from packages/template-typescript-minimal/app/request-processor.js
rename to packages/template-typescript-minimal/src/request-processor.js
diff --git a/packages/template-typescript-minimal/src/routes.tsx b/packages/template-typescript-minimal/src/routes.tsx
new file mode 100644
index 0000000000..cdb2d5f974
--- /dev/null
+++ b/packages/template-typescript-minimal/src/routes.tsx
@@ -0,0 +1,21 @@
+/*
+ * Copyright (c) 2023, Salesforce, Inc.
+ * All rights reserved.
+ * SPDX-License-Identifier: BSD-3-Clause
+ * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
+ */
+import loadable from '@loadable/component'
+
+const GettingStarted = loadable(() => import('./pages/getting-started'))
+
+const routes = [
+ {
+ // The path that the local dev server would open initially.
+ // You can configure the server in /app/ssr.js file.
+ path: '/__pwa-kit/getting-started',
+ exact: true,
+ component: GettingStarted
+ }
+]
+
+export default routes
diff --git a/packages/template-typescript-minimal/app/ssr.js b/packages/template-typescript-minimal/src/ssr.js
similarity index 91%
rename from packages/template-typescript-minimal/app/ssr.js
rename to packages/template-typescript-minimal/src/ssr.js
index 7e7cfdf0da..d8e07fa50f 100644
--- a/packages/template-typescript-minimal/app/ssr.js
+++ b/packages/template-typescript-minimal/src/ssr.js
@@ -27,6 +27,9 @@ const options = {
// except by Safari.
protocol: 'http',
+ // The path that the local dev server would open initially
+ startPath: '/__pwa-kit/getting-started',
+
mobify: pkg.mobify
}
@@ -45,4 +48,4 @@ const {handler} = runtime.createHandler(options, (app) => {
// SSR requires that we export a single handler function called 'get', that
// supports AWS use of the server that we created above.
-exports.get = handler
+export const get = handler
diff --git a/packages/template-retail-react-app/app/static/ico/favicon.ico b/packages/template-typescript-minimal/src/static/favicon.ico
similarity index 100%
rename from packages/template-retail-react-app/app/static/ico/favicon.ico
rename to packages/template-typescript-minimal/src/static/favicon.ico
diff --git a/packages/template-typescript-minimal/app/typescript-file.ts b/packages/template-typescript-minimal/src/typescript-file.ts
similarity index 100%
rename from packages/template-typescript-minimal/app/typescript-file.ts
rename to packages/template-typescript-minimal/src/typescript-file.ts
diff --git a/packages/template-typescript-minimal/tsconfig.json b/packages/template-typescript-minimal/tsconfig.json
index ddd290944c..caf08c8b4e 100644
--- a/packages/template-typescript-minimal/tsconfig.json
+++ b/packages/template-typescript-minimal/tsconfig.json
@@ -98,5 +98,6 @@
/* Completeness */
// "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */
"skipLibCheck": true /* Skip type checking all .d.ts files. */
- }
+ },
+ "exclude": ["node_modules", "app/application-extensions"]
}
diff --git a/packages/test-commerce-sdk-react/app/static/favicon.ico b/packages/test-commerce-sdk-react/app/static/favicon.ico
deleted file mode 100644
index a15a8f348b..0000000000
Binary files a/packages/test-commerce-sdk-react/app/static/favicon.ico and /dev/null differ
diff --git a/packages/test-commerce-sdk-react/package-lock.json b/packages/test-commerce-sdk-react/package-lock.json
index 8fdd93e816..41675a07bd 100644
--- a/packages/test-commerce-sdk-react/package-lock.json
+++ b/packages/test-commerce-sdk-react/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "test-commerce-sdk-react",
- "version": "3.10.0-dev.1",
+ "version": "4.0.0-extensibility-preview.5",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "test-commerce-sdk-react",
- "version": "3.10.0-dev.1",
+ "version": "4.0.0-extensibility-preview.5",
"devDependencies": {
"@loadable/component": "^5.15.3",
"@tanstack/react-query": "^4.28.0",
@@ -27,10 +27,11 @@
}
},
"node_modules/@babel/runtime": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.7.tgz",
- "integrity": "sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==",
+ "version": "7.26.10",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.10.tgz",
+ "integrity": "sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"regenerator-runtime": "^0.14.0"
},
@@ -43,6 +44,7 @@
"resolved": "https://registry.npmjs.org/@loadable/component/-/component-5.16.4.tgz",
"integrity": "sha512-fJWxx9b5WHX90QKmizo9B+es2so8DnBthI1mbflwCoOyvzEwxiZ/SVDCTtXEnHG72/kGBdzr297SSIekYtzSOQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/runtime": "^7.12.18",
"hoist-non-react-statics": "^3.3.1",
@@ -64,6 +66,7 @@
"resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-4.36.1.tgz",
"integrity": "sha512-DJSilV5+ytBP1FbFcEJovv4rnnm/CokuVvrBEtW/Va9DvuJ3HksbXUJEpI0aV1KtuL4ZoO9AVE6PyNLzF7tLeA==",
"dev": true,
+ "license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/tannerlinsley"
@@ -74,6 +77,7 @@
"resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-4.36.1.tgz",
"integrity": "sha512-y7ySVHFyyQblPl3J3eQBWpXZkliroki3ARnBKsdJchlgt7yJLRDUcf4B8soufgiYt3pEQIkBWBx1N9/ZPIeUWw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@tanstack/query-core": "4.36.1",
"use-sync-external-store": "^1.2.0"
@@ -100,13 +104,15 @@
"version": "4.7.11",
"resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz",
"integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/loadable__component": {
"version": "5.13.9",
"resolved": "https://registry.npmjs.org/@types/loadable__component/-/loadable__component-5.13.9.tgz",
"integrity": "sha512-QWOtIkwZqHNdQj3nixQ8oyihQiTMKZLk/DNuvNxMSbTfxf47w+kqcbnxlUeBgAxdOtW0Dh48dTAIp83iJKtnrQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/react": "*"
}
@@ -115,19 +121,22 @@
"version": "16.0.3",
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.0.3.tgz",
"integrity": "sha512-QhhSbE1wJMbh+lDsb9G6UFmyojhEgoO7dFVDBkli80sp3sPFojGh6TJXsht9Qbe2VWi91pbj08+1Kvue61RwsQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/prop-types": {
- "version": "15.7.12",
- "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz",
- "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==",
- "dev": true
+ "version": "15.7.14",
+ "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz",
+ "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/react": {
"version": "18.2.79",
"resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.79.tgz",
"integrity": "sha512-RwGAGXPl9kSXwdNTafkOEuFrTBD5SA2B3iEB96xi8+xu5ddUa/cpvyVCSNn+asgLCTHkb5ZxN8gbuibYJi4s1w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/prop-types": "*",
"csstype": "^3.0.2"
@@ -138,6 +147,7 @@
"resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.25.tgz",
"integrity": "sha512-o/V48vf4MQh7juIKZU2QGDfli6p1+OOi5oXx36Hffpc9adsHeXjVp8rHuPkjd8VT8sOJ2Zp05HR7CdpGTIUFUA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/react": "*"
}
@@ -147,6 +157,7 @@
"resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.20.tgz",
"integrity": "sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/history": "^4.7.11",
"@types/react": "*"
@@ -157,6 +168,7 @@
"resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz",
"integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/history": "^4.7.11",
"@types/react": "*",
@@ -167,13 +179,15 @@
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
"integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/history": {
"version": "4.10.1",
"resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz",
"integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/runtime": "^7.1.2",
"loose-envify": "^1.2.0",
@@ -188,6 +202,7 @@
"resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
"integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
"react-is": "^16.7.0"
}
@@ -196,19 +211,22 @@
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
"integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/loose-envify": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
"integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"js-tokens": "^3.0.0 || ^4.0.0"
},
@@ -221,15 +239,17 @@
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/path-to-regexp": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz",
- "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==",
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.9.0.tgz",
+ "integrity": "sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"isarray": "0.0.1"
}
@@ -239,6 +259,7 @@
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
"integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"loose-envify": "^1.4.0",
"object-assign": "^4.1.1",
@@ -250,6 +271,7 @@
"resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
"integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"loose-envify": "^1.1.0"
},
@@ -262,6 +284,7 @@
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz",
"integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"loose-envify": "^1.1.0",
"scheduler": "^0.23.2"
@@ -274,13 +297,15 @@
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz",
"integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/react-helmet": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/react-helmet/-/react-helmet-6.1.0.tgz",
"integrity": "sha512-4uMzEY9nlDlgxr61NL3XbKRy1hEkXmKNXhjbAIOVw5vcFrsdYbH2FEwcNyWvWinl103nXgzYNlns9ca+8kFiWw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"object-assign": "^4.1.1",
"prop-types": "^15.7.2",
@@ -295,13 +320,15 @@
"version": "16.13.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/react-router": {
"version": "5.3.4",
"resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz",
"integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/runtime": "^7.12.13",
"history": "^4.9.0",
@@ -322,6 +349,7 @@
"resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.4.tgz",
"integrity": "sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/runtime": "^7.12.13",
"history": "^4.9.0",
@@ -340,6 +368,7 @@
"resolved": "https://registry.npmjs.org/react-side-effect/-/react-side-effect-2.1.2.tgz",
"integrity": "sha512-PVjOcvVOyIILrYoyGEpDN3vmYNLdy1CajSFNt4TDsVQC5KpTijDvWVoR+/7Rz2xT978D8/ZtFceXxzsPwZEDvw==",
"dev": true,
+ "license": "MIT",
"peerDependencies": {
"react": "^16.3.0 || ^17.0.0 || ^18.0.0"
}
@@ -348,19 +377,22 @@
"version": "0.14.1",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
"integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/resolve-pathname": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz",
"integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/scheduler": {
"version": "0.23.2",
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz",
"integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"loose-envify": "^1.1.0"
}
@@ -369,19 +401,22 @@
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz",
"integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/tiny-warning": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz",
"integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/typescript": {
"version": "4.9.5",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
"integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
"dev": true,
+ "license": "Apache-2.0",
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
@@ -391,19 +426,21 @@
}
},
"node_modules/use-sync-external-store": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz",
- "integrity": "sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz",
+ "integrity": "sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==",
"dev": true,
+ "license": "MIT",
"peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
}
},
"node_modules/value-equal": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz",
"integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
}
}
}
diff --git a/packages/test-commerce-sdk-react/package.json b/packages/test-commerce-sdk-react/package.json
index 8756e0f1df..3bb820f300 100644
--- a/packages/test-commerce-sdk-react/package.json
+++ b/packages/test-commerce-sdk-react/package.json
@@ -1,6 +1,6 @@
{
"name": "test-commerce-sdk-react",
- "version": "3.10.0-dev.1",
+ "version": "4.0.0-extensibility-preview.5",
"private": true,
"scripts": {
"build": "pwa-kit-dev build",
@@ -18,17 +18,17 @@
},
"devDependencies": {
"@loadable/component": "^5.15.3",
- "@salesforce/commerce-sdk-react": "3.3.0-dev.1",
- "@salesforce/pwa-kit-dev": "3.10.0-dev.1",
- "@salesforce/pwa-kit-react-sdk": "3.10.0-dev.1",
- "@salesforce/pwa-kit-runtime": "3.10.0-dev.1",
+ "@salesforce/commerce-sdk-react": "3.3.0-extensibility-preview.5",
+ "@salesforce/pwa-kit-dev": "4.0.0-extensibility-preview.5",
+ "@salesforce/pwa-kit-react-sdk": "4.0.0-extensibility-preview.5",
+ "@salesforce/pwa-kit-runtime": "4.0.0-extensibility-preview.5",
"@tanstack/react-query": "^4.28.0",
"@types/loadable__component": "~5.13.4",
"@types/node": "~16.0.3",
"@types/react": "~18.2.0",
"@types/react-dom": "~18.2.1",
"@types/react-router-dom": "~5.3.3",
- "internal-lib-build": "3.10.0-dev.1",
+ "internal-lib-build": "4.0.0-extensibility-preview.5",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-helmet": "^6.1.0",
diff --git a/packages/test-commerce-sdk-react/app/components/Json.tsx b/packages/test-commerce-sdk-react/src/components/Json.tsx
similarity index 100%
rename from packages/test-commerce-sdk-react/app/components/Json.tsx
rename to packages/test-commerce-sdk-react/src/components/Json.tsx
diff --git a/packages/test-commerce-sdk-react/app/components/_app-config/index.tsx b/packages/test-commerce-sdk-react/src/components/_app-config/index.tsx
similarity index 100%
rename from packages/test-commerce-sdk-react/app/components/_app-config/index.tsx
rename to packages/test-commerce-sdk-react/src/components/_app-config/index.tsx
diff --git a/packages/test-commerce-sdk-react/app/components/_app/index.tsx b/packages/test-commerce-sdk-react/src/components/_app/index.tsx
similarity index 100%
rename from packages/test-commerce-sdk-react/app/components/_app/index.tsx
rename to packages/test-commerce-sdk-react/src/components/_app/index.tsx
diff --git a/packages/test-commerce-sdk-react/app/components/use-shopper-baskets/use-basket/index.tsx b/packages/test-commerce-sdk-react/src/components/use-shopper-baskets/use-basket/index.tsx
similarity index 100%
rename from packages/test-commerce-sdk-react/app/components/use-shopper-baskets/use-basket/index.tsx
rename to packages/test-commerce-sdk-react/src/components/use-shopper-baskets/use-basket/index.tsx
diff --git a/packages/test-commerce-sdk-react/app/components/use-shopper-baskets/use-payment-method-for-basket/index.tsx b/packages/test-commerce-sdk-react/src/components/use-shopper-baskets/use-payment-method-for-basket/index.tsx
similarity index 100%
rename from packages/test-commerce-sdk-react/app/components/use-shopper-baskets/use-payment-method-for-basket/index.tsx
rename to packages/test-commerce-sdk-react/src/components/use-shopper-baskets/use-payment-method-for-basket/index.tsx
diff --git a/packages/test-commerce-sdk-react/app/main.tsx b/packages/test-commerce-sdk-react/src/main.tsx
similarity index 100%
rename from packages/test-commerce-sdk-react/app/main.tsx
rename to packages/test-commerce-sdk-react/src/main.tsx
diff --git a/packages/test-commerce-sdk-react/app/pages/home.tsx b/packages/test-commerce-sdk-react/src/pages/home.tsx
similarity index 100%
rename from packages/test-commerce-sdk-react/app/pages/home.tsx
rename to packages/test-commerce-sdk-react/src/pages/home.tsx
diff --git a/packages/test-commerce-sdk-react/app/pages/query-errors.tsx b/packages/test-commerce-sdk-react/src/pages/query-errors.tsx
similarity index 100%
rename from packages/test-commerce-sdk-react/app/pages/query-errors.tsx
rename to packages/test-commerce-sdk-react/src/pages/query-errors.tsx
diff --git a/packages/test-commerce-sdk-react/app/pages/use-auth-helper.tsx b/packages/test-commerce-sdk-react/src/pages/use-auth-helper.tsx
similarity index 100%
rename from packages/test-commerce-sdk-react/app/pages/use-auth-helper.tsx
rename to packages/test-commerce-sdk-react/src/pages/use-auth-helper.tsx
diff --git a/packages/test-commerce-sdk-react/app/pages/use-custom-endpoint.tsx b/packages/test-commerce-sdk-react/src/pages/use-custom-endpoint.tsx
similarity index 100%
rename from packages/test-commerce-sdk-react/app/pages/use-custom-endpoint.tsx
rename to packages/test-commerce-sdk-react/src/pages/use-custom-endpoint.tsx
diff --git a/packages/test-commerce-sdk-react/app/pages/use-customer-id.tsx b/packages/test-commerce-sdk-react/src/pages/use-customer-id.tsx
similarity index 100%
rename from packages/test-commerce-sdk-react/app/pages/use-customer-id.tsx
rename to packages/test-commerce-sdk-react/src/pages/use-customer-id.tsx
diff --git a/packages/test-commerce-sdk-react/app/pages/use-dnt.tsx b/packages/test-commerce-sdk-react/src/pages/use-dnt.tsx
similarity index 100%
rename from packages/test-commerce-sdk-react/app/pages/use-dnt.tsx
rename to packages/test-commerce-sdk-react/src/pages/use-dnt.tsx
diff --git a/packages/test-commerce-sdk-react/app/pages/use-payment-methods.tsx b/packages/test-commerce-sdk-react/src/pages/use-payment-methods.tsx
similarity index 100%
rename from packages/test-commerce-sdk-react/app/pages/use-payment-methods.tsx
rename to packages/test-commerce-sdk-react/src/pages/use-payment-methods.tsx
diff --git a/packages/test-commerce-sdk-react/app/pages/use-product-search.tsx b/packages/test-commerce-sdk-react/src/pages/use-product-search.tsx
similarity index 100%
rename from packages/test-commerce-sdk-react/app/pages/use-product-search.tsx
rename to packages/test-commerce-sdk-react/src/pages/use-product-search.tsx
diff --git a/packages/test-commerce-sdk-react/app/pages/use-promotions-for-campaign.tsx b/packages/test-commerce-sdk-react/src/pages/use-promotions-for-campaign.tsx
similarity index 100%
rename from packages/test-commerce-sdk-react/app/pages/use-promotions-for-campaign.tsx
rename to packages/test-commerce-sdk-react/src/pages/use-promotions-for-campaign.tsx
diff --git a/packages/test-commerce-sdk-react/app/pages/use-promotions.tsx b/packages/test-commerce-sdk-react/src/pages/use-promotions.tsx
similarity index 100%
rename from packages/test-commerce-sdk-react/app/pages/use-promotions.tsx
rename to packages/test-commerce-sdk-react/src/pages/use-promotions.tsx
diff --git a/packages/test-commerce-sdk-react/app/pages/use-search-suggestions.tsx b/packages/test-commerce-sdk-react/src/pages/use-search-suggestions.tsx
similarity index 100%
rename from packages/test-commerce-sdk-react/app/pages/use-search-suggestions.tsx
rename to packages/test-commerce-sdk-react/src/pages/use-search-suggestions.tsx
diff --git a/packages/test-commerce-sdk-react/app/pages/use-shopper-baskets.tsx b/packages/test-commerce-sdk-react/src/pages/use-shopper-baskets.tsx
similarity index 100%
rename from packages/test-commerce-sdk-react/app/pages/use-shopper-baskets.tsx
rename to packages/test-commerce-sdk-react/src/pages/use-shopper-baskets.tsx
diff --git a/packages/test-commerce-sdk-react/app/pages/use-shopper-categories.tsx b/packages/test-commerce-sdk-react/src/pages/use-shopper-categories.tsx
similarity index 100%
rename from packages/test-commerce-sdk-react/app/pages/use-shopper-categories.tsx
rename to packages/test-commerce-sdk-react/src/pages/use-shopper-categories.tsx
diff --git a/packages/test-commerce-sdk-react/app/pages/use-shopper-category.tsx b/packages/test-commerce-sdk-react/src/pages/use-shopper-category.tsx
similarity index 100%
rename from packages/test-commerce-sdk-react/app/pages/use-shopper-category.tsx
rename to packages/test-commerce-sdk-react/src/pages/use-shopper-category.tsx
diff --git a/packages/test-commerce-sdk-react/app/pages/use-shopper-context.tsx b/packages/test-commerce-sdk-react/src/pages/use-shopper-context.tsx
similarity index 100%
rename from packages/test-commerce-sdk-react/app/pages/use-shopper-context.tsx
rename to packages/test-commerce-sdk-react/src/pages/use-shopper-context.tsx
diff --git a/packages/test-commerce-sdk-react/app/pages/use-shopper-customer.tsx b/packages/test-commerce-sdk-react/src/pages/use-shopper-customer.tsx
similarity index 100%
rename from packages/test-commerce-sdk-react/app/pages/use-shopper-customer.tsx
rename to packages/test-commerce-sdk-react/src/pages/use-shopper-customer.tsx
diff --git a/packages/test-commerce-sdk-react/app/pages/use-shopper-experience.tsx b/packages/test-commerce-sdk-react/src/pages/use-shopper-experience.tsx
similarity index 100%
rename from packages/test-commerce-sdk-react/app/pages/use-shopper-experience.tsx
rename to packages/test-commerce-sdk-react/src/pages/use-shopper-experience.tsx
diff --git a/packages/test-commerce-sdk-react/app/pages/use-shopper-get-order.tsx b/packages/test-commerce-sdk-react/src/pages/use-shopper-get-order.tsx
similarity index 100%
rename from packages/test-commerce-sdk-react/app/pages/use-shopper-get-order.tsx
rename to packages/test-commerce-sdk-react/src/pages/use-shopper-get-order.tsx
diff --git a/packages/test-commerce-sdk-react/app/pages/use-shopper-orders.tsx b/packages/test-commerce-sdk-react/src/pages/use-shopper-orders.tsx
similarity index 100%
rename from packages/test-commerce-sdk-react/app/pages/use-shopper-orders.tsx
rename to packages/test-commerce-sdk-react/src/pages/use-shopper-orders.tsx
diff --git a/packages/test-commerce-sdk-react/app/pages/use-shopper-product.tsx b/packages/test-commerce-sdk-react/src/pages/use-shopper-product.tsx
similarity index 100%
rename from packages/test-commerce-sdk-react/app/pages/use-shopper-product.tsx
rename to packages/test-commerce-sdk-react/src/pages/use-shopper-product.tsx
diff --git a/packages/test-commerce-sdk-react/app/pages/use-shopper-products.tsx b/packages/test-commerce-sdk-react/src/pages/use-shopper-products.tsx
similarity index 100%
rename from packages/test-commerce-sdk-react/app/pages/use-shopper-products.tsx
rename to packages/test-commerce-sdk-react/src/pages/use-shopper-products.tsx
diff --git a/packages/test-commerce-sdk-react/app/pages/use-shopper-stores.tsx b/packages/test-commerce-sdk-react/src/pages/use-shopper-stores.tsx
similarity index 100%
rename from packages/test-commerce-sdk-react/app/pages/use-shopper-stores.tsx
rename to packages/test-commerce-sdk-react/src/pages/use-shopper-stores.tsx
diff --git a/packages/test-commerce-sdk-react/app/routes.tsx b/packages/test-commerce-sdk-react/src/routes.tsx
similarity index 100%
rename from packages/test-commerce-sdk-react/app/routes.tsx
rename to packages/test-commerce-sdk-react/src/routes.tsx
diff --git a/packages/test-commerce-sdk-react/app/ssr.js b/packages/test-commerce-sdk-react/src/ssr.js
similarity index 100%
rename from packages/test-commerce-sdk-react/app/ssr.js
rename to packages/test-commerce-sdk-react/src/ssr.js
diff --git a/packages/template-typescript-minimal/app/static/favicon.ico b/packages/test-commerce-sdk-react/src/static/favicon.ico
similarity index 100%
rename from packages/template-typescript-minimal/app/static/favicon.ico
rename to packages/test-commerce-sdk-react/src/static/favicon.ico
diff --git a/packages/test-commerce-sdk-react/app/utils/utils.ts b/packages/test-commerce-sdk-react/src/utils/utils.ts
similarity index 100%
rename from packages/test-commerce-sdk-react/app/utils/utils.ts
rename to packages/test-commerce-sdk-react/src/utils/utils.ts
diff --git a/scripts/bump-version/index.js b/scripts/bump-version/index.js
index 61ac70a0c8..c032869d12 100644
--- a/scripts/bump-version/index.js
+++ b/scripts/bump-version/index.js
@@ -21,7 +21,12 @@ const lernaConfigPath = path.join(rootPath, 'lerna.json')
const monorepoPackages = JSON.parse(sh.exec('lerna list --all --json', {silent: true}))
const monorepoPackageNames = monorepoPackages.map((pkg) => pkg.name)
-const INDEPENDENT_PACKAGES = ['@salesforce/retail-react-app', '@salesforce/commerce-sdk-react']
+const INDEPENDENT_PACKAGES = [
+ '@salesforce/commerce-sdk-react',
+ '@salesforce/template-chakra-storefront',
+ '@salesforce/extension-chakra-store-locator',
+ '@salesforce/extension-starter',
+]
const independentPackages = INDEPENDENT_PACKAGES.map((pkgName) =>
monorepoPackages.find((pkg) => pkg.name === pkgName)
)
diff --git a/scripts/publish-to-npm.js b/scripts/publish-to-npm.js
index 64ce96b86c..f0b9ace148 100644
--- a/scripts/publish-to-npm.js
+++ b/scripts/publish-to-npm.js
@@ -49,7 +49,7 @@ const main = () => {
const publishPackages = (packages = [], isNightly = false) => {
verifyCleanWorkingTree()
- const publicPackages = JSON.parse(sh.exec('lerna list --json', {silent: true}))
+ const publicPackages = JSON.parse(sh.exec('npx lerna list --json', {silent: true}))
const packagesToIgnore = publicPackages.filter(
(pkg) => !packages.includes(pkg.name.replace('@salesforce/', ''))
)
diff --git a/scripts/report-bundle-size.js b/scripts/report-bundle-size.js
index f003a44baa..26759f65a8 100755
--- a/scripts/report-bundle-size.js
+++ b/scripts/report-bundle-size.js
@@ -13,7 +13,15 @@ const childProc = require('child_process')
* Send bundle size stats to Datadog
*/
const main = () => {
- const buildDir = path.resolve('packages', 'template-retail-react-app', 'build')
+ const inputDir = process.argv[2]
+ if (!inputDir) {
+ const scriptName = path.basename(__filename)
+ console.error('Please provide the build directory as an argument.')
+ console.error(`Example: node ./scripts/${scriptName} path/to/build/directory`)
+ process.exit(1)
+ }
+ const buildDir = path.resolve(inputDir)
+
fs.promises
.readdir(buildDir)
.then((files) => {
diff --git a/scripts/smoke-test-npm-scripts.js b/scripts/smoke-test-npm-scripts.js
index 69459200a1..8dacf990a7 100644
--- a/scripts/smoke-test-npm-scripts.js
+++ b/scripts/smoke-test-npm-scripts.js
@@ -25,7 +25,7 @@ program.option('--dir ', `Path to a PWA Kit project`, defaultDir)
program.parse(process.argv)
const main = () => {
- const opts = program.opts();
+ const opts = program.opts()
const cwd = path.resolve(opts.dir)
@@ -42,8 +42,7 @@ const main = () => {
/^build$/,
/^start.*$/,
/^compile-translations.*$/,
- /^extract-default-translations.*$/,
- /^bump-version.*$/
+ /^extract-default-translations.*$/
]
const scripts = Object.keys(pkg.scripts).filter(